posted by 방랑군 2012. 1. 22. 22:36

출처 :  http://jok3.tistory.com/27 


역분석을 하다보면 api함수로 찾아줄때가 많은데 자주쓰이는 함수들을 정리해 봤습니다.
첨부파일은 원하는 함수를쓰면 그함수의 쓰임세가 설명되있는 도움말파일이라고 보시면 됩니다.





-파일 생성 & 열때.
16-bit : CreateFile
32-bit : CreateFileA
wide : CreateFileW


-파일 입출력(Read&Write)
ReadFile : 읽기
WriteFile : 쓰기

-파일 접근(Access)
SetFilePointer : 포인터 조정

-시스템 디렉토리 얻어오는 함수
16-bit : GetSystemDirectory
32-bit : GetSystemDirectoryA
wide : GetSystemDirectoryW


-.ini 구성설정에 관련된 함수들
16-bit : GetPrivateProfileString
GetPrivateProfileInt
WritePrivateProfileString
WritePrivateProfileInt
32-bit : GetPrivateProfileStringA
GetPrivateProfileIntA
WritePrivateProfileStringA
WritePrivateProfileIntA
wide : GetPrivateProfileStringW
GetPrivateProfileIntW
WritePrivateProfileStringW
WritePrivateProfileIntW

-레지스트리의 키를 생성 혹은 삭제할때
16-bit : RegCreateKey
RegDeleteKey
32-bit : RegCreateKeyA
RegDeleteKeyA
wide : RegCreateKeyW
RegDeleteKeyW

-현재 열려진 레지스트리 키를 읽을때
16-bit : RegQueryValue
32-bit : RegQueryValueA
wide : RegQueryValueW

-레지스트리 키를 열때
16-bit : RegCloseKey
RegOpenKey
32-bit : RegCloseKeyA
RegOpenKeyA
wide : RegCloseKeyW
RegOpenKeyW

-객체에서 문자열을 읽을때
16-bit : GetWindowText
GetDlgItemText
32-bit : GetWindowTextA
GetDlgItemTextA

wide : GetWindowTextW
GetDlgItemTextW

-정수여부 상관
GetDlgItemInt

-객체의 텍스트를 지정
16-bit : SetWindowText
SetDlgItemText
32-bit : SetWindowTextA
SetDlgItemTextA
wide : SetWindowTextW
SetDlgItemTextW


-메시지 박스
16bit : MessageBox
MessageBeep
32bit : MessageBoxA
MessageBoxExA
wide : MessageBoxW
MessageBoxExW

-메시지 관련
16bit : SendMessage
WSPRINTF
32bit :SendMessageA
wide : SendMessageW

-날짜와 시간을 구할때
GetSystemTime
GetLocalTime
SystemTimeToFileTime


-창을 생성 & 제거할때
16bit : CreateWindow
CreateWindowEx
DialogBoxParam
DestroyWindow
EndDialog
showwindow
bitblt
32bit : CreateWindowA
CreateWindowExA
DialogBoxParamA
wide : CreateWindowW
CreateWindowExW
DialogBoxParamW


-CD롬을 요구하는 함수 들
16bit : GetDriveType (만약 eax=5 라면 CD롬 체크 이다.)
GetLogicalDrives
GetLogicalDriveStrings
32bit : GetDriveTypeA
GetLogicalDrivesA
GetLogicalDriveStringsA
wide : GetDriveTypeW

-리턴 코드:
값 설명
0 Drive Cannot Be determined
1 Root Dir Does not exist
2 DriveRemoveable
3 A Fixed Disk (HardDrive)
4 Remote Drive(Network)
5 Cd-Rom Drive <==============
6 RamDisk

GetLogicalDrivesW
GetLogicalDriveStringsW

-Win NumberSerial:
GETWINDOWWORD
GETWINDOWLONG

+ORC가 제안한 훌륭한 함수
BOZOSLIVEHERE
HMEMCPY
GLOBALGETATOMNAME