编译与反编译

代码从预处理,编译,汇编,链接,最终形成文件,C语言作为编译语言,可以准确定义在不同情况下所采取的行动。
程序的执行过程
预处理:
头文件展开,宏替换,去掉注释 test.i
编译: 生成汇编码
词法和语法的检查 test.s
汇编:
把汇编码转换成机器码 test.o
链接:
把库链接到一起生成可执行程序 test.out

反编译
计算机软件的还原工程,对他人软件的逆向分析,可以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。

IDA Pro 反汇编实例
IDA Pro是一款强大的反汇编软件,特有的IDA视图和交叉引用,可以方便理解程序逻辑和快速定位代码片断,以方便修改。
编译与反编译_第1张图片
准备阶段:编译过的文件
编译与反编译_第2张图片
找到maind函数,对应逻辑图
运行IDA Pro,并使用PE文件的方式打开示例的test.exe文件。IDA Pro会新建一个工程,并开始反汇编程序。反汇编完成后,在[IDA-View]窗口中,可以看到程序逻辑的树形图,如下:
编译与反编译_第3张图片
定位代码片断
可以通过符号表快速找到数据,
编译与反编译_第4张图片
进入十六进制视图,可以定位该符号所在的地址
在这里插入图片描述

你可能感兴趣的:(Windows)