(学习笔记_2011_07_03)__反汇编__一重for循环
来源:互联网 发布:淘宝直通车关键词 编辑:程序博客网 时间:2024/04/27 17:28
#include <iostream>
using namespace std;
int main()
{
00C51480 push ebp
00C51481 mov ebp,esp
00C5148A push esi
00C5148B push edi
00C5149C rep stos dword ptr es:[edi]
for(int i = 0; i < 100; i++)
00C5149E mov dword ptr [i],0
00C514A5 jmp main+30h (0C514B0h)
00C514A7 mov eax,dword ptr [i]
00C514AA add eax,1
00C514AD mov dword ptr [i],eax
00C514B0 cmp dword ptr [i],64h
00C514B4 jge main+68h (0C514E8h)
{
cout << "numbers" + i << endl;
00C514B6 mov esi,esp
00C514B8 mov eax,dword ptr [__imp_std::endl (0C5A310h)]
00C514BD push eax
00C514BE mov ecx,dword ptr [i]
00C514C1 add ecx,offset string "numbers" (0C57830h)
00C514C7 push ecx
00C514C8 mov edx,dword ptr [__imp_std::cout (0C5A314h)]
00C514CE push edx
00C514CF call std::operator<<<std::char_traits<char> > (0C51140h)
00C514D4 add esp,8
00C514D7 mov ecx,eax
00C514D9 call dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (0C5A2F8h)]
00C514DF cmp esi,esp
00C514E1 call @ILT+390(__RTC_CheckEsp) (0C5118Bh)
}
00C514E6 jmp main+27h (0C514A7h)
int a = 0;
00C514E8 mov dword ptr [a],0
return 0;
00C514EF xor eax,eax
}
00C514F1 pop edi
00C514F2 pop esi
00C514F3 pop ebx
00C514F4 add esp,0D8h
00C514FA cmp ebp,esp
00C514FC call @ILT+390(__RTC_CheckEsp) (0C5118Bh)
00C51501 mov esp,ebp
00C51503 pop ebp
using namespace std;
int main()
{
00C51480 push ebp
00C51481 mov ebp,esp
00C51483 sub esp,0D8h
//将ebp压栈后再将esp的值赋给ebp...esp的值减去0d8h....0d8h的那段空间做什么呢?有216个字节....
00C51489 push ebx00C5148A push esi
00C5148B push edi
00C5148C lea edi,[ebp-0D8h]
//将ebp-0d8h的有效地址载入edi......edi的值现在应该和esp一样....
//只知道编译器会将一段区间清零...大小由编译器决定....
00C51492 mov ecx,36h
//这是循环的次数....36h翻译成十进制为100....
00C51497 mov eax,0CCCCCCCCh00C5149C rep stos dword ptr es:[edi]
for(int i = 0; i < 100; i++)
00C5149E mov dword ptr [i],0
00C514A5 jmp main+30h (0C514B0h)
00C514A7 mov eax,dword ptr [i]
00C514AA add eax,1
00C514AD mov dword ptr [i],eax
00C514B0 cmp dword ptr [i],64h
00C514B4 jge main+68h (0C514E8h)
{
cout << "numbers" + i << endl;
00C514B6 mov esi,esp
00C514B8 mov eax,dword ptr [__imp_std::endl (0C5A310h)]
00C514BD push eax
00C514BE mov ecx,dword ptr [i]
00C514C1 add ecx,offset string "numbers" (0C57830h)
00C514C7 push ecx
00C514C8 mov edx,dword ptr [__imp_std::cout (0C5A314h)]
00C514CE push edx
00C514CF call std::operator<<<std::char_traits<char> > (0C51140h)
00C514D4 add esp,8
00C514D7 mov ecx,eax
00C514D9 call dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (0C5A2F8h)]
00C514DF cmp esi,esp
00C514E1 call @ILT+390(__RTC_CheckEsp) (0C5118Bh)
}
00C514E6 jmp main+27h (0C514A7h)
int a = 0;
00C514E8 mov dword ptr [a],0
return 0;
00C514EF xor eax,eax
}
00C514F1 pop edi
00C514F2 pop esi
00C514F3 pop ebx
00C514F4 add esp,0D8h
00C514FA cmp ebp,esp
00C514FC call @ILT+390(__RTC_CheckEsp) (0C5118Bh)
00C51501 mov esp,ebp
00C51503 pop ebp
00C51504 ret
- (学习笔记_2011_07_03)__反汇编__一重for循环
- (学习笔记_2011_07_03)i++和++i进行条件判断的时候的反汇编.........
- android学习笔记(一)__安装环境
- 汇编反FOR 循环
- 反汇编【for循环】
- linux学习笔记(一)__权限变更、管理
- OpenCV学习笔记__入门篇(一)
- 循环结构<1>__笔记(5)
- 循环结构<2>__笔记(6)
- acrobat 反__弹
- __
- JavaScript DOM高级程序设计笔记__(一)
- JavaScript DOM高级程序设计笔记__(一)
- C笔记__一维数组
- _09_while循环__
- _10_do_while循环__
- JAVA学习(一)__操作FTP
- 加密算法学习笔记之一__加密算法概述
- 如何用Java操作注册表
- [转]epoll 经验谈
- 善良,是最不能丢失的品质
- 主流浏览器的判断
- [ZOJ1426 ][POJ1693] Counting Rectangles
- (学习笔记_2011_07_03)__反汇编__一重for循环
- 一个很实用的WEB打印控件“四方在线WEB打印控件——PAZU”
- Java Process类的浅学习
- 纯真年代
- 长成大树,长成灌木
- CPU/Arm920T/cpu.c解读
- SQL Server 2008 R2 各个版本支持的功能
- 胡适:赠与今年毕业的大学生
- C# DataTable的詳細用法