导语
内容提要
逆向工程是一种分析目标系统的过程,旨在于识别系统的各组件以及组件间关系,以便于通过其它形式、或在较高的抽象层次上,重建系统的表征。
由丹尼斯(Dennis Yurichev)著的《逆向工程权威指南(上下)》专注于软件的逆向工程,是写给初学者的一本经典指南。全书共分为12个部分,共102章,涉及X86 X64、ARM ARM-64、MIPS、Java JVM等重要话题,详细解析了Oracle RDBMS、Itanium、软件狗、LD_PRELOAD、栈溢出、ELF、Win32 PE文件格式、x86-64(第、critical sections、syscalls、线程本地存储TLS、地址无关代码(PIC)、以配置文件为导向的优化、C++ STL、OpenMP、SHE等众多技术话题,堪称是逆向工程技术百科全书。除了详细讲解,本书来给出了很多习题来帮助读者巩固所学的知识,附录部分给出了习题的解答。
本书适合对逆向工程技术、操作系统底层技术、程序分析技术感兴趣的读者阅读,也适合专业的程序开发人员参考。
作者简介
Dennis Yurichev,乌克兰程序员,安全技术专家。
目录
第一部分 编码模式
第1章 CPU简介
第2章 最简函数
第3章 Hello,world!
第4章 函数序言和函数尾声
第5章 栈
第6章 printf()函数与参数调用
第7章 scanf()
第8章 参数获取
第9章 返回值
第10章 指针
第11章 GOTO语句
第12章 条件转移指令
第13章 switch()/case/default
第14章 循环
第15章 C语言字符串的函数
第16章 数学计算指令的替换
第17章 FPU
第18章 数组
第19章 位操作
第20章 线性同馀法与伪随机函数
第21章 结构体
第22章 共用体(union)类型
第二部分 硬件基础
第23章 函数指针
第24章 位系统处理64位数据
第25章 SIMD
第26章 位平台
第27章 SIMD与浮点数的并行运算
第28章 ARM指令详解
第29章 MIPS的特点
第30章 有符号数的表示方法
第31章 字节序
第32章 内存布局
第33章 CPU
第34章 哈希函数
第三部分 一些高级的例子
第35章 温度转换
第36章 Fibonacci数列(斐波拉契数列)
第37章 CRC32计算的例子2
第38章 网络地址计算实例
第39章 循环:几个迭代
第40章 Duff的装置
第41章 除以9
第42章 字符串转换成数字,函数atoi()
第43章 Inline函数(联机函数)
第44章 C99限制
第45章 无分支函数abs()
第46章 参数个数可变函数
第47章 字符串剪切
第48章 toupper()函数
第50章 混淆
第51章 C++
第52章 数组的负数偏移
第53章 位的Windows程序
第四部分 Java
第54章 JAVA
第五部分 在代码中发现重要而有趣的内容
第55章 可执行文件的识别
第56章 Win32环境下与外部通信
第57章 字符串
第58章 调用宏assert()(中文称为断言)
第59章 常数
第60章 发现正确的指令
第61章 可疑的代码模型
第62章 在跟踪程序的过程中使用魔数1
第63章 其他的事情2
第六部分 操作系统相关
第64章 参数的传递方法(调用规范)
第65章 线程本地存储TLS
第66章 系统调用(syscall-s)
第67章 Linux
第68章 WindowsNT
第七部分 常用工具
第69章 反汇编工具
第70章 调试工具
第71章 系统调用的跟踪工具
第72章 反编译工具
第73章 其他工具
第八部分 更多范例
第74章 修改任务管理器(Vista)
第75章 修改彩球游戏
第76章 扫雷(WindowsXP)
第77章 人工反编译与Z3SMT求解法
第78章 加密狗
第79章 “QR9”:魔方态加密模型
第80章 SAP
第81章 OracleRDBMS
第82章 汇编指令与屏显字符
第83章 实例演示
第九部分 文件分析
第84章 基于XOR的文件加密1
第85章 Millenium游戏的存档文件
第86章 Oracle的.SYM文件
第87章 Oracle的.MSDB文件
第十部分 其他
第88章 npad
第89章 修改可执行文件
第90章 编译器内部函数
第91章 编译器的智能短板
第92章 OpenMP
第93章 安腾指令
第94章 6的寻址方式
第95章 基本块重排
第十一部分 推荐阅读
第96章 参考书籍
第97章 博客
第98章 其他内容
第十二部分 练习题
第99章 初等难度练习
第100章 中等难度练习
第101章 高难度练习
第102章 Crackme/Keygenme
附录A x86
附录B ARM
附录C MIPS
附录D 部分GCC库函数
附录E 部分MSVC库函数
附录E 部分MSVC库函数
附录G 练习题答案
参考文献