2018. 4. 19. 17:04ㆍ악성코드 분석
[ 악성코드 기초 정적분석 ]
1> www.virustotal.com에 파일을 업로드하여 해시코드값 검색
2> 패킹 여부 확인 ( PEiD )
Microsoft 6.0++ 같이 컴파일 프로그램이름을 알 수가 없다
즉, 패킹되어있다
3> 프로그램 코드 분석 ( PEView )
UPX로 패킹되어 있는 실행파일임을 알 수 있다
또한, UPX0헤더에서 쓰기권한을 가지고 있어 0x4000크기의 가상메모리에 데이터를 작성할 것으로 보인다
4-1> 언패킹 실시 ( upx.exe ) - 자동화 방식
upx.exe 패킹(or언패킹)프로그램을 사용해서 UPX파일을 언패킹 시킨다
언패킹 된 결과
&
4-2> 언패킹 실시 - 프로그램 없이 수동으로
[4-2-1] 코드 분석 ( UPX Packing특징 : PUSHAD & POPAD )
스택에 원본코드의 레지스터들을 저장해두고 패킹 후 실행시에 꺼내어온다
PUSHAD명령 실행 후 해당 ESP에 브레이크를 걸어두고 프로세스가 접근하는 때를 확인하자
POPAD명령 실행 이후 프로세스는 원본코드의 레지스터가 저장되어 있는 스택지점에 접근했다
코드를 따라서 JMP명령을 실행하여 이동해보자
원본코드를 찾아냈다
Ollydump로 덤프한다
[4-2-2] Import REC를 통한 IAT복구
OEP수정 이후 "AutoSearch" => Size수정 => Get Import => Fix Dump ( 위에서 저장한 덤프파일 )
[4-2-3] 언패킹 결과
* 자동화 프로그램과 수동 언패킹시의 차이점은 크게 없다
5> 실행파일에서 사용하는 문자열 확인 ( Strings program )
디라이렉션으로 생성한 텍스트 파일 결과
'악성코드 분석' 카테고리의 다른 글
악성코드 기초 정적분석 ( Dropper ) (0) | 2018.04.21 |
---|---|
악성코드 기초 정적분석 ( File packed FSG ) (0) | 2018.04.20 |
악성코드 기초 정적분석이란? (0) | 2018.04.18 |
FSG 수동언패킹 [ Lena21 ] (0) | 2018.04.14 |
Upack 수동언패킹 [ Lena21 ] (0) | 2018.04.14 |