Security/Reverse Engineering17 [Reversing] __cdecl과 __stdcall의 차이점 __cdecl과 __stdcall의 차이점 __cdecl과 __stdcall의 가장 큰 차이점은 스택 정리 주체가 누구인가하는 점인데 사실 이 차이점이 컴파일된 결과 코드에 미치는 영향은 별로 없다. 스택 정리 주체와는 상관없이 스택은 항상 호출 전의 상태로 복구되며 프로그램의 동작도 완전히 동일하다. 실행 속도는 거의 차이가 없으며 프로그램의 크기는 비록 무시할만한 수준이기는 하지만 __stdcall이 조금 더 작다. 왜냐하면 함수를 여러 번 호출하더라도 스택을 정리하는 코드는 함수 끝의 접미에 딱 한 번만 작성되기 때문이다. 반면 __cdecl은 호출원이 스택을 정리하므로 호출할 때마다 정리 코드가 반복되어 프로그램 크기가 조금 더 커진다. 또 다른 중요한 차이점은 가변 인수 함수를 만들 수 있는가 .. 2011. 1. 20. [Reversing] MASM32 Install and *.asm files compile [MASM32 install] http://www.masm32.com 홈페이지에서 masm32 다운로드 받고 설치한다. 설치 후 masm32\bin, masm32\lib 를 환경변수에 등록해 준다. [*.asm파일 컴파일 하기] Compile : cmd창을 오픈 c:\masm32\bin\ml.exe /c /coff /Zi 파일명.asm ml명령어가 실행되고 나면 .obj파일이 생성된다. Linking : c:\masm32\bin\link.exe /subsystem:windows 파일명.obj 2011. 1. 19. [Revsering] ASCII Code List DEC HEX OCT Char DEC HEX OCT Char DEC HEX OCT Char 0 00 000 Ctrl-@ NUL 43 2B 053 + 86 56 126 V 1 01 001 Ctrl-A SOH 44 2C 054 , 87 57 127 W 2 02 002 Ctrl-B STX 45 2D 055 - 88 58 130 X 3 03 003 Ctrl-C ETX 46 2E 056 . 89 59 131 Y 4 04 004 Ctrl-D EOT 47 2F 057 / 90 5A 132 Z 5 05 005 Ctrl-E ENQ 48 30 060 0 91 5B 133 [ 6 06 006 Ctrl-F ACK 49 31 061 1 92 5C 134 \ 7 07 007 Ctrl-G BEL 50 32 062 2 93 5D 1.. 2010. 10. 17. [Reversing] IDA pro 단축키 Text search Alt+T Show strings window Shift+F12 Show operand as hex value Q Insert comment : Follow jump or call in view Enter Return to previous view Esc Go to next view Ctrl+Enter Show names window Shift+F4 Display function's flow chart F12 Display graph of function calls Ctrl+F12 Go to program's entry point Ctrl+E Go to specific address G Rename a variable or function N Show listing of names .. 2010. 9. 2. [Reversing] Segment, Offset Segment Memory 8086은 1mb의 메모리 공간을 다음과 같은 4개의 세그먼트 공간으로 나누어 관리함 Code Segment 명령어 코드를 저장 Data Segment 데이터를 저장 Stack Segment 메모리에 할당된 스택 영역 Extra(Heap) Segment 여분의 데이터 영역 Segment Register 8086이 필요한 정보를 세그먼트 단위로 나누어 저장하고 있기 때문에 정보를 가져오기 위해선 각 세그먼트의 시작 주소를 알아야 함 따라서 4개의 세그먼트 레지스터를 이용해 각 세그먼트 영역의 시작 주소를 가리킴 CS 실행 할 명령어들이 들어있는 코드 세그먼트의 시작 주소를 가지고 있는 레지스터. CS * 10H + OFFSET(IP)로 물리 메모리 주소 결정 DS 데이터 세그먼트.. 2010. 7. 2. [Reversing] Ollydbg 단축키 Ctrl+F2 프로그램 재실행 Alt+F2 프로그램 닫기 F3 새 프로그램 열기 F5 활성화 되어 있는 윈도우 최대화, 혹은 원복 Alt+F5 olly 디버거 윈도우를 항상 위로 F7 Step into (함수 진입) Ctrl+F7 Animate into (entering functions) F8 Step over (executing function calls at once) Ctrl+F8 Animate over (executing function calls at once) F9 실행 Shift+F9 Pass exception to standard handler and run Ctrl+F9 Execute till return Alt+F9 Execute till user code Ctrl+F11 Trace .. 2010. 7. 2. 이전 1 2 3 다음