逆向工程
一切从产品中提取原理及设计信息并应用于再造及改进的行为,都是逆向工程。
逆向工程的典型运用:软件工程、网络安全、司法取证、商业保护
推荐书籍《windows内核情景分析》
静态分析优点:直接分析,无需运行。 动态分析优点:更加方便快捷。
程序不是写出来的,是调出来的
看雪论坛 技术讨论 工具下载
针对Web的抓包分析、事件分析,与二进制逆向相比,均更容易上手
汇编语言
硬件:控制器、运算器 存储器 输入设备和输出设备
寄存器是CPU内部的高速存储单元,它们为处理器提供各种操作所需要的数据或地址等信息。
汇编语言程序采用它们各自的符号名AX BX CX DX SI DI BP SP
Rax可被分为eax可被分为ax可被分为ah、al,同理bx cx dx也如此。
Rsp可被分为esp可被分为sp,bp si di也如此。
汇编语言是一种面向机器的低级程序设计语言,汇编语言以助记符形式表示每一条计算机指令。
汇编语言程序与处理器指令系统密切相关,程序员可直接、有效地控制系统硬件,形成的可执行文件运行速度快、占用主存容量少。汇编语言程序的通用性、可移植性较差。高级语言程序可以在多种计算机上编译后执行。
汇编语言本质上就是机器语言,可以直接、有效地控制计算机硬件,易于产生速度快、容量小的高效率目标程序。高级语言不针对具体计算机系统,不易直接控制计算机的各种操作,目标程序比较庞大、运行速度较慢。
汇编语言的应用场合:
1.程序要具有较快的执行时间,或者只能占用较小的存储容量
2.程序与计算机硬件密切相关,程序要直接、有效地控制硬件
3.大型软件需要提高性能、优化处理的部分
4.没有合适的高级语言、或只能采用汇编语言的时候
5.分析具体系统尤其是该系统的低层软件、加密解密软件、分析和防治计算机病毒等等
/c——仅编译不链接
/coff——使用32位obj格式
Link32——链接可执行文件
/subsystem:windows——windows平台
masm配置环境变量
寻找头文件