成员函数的识别
来源:互联网 发布:缺乏安全感怎么办知乎 编辑:程序博客网 时间:2024/06/06 00:13
调用成员函数与普通函数的差别在于,调用成员函数时要先转到跳转表,再到函数入口。
Test.SetNumber(5);00407797 6A 05 push 5 00407799 8D 45 F8 lea eax,[Test] 0040779C 50 push eax 0040779D E8 79 C8 FF FF call CTest::SetNumber (040401Bh)
jmp表___vcrt_GetModuleHandleW:00404002 E9 A9 84 00 00 jmp __vcrt_GetModuleHandleW (040C4B0h) __crt_stdio_output::output_processor<char,__crt_stdio_output::stream_output_adapter<char>,__crt_stdio_output::standard_base<char,__crt_stdio_output::stream_output_adapter<char> > >::type_case_s_compute_narrow_string_length:00404007 E9 74 3E 04 00 jmp __crt_stdio_output::output_processor<char,__crt_stdio_output::stream_output_adapter<char>,__crt_stdio_output::standard_base<char,__crt_stdio_output::stream_output_adapter<char> > >::type_case_s_compute_narrow_string_length (0447E80h) __crt_interlocked_compare_exchange_pointer<void __cdecl(void),std::nullptr_t,std::nullptr_t>:0040400C E9 5F 9E 01 00 jmp __crt_interlocked_compare_exchange_pointer<void __cdecl(void),std::nullptr_t,std::nullptr_t> (041DE70h) __atol_l:00404011 E9 6A DA 05 00 jmp _atol_l (0461A80h) __vcrt_va_start_verify_argument_type<char const * const>:00404016 E9 75 38 00 00 jmp __vcrt_va_start_verify_argument_type<char const * const>+10h (0407890h) CTest::SetNumber:0040401B E9 40 38 00 00 jmp CTest::SetNumber (0407860h) 00404020 CC int 3 00404021 CC int 3 00404022 CC int 3
class CTest { public: void __stdcall SetNumber(int nNumber) {00407860 55 push ebp 00407861 8B EC mov ebp,esp m_nInt = nNumber;00407863 8B 45 08 mov eax,dword ptr [this] 00407866 8B 4D 0C mov ecx,dword ptr [nNumber] 00407869 89 08 mov dword ptr [eax],ecx }0040786B 5D pop ebp 0040786C C2 08 00 ret 8
0 0
- 成员函数的识别
- 带成员函数指针的成员函数
- 类的成员函数
- 成员函数的指针
- 类的成员函数
- 成员函数的隐藏
- Vector的成员函数
- 成员函数的地址
- 类的成员函数
- 成员函数的指针
- 类的成员函数
- CString的成员函数
- 类的成员函数
- 类的成员函数
- 成员函数的函数配接器
- main函数的识别
- 构造函数的识别
- static数据成员、成员函数的问题
- 设计模式之工厂方法
- 【NOIP2016提高A组模拟9.9】运输妹子
- Java学习之Iterator(迭代器)的一般用法 (转)
- 第一行代码酷欧天气开发详细总结
- IIS7/8 出现HTTP 500内部服务器错误解决方案
- 成员函数的识别
- 关于卸载linux的方法
- Webpack 入门指迷
- 当移动端软键盘弹出时错位问题解决方案
- 排序(5)——堆排序
- Extjs5的Ext.each方法学习
- window 双网卡配置
- xcode中配置git并上传代码到github
- objective-C之 NSIndexPath , NSIndexSet , NSRange,NSCharacterSet