




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
cucci 女包、香奈儿包包 、爱马仕包包:|冬装外套、冬装女装、时尚冬装:gucci 包、酷奇包包、金利来女包:|皮草外套、水貂皮草、皮草大衣: 逆向分析一个完整的 C+程序包含寄存器与参数传递详解最近在分析 C+ dump 文件的时候觉得有必要将一些必要的反汇编东西总结一下以备别人参考,自己有时间的时候也可以进行更多的改进。下面通过一个简单的 C+代码转成汇编代码后的详细解释说明一下 C+和汇编的对应关系,以及如何识别汇编代码中进行的一些操作的意义。代码的调用关系如下图所示:完整 C+代码下:int InternalFunctionA(int nSizeA1, int nSizeA2)int localnSizeA1 = nSizeA1;int localnSizeA2 = nSizeA2;int nFunctionA = localnSizeA1 + localnSizeA2;return nFunctionA;int InternalFunctionB(int nSizeB1, int nSizeB2)int nFunctionA = InternalFunctionA(nSizeB1, nSizeB2);return 0;cucci 女包、香奈儿包包 、爱马仕包包:|冬装外套、冬装女装、时尚冬装:gucci 包、酷奇包包、金利来女包:|皮草外套、水貂皮草、皮草大衣: int _tmain(int argc, _TCHAR* argv)int nFunctionVal = InternalFunctionB(36, 64);cout (411163h) 004115B6 add esp,8 004115B9 mov ecx,eax 004115BB call dword ptr _imp_std:basic_ostream :operator cucci 女包、香奈儿包包 、爱马仕包包:|冬装外套、冬装女装、时尚冬装:gucci 包、酷奇包包、金利来女包:|皮草外套、水貂皮草、皮草大衣: (41A320h) 004115C1 cmp esi,esp 004115C3 call ILT+430(_RTC_CheckEsp) (4111B3h) return 0;004115C8 xor eax,eax 004115CA pop edi /恢复 edi004115CB pop esi /恢复 esi004115CC pop ebx /恢复 ebx004115CD add esp,0CCh /栈顶上移004115D3 cmp ebp,esp /检查栈平衡004115D5 call ILT+430(_RTC_CheckEsp) (4111B3h) 004115DA mov esp,ebp /恢复上一个栈帧的 ebp,esp004115DC pop ebp 004115DD ret/函数返回另外两层函数调用的汇编代码如下,感兴趣的读者可以对比一下,和 main 函数的过程相似,int InternalFunctionA(int nSizeA1, int nSizeA2)004114C0 push ebp 004114C1 mov ebp,esp 004114C3 sub esp,0E4h 004114C9 push ebx 004114CA push esi 004114CB push edi 004114CC lea edi,ebp-0E4h 004114D2 mov ecx,39h 004114D7 mov eax,0CCCCCCCCh 004114DC rep stos dword ptr es:edi int localnSizeA1 = nSizeA1;004114DE mov eax,dword ptr nSizeA1 004114E1 mov dword ptr localnSizeA1,eax int localnSizeA2 = nSizeA2;004114E4 mov eax,dword ptr nSizeA2 004114E7 mov dword ptr localnSizeA2,eax int nFunctionA = localnSizeA1 + localnSizeA2;004114EA mov eax,dword ptr localnSizeA1 004114ED add eax,dword ptr localnSizeA2 004114F0 mov dword ptr nFunctionA,eax cucci 女包、香奈儿包包 、爱马仕包包:|冬装外套、冬装女装、时尚冬装:gucci 包、酷奇包包、金利来女包:|皮草外套、水貂皮草、皮草大衣: return nFunctionA;004114F3 mov eax,dword ptr nFunctionA 004114F6 pop edi 004114F7 pop esi 004114F8 pop ebx 004114F9 mov esp,ebp 004114FB pop ebp 004114FC ret int InternalFunctionB(int nSizeB1, int nSizeB2)00411510 push ebp 00411511 mov ebp,esp 00411513 sub esp,0CCh 00411519 push ebx 0041151A push esi 0041151B push edi 0041151C lea edi,ebp-0CCh 00411522 mov ecx,33h 00411527 mov eax,0CCCCCCCCh 0041152C rep stos dword ptr es:edi int nFunctionA = InternalFunctionA(nSizeB1, nSizeB2);0041152E mov eax,dword ptr nSizeB2 00411531 push eax 00411532 mov ecx,dword ptr nSizeB1 00411535 push ecx 00411536 call InternalFunctionA (411140h) 0041153B add esp,8 0041153E mov dword ptr nFunctionA,eax return 0;00411541 xor eax,eax 00411543 pop edi 00411544 pop esi 00411545 pop ebx 00411546 add esp,0CCh 0041154C cmp ebp,esp 0041154E call ILT+430(_RTC_CheckEsp) (4111B3h) 00411553 mov esp,ebp 00411555 pop ebp 00411556 ret总结:通过这几篇文章的总结,相信大家已经可以看懂一些常规的 C+反汇编代码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 元旦营销策划方案(3篇)
- 高端人群保险营销方案(3篇)
- 内网安全培训课件
- 化学品上岗安全培训课件
- 5G无线资源动态分配-洞察及研究
- 创伤的救治流程
- 化学仪器室安全守则培训课件
- 七年级上册(2024) 第二单元 写作 学会记事 公开课一等奖创新教案+(共18张)
- 2025年秋部编版语文四上 语文园地七(公开课一等奖创新教案+)
- 12 在牛肚子里旅行(+公开课一等奖创新教案+备课素材)
- DL∕T 5210.2-2018 电力建设施工质量验收规程 第2部分:锅炉机组
- DL∕T 701-2012 火力发电厂热工自动化术语
- 驾校暑期安全生产方案(2篇)
- 24春国家开放大学《教育法学》终结性考试(大作业)参考答案
- 肺癌的护理病例讨论课件
- 《旅游学概论》第一章
- 甘肃省水利工程单位法定代表人授权书、工程质量终身责任承诺书、公示牌、永久责任碑(牌)
- 毛石混凝土挡墙专项施工方案
- 《一次性使用无菌医疗器械监督管理办法》
- 边坡工程地质勘察
- GB/T 3810.14-2016陶瓷砖试验方法第14部分:耐污染性的测定
评论
0/150
提交评论