能力值:
( LV4,RANK:50 )
|
-
-
2 楼
那个地方是填充的00吧。。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
是的,那可不可以由其它字符代替,也就是在做补丁的时候这些位置能不能写入代码??
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
同问。今天看教程,同样的文件教程里显示的都是DB 00,我的是add byte ptr [eax],al,怎么可以显示成DB 00呢?分析也不管用。零区域为什么要用add byte ptr [eax],al表示呀? 达人路过的帮忙解下惑了
|
能力值:
( 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 随便打
|
能力值:
( 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区段)就没有这个选项呀?
|
能力值:
( LV6,RANK:80 )
|
-
-
7 楼
[QUOTE=长发飘飘;938770]如题
add byte ptr [eax],al能不能由占用相同字节的汇编码替换???[/QUOTE]
填充的0 会被od反汇编成这样
|
|
|