您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
x86汇编与逆向工程:软件破解与防护的艺术
字数: 345
出版社: 机械工业
作者: [美]斯蒂芬妮·多马斯(Stephanie Domas) [美]克里斯托弗·多马斯(Christopher Domas)
商品条码: 9787111767404
版次: 1
开本: 16开
页数: 237
出版年份: 2025
印次: 1
定价:
¥99
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
本书以软件反汇编技术为中心,首先带领读者从x86的基础知识开始,学习如何读取、编写和构建赋能全球大量计算机的汇编语言;然后介绍如何使用IDA、Ghidra、Olly 等业界最受欢迎的工具对应用程序进行逆向工程;接着介绍如何利用补丁和密钥生成等技术进行软件破解,所有这些都利用了汇编和逆向工程的知识;最后从防御的角度向读者介绍相关技术,使他们能够更好地保护自己的软件。本书将引领好奇的读者深入软件破解和计算机的核心,探索其运作机制。深入学习x86计算机的运行原理,不仅对逆向工程和软件破解来说至关重要,还能帮助读者在代码优化、效率提高、调试、编译器设置调整以及芯片选择等方面成为更出色的开发者。
作者简介
斯蒂芬妮·多马斯<br />(Stephanie Domas)<br />Canonical首席信息安全官(CISO)、英特尔(Intel)前首席安全技术战略师。她在道德黑客、逆向工程和高级漏洞分析方面拥有逾十年经验,作为一位知名行业顾问,她的服务对象涵盖初创企业和行业巨头。她目前致力于使Canonical成为开源界最受信赖的计算伙伴。在英特尔时,她负责全公司的安全技术战略,推动英特尔在安全领域实力、竞争力和收益的不断增长。她是一位充满激情的教育家、战略家、演说家、顾问和安全爱好者。<br /><br /><br />克里斯托弗·多马斯<br />(Christopher Domas)<br />知名硬件安全研究员。他的研究重点在于固件、硬件及处理器的底层安全漏洞利用。他因针对还不存在的问题提出天马行空的解决方案而闻名,其所提解决方案包括全球首个单指令的C语言编译器(M/o/Vfuscator)、能够生成程序控制流图的开发工具集(REpsych),以及在vi文本编辑器里实现的图灵机。
目录
目 录<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&l;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<br />17.2.4 标准参数 233<br />17.2.5 混合使用C语言和汇编<br />语言 233<br />17.3 总结 235<br />结语 236
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网