如何编写汇编代码,实现自定位获取当前EIP

如何编写汇编代码,实现自定位获取当前EIP,第1张

mov ebx,0x4AAAAA 雀启                       设置指向数据指针

mov dword ptr ds:[ebx],0xC324048B       写入数吵腔据

call ebx           顷碰如                     执行写入的数据 004AAAAA    8B0424    mov eax,dword ptr ss:[esp]    保存esp(这里esp=eip)

004AAAAD    C3        retn                          返回

我的能力有限,不知是不是你需要的答案,祝你学习愉快!

可以这样写:

code segment

assume cs:code

main proc far

start:

call ok

mov ax,4c00h

int 21h

main endp

ok proc near

pop ax

ret

ok endp

code ends

end start

在调用子程序的同时,将IP入栈用来返回调用前的地址。子程序余饥中竖闭返再将态脊入栈的IP值赋给AX,此时AX中保存的即为CALL OK的下一条指令的偏移地址。即子程序返回后IP的值。MOV等指令是无法直接改变IP值的。EIP应该同理。以上程序DEBUG通过。感觉汇编不是很容易。。要加油啊!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12415664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存