C++反汇编->减法分析
#include "iostream" void main() { std::cout<<"Hello World"<<std::endl;//便于定位 int a,b,c,d,e; a=1; b=2; c=b-a; d=c-100; e=-2-3; std::cout<<c<<std::endl; std::cout<<d<<std::endl; std::cout<<e<<std::endl; system("pause");//也可以看做一个定位字符 }
ollydeb分析:
地址 HEX数据 反汇编 注释
004015A6 |. C745 FC 01000>MOV DWORD PTR SS:[EBP-4],1 ; a赋值为1 004015AD |. C745 F8 02000>MOV DWORD PTR SS:[EBP-8],2 ; b赋值为2 004015B4 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; 将b值传到EAX中 004015B7 |. 2B45 FC SUB EAX,DWORD PTR SS:[EBP-4] ; 将a值传到EAX中,并执行减法运算 004015BA |. 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX ; 将EAX值传到c中 004015BD |. 8B4D F4 MOV ECX,DWORD PTR SS:[EBP-C] ; 将c值复制到ECX中 004015C0 |. 83E9 64 SUB ECX,64 ; 将c与100相减 004015C3 |. 894D F0 MOV DWORD PTR SS:[EBP-10],ECX ; 将ECX值传送到d当中 004015C6 |. C745 EC FBFFF>MOV DWORD PTR SS:[EBP-14],-5 ; 将-5传送到e中(编译阶段完成计算) 004015CD |. 68 C8104000 PUSH test1.004010C8 004015D2 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] ; 输出c 004015D5 |. 52 PUSH EDX 004015D6 |. B9 A0DE4700 MOV ECX,OFFSET test1.D@MODE@?$CK?$CKargv?5?$CB?$DN> 004015DB |. E8 1FFBFFFF CALL test1.004010FF 004015E0 >|. 8BC8 MOV ECX,EAX 004015E2 |. E8 F9FBFFFF CALL test1.004011E0 004015E7 |. 68 C8104000 PUSH test1.004010C8 004015EC |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; 输出d 004015EF |. 50 PUSH EAX ; pause 004015F0 |. B9 A0DE4700 MOV ECX,OFFSET test1.D@MODE@?$CK?$CKargv?5?$CB?$DN> 004015F5 |. E8 05FBFFFF CALL test1.004010FF 004015FA |. 8BC8 MOV ECX,EAX 004015FC |. E8 DFFBFFFF CALL test1.004011E0 00401601 |. 68 C8104000 PUSH test1.004010C8 00401606 |. 8B4D EC MOV ECX,DWORD PTR SS:[EBP-14] ; 输出e 00401609 |. 51 PUSH ECX 0040160A |. B9 A0DE4700 MOV ECX,OFFSET test1.D@MODE@?$CK?$CKargv?5?$CB?$DN> 0040160F |. E8 EBFAFFFF CALL test1.004010FF 00401614 |. 8BC8 MOV ECX,EAX 00401616 |. E8 C5FBFFFF CALL test1.004011E0 0040161B |. 68 1C004700 PUSH OFFSET test1._Lk ; /pause 00401620 >|. E8 9BF30100 CALL test1.system ; \system分析得出:
1. 减法运算没有使用加负数的表现形式。
2.对于常熟相加减,没有调用sub,add指令,直接运算后赋值。
3.当加数为负数时,执行为减法操作。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。