求教如何把esp或者ebp保存在一个内存地址然后再jmp

清晨曦月
博客专家认证
2011-10-09 03:22:15
修改了一个API函数的前面几个字节,跳转到我的函数里面,就是修改前5字节jmp到新地址那种hook方法。
可是在这之前我想保存esp或者ebp的值到一个内存地址,于是我就在原函数地址上写入:

mov dword ptr ds:[保存esp的内存地址], esp
jmp [我的函数的内存地址]


就是在以前的jmp前面加了一句,明显不行啊,O(∩_∩)O~

求高人指点一二三~
...全文
97 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
清晨曦月 2011-10-09
  • 打赏
  • 举报
回复
要是可以,那结贴了
清晨曦月 2011-10-09
  • 打赏
  • 举报
回复
还没测试,不过蹦出来个想法
哎呀,我这样不就行了嘛!
在我的函数里面调用这样一段函数:
mov eax, esp
retn
不就得到esp了么……哎……囧啊囧

高手看这样对吧,记得好像是eax就是返回值,测试了一下确实输出出来很多内存地址
清晨曦月 2011-10-09
  • 打赏
  • 举报
回复
咦……那就是说……和原来的hook一样,只是在我的函数头上写上
mov dword ptr ds:[保存esp的内存地址], esp
就行了么。。。测试下
  • 打赏
  • 举报
回复
在[我的函数的内存地址]开头部分再保存。
清晨曦月 2011-10-09
  • 打赏
  • 举报
回复
咕~~(╯﹏╰)b,高人救我,救我啊救我……
清晨曦月 2011-10-09
  • 打赏
  • 举报
回复
我勒个去,看我这结帖率…………明显高于100%,在线等,高人啊,汇编不懂,也不知道该给多少分,不够的话可以大大的加啊

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧