大小:101.9M
更新时间:23-09-07
系统:Pc
逆向工程权威指南是一本逆向工程的经典指南,由乌克兰安全技术专家丹尼斯Dennis Yurichev编著,分为上册和下册。本书专注于软件逆向工程,即研究编译后的可执行程序,是写给初学者的一本经典指南。全书共分为12个部分,共102章,涉及软件逆向工程相关的众多技术话题,堪称是逆向工程技术百科全书。逆向工程权威指南全书讲解详细,附带丰富的代码示例,还给出了很多习题来帮助读者巩固所学的知识,附录部分给出了习题的解答,非常适合对逆向工程技术、操作系统底层技术、程序分析技术感兴趣的读者阅读,也适合专业的程序开发人员参考。
逆向工程是一种分析目标系统的过程,旨在于识别系统的各组件以及组件间关系,以便于通过其它形式、或在较高的抽象层次上,重建系统的表征。《逆向工程权威指南》专注于软件的逆向工程,是写给初学者的一本经典指南。全书共分为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等众多技术话题,堪称是逆向工程技术百科全书。
第一部分 指令讲解 第1章 CPU简介 1.1 指令集架构 第2章 最简函数 2.1 x86 2.2 ARM 2.3 MIPS 第3章 Hello,world! 3.1 x86 3.2 x86-64 3.3 GCC的其他特性 3.4 ARM 3.5 MIPS 3.6 总结 3.7 练习题 第4章 函数序言和函数尾声 递归调用 第5章 栈 5.1 为什么栈会逆增长 5.2 栈的用途 5.3 典型的栈的内存存储格式 5.4 栈的噪音 5.5 练习题 第6章 printf()函数与参数传递 6.1 x86 6.2 ARM 6.3 MIPS 6.4 总结 6.5 其他 第7章 scanf() 7.1 演示案例 7.2 全局变量 7.3 scanf()函数的状态监测 7.4 练习题 第8章 参数获取 8.1 x86 8.2 x64 8.3 ARM 8.4 MIPS 第9章 返回值 9.1 void型函数的返回值 9.2 函数返回值不被调用的情况 9.3 返回值为结构体型数据 第10章 指针 10.1 全局变量 10.2 局部变量 10.3 总结 第11章 GOTO语句 11.1 无用代码Dead Code 11.2 练习题 第12章 条件转移指令 12.1 数值比较 12.2 计算绝对值 12.3 条件运算符 12.4 比较最大值和最小值 12.5 总结 12.6 练习题 第13章 switch()/case/default 13.1 case陈述式较少的情况 13.2 case陈述式较多的情况 13.3 case从句多对一的情况 13.4 Fall-through 13.5 练习题 第14章 循环 14.1 举例说明 14.2 内存块复制 14.3 总结 14.4 练习题 第15章 C语言字符串的函数 15.1 strlen() 15.2 练习题 第16章 数学计算指令的替换 16.1 乘法 16.2 除法运算 16.3 练习题 第17章 FPU 17.1 IEEE 754 17.2 x86 17.3 ARM、MIPD、x86/x64 SIMD 17.4 C/C++ 17.5 举例说明 17.6 利用参数传递浮点型数据 17.7 比较说明 17.8 栈、计算器及逆波兰表示法 17.9 x64 17.10 练习题 第18章 数组 18.1 简介 18.2 缓冲区溢出 18.3 缓冲区溢出的保护方法 18.4 其他 18.5 字符串指针 18.6 多维数组 18.7 二维字符串数组的封装格式 18.8 本章小结 18.9 练习题 第19章 位操作 19.1 特定位 19.2 设置/清除特定位 19.3 位移 19.4 在FPU上设置特定位 19.5 位校验 19.6 本章小结 19.7 练习题 第20章 线性同余法与伪随机函数 20.1 x86 20.2 x64 20.3 32位ARM 20.4 MIPS 20.5 本例的线程安全改进版 第21章 结构体 21.1 MSVC: systemtime 21.2 用malloc()分配结构体的空间 21.3 UNIX: struct tm 21.4 结构体的字段封装 21.5 结构体的嵌套 21.6 结构体中的位操作 21.7 练习题 第22章 共用体(union)类型 22.1 伪随机数生成程序 22.2 计算机器精度 22.3 快速平方根计算 第23章 函数指针 23.1 MSVC 23.2 GCC 第24章 32位系统处理64位数据 24.1 64位返回值 24.2 参数传递及加减运算 24.3 乘法和除法运算 24.4 右移 24.5 32位数据转换为64位数据 第25章 SIMD 25.1 矢量化 25.2 SIMD实现strlen() 第26章 64位平台 26.1 x86-64 26.2 ARM 26.3 浮点数 第27章 SIMD与浮点数的并行运算 27.1 样板程序 27.2 传递浮点型参数 27.3 浮点数之间的比较 27.4 机器精度 27.5 伪随机数生成程序(续) 27.6 总结 第28章 ARM指令详解 28.1 立即数标识(#) 28.2 变址寻址 28.3 常量赋值 28.4 重定位 第29章 MIPS的特点 29.1 加载常量 29.2 阅读推荐 第二部分 硬件基础 第30章 有符号数的表示方法 第31章 字节序 31.1 大端字节序 31.2 小端字节序 31.3 举例说明 31.4 双模二元数据格式 31.5 转换字节序 第32章 内存布局 第33章 CPU 33.1 分支预测 33.2 数据相关性 第34章 哈希函数 单向函数与不可逆算法 第三部分 一些高级的例子 第35章 温度转换 35.1 整数值 35.2 浮点数运算 第36章 斐波拉契数列 36.1 例子1 36.2 例子2 36.3 总结 第37章 CRC32计算的例子 第38章 网络地址计算实例 38.1 计算网络地址函数calc_network_address() 38.2 函数form_IP() 38.3 函数print_as_IP() 38.4 form_netmask()函数和set_bit()函数 38.5 总结 第39章 循环:几个迭代 39.1 三个迭代器 39.2 两个迭代器 39.3 Intel C++ 2011实例 第40章 达夫装置 第41章 除以9 41.1 x86 41.2 ARM 41.3 MIPS 41.4 它是如何工作的 41.5 计算除数 41.6 练习题 第42章 字符串转换成数字,函数atoi() 42.1 例1 42.2 例2 42.3 练习 第43章 内联函数 43.1 字符串和内存操作函数 第44章 C99标准的受限指针 第45章 打造无分支的abs()函数 45.1 x64下的GCC 4.9.1优化 45.2 ARM64下的GCC 4.9优化 第46章 变长参数函数 46.1 计算算术平均值 46.2 vprintf()函数例子 第47章 字符串剪切 47.1 x64下的MSVC 2013优化 47.2 x64下采用编译器GCC 4.9.1进行非优化操作 47.3 x64下的GCC 4.9.1优化 47.4 ARM64:非优化的GCC(Linaro)4.9 47.5 ARM64:优化GCC(Linaro)4.9 47.6 ARM: Keil 6/2013优化(ARM模式) 47.7 ARM:Keil 6/2013(Thumb模式)优化 47.8 MIPS 第48章 toupper()函数 48.1 x64 48.2 ARM 48.3 总结 第49章 不正确的反汇编代码 49.1 x86环境下的从一开始错误的反汇编 49.2 随机噪音,怎么看起来像反汇编指令? 第50章 混淆技术 50.1 字符串变换 50.2 可执行代码 50.3 虚拟机以及伪代码 50.4 一些其他的事情 50.5 练习题 第51章 C++ 51.1 类 51.2 ostream输出流 51.3 引用 51.4 STL/标准模板库(Standard Template Library) 第52章 数组与负数索引 第53章 16位的Windows程序 53.1 例子#1 53.2 例子#2 53.3 例子#3 53.4 例子#4 53.5 例子#5 53.6 例子#6 第四部分 Java 第54章 Java 54.1 简介 54.2 返回一个值 54.3 简单的计算函数 54.4 JVM的内存模型 54.5 简单的函数调用 54.6 调用函数beep()(蜂鸣器) 54.7 线性同余随机数产生器(PRNG) 54.8 条件转移 54.9 传递参数 54.10 位操作 54.11 循环 54.12 switch()语句 54.13 数组 54.14 字符串 54.15 异常处理 54.16 类 54.17 简单的补丁 54.18 总结 第五部分 在代码中发现重要而有趣的内容 第55章 编译器产生的文件特征 55.1 Microsoft Visual C++ 55.2 GCC编译器 55.3 Intel FORTRAN 55.4 Watcom以及OpenWatcom 55.5 Borland编译器 55.6 其他的已知DLL文件 第56章 Win32环境下与外部通信 56.1 在Windows API中最经常使用的函数 56.2 tracer:解析指定模块的所有函数 第57章 字符串 57.1 字符串 57.2 错误/调试信息 57.3 可疑的魔数字符串 第58章 调用宏assert()(中文称为断言) 第59章 常数 59.1 魔数 59.2 寻找常数 第60章 检索关键指令 第61章 可疑的代码模型 61.1 XOR异或指令 61.2 手写汇编代码 第62章 魔数与程序调试 第63章 其他的事情 63.1 总则 63.2 C++ 63.3 部分二进制文件的特征 63.4 内存“快照”对比 第六部分 操作系统相关 第64章 参数的传递方法(调用规范) 64.1 cdecl [C Declaration的缩写] 64.2 stdcall [Standard Call的缩写] 64.3 fastcall 64.4 thiscall 64.5 64位下的x86 64.6 单/双精度数型返回值 64.7 修改参数 64.8 指针型函数参数 第65章 线程本地存储TLS 65.1 线性同余发生器(改) 第66章 系统调用(syscall-s) 66.1 Linux 66.2 Windows 第67章 Linux 67.1 位置无关的代码 67.2 在Linux下的LD_PRELOAD 第68章 Windows NT 68.1 CRT (Win32) 68.2 Win32 PE文件 68.3 Windows SEH 68.4 Windows NT:临界区段 第七部分 常用工具 第69章 反汇编工具 69.1 IDA 第70章 调试工具 70.1 tracer 70.2 OllyDbg 70.3 GDB 第71章 系统调用的跟踪工具 71.1 strace/dtruss 第72章 反编译工具 第73章 其他工具 第八部分 更多范例 第74章 修改任务管理器(Vista) 74.1 使用LEA指令赋值 第75章 修改彩球游戏 第76章 扫雷(Windows XP) 76.1 练习题 第77章 人工反编译与Z3 SMT求解法 77.1 人工反编译 77.2 Z3 SMT求解法 第78章 加密狗 78.1 例1:PowerPC平台的MacOS Classic程序 78.2 例2: SCO OpenServer 78.3 例3: MS-DOS 第79章 “QR9”:魔方态加密模型 第80章 SAP 80.1 关闭客户端的网络数据包压缩功能 80.2 SAP 6.0的密码验证函数 第81章 Oracle RDBMS 81.1 V$VERSION表 81.2 X$KSMLRU表 81.3 V$TIMER表 第82章 汇编指令与屏显字符 82.1 EICAR 第83章 实例演示 83.1 10PRINT CHR$(205.5+RND(1));:GOTO 10 83.2 曼德博集合 第九部分 文件分析 第84章 基于XOR的文件加密 84.1 Norton Guide:单字节XOR加密实例 84.2 4字节XOR加密实例 84.3 练习题 第85章 Millenium游戏的存档文件 第86章 Oracle的.SYM文件 第87章 Oracle的.MSDB文件 总结 第十部分 其他 第88章 npad 第89章 修改可执行文件 89.1 文本字符串 89.2 x86指令 第90章 编译器内部函数 第91章 编译器的智能短板 第92章 OpenMP 92.1 MSVC 92.2 GCC 第93章 安腾指令 第94章 8086的寻址方式 第95章 基本块重排 95.1 PGO的优化方式 第十一部分 推荐阅读 第96章 参考书籍 96.1 Windows 96.2 C/C++ 96.3 x86/x86-64 96.4 ARM 96.5 加密学 第97章 博客 97.1 Windows平台 第98章 其他内容 第十二部分 练习题 第99章 初等难度练习题 99.1 练习题1.4 第100章 中等难度练习题 100.1 练习题2.1 100.2 练习题2.4 100.3 练习题2.6 100.4 练习题2.13 100.5 练习题2.14 100.6 练习题2.15 100.7 练习题2.16 100.8 练习题2.17 100.9 练习题2.18 100.10 练习题2.19 100.11 练习题2.20 第101章 高难度练习题 101.1 练习题3.2 101.2 练习题3.3 101.3 练习题3.4 101.4 练习题3.5 101.5 练习题3.6 101.6 练习题3.8 第102章 Crackme/Keygenme 附录A x86 A.1 数据类型 A.2 通用寄存器 A.3 FPU寄存器 A.4 SIMD寄存器 A.5 FPU调试寄存器 A.6 指令 附录B ARM B.1 术语 B.2 版本差异 B.3 32位ARM(AArch32) B.4 64位ARM(AArch64) B.5 指令 附录C MIPS C.1 寄存器 C.2 指令 附录D 部分GCC库函数 附录E 部分MSVC库函数 附录F 速查表 F.1 IDA F.2 OllyDbg F.3 MSVC选项 F.4 GCC F.5 GDB 附录G 练习题答案 G.1 各章练习 G.2 初级练习题 G.3 中级练习题 G.4 高难度练习题 G.5 其他练习题 参考文献
应用信息
同类热门
热门标签
网友评论0人参与,0条评论
最新排行
windows程序设计第7版中文版14.84M电子版 windows程序设计第7版中文版是专门为国内的Windows开发人员而提供的一个pdf电子版学习文件,同时由于这是国外一名作者进行编写分享的,因此原著是纯英文的,但为了更好的满足国人们的学习需求,所以小编带来的是经过专业团队进行翻译的一个简体中文
查看
APP蓝图:Axure RP7.0移动互联网产品原型设计40.95M吕皓月pdf扫描版 建模又常被称为画线框图、mockup、原型图、demo,其主要用途是在正式进行设计和开发之前,通过一个逼真的效果图来模拟最终的视觉效果和交互效果。但如何才能更好的学习呢?小编这里为广大网友带来了APP蓝图:Axure RP7.0移动互联网产品原型设
查看
java web整合开发王者归来308.04M刘京华pdf扫描版java web整合开发王者归来是一本备受推崇的Java Web开发经典图书,由刘京华等人编著。本书内容丰富翔实,详细的讲解了包括Sring、Struts、Hibemate、Webword、web service、EJB3、JPA、SSH组合在内的许多主
查看
企业APP设计运营完全手册31.75M徐声远 pdf扫描版 企业APP设计运营完全手册是一本企业APP设计运营书籍,由Bri体验科技联合创始人徐声远编写。全书汇集了作者数年的研究和实战经验,系统分析了企业APP的具体操作过程,应注意的方法和技巧。读者通过读完此书,能够重新审视自己或竞争对手发布的App,重新
查看
疯狂ajax讲义第三版387.48M李刚pdf扫描版 疯狂ajax讲义第三版是一本介绍Ajax前端开发的图书,也是企业应用前端开发实战指南,由疯狂Java实训营创始人李刚编著。全书名称叫做:疯狂ajax讲义:jQuery/Ext JS/Prototype/DWR企业应用前端开发实战第3版。该书全面、细
查看
《口译实例与技巧》电子版17.78MPDF高清扫描版 口译实例与技巧是冯建中教授主编的国内第一部口译实战案例与译员经验合集,是《实用英语口译教程》和《英汉口译实练》两部教材的指定配套读物。我们为什么要学习英语?是为了更好的了解国外的先进技术,因为我们国家现在还处在发展阶段,很多东西都不如外国的先进,所
查看
欧姆龙plc编程手册7.59M 欧姆龙plc编程软件绝对是目前工作中最优秀的可编程序控制器软件,但软件如何才能更好的掌握好呢?本站这里提供的欧姆龙plc编程手册可以帮到您,该手册为pdf中文版,它提供了对CPM1,CPM1A,CPM2A,CPM2AH,CPM2C(包括CPM2C-
查看
dslr数码单反摄影圣经111.74Mpdf高清版 数码单反相机已经成为专业摄影师以及广大摄影爱好者最得力的工具,但并不是每一个朋友都了解自己的相机,不熟悉相机的功能,拿着数码单反相机当傻瓜相机用,这样未免大材小用了。要想用好数码单反相机,必须熟练掌握它的功能和原理。dslr数码单反摄影圣经是目前最
查看
gx works3操作手册14.39Mpdf高清版 本款gx works3操作手册是小编从三菱软件官方下载的最新使用指南,pdf高清版,详细的介绍了gx works3的使用方法,包括五大部分,分别为gx works3的基本内容,系统设计设置,编程,调试运用和保养维护,欢迎有需要的朋友免费下载收藏。
查看
html5移动web开发指南1.99Mpdf完整版html5移动web开发指南是由著名的Web前端工程师唐俊开所编著的,是一门新崛起的语言,现在非常的流行,本书是为从未接触过html5新技术但同时又对移动web技术感兴趣的读者而编写的,同时它也适用于有一定基础或者未来计划的职业是web前端开发工程师、具
查看
javascript权威指南第6版中文版36.07Mpdf高清版javascript权威指南是一本关于如何学习javascript语言的圣经,它详细的介绍了javascript语言的词法结构、类型、值和变量、表达式、运算符、语句、对象、数组、函数、类和模块等等内容,能够帮助用户更好的学习和掌握javascript,适
查看
网页设计与开发:HTML、CSS、JavaScript实例教程62.35M扫描版网页设计与开发:HTML、CSS、JavaScript实例教程是一本讲解HTML、CSS、JavaScript语言的实战web开发指导手册,由郑娅峰编著。全书主要介绍了浏览器端开发技术,也就是HTML页面制作技术,包括HTML、CSS和JavaScrip
查看