악성코드 기초 정적분석 ( Lab07_01 / ExeinfoPE & pestudio )

2018. 5. 2. 05:57악성코드 분석



악성코드 기초 정적분석 도구

● ExeinfoPE

해당 파일의 패킹여부 등 여러가지 정보를 얻을 수 있다


IAT테이블을 확인해서 악성파일이 사용하는 라이브러리를 볼 수 있다



 pestudio

악성파일이 사용하는 라이브러리나 문자열을 확인할 수 있다 ( PEView & strings 를 합쳐놓은 효과 )



악성파일이 import하고 있는 라이브러리들이다

그룹별로 라이브러리들을 분류해서 가독성이 좋다


< Thread > 스레드 및 프로세스 관련

CreateThread function

  Creates a thread to execute within the virtual address space of the calling process.

GetCurrentProcess  

  Retrieves a pseudo handle for the current process.

GetCommandLine

  Retrieves pointer to the command-line for the current process

  

< Memory > 가상메모리나 힙메모리 관련

HeapDestroy

  Destroys the specified heap object

HeapCreate

  Creates a private heap object that can be used by the calling process.

HeapFree

  Frees a memory block allocated from a heap

HeapAlloc

  Allocates a block of memory from a heap

HeapReAlloc

  This function enables you to resize a memory block and change other memory block properties

VirtualFree

  releases a region of pages within the virtual address space of the calling process.

VirtualAlloc

  Reserves, commits, or changes the state of a region of pages in the virtual address space of the calling process. 


  

< File >  파일 관련

GetFileType

  Retrieves the file type of the specified file.

WriteFile

  Writes data to the specified file or input/output (I/O) device.

SystemTimeToFileTime

  Converts a system time to file time format ( SysTime -> FileTime )


< Mutex > 중복실행 방지 관련

CreateWaitableTimer

CreateMutexA

OpenMutexA

WaitForSingleObject

  

< Service > 서비스 관련

StartServiceCtrlDispatcherA

  Connects the main thread of a service process to the service control manager, which causes the thread to be the service control dispatcher thread for the calling process.

OpenSCManagerA

  Establishes a connection to the service control manager on the specified computer and opens the specified service control manager database.

CreateServiceA

  Creates a service object and adds it to the specified service control manager database.


  

< Module > 

LoadLibraryA ( DLL을 불러온다 )

  Loads the specified module into the address space of the calling process

GetProcAddress ( 불러온 DLL로부터 함수를 가져온다 )

  Retrieves the address of an exported function or variable from the specified dynamic-link library (DLL).

GetModuleFileNameA

  Retrieves the fully qualified path for the file that contains the specified module. 

  The module must have been loaded by the current process.



악성파일이 사용하는 문자열들을 그룹별로 구분해서 나열해서 보여준다

가장 눈에 띄는 문자열은 " http://www.malwareanlysisbook.com "이 보인다