首页
社区
课程
招聘
[求助]能不能写这样的程序?
发表于: 2006-7-12 19:02 5697

[求助]能不能写这样的程序?

2006-7-12 19:02
5697

想写个这样的工具,他能对任意一个pe文件进行操作,操作的结果是在pe的每个指令之间插入一个nop


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (9)
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
要有很深厚的反汇编功底啊
太难了
2006-7-13 00:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
反汇编软件的程序作者都能写这样的工具,关键是愿不愿意的事
2006-7-13 01:04
0
雪    币: 112
活跃值: (48)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
老实说不太可能因为某些部分的指令其实是花指令,有些地方的指令可能根本不会用到,即使能反汇编,由于不能即时调用不能知道哪里到底是不是指令例如:
jnz label1
jz label1
db 'welcome to the sample'
call MessageBoxA
sub eax ,4
……
lablel1:………………
你说db 'welcome to the sample'
call MessageBoxA
sub eax ,4
这些该不该插入NOP呢?
由于实际根本不会调用,说不清楚这是指令还是数据
而且可能会有这种情况
代码选择是按照输入的不同,而且输入十分复杂,可能性很多,没有即时的动态调用根本说不清哪里是干什么的
2006-7-15 15:16
0
雪    币: 249
活跃值: (10)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
5
似乎不能写成吧…………
nop一下加,相对地址都变了。
单单处理其中的跳转指令就要被那些nop害惨了
2006-7-18 12:20
0
雪    币: 342
活跃值: (323)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
6
想完全是做不到的,有太多可能发生的情况了,不过对于标准过程还是可以办到的,不过要重新计算jmc,和call的相对地址,还要重定位代码,还有插入后代码放到哪儿也是问题,因为插入了代码就变大了。
2006-7-18 13:29
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
加NOP有什么意义?如果没有,那就没必要讨论。
2006-7-18 14:22
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
在每个指令之间插入一个nop,有可能会造成一些条件转移指令的目标地址超出相对范围(如-128~127),从而导致严重错误!
2006-7-18 23:50
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 casn 发布
在每个指令之间插入一个nop,有可能会造成一些条件转移指令的目标地址超出相对范围(如-128~127),从而导致严重错误!

在每个指令间加NOP,是完全可以做到的,不会出现条件转移超出范围的。可以判断如果超出范围就用0f8?H代替。
别说加NOP,加其他指令都行。举例:ASPr的代码混淆就是。
2006-7-20 20:18
0
雪    币: 146
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
能否.....?
2006-7-21 09:54
0
游客
登录 | 注册 方可回帖
返回
//