首页
社区
课程
招聘
指令修改的问题
发表于: 2005-3-2 11:33 4043

指令修改的问题

2005-3-2 11:33
4043
一段代码如下:
00000000 :                               // -- Line #170 --
   00000127 : 6A 00                         PUSH $00
   00000129 : 66 8B 0D(7C 01 00 00          MOV CX,WORD PTR [TOxygenSMS.Create{0xF1}+$0000017C]
   00000130 : 33 D2                         XOR EDX,EDX
   00000132 : B8(88 01 00 00                MOV EAX,TOxygenSMS.Create{0xF1}+$00000188
   00000137 : E8(00 00 00 00                CALL MessageDlg{0x51}
   0000013C : 48                            DEC EAX
   0000013D : 75 17                         JNE +23; (0x156)

我想用前两字节来跳过这段代码,然后把其他代码nop掉,可是却出现以下情况:

00000127 : EB 2D                         JMP +45; (0x156)
   00000129 : 90                            NOP
   0000012A : 90                            NOP
   0000012B : 90                            NOP
   0000012C : 90 90 90 90                   K1 TOxygenSMS.Create{0xF1} ?
   00000130 : 90                            NOP
   00000131 : 90                            NOP
   00000132 : 90                            NOP
   00000133 : 90 90 90 90                   K1 TOxygenSMS.Create{0xF1} ?
   00000137 : 90                            NOP
   00000138 : 90 90 90 90                   K2 MessageDlg{0x51} ?
   0000013C : 90                            NOP
   0000013D : EB 17                         JMP +23; (0x156)

跳过是成功了,可以为什么有些代码不能被nop呢?哪位高手能解释下吗?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
破解控件的,其实自己都是程序员,拿这些控件写入自己的程序然后卖钱。
2005-3-2 12:30
0
雪    币: 210
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
本贴不是申请pj的,大家仔细看上面的文字就知道了。

楼上的,对于你的贴子我不想反驳,我也不想说什么,没意思。我不是程序员。

等高手解惑...
2005-3-2 12:45
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
最初由 netu0 发布
本贴不是申请pj的,大家仔细看上面的文字就知道了。

楼上的,对于你的贴子我不想反驳,我也不想说什么,没意思。我不是程序员。

等高手解惑...


因为我说中了,程序员往往是不怎么会破解的,你别的不破偏要破控件,可想而知,自欺欺人的态度了。
2005-3-2 12:55
0
雪    币: 210
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
晕,我不想吵架!!!

如果要破解,上面的这一句已经搞定这一段了:
00000127 : EB 2D                         JMP +45; (0x156)
2005-3-2 13:11
0
雪    币: 1
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
6
那你破解控件干吗阿???
2005-3-2 17:55
0
雪    币: 210
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
最初由 ocsdno 发布
那你破解控件干吗阿???


那你破解软件干吗阿???
2005-3-3 09:09
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
最初由 netu0 发布


那你破解软件干吗阿???


破解软件是因为你使用破解控件在前。
2005-3-3 09:24
0
雪    币: 210
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 鸡蛋壳 发布


破解软件是因为你使用破解控件在前。


鸡蛋壳 先生:
  我这里用先生,不用同志称呼你,是因为我性取向正常,为了避免误会,特此声明一下。当然也不是因为你品德高尚,而称你为先生。
  我也搞不懂你用的是什么逻辑,我破解控件就一定要写成软件,写成软件就一定要拿去卖。前面我也声明了,我不是程序员,我的工作不需要开发软件。
  或许我可以这样理解,你本人非常痛恨用破解控件写成软件来卖的人。如果是这样,我可以明确的告诉你,你找错人了。如果你要继续表达你对这种人的痛恨,找他们去,别在这里坏了我的贴子。

btw:好好的一个技术讨论贴,别搞成吵架贴。
2005-3-3 10:03
0
雪    币: 229
活跃值: (168)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
从机器指令来看你要的结果已实现了(用你的话说已经被nop了),反汇编结果不对是软件反汇编的bug不用在意!
2005-3-3 10:59
0
雪    币: 117
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
倒耶!~~~~
2005-3-3 11:03
0
雪    币: 210
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
最初由 hangj 发布
从机器指令来看你要的结果已实现了(用你的话说已经被nop了),反汇编结果不对是软件反汇编的bug不用在意!


正如你所说的,结果已经实现了。但我要的不是结果,才有此一问,还是谢谢你的回答,但我怀疑不是反汇编的bug,因为如果我不用最前面的两个字节完成跳转的话,在IDE环境里会出错,可以这么猜:delphi的反汇编结果与反汇编软件一样。那会不会是有哪个地方表明某几个字节的代码的长度是固定的呢?因为nop是单字节的,可是反汇编软件并不解释成单字节,虽然看到的值是nop(90)。

或许动态调试一下就清楚了。
2005-3-3 11:44
0
雪    币: 204
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
应当是反汇编器的算法造成的:很明显,它是用了某个表来确定函数或对象.方法的地址,不是简单地按顺序用机器码来匹配。
2005-3-3 17:01
0
游客
登录 | 注册 方可回帖
返回
//