IDA简单使用
今天来简单介绍一下逆向中常用到的另一个静态分析工具IDA,还是昨天那个打印demo(64位):
#include
#include
char a[] = "https://www.vultop.com/";
int main(int argc, char* argv[])
{
printf("%s", a);
system("pause");
return 0;
}
因为是自己编写的代码,有符号文件,所以分析起来很方便,函数名都有:
在箭头这块ctrl+f,出现搜索框,直接搜索main:
在右边箭头位置按空格:
可以看到我们的主函数代码,在这块按一下F5,就可以用到IDA中最强大方便的功能,俗称F5大法,会编译成成语言形式:
对照源代码,基本流程很清晰。双击printf中的参数a:
按一下shift+f12就是字符串信息:
IDA其他页面都有名字,这里不再解释,接下来我们看一下没有符号文件的时候的IDA:
可以看到这里大部分函数名是sub_xxx,搜索main函数也是搜不到的:
这种情况我们只能从start开始找主函数,就像在OD里面找到主函数一样,当然也可以通过字符串叉查找。首先通过字符串查找一下:
双击:
标记这串字符串,按ctrl+x,看看哪里引用了这段字符串:
然后就到了主函数这里:
F5就可以查看伪代码,接下来我们靠特征找一下,函数名搜索框搜索start:
在这里按空格,方便查看,找下面这段代码:
进第二个call:
进最后一个call,走进一个jmp,到了主函数这里: