有趣的二进制:软件安全与逆向分析

admin 2023年09月03日 51次浏览

有趣的二进制:软件安全与逆向分析

图书封面;

副标题:无;

作者: [日] 爱甲健二;

内容简介:

译者序

这是一本讲“底层”知识的书,不过似乎现在大部分计算机用户都跟底层没多少缘分了。很多人说,写汇编语言的时候总得操心寄存器,写 C 语言的时候总得操心内存,而如今到了 Web 当道的时代,不但底层的事情完全用不着操心了,就连应用层的事情也有大把的框架来替你搞定。想想看,现在连大多数程序员都不怎么关心底层了,更不要说数量更多的一般用户了。当然,这其实是一件好事,这说明技术进步了,分工细化了,只需要一小部分人去研究底层,剩下大部分人都可以享受他们的伟大成果,把精力集中在距离解决实际问题更近的地方,这样才能解放出更多的生产力。
话说回来,底层到底指的是什么呢?现代数字计算机自问世以来已经过了将近 60 年,在这 60 年中,计算机的制造技术、性能、外观等都发生了翻天覆地的变化,然而其基本原理和结构依然还是 1946 年冯 · 诺依曼大神所描绘的那一套。冯 · 诺依曼结构的精髓在于,处理器按照顺序执行指令和操作数据,而无论指令还是数据,它们的本质并没有区别,都是一串二进制数字的序列。换句话说,“二进制”就是现代计算机的最底层。我们现在用计算机上网、聊天、看视频、玩游戏,根本不会去考虑二进制层面的问题,不过较早接触计算机的一代人,其实都曾经离底层很近,像这本书里面所讲的调试器、反汇编器、二进制编辑器、内存编辑器等,当初可都是必备的法宝,也给我们这一代人带来过很多乐趣。
在 MS-DOS 时代,很多人都用过一个叫 debug 的命令,这就是一个非常典型的调试器。准确地说,debug 的功能已经超出了调试器的范畴,除了调试之外,它还能够进行汇编、反汇编、内存转储,甚至直接修改磁盘扇区,俨然是那个年代的一把“瑞士军刀”。我上初中的时候,学校上计算机课用的电脑在 BIOS 里禁用了软驱,而且还设置了 BIOS 密码,于是我运行 debug,写几条汇编指令,调用系统中断强行抹掉 CM

目录预览:

​ 有趣的二进制:软件安全与逆向分析
版权声明
译者序
免责声明
关于商标和注册商标
前言
第 1 章 通过逆向工程学习如何读懂二进制代码
1.1 先来实际体验一下软件分析吧
1.1.1 通过 Process Monitor 的日志来确认程序的行为
1.1.2 从注册表访问中能发现些什么
1.1.3 什么是逆向工程
1.2 尝试静态分析
1.2.1 静态分析与动态分析
1.2.2 用二进制编辑器查看文件内容
1.2.3 看不懂汇编语言也可以进行分析
1.2.4 在没有源代码的情况下搞清楚程序的行为
1.2.5 确认程序的源代码
1.3 尝试动态分析
设置 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 给函数设置


[EPUB下载]