我的工程实践选题跟CTF比赛有关,因此,我选取了三种CTF常用工具:Ollydbg(OD),IDA Pro,objdump。
1. 这些软件的开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取⽤户的现⾦么?还是别的?
IDA Pro是一个静态反编译软件;OllyDbg是动态反汇编工具,附带了脱壳脚本和各种插件;objdump是在类Unix操作系统上显示关于目标文件的各种信息的命令行程序,可用作反汇编器来以汇编代码形式查看可执行文件。
这三个工具都因为在做题练习的时候要用到,所以开始使用的。其中IDA Pro是商业软件,但是可以下载免费版本或演示/评估版本,但是免费版本有一些限制。objdump和OD则是免费使用。
2. 这些软件是如何到你手里的(邮购,下载,互相拷贝、在线使用……)
IDA pro和OD是从官网直接下载的,objdump是在Linux终端安装的。
3. 这些软件有Bug 么?又是如何更新新版本的?
Bug应该有吧,但我自己的使用过程中还没发现。IDA pro,OD的新版本都可以在官网找到。objdump在Linux终端用update更新就可以。
4. 此类软件是什么时候开始出现的,同⼀类型的软件之间是如何竞争的? 发展趋势如何?
IDA pro | IDA 由Ilfak Guilfanov创建的共享应用程序,后来由一家公司在2005年以商业产品出售 |
Ollydbg | 2.0版于2010年6月发布,在此发行版中,OllyDbg已被完全重写 |
odjdump | odjdump是GUN工具的一部分 |
IDA pro主要用于静态分析;OD多用于动态调试;odjdump使用方便,在Linux终端以一种可阅读的格式快速地了解二进制文件可能带有的附加信息。这类型的软件大多数时候可以配合一起使用,用户很多,版本也在持续更新,发展得很好。
5. 列举你在使⽤上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
软件的本质特性在于要依附于一定的环境,运行在硬件之上,不能独立存在,是一种“看不见、摸不着”的逻辑实体、不具有空间的形体特征。
开发人员可以直接看到程序源代码,但是源代码本身并不是软件本身。因此,需要这类软件将文件反编译。
6. 你个⼈第⼀次⽤此类软件是什么时候,你当时是⼏年级,班主任叫什么?在哪⾥,什么状态,当时的软件是如何得到的(买的正版,盗版,下载?)
第一次使用是在这学期,开始接触一些练习题的时候,是直接从官网下载的。
7. 你是如何精通这类软件的?它给你什么好处,坏处?
我目前用的时间还不是很长,说不上精通,我认为要精通需要在练习过程中多使用。这类工具的好处是使用这类工具时可以将PE文件反编译,提供了不同的角度查看文件,如汇编代码、伪代码、十六进制视图、流程图等,更好地了解软件的工作原理。
8. 你现在还⽤它么,或者是同类软件的不同品牌,为何?
现在还在使用,因为在分析一些题目的时候需要用到。
9. 这种软件再过10年,20年还会存在么,为什么?
我觉得应该会存在,因为是这种软件是一类分析代码的工具,除了在题目中可以用到,对于程序员来说,使用这类软件可以确保其程序按预期运行以,还可以进行恶意软件分析。