실행중인 프로세스에 삽입하기 위해 어셈블 할 어셈블리 코드가 있지만 항상 메모리의 같은 위치에 있지는 않습니다. 그러나 변경되지 않는 프로그램 내의 주소에 대한 참조를 포함합니다. jmp far
과 call far
을 사용해 보았지만 "FAR에서 참조한 값은 재배치가 불가능합니다"라는 오류 메시지가 나타납니다. 바이너리 코드에서 절대 주소를 사용하도록 설정하면 코드가 메모리에있는 위치와 관계없이 올바른 주소로 이동하여 호출합니다.절대 주소가 필요한 비 정적 위치에 대한 어셈블리 코드 작성 (절대 주소 필요)
1
A
답변
3
방법에 대해 :
mov reg, <fixed_address>
call [reg]
0
"어떻게 내가 바이너리 코드에서 절대 주소를 사용하도록 설정" 구성 명령 자신을 : 멀리 점프 또는 근처에 E9 + 4 EA + 6 바이트. 또는 : 셸을 설정할 때
call 11111111h
m1:
----
mov [m1 - 4], eax
감사합니다. 누군가 다른 사람이 똑같이 말했습니다. 수락 됨. – flarn2006