首页
社区
课程
招聘
[旧帖] [求助]add byte ptr [eax],al有什么用处? 0.00雪花
发表于: 2011-3-22 14:48 10128

[旧帖] [求助]add byte ptr [eax],al有什么用处? 0.00雪花

2011-3-22 14:48
10128
如题
add byte ptr [eax],al能不能由占用相同字节的汇编码替换???

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
那个地方是填充的00吧。。
2011-3-22 15:21
0
雪    币: 229
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
是的,那可不可以由其它字符代替,也就是在做补丁的时候这些位置能不能写入代码??
2011-3-22 15:59
0
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
同问。今天看教程,同样的文件教程里显示的都是DB 00,我的是add byte ptr [eax],al,怎么可以显示成DB 00呢?分析也不管用。零区域为什么要用add byte ptr [eax],al表示呀? 达人路过的帮忙解下惑了
2011-12-8 10:47
0
雪    币: 793
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
DB 00,add byte ptr [eax],al 应该是一片0区域的一个字节和两个字节的opcode表示方式吧

选一片DB 00的区域二进制填充的话可以变成add byte ptr [eax],al ,变化后的add byte ptr [eax],al 区域点右键分析 又可以变回DB 00 对于0区域写补丁随便写 但是要看这个区段是什么属性 如果是E0000020 随便打
2011-12-8 11:23
0
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
非常感谢楼上的happymhx。
我想我是明白了,我试着将HEX数据改成00 00,对应的汇编指令变成了add byte ptr [eax],al ,反过来,如果将一个地方的汇编指令改成add byte ptr [eax],al ,对应的HEX数据就成了00 00,也就是说,他们是一一对应的,编译器认为,00 00 这样两个字节宽度的二进制数对应的汇编指令就是add byte ptr [eax],al ;
如果对代码进行分析后,HEX数据就显示为单字节了,就是00,对应的汇编指令就是db 00;

以上不知道我理解的对不对?

现在新的问题是:为什么OD 反汇编窗口中,有的地方可以分析代码(ctrl +A), 有的地方(比如SFX区段)就没有这个选项呀?
2011-12-8 14:55
0
雪    币: 245
活跃值: (93)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
7
[QUOTE=长发飘飘;938770]如题
add byte ptr [eax],al能不能由占用相同字节的汇编码替换???[/QUOTE]

填充的0 会被od反汇编成这样
2011-12-8 15:18
0
游客
登录 | 注册 方可回帖
返回
//