DLL 인젝션 이해

2021. 5. 3. 11:13리버싱,악성코드분석

실행중인 다른 프로세스에 DLL파일을 강제로 삽입하여 사용자가 원하는

DLL을 로딩하게만듬(악성코드를 실행)

 

 

DLL 소스코드 예제

DLL이 로딩되면 자동으로 DLLMain()이 실행된다.

2번째 인자는 dll의 호출사유를 의미함.

 

 

DLL 인젝션 과정

 

openprocess api로 프로세스의 핸들을 구해서 DLL 인젝션할 프로세스에 메모리를 할당(VirtualAllocEx)하고 

할당받은 버퍼주소에 실행할 dll경로 문자열을 쓴다.

getprocaddress함수로 loadlibrary api를 호출하기 위해

주소를 구하고 인젝션할 프로세스에 creataeremotethread로 원격 스레드를 생성한다.

loadlibrary와 createremotethread 함수의 함수모양이 똑같은 점(4바이트 파라미터를 받고 4바이트 값을 리턴)

을 이용하여 createremotethread함수를 이용해 파라미터에 loadlibrary의 주소와 dll경로 문자열 주소를넣어

호출하여 실제로 loadlibrary를 호출하도록 한다.

 

'리버싱,악성코드분석' 카테고리의 다른 글

문서형 악성코드 이해  (0) 2021.05.06
UAC 우회기법  (0) 2021.05.06
UAC 이해  (0) 2021.05.06
DLL 인젝션 분석 실습  (0) 2021.05.03
PE 파일 포멧 이해  (0) 2021.04.30