能力值:
( LV3,RANK:30 )
|
-
-
2 楼
好像没有看到函数的入口地址要对齐这一说~~
|
能力值:
( LV9,RANK:190 )
|
-
-
3 楼
有没有对齐,对齐粒度是多少,这是由编译链接器决定的,结果是由连接器最终生成的,当然不排除有预链接就可以知道结果。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
确实没有严格的函数入口地址对齐的要求,
但是有些指令,比如:
mov rax, addr_func
test al,1
jz loc_1
...
非对齐处理
...
loc_1:
jmp rax
这种需要对齐处理的函数,一般通过分析汇编可以找到,但不知道能不能通过解析二进制的结构来找到这类函数。。。。比如,函数对齐的flag...?
|
能力值:
( LV3,RANK:30 )
|
-
-
5 楼
你说的应该是指令对齐吧,跟函数入口没有关系,在任何一个地方都有可能会发生,指令的解析有两种,一种是线性解析也就是IDA所用的,另一种就是递归解析,当遇到一个跳转指令,并非进入到线性指令的入口时会发生重新解析的现象。这个在编译好的DLL里面一般不会发生的~
一般双字要求四个字节对齐,字要求两个字节对齐
|
能力值:
( LV3,RANK:30 )
|
-
-
6 楼
比如一个PE入口点为0x00400000 可以正确执行,但是改为0x004000001就会乱成一团,跟函数入口点没关系
|
|
|