우리는 foo 문을 호출한다고 가정합니다. 그래서 어셈블러가 호출 문을 만나면 -x86 함수 호출 중에 jmp 주소를 찾는 방법은 무엇입니까?
push ip + 6
jmp <addr of foo>
나는 ebx 레지스터에 반송 주소를 가지고있다. 이제 나는 "addr of foo"를 찾고 싶다. 어떻게해야합니까? push 문이 jmp 앞에 있는지 확인하고 싶습니다. 메모리 맵은 이와 비슷한 모양입니까?
-------
push (what will be the value stored in this byte?? opcode ??)
-------
jmp (what will be the value stored in this byte?? opcode ??)
-------
jmp byte 1
-------
jmp byte 2
-------
jmp byte 3
-------
jmp byte 4
-------
return address stored in ebx
-------
푸시 및 jmp의 opcode는 무엇입니까?
'call'은 프로세서에서 실행하는 명령어입니다. 어셈블러에서는 변환하지 않습니다. 'push '와'jmp'와 동등한 것으로 생각할 수 있지만, 그들은 같은 것이 아닙니다. – wj32
@ wj32 : 프로세서에서 호출을 실행하면 정상입니다. 점프 장소의 주소는 어떻게 얻습니까? – Bruce
@ wj32 : call 문의 메모리 맵은 무엇입니까? – Bruce