深入解析程序执行与PE文件机制
1. 程序执行中的地址计算与性能考量
在程序执行过程中,地址计算是一个关键环节。例如,在某些代码片段里,像 0x2008b9 是指令地址 0x720 与全局变量的地址差值, 0x20 是指令地址 0x72A 与 «returning %d\n» 字符串的地址差值。频繁的地址重新计算会使执行速度变慢,不过在x64架构中情况会有所改善。从性能角度出发,如果对性能有较高要求,静态链接可能是更好的选择。
1.1 代码示例
727: 53 push rbx
728: 89 fb mov ebx,edi
72a: 48 8d 35 20 00 00 00 lea rsi,[rip+0x20]
; 751 <_fini+0x9>
731: bf 01 00 00 00 mov edi,0x1
736: 03 18 add ebx,DWORD PTR [rax]
738: 31 c0 xor eax,eax
73a: 89 da mov edx,ebx
73c: e8 df fe ff ff call 620 <__printf_chk@plt>
741: 89 d8 mov eax,ebx
743: 5b pop rbx
744: c3 ret
超级会员免费看
订阅专栏 解锁全文
9890

被折叠的 条评论
为什么被折叠?



