C++反汇编-函数指针分析
程序员文章站
2024-02-01 18:36:16
...
;6 : int main() {
0x4013c9 push %ebp
0x4013ca mov %esp,%ebp
0x4013cc and $0xfffffff0,%esp
0x4013cf sub $0x10,%esp //开辟0x10字节的数据空间
0x4013d2 call 0x427160 <__main>
;7 : void (__cdecl* pShow)(void) = show;
0x4013d7 movl $0x4013ac,0xc(%esp) //把函数show地址存到栈+0xc处
;8 : pShow();
0x4013df mov 0xc(%esp),%eax //把栈+0xc处存到eax
0x4013e3 call *%eax //调用eax处,间接调用show地址处
;9 : show();
0x4013e5 call 0x4013ac <show()> //直接调用show地址处
;10 : return 0;
0x4013ea mov $0x0,%eax
;11 : }
0x4013ef leave
0x4013f0 ret
;3 : void __cdecl show() {
0x4013ac push %ebp
0x4013ad mov %esp,%ebp
0x4013af sub $0x18,%esp //开辟0x18字节的数据空间
;4 : cout << "show\r\n";
0x4013b2 movl $0x4b9029,0x4(%esp)
0x4013ba movl $0x4c6860,(%esp)
0x4013c1 call 0x4b2e80 <std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)>
;5 : }
0x4013c6 nop
0x4013c7 leave
0x4013c8 ret
上一篇: 数据结构 c语言版 PHP中使用数组实现堆栈数据结构的代码
下一篇: 8086指令系统