《有趣的二进制:软件安全与逆向分析》内容简介|作者

内容简介

《有趣的二进制:软件安全与逆向分析》通过逆向工程,揭开人们熟知的软件背后的机器语言的秘密,并教给读者读懂这些二进制代码的方法。理解了这些方法,技术人员就能有效地Debug,防止软件受到恶意攻击和反编译。本书涵盖的技术包括:汇编与反汇编、调试与反调试、缓冲区溢出攻击与底层安全、钩子与注入、Metasploit 等安全工具。

作者简介:

爱甲健二(作者)

曾就职于NetAgent株式会社,负责逆向工程、恶意软件分析、渗透测试等工作。2008年7月任董事。此后,在株式会社Fourteenforty技术研究所(现更名为株式会社FFRI)从事计算机安全技术研究和软件开发工作。

曾参加Black Hat Japan 2008(日本)、HITCON 2011(中国台湾)等会议,并发表重大研究成果。着有《汇编语言教程》(アセンブリ言语の教科书)、《TCP/IP教程》(TCP/IPの教科书)等。

周自恒(译者)

技术图书译者,IT、编程及自然科学爱好者,初中时曾获得信息学奥赛天津赛区一等奖,曾任某管理咨询公司战略技术总监。

译有《图解CIO工作指南(第4版)》《大数据的冲击》《代码的未来》《30天自制操作系统》《图解密码技术》《家用游戏机简史》等。

目 录:

第1章通过逆向工程学习如何读懂二进制代码

1.1先来实际体验一下软件分析吧

1.1.1通过Process Monitor的日志来确认程序的行为

1.1.2从注册表访问中能发现些什么

1.1.3什么是逆向工程

专栏:逆向工程技术大赛

1.2尝试静态分析

1.2.1静态分析与动态分析

专栏:Stirling与BZ Editor的区别

1.2.2用二进制编辑器查看文件内容

1.2.3看不懂汇编语言也可以进行分析

1.2.4在没有源代码的情况下搞清楚程序的行为

1.2.5确认程序的源代码

1.3尝试动态分析

1.3.1设置Process Monitor的过滤规则

1.3.2调试器是干什么用的

1.3.3用OllyDbg洞察程序的详细逻辑

1.3.4对反汇编代码进行分析

专栏:什么是寄存器

1.3.5将分析结果与源代码进行比较

专栏:选择自己喜欢的调试器

1.4学习*基础的汇编指令

1.4.1没必要记住所有的汇编指令

1.4.2汇编语言是如何实现条件分支的

1.4.3参数存放在栈中

1.4.4从汇编代码联想到C语言源代码

1.5通过汇编指令洞察程序行为

1.5.1给函数设置断点

1.5.2反汇编并观察重要逻辑

专栏:学习编写汇编代码

第2章在射击游戏中防止玩家作弊

2.1解读内存转储

2.1.1射击游戏的规则

2.1.2修改4个字节就能得高分

2.1.3获取内存转储

2.1.4从进程异常终止瞬间的状态查找崩溃的原因

2.1.5有效运用实时调试

2.1.6通过转储文件寻找出错原因

专栏:除了个人电脑,在其他计算机设备上运行的程序也可以进行

分析吗

专栏:分析Java编写的应用程序

2.2如何防止软件被别人分析

2.2.1反调试技术

专栏:检测调试器的各种方法

2.2.2通过代码混淆来防止分析

专栏:代码混淆的相关话题

2.2.3将可执行文件进行压缩

2.2.4将压缩过的可执行文件解压缩:解包

2.2.5通过手动解包UPX来理解其工作原理

2.2.6用硬件断点对ASPack进行解包

专栏:如何分析.NET编写的应用程序

第3章利用软件的漏洞进行攻击

3.1利用缓冲区溢出来执行任意代码

3.1.1引发缓冲区溢出的示例程序

3.1.2让普通用户用管理员权限运行程序

3.1.3权限是如何被夺取的

3.1.4栈是如何使用内存空间的

3.1.5攻击者如何执行任意代码

3.1.6用gdb 查看程序运行时的情况

3.1.7攻击代码示例

3.1.8生成可用作shellcode的机器语言代码

3.1.9对0x00的改进

专栏:printf类函数的字符串格式化bug

3.2防御攻击的技术

3.2.1地址随机化:ASLR

3.2.2 除存放可执行代码的内存空间以外,对其余内存空间尽量

禁用执行权限:Exec-Shield

3.2.3 在编译时插入检测栈数据完整性的代码:StackGuard

3.3绕开安全机制的技术

3.3.1使用libc中的函数来进行攻击:Return-into-libc

3.3.2利用未随机化的模块内部的汇编代码进行攻击:ROP

专栏:计算机安全为什么会变成猫鼠游戏

第4章自由控制程序运行方式的编程技巧

4.1通过自制调试器来理解其原理

4.1.1亲手做一个简单的调试器,在实践中学习

4.1.2调试器到底是怎样工作的

4.1.3实现反汇编功能

4.1.4运行改良版调试器

4.2 在其他进程中运行任意代码:代码注入

4.2.1向其他进程注入代码

4.2.2用SetWindowsHookEx劫持系统消息

4.2.3将DLL路径配置到注册表的AppInit_DLLs项

4.2.4 通过CreateRemoteThread在其他进程中创建线程

4.2.5注入函数

4.3任意替换程序逻辑:API 钩子

4.3.1API 钩子的两种类型

4.3.2用Detours实现一个简单的API 钩子

4.3.3修改消息框的标题栏

专栏:DLL注入和API钩子是 黑客 技术的代表?

第5章使用工具探索更广阔的世界

5.1 用Metasploit Framework验证和调查漏洞

5.1.1什么是Metasploit Framework

5.1.2安全漏洞的信息从何而来

5.1.3搭建用于测试漏洞的环境

5.1.4利用漏洞进行攻击

专栏:深入探索shellcode

5.1.5一个ROP的实际例子

5.2用EMET观察反ROP的机制

5.2.1什么是EMET

5.2.2Anti-ROP的设计获得了蓝帽奖

5.2.3如何防止攻击

5.2.4搞清楚加载器的逻辑

5.2.5DLL的程序逻辑

5.2.6CALL-RETN检查

5.2.7如何防止误判

5.2.8检查栈的合法性

5.3用REMnux 分析恶意软件

5.3.1什么是REMnux

5.3.2更新特征数据库

5.3.3扫描目录

5.4 用ClamAV检测恶意软件和漏洞攻击

5.4.1ClamAV的特征文件

5.4.2解压缩.cvd文件

5.4.3被检测到的文件详细信息

5.4.4检测所使用的打包器以及疑似恶意软件的文件

5.5 用Zero Wine Tryouts分析恶意软件

5.5.1REMnux与Zero Wine Tryouts的区别

5.5.2运行机制

5.5.3显示用户界面

5.5.4确认分析报告

专栏:尝试开发自己的工具

5.6尽量减少人工分析:启发式技术

5.6.1恶意软件应对极限的到来:平均每天60000个

5.6.2启发式技术革命

5.6.3用两个恶意软件进行测试

附录

A.1安装IDA

A.2安装OllyDbg

A.3安装WinDbg

A.4安装Visual Studio 2010

A.5安装Metasploit

A.6分析工具

Stirling / BZ Editor

Process Monitor

Process Explorer

Sysinternals工具

兔耳旋风

参考文献

后记

《有趣的二进制:软件安全与逆向分析》文字版电子书[EPUB]

为您推荐

《谢米尔的小潜水艇》内容简介|作者

内容简介 好的幻想小说都是成长小说,它长久不衰的魅力,在于它能帮孩子处理成长过程中必须面对的内心冲突。它是一面镜子,能照出孩子的自我;是孩子们演练内心冲突的一个舞台;是一次孩子们的自我发现之旅。 日本大幻想文学..

《高考英语高分作文字帖》内容简介|作者

内容简介书籍特色 这是一套对英文字母、单词、短语、句子、文章书法练习的字帖,根据习字者的书法水平和英语程度,由浅入深,由易到难,通过循序渐进的练习,帮助习字者快速提高书..

《魏晋唐小楷-中国历代名碑名帖精选》内容简介|作者

内容简介书籍特色 为传承和发扬传统文化,江西美术出版社北京分社推出《中国历代名碑名帖精选》系列图书,让我们从这里抵达华夏文明的深处。  书法艺术是中华文化瑰宝,古人..

《王福庵印谱-全3册》内容简介|作者

《硬笔楷书入门字帖》内容简介|作者

内容简介书籍特色 广大学生和书法爱好者书写汉字,力求规范、端正、整洁,能用钢笔熟练地书写正楷字,逐步提高书写速度,规范书写习惯。随着国家对传统文化越来越重视,写一手好的..

《李文采临王羲之圣教序碑》内容简介|作者

内容简介本书由僧人怀仁集王羲之书而成。怀仁从唐内府所藏王羲之书迹及民间王字遗墨中集《圣教序》, 历时二十四年。前人评价此碑: “天衣无缝, 胜于自运”, “逸少真迹, 咸萃其中”。由于王羲之真迹不存, 此碑是后人..

《李文采临李邕李思训碑》内容简介|作者

内容简介本书精选历代著名碑帖 (自殷商至近代) 影印出版, 纵贯中国书法史, 更加精当合理, 底本注重艺术性与版本价值相结合, 是广大读者学习书法艺术的首选法帖。碑高一丈一尺三寸六分, 宽四尺八寸五分。字共三十行,..