当前位置: 代码迷 >> 汇编语言 >> 汇编函数调用(读取不到数值)解决方案
  详细解决方案

汇编函数调用(读取不到数值)解决方案

热度:9462   发布时间:2013-02-26 00:00:00.0
汇编函数调用(读取不到数值)
在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]所指向的不是同一地址了么??求解答,,求解决


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