반응형

악성코드&리버싱 4

패킹 된 악성 실행 파일과 언패킹 된 악성 실행 파일 비교

UPX 섹션의 raw-size가 0 bytes이고, entry-point가 첫 번째 섹션이 아닌 UPX1로 설정, 섹션 네임에 UPX0, UPX1가 존재하는 것을 미루어 해당 파일은 코드 packing된 실행파일로 의심할 수 있다.실행파일 언패킹 시 raw-size가 0 bytes에서 8192 bytes로 증가했으며, entry-point가 첫 번째 색션으로 설정, 섹션 네임에 파일명이 존재하게 되었고, items -> file에 숨겨진 파일 정보가 생성 되었다.패킹 전에는 Import API 목록이 11개로 확인되었으나, 언패킹 이후에는 Import API 목록가 86개로 증가하였다.

UPX를 이용해 패킹 된 실행 파일을 언패킹 하기

UPX는 여러 운영체제에서 수많은 파일 포맷을 지원하는 오픈 소스 실행 파일 압축 프로그램으로 압축,        압축 해제의 기능을 모두 담당한다. 명령어 : 파일들이 위치한 경로> upx.exe –d –o “저장할 파일명”.exe “Unpack할 파일명“.exe명령어 : 파일들이 위치한 경로> upx.exe –d “Unpack할 파일명“.exe –o “저장할 파일명”.exe-d : UPX로 압축된 파일을 압축 해제-o : 압축 해제 후 생성될 파일명 설정UPX를 이용해 언패킹 시 기존 파일에 비해 파일 크기가 증가한 것을 확인 할 수 있다.

언패킹(Unpacking)과 패커(Packer)

- S/W가 패킹되면 소스코드를 쉽게 볼 수 없게 된다. 이런 패킹 된 소스코드를 보기 위해 암호화를 풀거나 압축을 풀어 코드를 풀어내는 과정을 언패킹이라고 한다.- 패커란 패킹을 해주는 프로그램을 말하며, 악성코드에 이용되는 패커는 주로 UPX이다- 실행파일 내부 로직, 헤더, 외부호출함수, 데이터 등을 숨기거나, 백신 탐지를 우회하기 위해    내부 데이터를 압축한다.  *용량 축소 목적이 아니다.

패킹(Packing) 이란

패킹은 S/W를 암호화하거나 압축하여 소스코드를 볼 수 없게 만드는 것이다S/W를 패킹할 때 주목적은 Pretection(보호) 와 Compressor(압축) 이다- 실행파일을 압축하게 되면 용량이 줄어들어 다운로드시 걸리는 시간이 줄어들게 되며,  압축된 파일은 시스템의 공간을 적게 차지하기 때문에 파일 시스템으로부터 데이터가  메모리에 전송되는 시간이 덜 걸리므로 더 빨리 실행하게 된다. 이러한 장점들로 인해 악성코드에 패킹이 많이 사용된다. 악성코드를  패킹하게되면, 다른 컴퓨터에 바이러스를 빨리 유포시킬 수 있고, 리버싱을 하기까지 시간이 더 오래걸리는 이점이 있다. (패킹된 실행 파일을 리버싱을 하기위해 언패킹을 해야되기 때문이다.)

반응형