windows system
-
calling conventionwindows system 2013. 12. 22. 20:35
공통 : 인자는 스택에 역순으로 push,return 값은 eax에 __stdcall – WIN32 표준 인자 스택은 함수가 정리한다.윈도우 API는 대부분 이 방식을 사용하는 것으로 보인다. push 10 push 20 call stdcall_func ※ 명령어 : retn 10h | c2 10 00 __cdecl 인자 스택은 호출자가 정리한다.linux system call은 대부분 이 방식을 사용하는 것으로 보인다. push 1 push 4 call cdecl_func add esp, 8 ※ 명령어 : retn | c3 fastcall 첫번째, 두번째 인자만 ecx, edx에 넣고 나머진 스택에.. thiscall c++에서 this 호출시 사용. ecx
-
PE File 구조체windows system 2013. 12. 22. 17:17
IMAGE_DOS_HEADER e_magic : DOS signature (4D5A => ASCII값 "MZ") e_lfanew : NT header의 offset을 표시 *DOS stub : 코드(어셈블리어)와 데이터의 혼합으로 이루어져 있다. IMAGE_NT_HEADER signatures는 PE (0x00004550) IMAGE_NT_HEADER - IMAGE_FILE_HEADER Machine 해당 실행 파일이 실행될 수 있는 시스템을 나타낸다. NumberOfSections 각 색션에 대한 설명은 IMAGE_SECTION_HEADER부분에서 볼 수 있다. 위 캡쳐에서는 .textbss, .text, .rdata, .data, .idata, .rsrc, .reloc 7개의 section이 있다. ..