http://exeinfo.atwebpages.com/ ]


0. 개요

1. 화면

2. 버튼

3. 기타

4. Console Mode





0. 개요

  PE 분석기로는 PEiD를 쓰고 있었지만 업데이트도 없고 64비트 바이너리도 지원하지 않아서 새로운 PE 분석기를 찾는 도중 Exeinfo PE를 알게되었다. 원래 단순히 패킹 정보만을 원했었지만 수많은 기능들이 있는 것을 보고 사용하던 pestudio, PEView를 모두 삭제하고 이것만 쓰고 있을 정도로 괜찮은 프로그램인것 같다. 물론 gui가 조금 조잡한 면이 있지만 그래도 기능적으로는 어지간한 것들을 모두 지원하고 있는 것으로 보인다. 업데이트도 꾸준히 이루어지고 있으며 최신 버전은 2017년 6월 5일 버전 0.0.4.7이다. 참고로 단점은 .pdata 섹션 관련된 분석은 따로 지원하지 않는것 같다.

  원래는 스크린샷을 찍어서 하나하나 표시한 후에 올리고 싶었지만 기능이 너무 많아서 그러다 글도 못 쓰게될것 같아 간단하게 글로만 쓰려고 한다. 크게 화면과 버튼으로 나누었는데 화면이야 내용이 있으므로 구별하기 쉽겠지만 버튼은 아이콘 또는 화살표만 있는 버튼들이 대부분이므로 어느 버튼인지에 대한 설명도 추가하기로 하겠다. 마지막으로 버전은 0.0.4.7을 기준으로 한다.





1. 화면

1.1 Entry Point

  간단하게 EP 주소를 보여준다.



1.2 EP Section

  EP과 위치한 섹션 이름을 보여준다. EP Section 부분에 마우스 커서를 대고 클릭하면 입력창이 뜬다. 만약 EP가 0000125D인 경우 10을 입력하면 0040126D를 시작으로 하는 [ Disassembler ] 윈도우를 보여준다. 해당 윈도우는 뒤에서 다루겠다.



1.3 File Offset

  메모리 기준이 아니라 파일 오프셋 기준 EP의 주소.



1.4 First Bytes

  EP에 위치한 첫 명령어들의 값. EP에 위치한 명령어가 sub rsp, 28인 경우에는 48.83.EC.28 등으로 보여준다. First Bytes 부분에 마우스 커서를 대고 클릭하면 [ Disassembler ] 윈도우를 보여준다.

  [ Disassembler ] 윈도우에서는 각 섹션별로 디스어셈블리를 볼 수 있다. 오른쪽 버튼들을 보면 32비트 또는 64비트로 설정할 수 있으며 (기본적으로 해당 바이너리에 맞게 설정되므로 만질 필요는 없다) 디스어셈블러로 NASM, MASM, GoAsm을 선택할 수 있다. 참고로 모든 영역에 대한 디스어셈블리를 보여주지는 않고 EP 기준으로 보여준다. 대신 위의 섹션을 클릭하면 해당 섹션 시작 주소부터 보여주기도 하고, 특정 주소를 더블 클릭하면 해당 주소 기준으로 보여준다. 아니면 "1.2 EP Section"을 클릭하고 EP 기준으로 떨어진 위치를 입력하여 해당 주소 부분을 볼 수도 있다. 여러모로 디스어셈블러로는 그다지 의미는 없다.



1.5 Linker Info

  링커 버전. 패킹된 경우에도 보여주며 왼쪽과 같이 "6.0"이나 "14.1" 같이 나온다. 오른쪽과 비교하여 해당 VS에서 만들어졌다는 것을 확인할 수 있다.


MSVC++ 5.0   (Visual Studio 97)

MSVC++ 6.0   (Visual Studio 6.0)

MSVC++ 7.0   (Visual Studio .NET 2002)

MSVC++ 7.1   (Visual Studio .NET 2003)

MSVC++ 8.0   (Visual Studio 2005)

MSVC++ 9.0   (Visual Studio 2008)

MSVC++ 10.0  (Visual Studio 2010)

MSVC++ 11.0  (Visual Studio 2012)

MSVC++ 12.0  (Visual Studio 2013)

MSVC++ 14.0  (Visual Studio 2015)

MSVC++ 14.1  (Visual Studio 2017)



1.6 Subsystem

  콘솔 응용 프로그램의 경우 "Win Console", GUI 형태는 "Windows GUI"로 보여준다.



1.7 File Size

  파일의 크기. File Size 부분에 커서를 대보면 File Alignment와 Section Alignment를 볼 수 있다.



1.8 Overlay

View overlay if exist, Right button - save ovl and Reopen with exeinfo.

  Overlay 관련된 내용은 "3. * Overlay" 부분에 정리하였다. 마우스 왼쪽 버튼을 클릭하면 [ Viewer ] 윈도우를 통해 해당 부분의 데이터를 볼 수 있다. 참고로 Overlay 필드의 오른쪽은 16진수 값으로 크기를 의미하며 [ Viewer ] 윈도우에서는 10진수로 몇 바이트인지 크기를 볼 수도 있다. 마우스 오른쪽 버튼을 클릭한 경우 해당 Overlay data 부분만을 exeinfo PE로 여는 것을 보았을 때 악의적인 PE 바이너리를 뒷 부분으로 추가한 경우에 사용될 수 잇는 기능으로 보인다.



1.9 Image is 32bit executable  /  64 bit executable

  해당 애플리케이션이 32비트 인지 64비트인지에 따라 위의 문자열을 보여준다.



1.10 RES/OVL : xx / xx %

show in percent exe Resources and Overlay data.

  첫 번째는 [ Header info ] 창에서 데이터 디렉터리의 리소스 부분에 나오는 것과 같다. 즉 EXE에서 리소스 영역에 차지하는 퍼센트 즉 리소스 섹션의 비율을 의미한다. 두 번째 부분은 EXE에서 Overlay data가 차지하는 퍼센트를 의미한다.



1.11 날짜

  헤더에서 생성 날짜 필드를 참고하여 생성 년도를 보여준다. 대보면 아래에 정확한 날짜를 보여준다.



1.12 시그니처 영역

  시그니처를 통해 구분한 후 컴파일러 정보 또는 패킹되어 있을 시 패커 정보를 보여준다. 가장 많이 보는 부분이며 일반적으로 사용자들에게 이 프로그램의 목적이기도 하다.



1.13 Lamer Info - Help Hint - Unpack info

  아래에 언패커 정보를 보여준다. 링크 뿐만 아니라 오른쪽 "Go !" 버튼을 통해 관련 링크로 바로 이동할 수도 있다.



1.14 서명 정보

  오른쪽 부분에 메달 형태의 이미지이다. 서명되지 않을 경우에는 특별한 색깔을 띄지 않으며 마우스 커서를 대면 "Digital Certificate X509 - Not Found on this file"라고 보여준다. 사인이 존재하는 경우에는 빨간 색으로 변하고 마우스 커서를 대면 "This is Real X509 Certificate - not a fake, but I don't check - sha 1RSA" 같은 문자열을 보여준다.

  클릭하면 다음 정보도 보여준다.

- Digi Cert size from Header

- Cert Size from Certificate





2. 버튼

2.1 File

- Rename file

  파일 이름 변경

- Copy file as ... .bak

  확장자가 bak인 파일 즉 백업 파일을 생성해 준다.

- Copy - part of a Big file and Save to disk

  바이트 값을 입력해서 파일의 시작부터 그 크기 만큼의 부분을 저장한다.

- Execute EXE

  바이너리의 경우 실행시킨다.

- Execute DLL,ZIP,IMG,RAR ...

  기타 파일들을 실행한다. 예를들어 .txt 파일의 경우 메모장으로 띄워주는 방식이다.

- Delete file (Alt+Del) global key

  파일 삭제

- Windows File Properties

  마우스 오른쪽 버튼 클릭 후 속성 항목을 누르면 나오는 파일 속성 창을 띄워준다

- Kill Windows exe process (via TerminateProcess)

  프로세스 이름을 입력받고 해당 프로세스를 종료시킨다.

- Run script - Exeinfo PE format *.Eis

  Exeinfo PE 용 스크립트와 관련된 내용으로 보이며 인터넷에서 스크립트 엔진이 추가되었다는 내용까지는 찾았지만 그 이상의 정보는 볼 수 없었다.

- .Ext - check file extension via net : www.fileinfo.com

  해당 사이트에서 해당 파일의 확장자를 검색한다.

- Send hash to : virustotal - SHA256 check

  www.virustotal.com에서 해당 파일의 SHA256 값을 검색한다.

- F2 key - Run Multifile scanner - scan Directory

  Multifile scan 방식으로서 F2 키와 같다. 특정 디렉터리를 선택한 후 Start하면 그 디렉터리에 존재하는 실행 파일들을 한 번에 검사해 준다.

- R.M.Buton - Others detectors / unpackers MENU

  exeinfo PE 윈도우를 마우스 오른쪽으로 클릭한 것과 같다. 다음의 항목들이 뜬다. 개인적으로 설치한 것은 Trid.exe밖에 없어서 언급할 내용은 없다. Trid 설치는 해당 파일을 사이트에서 다운로드받은 후 이 항목을 클릭하고 이후 설치된 폴더를 선택하면 이후부터는 이 항목을 클릭함으로써 자동으로 Trid를 실행할 수 있다. Trid는 "3. * trid"에서 추가적으로 다루기로 한다.

-- CFF Explorer VIII - 2012 (.NET viewer)

-- Protection ID v.0.6.8.5 - 2016

-- FFI - File Format Identifier v.1.4 - 2008

-- Quick Unpack v2.3 - 2010

-- InnoExtractor v5.2.x - 2016

-- Universal Extractor v1.6.1 - 1.x - 2015 (mod.vers.)

-- Trid.exe - Non exe scan - binary detector

-- Media Info - audio video - detector

-- Don't close ExeinfoPE

- Global log file menu

- Create and Save Screenshot to JPG/PNG file

- Convert Hex Value to Decimal and Dec 2 Hex

  클릭하면 아래에 각각 10진수와 16진수를 변환해주는 계산기가 나온다.

- Detect installed .NET Framework versions

  컴퓨터에 설치된 .NET Framework 버전들을 보여준다.

- External signatures DB view (if file userdb.txt loaded)

  일반적으로 userdb.txt 파일이 exeinfo PE가 위치하는 디렉터리에 존재하며 로드된다. 그래서 이것을 클릭하면 그 내용들을 볼 수 있다. 텍스트 파일이므로 메모장으로 봐도 된다.



2.2 <  [ if > 0 then return back Oryginal EPoint and Re-diagnose ExE ]

  "1.1 Entry Point" 오른쪽에 위치한 아이콘이다. 파악하지 못했다.



2.3 <  [ view file at offset : 0000 ]

  "1.7 File Size" 오른쪽에 위치한 아이콘이다. 디스어셈블러 창에서 전체 데이터와 아스키 값들을 보여준다.



2.4 N  [ LMB - view .NET structure, RMB - .NET Detectors Menu ]

  "2.3 <" 오른쪽에 위치한 아이콘이다. .net 바이너리의 경우에만 적용된다. 마우스 왼쪽을 클릭하면 [ .NET Directory ] 윈도우가 떠서 .net 관련 정보들을 보여준다. PE Header - COM Descriptor Area, Meta Data Header, Meta Data Streams 등의 정보가 있다.

  마우스 오른쪽 클릭 시 다음 항목들을 볼 수 있으며 설치되어 있다면 실행할 수 있을 것이다. 개인적으로는 설치된 것이 없어서 확인은 해보지 못했다.

- DNiD v1.0 Coded by Rue - 2011.07.08

- RedGate.ObfuscationChecker - Trial Free only *

- Improve .NET - Deobfuscator v1.0.9 - 2013.12.28

- de4dot NET unpacker - deobfuscator v3.1 - 2015



2.5 HEX data search

  여기서부터는 오른쪽에서 두 번째 줄에 위치한 버튼들이다. 돋보기 모양의 아이콘이며 클릭 시 입력 창을 통해 검색할 Hex 데이터를 입력받으며 이후 결과는 [ Viewer ] 윈도우를 통해 매칭되는 HEX 데이터를 보여준다.



2.6 Section Viewer

  [ Section Viewer ] 윈도우가 나와서 각 섹션 정보를 보여준다. 주소와 크기, 플래그, 첫 바이트 값들 뿐만 아니라 왼쪽 버튼들을 보면 간단하게 전체 테이블을 클립보드로 복사하는 기능도 있다. 물론 각 라인을 마우스 왼쪽 버튼으로 클릭하면 그 라인에 한하여 자동으로 클립보드로 복사된다. 스크린샷 기능도 있는데 클릭하면 현재 바이너리가 있는 폴더에 스크린샷이 생성된다.

  오른쪽의 Cave 버튼은 각 섹션의 빈 공간에 대한 정보를 보여주며 S-Stat 버튼은 각 섹션에서 0x00 값을 갖는 데이터의 비율을 보여준다. Zero 바이트들의 비율을 가지고 각 섹션들이 패킹되었는지에 대한 추정도 보여준다.



2.7 Version info

  해당 바이너리에 버전 정보가 있다면 보여준다.



2.8 PE Header & Image Data entries

  PE라고 써진 아이콘이다. [ Header info ] 윈도우가 나와서 헤더 정보들을 보여준다. 여러 정보들부터 Data Directory 관련 정보들, 플래그들도 보여준다. 추가적으로 Import Table이나 Export Table이 존재한다면 오른쪽 버튼을 클릭하여 임포트하는 DLL 및 함수들 또는 익스포트하는 함수들에 대한 정보도 자세히 볼 수 있다. 클립보드 복사와 스크린샷 기능도 있다.



2.9 Scan / t

  userdb.txt를 이용하여 스캔한다. 결과는 왼쪽 창에서 볼 수 있다. 마우스 오른쪽 클릭 시 Trid.exe를 실행시킨다.



2.10 Go! - www sites

  파란색 구형의 형태를 띈 아이콘이다. 왼쪽에서 언패킹 관련 정보를 보여준다고 했는데 이 버튼을 클릭해 보면 언패킹과 관련된 링크들이 나오며 클릭하여 해당 웹사이트로 갈 수 있다.



2.11 click to reload this file

  순환하는 파란색 화살표 두 개가 보이는 아이콘이다. 바이너리를 재로드한다. Scan / t 버튼을 클릭하거나 했을때 원래 정보를 보기 위해 다시 복구할 때 같은 상황에서 사용할 수 있다.



2.12 Open file

  여기서부터는 가장 오른쪽에 위치한 버튼들이다. 아이콘은 폴더 모양을 하고 있다. 바이너리를 불러온다.



2.13 Stat - zero byte test

  아이콘은 막대 그래프 모양을 하고 있다. 클릭 시 [ Stat ] 윈도우를 통해 Byte Analyser에 따른 그래프를 보여준다. zero byte test라는 것을 잘 모르지만 결과적으로 Themida로 패킹된 바이너리에 대하여 Diagnose 항목을 보면 "Strong Packed (Test with Overlay)"라고 나오며 Yoda's protector의 경우 "Crypted", 패킹하지 않은 경우 "Very not packed"인 것을 보면 관련 검사인 것으로 보인다. ZERO value test의 퍼센트도 같이 보면 Themida 같이 더 강한 패커의 경우에 퍼센트 값이 훨씬 낮은 것을 볼 수 있다. Zero value test에 대해서는 "3. 기타 * Zero value test" 항목을 참고하자.

  이 외에도 CRC32, MD5, SHA1, SHA256에 해당하는 값도 보여준다.



2.14 Plug - Run plugin (compatible with Peid)

  딱히 쓸만한 것이 보이지 않는다.



2.15 About

  집 모양의 아이콘이다. 버전 및 시그니처 등과 관련된 기본 정보



2.16 Config - options, select skin, ...

- Fast Scan

  마우스 커서를 대보면 "unchecked - enable floating Entry Point (Deep area - 30 bytes)"라는 설명이 뜬다. 정확한 의미는 모르겠지만 그다지 느린 일이 없으므로 굳이 설정할 필요는 없을 것 같다.

- Ignore EXE errors

  PE 헤더나 I/O 에러 무시.

- Always on Top

- Shell integration

  설정 시 파일들을 마우스 오른쪽으로 클릭하면 Exeinfo PE로 바로 검사할 수 있게 항목이 생성된다.

- Close Exeinfo when running ext. detectors

  다른 Detector나 Tool 사용 시 종료.

- Big GUI-interface

- Select skin

- Log file

  ExeinfoPe 등의 폴더에 로그를 기록한다. 로그 파일 이름은 Exeinfo.log이다.

- Language



2.17 OFF - or Press ESC key

  빨간색 X 모양의 아이콘이다. 종료.



2.18 Rip - Ripper Menu

  기본적으로 파일 내부의 존재하는 리소스를 추출하는 기능으로 보인다. 마지막 항목 "I'm hungry for Ripping (All in One)"은 한 번에 추출할 수 있는 모든 것을 추출해 주므로 이것만 클릭하면 될 것 같다. 예를들어 아이콘이 있는 바이너리라면 아이콘이 있을 것이며 그 외에도 내부에 존재하는 또 다른 PE 파일 같은 것들도 추출해주는 기능이 있으므로 유용할 것으로 보인다.

- Ripper (search EXE PE inside EXE + base64 enncoded)

- Scan only (for EXE PE)

- MSI / MSI xor FF generic (msi/doc/xls/pps/adp/wps) - OLE2

- GFX pictures - RIP Submenu

-- PNG

-- JPG

-- BMP

-- GIF

-- --> All in one

- BIN archives - RIP Submenu

-- Ripper (search ZIP archives)

-- Ripper (search Rar archives)

-- Ripper (search 7zip archives) + xor FF

-- Ripper (search MSCF CAB archives)

-- Ripper (search Bzip2 archives)

-- Ripper (search Gzip archives)

-- Ripper Lzma Archive (5D 00 00)

-- *** Ripper Zlib Archives (78 xx xx)

-- ---> All in one

- Ripper (search www/http:/ftp - address inside)

- Ripper (search SWF flash animations - max v39.0! - zlib/lzma)

- Ripper (search hidden NSTD icon data)

- Ripper (search for .xml ver.1.0 script files)

- UNIVERSAL Ripper - At Entered String "???" to EOF

- I'm hungry for Ripping (All in One)



2.19 >> - Tools Menu

- External exe Run -> (from exeinfopeRUN.cfg) max 30 items 

  여러 바로가기들을 설정할 수 있다.

- Overlay Menu

-- Save Overlay as *.ovl (if exist)

  Overlay 데이터 부분만 떼어내서 저장해 준다.

-- Trunk overlay (generate new file)

  Overlay 데이터 부분만 떼어낸 실행 파일을 만들어 준다.

-- Add empty overlay data

  입력으로 크기를 받으며 0x00으로 채워진 빈 overlay data를 추가한다.

-- Add overlay from file

  overlay data가 파일로 존재하는 경우 실행 파일 뒷 부분에 이 데이터를 추가한다.

-- Overlay uncrypter XOR (if exe in ovl)

  overlay에 XOR로 암호화된 PE가 있는 경우에 복호화하는 것으로 보인다. 하지만 사용해보지 못해서 확실히는 알 수 없다.

- Entry Point - OEP Corrector menu

  아래의 부분들은 제대로 파악하지 못했다.

-- EP corrector (Delphi/C++6) multi files generator

  델파이로 만든 바이너리를 가지고 이것을 실행하자 EP를 변경한 바이너리를 20개 단위로 만들어 주었다. 제대로 된 EP를 찾는 것 같은데 그 기준은 잘 모르겠다.

-- EP corrector for Delphi v.5.0 - Runtime method

-- EP corrector for Dev C++ / MINGW32 / GCC 32 Compiler

- XoR permutator - generate *.xer file (xor, or, shl, shr, and) 

  아직 숙지하지 못했다.

- Section stripper - save sections to files (*.sec 1, 2, 3 ...) 

  각 섹션들을 파일로 저장한다.

- Registry Call scanner "SOFTWARE, HKLM, HKCU" + CLSID / RSD / TAGG 

  레지스트리 관련 문자열들을 찾아준다.

- DFM - Delphi Form Scanner (view as Text) 

  Delphi Form이 존재하는지 스캐닝한다. [ Delphi Forms File Scanner ] 윈도우에 찾은 결과를 파일 오프셋 기준으로 보여준다. Delphi 관련 내용은 알지 못하여 이 이상은 파악하지 않았다.

- (DATA) - Zlib unpacker v.1.2.8 - www.base2ti.com 

  Zlib으로 패킹된 경우 언패킹해주는 기능으로 보인다. 패킹된 바이너리를 가지고 있지 않아서 확인해보지는 않았다.

- Search Compiler Runtime Engine - Use only for not packed files

  여러 컴파일러 런타임 엔진들 중에서 실행 파일이 사용하는 것이 해당하는지 비교해서 보여준다.

- eXtra Tools

-- AT4RE v1.0 protector - unprotector Tool

  설치를 해야 하는 건지 모르겠지만 별다른 메시지가 없어서 확인하지 않았다.

-- Signatures counter for (userdb.txt)

  userdb.txt 파일에 존재하는 시그니처 개수 세기

-- Add Visual basic fake sign for UPX packer

  UPX 패커의 경우 빈 공간에 push와 call 문을 추가한 후 EP를 여기로 설정한다. call 문은 원래 EP를 가리킨다. 가짜 VB 용의 시그니처를 만드는 방식으로 보이는데 원래 VB 바이너리를 분석해본 경험이 없어서 확신할 수는 없다. 왜냐하면 Exeinfo PE 자체도 새로 만들어진 fake VB 파일을 분석하고 "Unknown Packer-Protector, 3 sections like UPX S-Structure UPX!" 라는 결과를 보여주기 때문이다.

-- set EP to 1000 like PEcompact, Asprotect and scan again

  Entry Point를 1000으로 설정하고 다시 스캔한다. 공교롭게 두 프로텍터 모두 분석해보지 않아서 무슨 의미인지 이해하지 못했으며 분석해본 후에 내용을 추가하려고 한다.

-- anti Flashback scrambler - inc EP for UPX - and scan again

-- Save modified Buffer to file

  위의 두가지를 같이 보겠다. 첫 번째는 뒤에서 설명하겠지만 바이너리를 수정해 준다. 하지만 저장까지는 하지 않는데 두 번째를 통해 수정한 것을 저장할 수 있다. 두 번째는 그냥 저장만 하는 역할을 하므로 첫 번째 위주로 설명을 하겠다.

  먼저 옵션에서 Fast Scan을 활성화해야 한다. 그리고 하는 행위는 두 가지인데 하나는 링커 정보 즉 링커 버전을 6.0으로 변경하는 것이다. 그리고 처음 바이트 60 어셈블리어로는 PUSHAD를 67로 변경한다. 올리디버거로 확인해보면 PUSHAD 부분은 실행되지 않는다는 것을 알 수 있다. 하지만 알고리즘을 이용한 것인지 실행 자체는 원래와 같이 잘 이루어진다. 디코딩 알고리즘을 직접 분석해봐야 자세한 내용을 알 수 있을것 같다.





3. 기타

* Overlay (Appended Data)

  PE 파일의 경우 바이너리 뒤에 추가적인 데이터를 덧붙일 수 있다고 한다. 메모리에 올라온 다던지 실행 파일에 특별한 영향을 주는 것은 아닌것 같으며 추가적인 정보나 그다지 의미없는 정보가 들어갈 수 있다고 한다. exeinfo PE는 이러한 데이터를 인식할 수 있으며 여기와 관련된 기능을 제공해주는 것으로 보인다. 

  참고로 여러 실행 파일들을 비교해본 결과 Overlay 데이터들은 일반적으로 디지털 서명과 관련된 것 같다. 마우스 오른쪽 버튼 클릭 후 속성을 보았을 때 디지털 서명 부분을 볼 수 있으며 PEview로는 마지막에 CERTIFICATE table이라는 부분이 보인다. 이것과 관련된 exeinfo PE의 여러 기능들을 보면 악성코드의 경우 이 영역에 악성 바이너리를 추가한다던지 인코딩해서 저장하는 방식이 사용되기도 하는 것 같다. 참고로 디지털 서명 정보가 이러한 방식으로 추가되는 경우가 대부분인지 항상인지는 모르겠지만 어지간한 경우에 Overlay 데이터가 존재하는 경우 "1.14 서명 정보"가 같이 존재하는 경향이 있는 것 같다.

[ ref : https://www.autoitscript.com/forum/topic/153277-pe-file-overlay-extraction/ ]



* Trid

  파일의 종류를 추측해 준다. 예를들어 exe 파일을 입력 받으면 다음과 같은 결과를 볼 수 있다. [ ref : http://mark0.net/soft-trid-e.html ]

--

42.2% (.EXE) Win32 Executable MS Visual C++ (generic) (31206/45/13)

37.3% (.EXE) Win64 Executable (generic) (27625/18/4)

8.8% (.DLL) Win32 Dynamic Link Library (generic) (6578/25/2)

6.0% (.EXE) Win32 Executable (generic) (4508/7/1)

2.7% (.EXE) Generic Win/DOS Executable (2002/3)

--

  사실 DLL을 분석해 봐도 15%만 dll로 보고 나머지는 exe로 여기는 것을 보면 그다지 성능이 좋아 보이지는 않는것 같기도 하지만 jpg, wav 등 대부분의 파일 형태들은 거의 확실히 구별해 주므로 악성코드 분석 시에 가끔씩은 쓸모있어 보이기도 한다.



* Zero value text

  엔트로피 관련된 것인지 말 그대로 exe에서 zero value가 얼마나 차지하는지를 나타내는 것인지는 모르겠지만 이것을 기준으로 패킹되었는지 여부를 추측하는 검사로 보인다. 엔트로피 관련된 테스트에 대해서 공부한 적이 없어서 아직까지는 쓸 내용이 없다.





4. Console Mode

  자동화를 위해서 콘솔 모드 즉 CLI 환경을 지원하느냐는 가장 중요한 부분으로 보인다. 다행히 exeinfo PE는 콘솔 모드를 지원한다. CMD 창에서 다음 명령을 입력하면 간단한 설명을 볼 수 있다.


> exeinfope.exe /?


  옵션은 /s 보다 /sx가 더 많은 것을 지원하는 것으로 보이므로 이것을 사용하여 aaa.exe를 인식하기로 하겠다.


C:\Users\monto\Documents\Reversing\ExeinfoPe_v0047_III\exeinfope.exe C:\Users\monto\Desktop\upx.exe* /sx /log:"C:\Users\monto\Desktop\log.txt"


  upx.exe 다음에는 *를 꼭 붙여주어야 한다. 이후 다음과 같은 로그 파일을 얻을 수 있다.


upx.exe             - UPX 0.89 - 3.xx -> Markus & Laszlo ver. [ 3.91 ] <- from file. ( sign like UPX packer ) 




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

Anti-AV와 Anti-VM (Sandbox)  (1) 2017.12.30
COM, OLE, .NET Frame work 등의 개념 및 사용  (0) 2017.12.18
TEB 및 PEB를 활용하는 루틴  (1) 2017.12.04
EFLAGS 상태 레지스터  (0) 2017.11.22
USB 악성코드 분석  (0) 2017.11.09
Posted by SanseoLab

블로그 이미지
Malware Analyst
SanseoLab

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

글 보관함