目录
前言
为啥IDA学了几个月,还是分析不了代码?心里有些郁闷,今天想到了几个可能性:
1.对IDA的功能了解的不清楚,好比查案不会用指纹提取工具,那么在案发现场就不能通过指纹核对找到曾经来过的人,自然就难以锁定嫌疑人;
2.对于常见语言开发出来的程序,没有进行正向编译,逆向反编译的观察,也就是没有从作案人的角度来制造过现场,一直试图通过现场去推导作案过程,所以,不了解罪犯的警察不是好警察。
针对这两点,后续的学习就往这个方向去努力,目的是掌握逆向工程的技术,这是个陌生的领域,对于一个嵌入式工程师来说,十几年的开发经验都是在建造,逆向是要看清楚这个建筑物的各种结构,推导出建造的方法和目的。不过既然工作有需要,那么就去学吧,随遇而安,干一行爱一行,重要的是学习的能力,每个知识和技能都会串起来,构成自己独特的技术烙印,将来谁招我进公司,都是对这家公司的祝福。
言归正传,针对发现的问题,我捡起之前在腾讯课堂买的课《周哥教IT.逆向分析基础与实战》,之前看软件功能的时候,走马观花,今天开始学第八课,并且运用正向-逆向的方式来深入了解。
1.IDA功能 - 交叉引用
交叉引用这个功能可以看到在某个函数中,用到的数据和子函数的引用。
1.1 正向编译一个exe
举个栗子,拿一个hello.c来编译成exe。
#include <stdio.h>
int read_i;
void prin()
{
printf("Hello, World! \n");
}
int main()
{
int i;
for (i=0;i<100;i++)
{
prin();
read_i=i+8;
}
getchar();
return 0;
}
安装了mingw5.1.6之后,就可以使用命令行编译这个C文件成为一个exe
gcc -o hello hello.c
1.2 逆向查看汇编
在IDA打开,就可以看到生成的汇编代码:
.text:00401304 ; =============== S U B R O U T I

&spm=1001.2101.3001.5002&articleId=123956757&d=1&t=3&u=432dd2617c8743c8a116cab13b738d96)
764

被折叠的 条评论
为什么被折叠?



