能力值:
( LV2,RANK:10 )
|
-
-
2 楼
函数的入口地址应该是
7C960F9A 55 PUSH EBP
至于
7C960F98 8BFF MOV EDI,EDI
通常应该是不会执行的代码
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
据说是为了方便升级用的。这种形式入口附带应该还有五个nop。用来做段跳其实是挺不错的。段跳hook不用直接恢复代码,方便,
|
能力值:
( LV9,RANK:210 )
|
-
-
4 楼
对齐用的,相当于2个nop
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
mov edi,edi 就是把edi中的值放到edi中 不过这没有什么意义
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
“它实际上只是被编译器当做占位符放在这里的一条空代码以防有人想捕获这个函数。这里所说的“捕获”是指:某些外部组件增加一条JMP,只要被捕获函数被调用就将这个JMP用作通知信号。通过在每个函数的开头位置放一条这样的占位指令,MS实际上是为NTDLL中所有的捕获韩式设置一个统一的记号。”
在书上看到这个,逆向工程揭秘,不过还是不太清楚
|
能力值:
( LV13,RANK:400 )
|
-
-
7 楼
.........
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
个人认为,书上说的是狗屁, 4楼是正解。
因为经常使用asm做开发,所以也时常碰到自己的代码中出现mov edi,edi
测试环境masm
测试方式如下:
在.code代码段中
定义一个字节,然后 align 4 ,继续写其余代码,会生成 8D 49 00 (lea ecx,[ecx] 直接写这句汇编是2字节8D 09,但那3个字节的也是这句汇编) 补齐3个字节
定义两个字节,然后 align 4 ,继续写其余代码,会生成 mov edi,edi 补齐2个字节
定义三个字节,然后 align 4 ,继续写其余代码,会生成 nop 补齐1个字节
综上,作用是代码对齐。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
感觉8楼的才是正解,8楼的实战经验摆在那里。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
好吧 感觉各位大大说的都很有道理 多谢各位了
|
|
|