• X86汇编与逆向工程:软件破解与防护的艺术
21年品牌 40万+商家 超1.5亿件商品

X86汇编与逆向工程:软件破解与防护的艺术

全新正版 极速发货

63.34 6.4折 99 全新

库存4件

广东广州
认证卖家担保交易快速发货售后保障

作者[美]斯蒂芬妮·多马斯(Stephanie Domas) [美]克里斯托弗·多马斯(Christopher Domas) 著

出版社机械工业出版社

ISBN9787111767404

出版时间2025-01

装帧平装

开本16开

定价99元

货号1203475377

上书时间2024-12-25

谢岳书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
目录
目  录<br />译者序<br />前言<br />关于作者<br />关于技术撰稿人<br />关于技术编辑<br />第1章 反编译和架构  1<br />1.1 反编译  1<br />1.1.1 反编译何时有用  1<br />1.1.2 反编译JIT语言  2<br />1.1.3 保护JIT语言  3<br />1.2 实验:反编译  4<br />1.2.1 技能  4<br />1.2.2 要点  4<br />1.3 架构  4<br />1.3.1 计算机架构  4<br />1.3.2 汇编  6<br />1.4 总结  10<br />第2章 x86汇编:数据、模式、寄存器<br />和内存访问  11<br />2.1 x86简介  11<br />2.2 汇编语法  12<br />2.3 数据表示  13<br />2.3.1 数字系统的基数  13<br />2.3.2 位、字节和字  14<br />2.3.3 处理二进制数  16<br />2.4 寄存器  17<br />2.4.1 x86中的寄存器  18<br />2.4.2 寄存器的使用  19<br />2.5 内存访问  20<br />2.6 寻址模式  23<br />2.6.1 绝对寻址  23<br />2.6.2 间接寻址  23<br />2.6.3 基址加偏移量寻址  24<br />2.6.4 索引寻址  24<br />2.6.5 基址–索引寻址  24<br />2.7 总结  25<br />第3章 x86 汇编:指令  26<br />3.1 x86指令格式  26<br />3.2 x86指令  27<br />3.2.1 mov  28<br />3.2.2 inc、dec  30<br />3.2.3 add、sub  30<br />3.2.4 mul  30<br />3.2.5 div  31<br />3.2.6 and、or、xor  31<br />3.2.7 not  32<br />3.2.8 shr、shl  32<br />3.2.9 sar、sal  32<br />3.2.10 nop  33<br />3.2.11 lea  33<br />3.3 整合所有内容  34<br />3.4 常见的x86指令错误  35<br />3.5 总结  36<br />第4章 构建和运行汇编程序  37<br />4.1 输出  37<br />4.1.1 控制引脚  38<br />4.1.2 由操作系统处理与显卡的交互  39<br />4.2 系统调用  39<br />4.2.1 sys_write  39<br />4.2.2 sys_exit  40<br />4.2.3 输出字符串  40<br />4.3 汇编和链接  41<br />4.3.1 Linux中的汇编与链接  41<br />4.3.2 编写汇编程序  42<br />4.4 objdump  45<br />4.5 实验:Hello World  45<br />4.5.1 技能  45<br />4.5.2 要点  46<br />4.6 ASCII  46<br />4.6.1 识别ASCII字符串  47<br />4.6.2 ASCII操作技巧  48<br />4.7 总结  48<br />第5章 理解条件码  49<br />5.1 条件码  49<br />5.1.1 eflags  49<br />5.1.2 影响状态标志的操作  52<br />5.2 总结  55<br />第6章 分析和调试汇编代码  56<br />6.1 二进制分析  56<br />6.1.1 静态分析与动态分析  56<br />6.1.2 调试  57<br />6.2 断点  57<br />6.2.1 软件断点  57<br />6.2.2 硬件断点  58<br />6.3 gdb  58<br />6.4 段错误  63<br />6.5 实验:鲨鱼模拟器3000  63<br />6.5.1 技能  64<br />6.5.2 要点  64<br />6.6 消除噪声  64<br />6.7 总结  65<br />第7章 函数和控制流  66<br />7.1 控制流  66<br />7.1.1 指令指针  66<br />7.1.2 控制流指令  67<br />7.2 x86中的逻辑结构  70<br />7.2.1 if(...) {...}  70<br />7.2.2 if(...) {...} else{...}  71<br />7.2.3 do {...} while (...);  75<br />7.2.4 while (...) {...}  76<br />7.2.5 for (...; ...; ...) {...}  77<br />7.2.6 switch (...) {...}  79<br />7.2.7 continue  83<br />7.2.8 break  84<br />7.2.9 &&  86<br />7.2.10 ||  86<br />7.3 栈  87<br />7.3.1 栈是如何工作的  87<br />7.3.2 x86栈  87<br />7.4 函数调用与栈帧  91<br />7.4.1 x86中的函数  91<br />7.4.2 栈分析  94<br />7.4.3 调用约定  95<br />7.4.4 cdecl  96<br />7.4.5 栈帧  100<br />7.4.6 宏观程序  105<br />7.4.7 需要记住的事情  106<br />7.5 总结  107<br />第8章 编译器和优化器  108<br />8.1 寻找目标代码入口点  108<br />8.2 编译器  110<br />8.2.1 优化  111<br />8.2.2 剥离  113<br />8.2.3 链接  114<br />8.3 总结  116<br />第9章 逆向工程:工具和策略  117<br />9.1 实验:RE Bingo  117<br />9.1.1 技能  117<br />9.1.2 要点  118<br />9.2 基础侦察  118<br />9.2.1 objdump  118<br />9.2.2 ltrace和strace  119<br />9.2.3 strings  122<br />9.2.4 Dependency Walker  123<br />9.3 逆向工程的策略  124<br />9.3.1 寻找感兴趣的区域  124<br />9.3.2 迭代注释代码  124<br />9.4 总结  125<br />第10章 破解:工具和策略  126<br />10.1 密钥检查器  126<br />10.1.1 不好的方法  127<br />10.1.2 合理的方法  127<br />10.1.3 更好的方法  128<br />10.1.4 最佳方法  128<br />10.1.5 其他的建议  129<br />10.2 密钥生成器  130<br />10.2.1 为什么要创建密钥生成器  130<br />10.2.2 密钥生成的原理  130<br />10.2.3 破解各种类型的密钥检查  131<br />10.2.4 对抗密钥生成器  132<br />10.3 实验:密钥生成器  132<br />10.3.1 技能  132<br />10.3.2 要点  133<br />10.4 Procmon  133<br />10.4.1 示例:Notepad.exe  133<br />10.4.2 怎样用Procmon辅助逆向工程和破解  136<br />10.5 Resource Hacker  138<br />10.5.1 示例  138<br />10.5.2 小实验:Windows计算器  139<br />10.6 打补丁  142<br />10.6.1 打补丁与密钥生成  142<br />10.6.2 在哪里打补丁  143<br />10.6.3 nop指令  143<br />10.7 其他调试器  144<br />10.7.1 OllyDbg  144<br />10.7.2 Immunity  144<br />10.7.3 x86dbg  145<br />10.7.4 WinDbg  145<br />10.8 使用Immunity调试工具进行<br />调试  145<br />10.8.1 Immunity:汇编代码  146<br />10.8.2 Immunity:模块  147<br />10.8.3 Immunity:字符串  147<br />10.8.4 Immunity:运行程序  149<br />10.8.5 Immunity:异常  149<br />10.8.6 Immunity:重写程序  151<br />10.9 实验:使用Immunity进行破解  153<br />10.9.1 技能  153<br />10.9.2 要点  153<br />10.10 总结  153<br />第11章 打补丁和高级工具  154<br />11.1 在010编辑器中打补丁  154<br />11.2 CodeFusion补丁  156<br />11.3 Cheat Engine  158<br />11.3.1 Cheat Engine:打开进程  159<br />11.3.2 Cheat Engine:查看内存  159<br />11.3.3 Cheat Engine:字符串引用  161<br />11.3.4 Cheat Engine:重写程序  161<br />11.3.5 Cheat Engine:复制字节  163<br />11.3.6 Cheat Engine:获取地址  163<br />11.4 实验:破解LaFarge  163<br />11.4.1 技能  163<br />11.4.2 要点  164<br />11.5 IDA  164<br />11.5.1 IDA:字符串  165<br />11.5.2 IDA:基本块  167<br />11.5.3 IDA:函数和变量  168<br />11.5.4 IDA:注释  168<br />11.5.5 IDA:路径  170<br />11.6 IDA补丁  171<br />11.7 实验:IDA逻辑流程  173<br />11.7.1 技能  173<br />11.7.2 要点  173<br />11.8 Ghidra  174<br />11.9 实验:使用IDA进行破解  174<br />11.9.1 技能  174<br />11.9.2 要点  174<br />11.10 总结  174<br />第12章 防御  175<br />12.1 混淆技术  175<br />12.1.1 评估混淆技术  177<br />12.1.2 自动化混淆  177<br />12.1.3 混淆器  181<br />12.1.4 攻克混淆器  182<br />12.2 实验:混淆技术  182<br />12.2.1 技能  183<br />12.2.2 要点  183<br />12.3 反调试  183<br />12.3.1 IsDebuggerPresent()  183<br />12.3.2 调试寄存器  184<br />12.3.3 读时间戳计数器  184<br />12.3.4 无效CloseHandle()调用  185<br />12.3.5 目录扫描  185<br />12.3.6 攻击性反调试  186<br />12.3.7 攻克反调试技术  186<br />12.4 实验:反调试  186<br />12.4.1 技能  186<br />12.4.2 要点  187<br />12.5 总结  187<br />第13章 高级防御技术  188<br />13.1 防篡改技术  188<br />13.1.1 哈希  188<br />13.1.2 签名  189<br />13.1.3 水印  189<br />13.1.4 软件守护  189<br />13.2 加壳技术  190<br />13.2.1 加壳器是如何工作的  190<br />13.2.2 这是强大的保护机制吗  191<br />13.2.3 破解加壳技术  191<br />13.2.4 PEiD  192<br />13.3 实验:检测和脱壳  192<br />13.3.1 技能  193<br />13.3.2 要点  193<br />13.4 虚拟化技术  193<br />13.4.1 代码虚拟化是如何工作的  195<br />13.4.2 分层虚拟化  195<br />13.4.3 虚拟化存在的问题  195<br />13.4.4 这是强大的保护机制吗  196<br />13.4.5 破解虚拟化技术  196<br />13.5 加密器/解密器  196<br />13.5.1 这种保护机制有用吗  197<br />13.5.2 攻克加密器  197<br />13.6 总结  197<br />第14章 检测与预防  199<br />14.1 循环冗余校验  199<br />14.2 代码签名  200<br />14.2.1 如何进行代码签名  200<br />14.2.2 如何验证已签名的应用<br />程序  201<br />14.2.3 代码签名有效吗  201<br />14.2.4 代码签名与循环冗余校验  202<br />14.2.5 这是强大的保护机制吗  202<br />14.3 RASP  202<br />14.3.1 钩子函数  202<br />14.3.2 RASP的风险  203<br />14.3.3 这是强大的保护机制吗  203<br />14.4 白名单  203<br />14.4.1 如何运行白名单  204<br />14.4.2 这是强大的保护机制吗  204<br />14.5 黑名单  205<br />14.6 远程认证  205<br />14.6.1 远程认证示例  206<br />14.6.2 这是强大的保护机制吗  206<br />14.7 实验:进程监控  207<br />14.7.1 技能  207<br />14.7.2 要点  207<br />14.8 总结  207<br />第15章 法律  208<br />15.1 影响逆向工程的美国法律  208<br />15.1.1 《数字千年版权法》  208<br />15.1.2 《计算机欺诈和滥用法案》  208<br />15.1.3 《版权法》  209<br />15.1.4 重要法庭判例  210<br />15.1.5 合理使用  211<br />15.1.6 DMCA研究免责  211<br />15.1.7 合法性  212<br />15.2 总结  212<br />第16章 高级技术  213<br />16.1 时间旅行调试  213<br />16.2 二进制插桩  213<br />16.3 中间表示  214<br />16.4 反编译  214<br />16.5 自动化结构恢复  215<br />16.6 可视化  215<br />16.7 去混淆  215<br />16.8 定理证明器  216<br />16.9 符号分析  216<br />16.10 总结  217<br />第17章 附加话题  218<br />17.1 栈溢出  218<br />17.1.1 shellcode  224<br />17.1.2 栈溢出与栈保护  227<br />17.2 关联C代码与x86汇编代码  228<br />17.2.1 在x86代码中使用C函数  228<br />17.2.2 在C代码中使用x86函数  230<br />17.2.3 _start与main()  231&l

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP