crackme
-------
win32API
API: application programming interface
운영체제가 운영프로그램을 위해 제공하는 함수의 집합
Int MessageBox(HWND hWnd, //부모 윈도우 핸들, H for handle(식별값), 보통은 NULL
LPCTSTR IpText, // 메시지 내용, LP implying Pointer
CT implying const
STR implying string
-> 포인터 상수 문자열
cf) LPCTSTR "hi"
LPCTSTR IpCaption, // 캡션 내용(제목) cf) LPCTSTR "title"
UINT uType); // 메시지 박스 타입(버튼)
-> U for unsigned
-> MB_OK
-> 식별값은 똑같을 수 없다 -> OS가 직접 지정
-> 계산기(부모)
-> 버튼들 (자식)
------------
#include <windows.h>
int main(){
MessageBox(NULL, "23th fighting", "i2sec", MB_OK); -> 인자를 다 넣어줘야 실행 됨
return 0;
}
---------
#include <windows.h>
int main(){
MessageBox(NULL, "23th fighting", "i2sec", MB_YESNO);
return 0;
}
--------------
#include <windows.h>
int main(){
MessageBox(NULL, "23th fighting", "i2sec", MB_YESNO | MB_ICONSTOP);
return 0;
}
-----------------------
msdn.com
인자=parameter=매개변수
전부 외우기엔 너무 방대한 양
어떤헤더가 필요한지 확인 -> requirements 확인
soen.kr
-----------
#include <windows.h>
#include <stdio.h>
#include <string.h>
void Error(){
MessageBox(0, "Error!!!", "Warning", MB_OK);
printf("Operation Failed!!!\n");
exit(1);
}
int main(){
char Name[20]={0};
char fName[30]={0};
DWORD dw;
HANDLE hFile;
printf("input Create File name : ");
gets(Name);
hFile=CreateFile(Name, GENERIC_READ | GENERIC_WRITE, 0,0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,0);
if(hFile==INVALID_HANDLE_VALUE) Error();
printf("Create COmplete!\n");
printf("input Program Name or Path : ");
gets(fName);
if(!WriteFile(hFile, fName, strlen(fName), &dw, 0)) Error();
printf("input Complete!\n");
CloseHandle(hFile);
return 0;
}
-------------------
...
...
HANDLE hFIle;
...
...
hFIle=CreateFile(Name, GENERIC_READ | GENERIC_WRITE, 0,0,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,0);
...
...
HANDLE 이라는 자료형도 존재
CreateFIle() 의 용도
-> 파일 생성, 파일 열기
-> 7개의 인자 필요
(파일이름, 파일 엑세스 타입, 공유모드, 상속여부, 생성여부, 파일의 속성, 일단 0 );
-> 공유모드 -> 다른파일에서 열고 사용할수 있는지 -> 0이면 안 함
파일 속성 -> 읽기 전용, 숨김 ...
// 성공 : 파일 핸들값 리턴
// 실패 : INVALID_HANDLE_VALUE 리턴
WriteFile(핸들, 파일이름, 파일이름의 길이, 실제로 쓴 바이트 수,
CloseHandle(hFIle)l;
-> 대소문자 구분 하기
'Reversing' 카테고리의 다른 글
Anti-debugging (0) | 2014.10.14 |
---|---|
crackme and winapi (0) | 2014.10.13 |
packing (0) | 2014.10.07 |
packing and unpacking using (0) | 2014.10.06 |
Packing & MUP (0) | 2014.10.02 |