SMALL
후킹을 하고 특정 함수를 호출하기 위해서 어셈블리어 call을 사용하게 된다.
==> target_address call 0x402f01
이러기 위해서 call [Address]의 기계어로 원하는 target_address에 적어 주어야 한다.
처음에 생각은 0x402f01에 존재하는 함수를 호출하고 싶으면
0xe8402f01 이런식으로 구성되는 줄 알았다. --> 아니다
그래서 검색하다가 나와서 정리하려고 한다.
CALL opcode == 0xe8
operand == call[위의 0x402f01]과 call 하는곳[target_address] 사이의 바이트 길이 offset
== offset from call
[Example]
00401000에서 0040CF40를 CALL 할 경우 0000BF3B가 나온다
0040CF40 - 00401000 - 5 [CALL operand Len]
e8 BF3B0000 가 나온다.
[출처] http://glukjeoluk.tistory.com/entry/call-opcode
LIST
'reversing > reversing' 카테고리의 다른 글
C++ 리버싱 연습 (0) | 2016.11.29 |
---|---|
get physical address (0) | 2016.11.29 |
Cheat Engine (0) | 2016.11.18 |
[Project] 디버거 만들기 [2] [브레이크 포인트] (0) | 2016.09.27 |
[Project] 디버거 만들기 [골격] (0) | 2016.09.27 |