악성코드에 자주 사용되는 API 함수
DLL Injection에서 사용되는 API //특정 프로세스에 DLL Injection 실행
OpenProcess
VirtualAllocEx
WriteProcessMemory
LoadLibraryA
GetProcAddress
CreateRemoteThread
Resource 섹션에 있는 리소스 사용 API //Resource 섹션에 암호화된 데이터를 해제하여 메모리에 기록
LoadResource
SizeofResource
LockResource
FreeResource
FindResourceA
특정 파일 이름 확인 //특정한 이름의 파일을 읽고, 생성하고, 기록하고, 복사
WriteFile
lstrcmpiA
ReadFile
DeleteFileA
CreateFileA
CopyFileA
CreateProcessA
FindFirstFileA
레지스트리에 관련 API //레지스트리에 특정한 키의 생성과 삭제가 이루어짐
RegSetValueExA
RegEnumValueA
RegDeleteKeyA
RegCreateKeyExA
OpenProcessToken
암호화와 관련된 API //Resource 섹션에 암호화된 데이터를 해제하여 어딘가에 기록
CryptCreateHash
CryptHashData
CryptGetHashParam
CryptAcquireContextA
-------------------------------------------------------------------------------------------------------
File 관련 API
WriteFile
ReadFile
CreateFile
CopyFile
MoveFile
Thread 관련 API
LoadLibrary
CreateThread
ResumeThread
CreateRemoteThread
로깅 관련 API
Mouse_event
Keybd_event
GetAsyncKeyState
Internet 관련 API
internetWriteFile
InternetConnect
네트워크 관련 API
WSAStartup
Gethostbyname
Gethostbyaddr
Socket
Send Recv
Inet_addr
FTP 관련 API
FtpOpenFile
FtpGetFileSize
기타 API 함수 목록
CreateMutex
capCreateCaptureWindows
ClientToScreen
메모리 관련 함수
VirtualAlloc() //가상 메모리 할당
VirtualFree() //가상 메모리 해제
VirtualProtect() // 메모리 보호 설정 값 변경
-------------------------------------------------------------------------------------------------------
GetModuleFileName
- 현재 실행되고 있는 위치 구한다.
GetKeyboardType
- 현재 키보드 타입을 구한다.
GetLocaleinfo
- 현재 설정되어 있는 국가/지역에 대한 정보를 구한다.
CreateFile
- 핸들값 반환 받는다.
WriteFile
- 핸들 값 받아서 파일을 쓴다. //CreateFile로 반환받은 핸들값을 통해 파일을 쓴다.(파일 수정/변조 등)
SetFileAttributes
- 파일의 속성을 바꾼다.
GetTempPathA
- 경로 탐색 API
CreateFileA
- 파일 생성 API
Shellexecute
WinExec
- 생성 파일 실행 센스 API
GetStartupInfoA
GetModuleHandleA
- 파일의 위치를 구할 때 사용
RegopenKeyExA
- 레지스트리를 열어볼 때 사용
CopyFileA
- 파일을 폴더로 복사시키는 역활
CreateServiceA
- 서비스등록
CreateProcessA
- Cmd로 자가 삭제
FindResourceA
- 리소스 찾기
SizeofResource
- 크기검색
SizeofResource
- 첫 바이트 획득
-------------------------------------------------------------------------------------------------------
VMWARE
- magic_num : VMXh
VirtualBox
- \\\.\\VBoxMiniRdrDn
- VboxHook.dll
GetLogicalDrives
- 드라이브 찾기
GetDiskFreeSpaceExW
- 용량 정보를 가져온다. (VM의 경우 보통 20G)
-------------------------------------------------------------------------------------------------------
GetTickCount()
DWORD GetTickCount(VOID); // OS 부팅 후 msec(1/1000초) 단위로 시간을 돌려주는 함수
윈도우즈가 부팅된 후 1초에 1000씩 틱 카운트를 증가 시킨다.
카운트는 32비트값이므로 최대 49.7일간의 카운트를 유지할 수 있다.
특정 루틴 시작 전과 후의 시간 값을 측정하여 차이를 확인하고 Debugger가 존재하는 지 확인 .(SUB 명령어를 통해 비교)
-------------------------------------------------------------------------------------------------------
추가
malloc함수로 할당 할 수 있는 메모리블럭의 크기에는 한계가 있다.(약 256MB까지 밖에안된다고 들음)
VirtualAlloc함수는 대용량의 메모리를 다룰때 사용한다.
정리가 잘 되어있어서 나름 읽고 재정리
출처: http://vencedor.tistory.com/9 [vencedor]
여기도 정리 잘되어있음
추가 : http://hack4profit.com/archives/204
'Programming > WinAPI' 카테고리의 다른 글
[API함수] WaitForSingleObject (0) | 2017.03.02 |
---|---|
WinAPI WinMain과 윈도우 클래스 (0) | 2017.02.08 |
WinAPI 핸들에 대한 이해 (0) | 2017.02.08 |
API란? (0) | 2017.02.08 |
WinAPI 윈도우의 특징 (0) | 2017.02.08 |