首页
社区
课程
招聘
请教一个非常菜的问题!
发表于: 2005-8-6 14:34 4019

请教一个非常菜的问题!

2005-8-6 14:34
4019
071C5784    813B C5B1662D     cmp dword ptr ds:[ebx],2D66B1C5
071C578A    0F84 62180000     je 071C6FF2 //jmp 071C57E4跳过特殊处理

我用OD调试,看到文章里要求把je 071C6FF2改成jmp 071C57E4,然后我按空格键改成jmp 071C57E4,点汇编后发现下面多了很多的NOP,请问这个加上去不会影响其他指令把?可是有的地方却把下面一条指令覆盖掉了,应该是采用什么方法更改?

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 288
活跃值: (415)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
NOP是空指令,是什么也不做的,自己添加代码可以在nop上面写代码,
但是要注意不要让自己写的代码与程序的另一段代码重叠了
071C5784    813B C5B1662D     cmp dword ptr ds:[ebx],2D66B1C5
071C578A    0F84 62180000     je 071C6FF2 //jmp 071C57E4跳过特殊处理
把je 71c6ff2改为jmp 71c6ff2后,
程序运行到这里就无条件地跳到71c6ff2上执行,不管上面发生了什么事情(当然程序崩溃除外)所以71c579a--71c6ff2都不会运行到的,除非有别的地方跳到这里.
2005-8-6 15:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那请问我这么改跟文章中的要求改法一样把,下面NOP多出几行是正常的把?
2005-8-6 15:13
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这和解释机器码有关,
比如你的je 071C6FF2  的机器码为 660F84C36F1C07
但你改为jmp 071C57E4 那机器码为 E93876DBEC
那么就少了2个字节,为了不影响CPU对下面指令的解释,就得用
NOP来填充,NOP的机器代码为一个字节,上面例子少了二个字节
所以得加二个NOP

2005-8-6 16:23
0
雪    币: 201
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
呵呵,想不到也有和我一样的菜菜
2005-8-6 17:00
0
雪    币: 207
活跃值: (84)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
最初由 gdimk 发布
这和解释机器码有关,
比如你的je 071C6FF2 的机器码为 660F84C36F1C07
但你改为jmp 071C57E4 那机器码为 E93876DBEC
那么就少了2个字节,为了不影响CPU对下面指令的解释,就得用
NOP来填充,NOP的机器代码为一个字节,上面例子少了二个字节
........


又学到了新知识
谢谢
2005-8-6 20:19
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
还有个问题:文章要求把
071C5B4F    8907               mov dword ptr ds:[edi],eax
071C5B51    61                 popad
这两行翻转一下,可我发现无论用空格然后编辑哪个,下面一个就会被覆盖或者出错,请问,这个又该如何去改?
2005-8-8 10:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
最初由 酷酷 发布
呵呵,想不到也有和我一样的菜菜


菜菜不丢脸,丢脸的是明知自己菜却又不肯去学。
2005-8-8 10:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
呵呵,你们都比我强多了,我都不会用爆破和改程序。。。
2005-8-8 13:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
顶,请高手释疑
2005-8-9 11:22
0
游客
登录 | 注册 方可回帖
返回
//