2014. 10. 8. 17:36
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

crackme


nCrack_me2.exe




-------




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
Posted by af334