반응형
함수 호출 패턴
함수를 호출하는 쪽 : Caller
호출되는 함수 : Callee
인자의 개수, 인자의 타입, 리턴 값을 보면 어떤 함수인지 찾기 쉬움.
CALL 명령은 돌아가야할 주소를 stack에 push하고 함수로 jmp한다.
__cdecl
함수 프롤로그
PUSH EBP - 이전 EBP의 위치 기억
MOV EBP, ESP - EBP를 ESP으로 옮김
SUB ESP, 0C - 지역 변수의 크기 할당
함수 에필로그
MOV ESP, EBP - ESP를 EBP로 옮김
POP EBP - 기억했던 이전 위치를 다시 EBP로 옮김
RETN - 돌아가야할 주소로 jmp
구조체 패턴
멤버들이 연속적으로 할당됨.
코드 패치
어셈블리어 영역, Data 영역을 변조하는 것이 가능하다.
Code 영역 변경하는 방법
어셈블리 영역을 클릭하고 space를 누르면 된다.
프로그램을 다시 실행하면 원래의 코드로 돌아오게 된다.
코드를 수정하고 복사본을 저장하려면 Copy to executable -> All modifications
Data 영역을 변경하는 방법
변경하고자 하는 위치에 커서를 두고, space 누르고 값을 입력해주면 된다.
반응형
'Reversing&Write up > Study' 카테고리의 다른 글
[HandRay] while문, for문 패턴, WinMain API? (0) | 2018.01.15 |
---|---|
[HandRay] if문 패턴, switch-case문 패턴 (0) | 2018.01.14 |
[HandRay] Main 함수 parameter, pointer 패턴 (0) | 2018.01.12 |
[HandRay] OllyDbg 사용법과 Data Expression (0) | 2018.01.11 |
[HandRay] 핸드레이와 레지스터 (0) | 2018.01.09 |