Try Attack/Malware Analysis[basic]

[악성코드분석] dropper

D4tai1 2021. 4. 25.

안녕하세요 하하!

 

지금부터 드롭퍼가 어떤 함수를 사용해서 파일을 드롭하고 실행시키는지 알아보려고 합니다.

 

 

FindResource 함수

HRSRC FindResource(HMODULE hModule, LPCTSTR lpName, LPCTSTR lpType);

 FindResource함수는 리소스를 찾는 함수입니다

 

1) hModule : 리소스를 찾을 exe나 dll의 핸들을 넣어주면 됩니다

(NULL을 넣으면 현재 프로세스의 모듈을 사용합니다

 

2) lpName : 리소스의 이름을 넣어주면 됩니다

MAKEINTRESOURCE를 사용해서 정의한 ID를 넣어주어도 됩니다

 

3) lpType : 리소스 타입을 넣어주면 됩니다

MAKEINTRESOURCE를 사용해서 정의한 ID를 넣어주어도 됩니다

 

4) return : 리소스ID(이름)에 해당하는 리소스의 핸들의 주소를 반환합니다

(실패 시 NULL을 반환)

 


SizeofResource 함수

DWORD SizeofResource(HMODULE hModule, HRSRC hResInfo);

SizeofResource함수는 리소스의 크기를 구하는 함수입니다

 

1) hModule : 모듈의 핸들을 넣어주면 됩니다

 

2) hResInfo : FindResource에서 얻은 리소스 핸들의 주소를 넣어주면 됩니다

 

3) return : 리소스의 크기를 반환합니다

(실패 시 0을 반환)


LoadResource 함수

HGLOBAL LoadResource(HMODULE hModule, HRSRC hResInfo);

LoadResource함수는 리소스를 로드하는 함수입니다

 

1) hModule : 모듈의 핸들을 넣어주면 됩니다

 

2) hResInfo : FindResource에서 얻은 리소스 핸들의 주소를 넣어주면 됩니다

 

3) return : 리소스의 주소를 반환합니다

(예상 : [ImageBase + 리소스 핸들] = 리소스의 주소)

(실패 시 NULL을 반환)


LockResource 함수

LPVOID LockResource(HGLOBAL hResData);

LockResource함수는 LoadResource 후 리소스의 메모리에 로드된 실제주소를 얻어오는 함수입니다

 

1) hResData : LoadResource에서 반환받은 리소스의 주소를 넣어주면 됩니다

 

댓글