为什么od里分析了代码后做出来的内存补丁没用

 我来答
在卡演山813
2017-07-29 · TA获得超过120个赞
知道答主
回答量:283
采纳率:0%
帮助的人:98万
展开全部
如果空间足够,可以直接原地改,如果知道机器码,直接编辑二进制数据,否则选择菜单中的汇编,输入汇编指令。有空间剩余,用空指令补齐
如果没有足够空间,则需要跳转到足够大空白处,跳转处如有空间剩余,也用空指令补齐,完成后再跳回来,

-----------------------------------------------------------
PUSH ERSoe_Te.10925854
PUSH 5B
应是为子程序100A1FB0传递参数,不建议在此处插入代码,一定要这样做的话,我认为可以有两个方案:
1.常用的方法,一个短跳,跳到附近的空白处,retn语句后可能是一个好去处,具体是不是,要具体分析。完工后再跳回来。
PUSH 5B占用两个字节,短跳也占用两个字节,正好!
2.因为retn语句之后可能是片可以利用的空白,PUSH 5B附近是子程序调用,应该也不会有什么语句直接跳到这里来,且代码极少,可以考虑向下移动,将反汇编的代码依次汇编,工作量不大。

空白就是指程序没有使用的空间,我们拿来用,也不会影响到程序原有的功能,如果我们使用了程序使用的空间,就会破坏原有的代码或数据。大片的相同数据多数情况下就是空白,这个可以作为参考,但不是依据!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式