用od反汇编,如何在反汇编里面插入自己要加入的代码??
我刚接触不是很懂,给我举个例子吧。如图中代码,在push5b处我如何用ebx来实现从90循环两次到91?还有所谓的空间是什么?这个dll最后有很多db00的指令,这是空白...
我刚接触不是很懂,给我举个例子吧。如图中代码,在push 5b处我如何用ebx来实现从90循环两次到91?
还有所谓的空间是什么?这个dll最后有很多db 00的指令,这是空白空间吗? 展开
还有所谓的空间是什么?这个dll最后有很多db 00的指令,这是空白空间吗? 展开
3个回答
展开全部
如果空间足够,可以直接原地改,如果知道机器码,直接编辑二进制数据,否则选择菜单中的汇编,输入汇编指令。有空间剩余,用空指令补齐
如果没有足够空间,则需要跳转到足够大空白处,跳转处如有空间剩余,也用空指令补齐,完成后再跳回来,
-----------------------------------------------------------
PUSH ERSoe_Te.10925854
PUSH 5B
应是为子程序100A1FB0传递参数,不建议在此处插入代码,一定要这样做的话,我认为可以有两个方案:
1.常用的方法,一个短跳,跳到附近的空白处,retn语句后可能是一个好去处,具体是不是,要具体分析。完工后再跳回来。
PUSH 5B占用两个字节,短跳也占用两个字节,正好!
2.因为retn语句之后可能是片可以利用的空白,PUSH 5B附近是子程序调用,应该也不会有什么语句直接跳到这里来,且代码极少,可以考虑向下移动,将反汇编的代码依次汇编,工作量不大。
空白就是指程序没有使用的空间,我们拿来用,也不会影响到程序原有的功能,如果我们使用了程序使用的空间,就会破坏原有的代码或数据。大片的相同数据多数情况下就是空白,这个可以作为参考,但不是依据!
如果没有足够空间,则需要跳转到足够大空白处,跳转处如有空间剩余,也用空指令补齐,完成后再跳回来,
-----------------------------------------------------------
PUSH ERSoe_Te.10925854
PUSH 5B
应是为子程序100A1FB0传递参数,不建议在此处插入代码,一定要这样做的话,我认为可以有两个方案:
1.常用的方法,一个短跳,跳到附近的空白处,retn语句后可能是一个好去处,具体是不是,要具体分析。完工后再跳回来。
PUSH 5B占用两个字节,短跳也占用两个字节,正好!
2.因为retn语句之后可能是片可以利用的空白,PUSH 5B附近是子程序调用,应该也不会有什么语句直接跳到这里来,且代码极少,可以考虑向下移动,将反汇编的代码依次汇编,工作量不大。
空白就是指程序没有使用的空间,我们拿来用,也不会影响到程序原有的功能,如果我们使用了程序使用的空间,就会破坏原有的代码或数据。大片的相同数据多数情况下就是空白,这个可以作为参考,但不是依据!
展开全部
在需要插入代码的地方jmp到一个空地方,在空地方写自己代码然后jmp回去.至于怎么写自己的代码就需要你会汇编和windows编程了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
od不适合做这个的,你应该用其他编辑器。
od只是调试工具。
nop指令
od只是调试工具。
nop指令
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询