由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[醉染正版]正版图书 逆向工程核心原理 代码逆向分析 数学原理 Ahnlab 研究所 IT领域 人民邮电出版社
¥ ×1
店铺公告
为保障消费者合理购买需求及公平交易机会,避免因非生活消费目的的购买货囤积商品,抬价转售等违法行为发生,店铺有权对异常订单不发货且不进行赔付。异常订单:包括但不限于相同用户ID批量下单,同一用户(指不同用户ID,存在相同/临近/虚构收货地址,或相同联系号码,收件人,同账户付款人等情形的)批量下单(一次性大于5本),以及其他非消费目的的交易订单。
温馨提示:请务必当着快递员面开箱验货,如发现破损,请立即拍照拒收,如验货有问题请及时联系在线客服处理,(如开箱验货时发现破损,所产生运费由我司承担,一经签收即为货物完好,如果您未开箱验货,一切损失就需要由买家承担,所以请买家一定要仔细验货),
关于退货运费:对于下单后且物流已发货货品在途的状态下,原则上均不接受退货申请,如顾客原因退货需要承担来回运费,如因产品质量问题(非破损问题)可在签收后,联系在线客服。
|
|
|
|
|
|
|
|
|
推荐
书中用到的几乎所有示例都基于作者在逆向分析实践中获得的知识与经验,是其亲自开发的程序,紧扣各章主题,绝无累赘。
作者将培训经验应用到本书的组织结构、内容讲解、示例选择等各方面,以求将较为难懂的技术以更易懂的方式呈现给各位。
作者几年前就开设了一个逆向技术学习博客并运营至今,通过与访问者之间的交流,充分了解了初学者们的困惑和需求。
商品详情
商品名称:逆向工程核心原理 其他参考信息
作者: 李承远 开本: 16开
定价: 109.0 页数: 679
ISBN编号:9787115350183 印刷时间: 2014-5-1
出版社: 人民邮电 版次: 1
商品类型: 图书 印次: 1
内容简介
《逆向工程核心原理》十分详尽地介绍了代码逆向分析的核心原理。作者在Ahnlab 研究所工作多年,书中不仅包括其以此经验为基础亲自编写的大量代码,还包含了逆向工程研究人员必须了解的各种技术和技巧。彻底理解并切实掌握逆向工程这门技术,就能在众多IT相关领域进行拓展运用,这本《逆向工程核心原理》就是通向逆向工程大门的捷径。
想成为逆向工程研究员的读者或正在从事逆向开发工作的开发人员一定会通过《逆向工程核心原理》获得很大帮助。同时,想成为安全领域专家的人也可从《逆向工程核心原理》轻松起步。
目录
第 一部分 代码逆向技术基础
第 1章 关于逆向工程 2
1.1 逆向工程 2
1.2 代码逆向工程 2
1.2.1 逆向分析法 2
1.2.2 源代码、十六进制代码、汇编代码 4
1.2.3 “打补丁”与“破解” 5
1.3 代码逆向准备 5
1.3.1 目标 5
1.3.2 激情 6
1.3.3 谷歌 6
1.4 学习逆向分析技术的禁忌 6
1.4.1 贪心 6
1.4.2 急躁 7
1.5 逆向分析技术的乐趣 7
第 2章 逆向分析Hello World!程序 8
2.1 Hello World!程序 8
2.2 调试HelloWorld.exe程序 9
2.2.1 调试目标 9
2.2.2 开始调试 9
2.2.3 入口点 10
2.2.4 跟踪40270C函数 10
2.2.5 跟踪40104F跳转语句 12
2.2.6 查找main()函数 12
2.3 进一步熟悉调试器 14
2.3.1 调试器指令 14
2.3.2 “大本营” 15
2.3.3 设置“大本营”的四种方法 15
2.4 快速查找指定代码的四种方法 17
2.4.1 代码执行法 18
2.4.2 字符串检索法 19
2.4.3 API检索法(1):在调用代码中设置断点 20
2.4.4 API检索法(2):在API代码中设置断点 21
2.5 使用“打补丁”方式修改“Hello World!”字符串 23
2.5.1 “打补丁” 23
2.5.2 修改字符串的两种方法 24
2.6 小结 28
第3章 小端序标记法 31
3.1 字节序 31
3.1.1 大端序与小端序 32
3.1.2 在OllyDbg中查看小端序 32
第4章 IA-32寄存器基本讲解 34
4.1 什么是CPU寄存器 34
4.2 IA-32寄存器 34
4.3 小结 40
第5章 栈 41
5.1 栈 41
5.1.1 栈的特征 41
5.1.2 栈操作示例 41
第6章 分析abex’ crackme#1 44
6.1 abex’ crackme #1 44
6.1.1 开始调试 45
6.1.2 分析代码 45
6.2 破解 47
6.3 将参数压入栈 47
6.4 小结 48
第7章 栈帧 49
7.1 栈帧 49
7.2 调试示例:stackframe.exe 49
7.2.1 StackFrame.cpp 50
7.2.2 开始执行main()函数&生成栈帧 51
7.2.3 设置局部变量 52
7.2.4 add()函数参数传递与调用 53
7.2.5 开始执行add()函数&生成栈帧 54
7.2.6 设置add()函数的局部变量(x, y) 55
7.2.7 ADD运算 55
7.2.8 删除函数add()的栈帧&函数执行完毕(返回) 56
7.2.9 从栈中删除函数add()的参数(整理栈) 57
7.2.10 调用printf()函数 58
7.2.11 设置返回值 58
7.2.12 删除栈帧&main()函数终止 58
7.3 设置OllyDbg选项 59
7.3.1 Disasm选项 59
7.3.2 Analysis1选项 60
7.4 小结 61
第8章 abex’ crackme #2 62
8.1 运行abex’ crackme #2 62
8.2 Visual Basic文件的特征 63
8.2.1 VB专用引擎 63
8.2.2 本地代码和伪代码 63
8.2.3 事件处理程序 63
8.2.4 未文档化的结构体 63
8.3 开始调试 63
8.3.1 间接调用 64
8.3.2 RT_MainStruct结构体 64
8.3.3 ThunRTMain()函数 65
8.4 分析crackme 65
8.4.1 检索字符串 65
8.4.2 查找字符串地址 66
8.4.3 生成Serial的算法 68
8.4.4 预测代码 69
8.4.5 读取Name字符串的代码 69
8.4.6 加密循环 70
8.4.7 加密方法 70
8.5 小结 72
第9章 Process Explorer——**优 秀的进程管理工具 74
9.1 Process Explorer 74
9.2 具体有哪些优点呢 75
9.3 sysinternals 75
第 10章 函数调用约定 76
10.1 函数调用约定 76
10.1.1 cdecl 76
10.1.2 stdcall 77
10.1.3 fastcall 78
第 11章 视频讲座 79
11.1 运行 79
11.2 分析 79
11.2.1 目标(1):去除消息框 79
11.2.2 打补丁(1):去除消息框 81
11.2.3 目标(2):查找注册码 83
11.3 小结 85
第 12章 应当如何学习代码逆向分析 86
12.1 逆向工程 86
12.1.1 任何学习都应当有目标 86
12.1.2 拥有积极心态 86
12.1.3 要感受其中的乐趣 86
12.1.4 让检索成为日常生活的一部分 87
12.1.5 **重要的是实践 87
12.1.6 请保持平和的心态 87
第 二部分 PE文件格式
第 13章 PE文件格式 90
13.1 介绍 90
13.2 PE文件格式 90
13.2.1 基本结构 91
13.2.2 VA&RVA 92
13.3 PE头 92
13.3.1 DOS头 93
13.3.2 DOS存根 94
13.3.3 NT头 94
13.3.4 NT头:文件头 95
13.3.5 NT头:可选头 97
13.3.6 节区头 101
13.4 RVA to RAW 104
13.5 IAT 105
13.5.1 DLL 105
13.5.2 IMAGE_IMPORT_DESCRIPTOR 107
13.5.3 使用notepad.exe练习 108
13.6 EAT 112
13.6.1 IMAGE_EXPORT_DIRECTORY 113
13.6.2 使用kernel32.dll练习 114
13.7 高 级PE 116
13.7.1 PEView.exe 116
13.7.2 Patched PE 117
13.8 小结 118
第 14章 运行时压缩 121
14.1 数据压缩 121
14.1.1 无损压缩 121
14.1.2 有损压缩 121
14.2 运行时压缩器 122
14.2.1 压缩器 122
14.2.2 保护器 123
14.3 运行时压缩测试 123
第 15章 调试UPX压缩的notepad程序 127
15.1 notepad.exe的EP代码 127
15.2 notepad_upx.exe的EP代码 127
15.3 跟踪UPX文件 129
15.3.1 OllyDbg的跟踪命令 129
15.3.2 循环 #1 129
15.3.3 循环 #2 130
15.3.4 循环 #3 131
15.3.5 循环 #4 131
15.4 快速查找UPX OEP的方法 132
15.4.1 在POPAD指令后的JMP指令处设置断点 132
15.4.2 在栈中设置硬件断点 133
15.5 小结 133
第 16章 基址重定位表 135
16.1 PE重定位 135
16.1.1 DLL/SYS 135
16.1.2 EXE 136
16.2 PE重定位时执行的操作 136
16.3 PE重定位操作原理 138
16.3.1 基址重定位表 138
16.3.2 IMAGE_BASE_RELOCATION结构体 139
16.3.3 基址重定位表的分析方法 139
16.3.4 练习 141
第 17章 从可执行文件中删除.reloc节区 142
17.1 .reloc节区 142
17.2 reloc.exe 142
17.2.1 删除.reloc节区头 142
17.2.2 删除.reloc节区 143
17.2.3 修改IMAGE_FILE_HEADER 143
17.2.4 修改IMAGE_OPTIONAL_HEADER 144
17.3 小结 145
第 18章 UPack PE文件头详细分析 146
18.1 UPack说明 146
18.2 使用UPack压缩notepad.exe 146
18.3 使用Stud_PE工具 148
18.4 比较PE文件头 148
18.4.1 原notepad.exe的PE文件头 149
18.4.2 notepad_upack.exe运行时压缩的PE文件头 149
18.5 分析UPack的PE文件头 150
18.5.1 重叠文件头 150
18.5.2 IMAGE_FILE_HEADER.SizeOfOptionalHeader 150
18.5.3 IMAGE_OPTIONAL_HEADER.NumberOf-RvaAndSizes 152
18.5.4 IMAGE_SECTION_HEADER 153
18.5.5 重叠节区 155
18.5.6 RVA to RAW 156
18.5.7 导入表(IMAGE_IMPORT_DESCRIPTOR array) 158
18.5.8 导入地址表 160
18.6 小结 161
第 19章 UPack调试 查找OEP 162
19.1 OllyDbg运行错误 162
19.2 解码循环 163
19.3 设置IAT 165
19.4 小结 166
第 20章 “内嵌补丁”练习 167
20.1 内嵌补丁 167
20.2 练习:Patchme 168
20.3 调试:查看代码流 168
20.4 代码结构 172
20.5 “内嵌补丁”练习 173
20.5.1 补丁代码要设置在何处呢 173
20.5.2 制作补丁代码 175
20.5.3 执行补丁代码 176
20.5.4 结果确认 177
第三部分 DLL注入
第 21章 Windows消息钩取 180
21.1 钩子 180
21.2 消息钩子 180
21.3 SetWindowsHookEx() 181
21.4 键盘消息钩取练习 182
21.4.1 练习示例HookMain.exe 182
21.4.2 分析源代码 185
21.5 调试练习 187
21.5.1 调试HookMain.exe 188
21.5.2 调试Notepad.exe进程内的KeyHook.dll 190
21.6 小结 192
第 22章 恶意键盘记录器 194
22.1 恶意键盘记录器的目标 194
22.1.1 在线游戏 194
22.1.2 网上银行 194
22.1.3 商业机密泄露 194
22.2 键盘记录器的种类与发展趋势 195
22.3 防范恶意键盘记录器 195
22.4 个人信息 195
第 23章 DLL注入 197
23.1 DLL注入 197
23.2 DLL注入示例 198
23.2.1 改善功能与修复Bug 198
23.2.2 消息钩取 198
23.2.3 API钩取 198
23.2.4 其他应用程序 199
23.2.5 恶意代码 199
23.3 DLL注入的实现方法 199
23.4 CreateRemoteThread() 199
23.4.1 练习示例myhack.dll 199
23.4.2 分析示例源代码 203
23.4.3 调试方法 208
23.5 AppInit_DLLs 210
23.5.1 分析示例源码 211
23.5.2 练习示例myhack2.dll 212
23.6 SetWindowsHookEx() 214
23.7 小结 214
第 24章 DLL卸载 216
24.1 DLL卸载的工作原理 216
24.2 实现DLL卸载 216
24.2.1 获取进程中加载的DLL信息 219
24.2.2 获取目标进程的句柄 220
24.2.3 获取FreeLibrary() API地址 220
24.2.4 在目标进程中运行线程 220
24.3 DLL卸载练习 220
24.3.1 复制文件及运行notepad.exe 220
24.3.2 注入myhack.dll 221
24.3.3 卸载myhack.dll 222
第 25章 通过修改PE加载DLL 224
25.1 练习文件 224
25.1.1 TextView.exe 224
25.1.2 TextView_patched.exe 225
25.2 源代码 - myhack3.cpp 227
25.2.1 DllMain() 227
25.2.2 DownloadURL() 228
25.2.3 DropFile() 229
25.2.4 dummy() 230
25.3 修改TextView.exe文件的准备工作 231
25.3.1 修改思路 231
25.3.2 查看IDT是否有足够空间 231
25.3.3 移动IDT 233
25.4 修改TextView.exe 235
25.4.1 修改导入表的RVA值 235
25.4.2 删除绑定导入表 235
25.4.3 创建新IDT 235
25.4.4 设置Name、INT、IAT 236
25.4.5 修改IAT节区的属性值 238
25.5 检测验证 240
25.6 小结 241
第 26章 PE Tools 242
26.1 PE Tools 242
26.1.1 进程内存转储 243
26.1.2 PE编辑器 245
26.2 小结 245
第 27章 代码注入 247
27.1 代码注入 247
27.2 DLL注入与代码注入 247
27.3 练习示例 249
27.3.1 运行notepad.exe 249
27.3.2 运行CodeInjection.exe 249
27.3.3 弹出消息框 250
27.4 CodeInjection.cpp 250
27.4.1 main()函数 251
27.4.2 ThreadProc()函数 251
27.4.3 InjectCode()函数 254
27.5 代码注入调试练习 256
27.5.1 调试notepad.exe 256
27.5.2 设置OllyDbg选项 256
27.5.3 运行CodeInjection.exe 257
27.5.4 线程开始代码 258
27.6 小结 259
第 28章 使用汇编语言编写注入代码 260
28.1 目标 260
28.2 汇编编程 260
28.3 OllyDbg的汇编命令 260
28.3.1 编写ThreadProc()函数 262
28.3.2 保存文件 265
28.4 编写代码注入程序 266
28.4.1 获取ThreadProc()函数的二进制代码 266
28.4.2 CodeInjection2.cpp 267
28.5 调试练习 270
28.5.1 调试notepad.exe 270
28.5.2 设置OllyDbg选项 270
28.5.3 运行CodeInjection2.exe 271
28.5.4 线程起始代码 272
28.6 详细分析 272
28.6.1 生成栈帧 272
28.6.2 THREAD_PARAM结构体指针 273
28.6.3 “User32.dll”字符串 274
28.6.4 压入“user32.dll”字符串参数 274
28.6.5 调用LoadLibraryA(“user32.dll”) 275
28.6.6 “MessageBoxA”字符串 276
28.6.7 调用GetProcAddress(hMod,“MessageBoxA”) 276
28.6.8 压入MessageBoxA()函数的参数 1 -MB_OK 277
28.6.9 压入MessageBoxA()函数的参数 2 -“ReverseCore” 277
28.6.10 压入MessageBoxA()函数的参数 3 -“www.reversecore.com” 278
28.6.11 压入MessageBoxA()函数的参数 4 -NULL 279
28.6.12 调用MessageBoxA() 279
28.6.13 设置ThreadProc()函数的返回值 280
28.6.14 删除栈帧及函数返回 280
28.7 小结 280
第四部分 API钩取
第 29章 API钩取:逆向分析之“花” 282
29.1 钩取 282
29.2 API是什么 282
29.3 API钩取 283
29.3.1 正常调用API 283
29.3.2 钩取API调用 284
29.4 技术图表 284
29.4.1 方法对象(是什么) 285
29.4.2 位置(何处) 285
29.4.3 技术(如何) 286
29.4.4 API 286
第30章 记事本WriteFile() API钩取 288
30.1 技术图表—调试技术 288
30.2 关于调试器的说明 289
30.2.1 术语 289
30.2.2 调试器功能 289
30.2.3 调试器的工作原理 289
30.2.4 调试事件 289
30.3 调试技术流程 290
30.4 练习 291
30.5 工作原理 293
30.5.1 栈 293
30.5.2 执行流 295
30.5.3 “脱钩”&“钩子” 295
30.6 源代码分析 295
30.6.1 main() 296
30.6.2 DebugLoop() 296
30.6.3 EXIT_PROCESS_DEBUG_EVENT 298
30.6.4 CREATE_PROCESS_DEBUG_EVENT-OnCreateProcess-DebugEvent() 298
30.6.5 EXCEPTION_DEBUG_EVENT-OnException-DebugEvent() 300
第31章 关于调试器 305
第32章 计算器显示中文数字 308
第33章 隐藏进程 329
第34章 高 级全局API钩取:IE连接控制 359
第35章 优 秀分析工具的五种标准 376
第五部分 64位&Windows内核6
第36章 64位计算 380
第37章 x64处理器 389
第38章 PE32+ 398
第39章 WinDbg 405
第40章 64位调试 411
第41章 ASLR 424
第42章 内核6中的会话 430
第43章 内核6中的DLL注入 433
第44章 InjDll.exe:DLL注入专用工具 448
第六部分 高 级逆向分析技术
第45章 TLS回调函数 452
第46章 TEB 466
第47章 PEB 473
第48章 SEH 481
第49章 IA-32指令 502
第七部分 反调试技术
第50章 反调试技术 526
第51章 静态反调试技术 529
第52章 动态反调试技术 554
第53章 高 级反调试技术 577
第八部分 调试练习
第54章 调试练习1:服务 598
第55章 调试练习2:自我创建 616
第56章 调试练习3:PE映像切换 627
第57章 调试练习4:Debug Blocker 648
结束语 674
索引 676
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格