03Reverse基础(四)
任务内容
1.学习IDA的使用。结合四个例题学习IDA的静态分析和动态调试。
2.掌握base64编解码原理,使用python编写自定义表的base64编解码脚本
3.阅读书籍《程序员的自我修养》
学习笔记
第一章 温故而知新
1.计算机主要分为硬件和软件,计算机中最核心的三个硬件是CPU,内存,I/O控制芯片。这三个部件的速度不同,计算机的发展一方面为了提升三者各自的速度,同时又更好的加强三者之间协助。发展历程大致分为早期 – 北桥 – 南桥 – 多核。
2.软件分为应用软件和系统软件,系统软件分为平台性的和用于程序开发的,计算机软件体系结构采用一种层的结构,每个层次之间都需要相互通信,则要有协议,这个协议就是接口。下图为计算机软件体系结构:
3.中间层的存在使应用程序和硬件之间保持相对的独立。
4.系统软件一般指的是的一些开发工具,它们都是调用的操作系统应用程序编程接口(API),API的提供者是运行库(简单理解就是一些大佬写好的代码给我等小白使用),什么样的运行库提供什么样的API,比如Linux下的Glibc库提供POSIX的API。运行库使用操作系统提供的系统调用接口(SCI)。
5.操作系统内核层对于硬件层来说是硬件接口的使用者,而硬件是接口的定义者,硬件接口驱动程序如何操作硬件等等,这种接口叫做硬件规格。
任务实现
一、学习IDA的使用,结合四个例题学习IDA的静态分析和动态调试。
1.IDA目录的结构
(1)cfg目录:包含各种配置文件,包括基本IDA配置文件ida.cfg、GUI配置文件idagui.cfg、文本模式用户界面配置文件idatui.cfg。
(2)Idc目录:包含IDA的内置脚本语言IDC所需的核心文件。
(3)Ids目录:包含一些符号文件(IDA语法中的IDS文件),这些文件用于描述可被加载到IDA的二进制文件引用的共享库的内容。
(4)loaders目录:用于包含在文件加载过程中用于识别和解析PE或ELF等已知文件格式的IDA扩展。
(5)plugins目录:包含专门为IDA提供附加功能的IDA模块,也就是我们所说的插件。
(6)procs目录:包含已安装的IDA版本所支持的处理器模块。处理器模块为IDA提供机器语言-汇编语言的转换功能,并负责生成在IDA用户界面中显示的汇编语言。
(7)sig目录:包含IDA在各种模式匹配操作中利用的现有代码的签名。通过模式匹配,IDA能够将代码序列确定为已知的库代码,从而节省大量的分析时间。
(8)til目录:包含一些类型库信息