初步分析简单的汇编代码
一、C语言源代码
这里注意一点:目前IDA对C++代码的分析很不友好,因此初学者分析汇编最好是分析C语言,写脚本可以使用C++或Python
提供一段简单的C语言代码
#include<stdio.h>
int getsum(int x)
{
int sum=0,i;
for(i=0;i<x;i++)
sum+=i;
return sum;
}
int main()
{
int n=10,ans;
ans=getsum(n);
printf("%d\n",ans);
return 0;
}
二、分析汇编
当我们使用VC6.0或更高版本时,VC是内置反汇编的,并支持查看内存和寄存器等,这就更利于我们去学习汇编(与C语言每一条语句一一对应)
打开方式如下:(我使用的版本时VC2010)
- 打开上方工具选项,点击设置,选中专家模式
- 设置断点,F5进行调试
- 按图示打开反汇编,内存,寄存器窗口
- 完成
下面分析反汇编
函数比较简单,上图分析的应该比较清楚了(包括我在分析过程中遇到的一些问题)