+ -
当前位置:首页 → 问答吧 → 汇编函数调用(读取不到数值)

汇编函数调用(读取不到数值)

时间:2011-12-12

来源:互联网

在a.exe里面加载了1.dll
1.dll中有一句call fun1,(fun1也是在1.dll里面的)
我要修改fun1的一些东西。。但是不能在1.dll里面修改。。
所以我复制了一个1.dll重命名为2.dll并注入加载到a.exe里面去
然后a.exe调用call fun1我修改为 call 2.dllfun1。这个2.dllfun1是2.dll里的fun1的地址。。然后我修改了2.dll里面的fun1
结果运行时出错。错误是一些地址不可读取。。。。
我查看了是 cmp [edx+460],ecx
其中[edx+460]cannot be read
我想我是直接call 2.dllfun1的。只是借用了2.dll里的部分代码。(而且2.dll和1.dll是一模一样的)那么各个寄存器的数值应该不会变。应该还是能够正确运行的啊。。难道这样一修改使得[edx+460]和原来不做修改的[edx+460]所指向的不是同一地址了么??求解答,,求解决

作者: groundhappy   发布时间: 2011-12-12

看看这个指令处,原来的代码和自己修改后的代码 edx 中内容有什么区别;再回溯看看哪里导致了 edx 中内容的差异。

作者: zara   发布时间: 2011-12-13