这篇文章在网上无意中发现的,翻译一下,留作纪念。
文章原网址为:http://www.ouah.org/RevEng/t1.htm
水平有限,凑合着看,有时我也不知道作者想说什么,有时需要法律背景知识。在逆向关键技术部分,这个是重点,我会尽力做好。这个翻译不是逐字的翻译,这里提前说明,英语好的自己看原版更好。
好,下面是翻译。
/*********************************************************************************/
Linux中逆向工程软件简介
修订记录
修订版$修订:1.26 $
$ 日期:2002/09/18 06:54:57 $
摘要:这个文档的目的为了提供一些在linux下软件逆向工程的说明。由于逆向工程正迅速受到法律的制裁,笔者认为最好的应对措施是使知识的普及。这个想法是,既然讨论具体的逆向工程是非法的,那我们就讨论一般的逆向工程方法,因此不是软件的下载破解或者讲解程序的漏洞(是的,这些行为都是非法的),每个linux极客们有责任去学习逆向工程。此外,封闭源代码让我很失望,你终将会开源,抵抗是徒劳的。(因为有逆向工程<( ̄︶ ̄)>,表达了原作者作为开源的支持者对于封闭源代码的鄙视,这句话是我自己加的)。
目录:
1、概述
1.1 什么是逆向工程?
1.2 为什么要逆向工程?
1.3 法律问题
2、Linux程序的编译过程
2.1 介绍
2.2 GCC
2.3 gcc -E (预处理阶段)
2.4 gcc -S (解析+翻译阶段)
2.5 as(汇编阶段)
2.6 ld/collect2 (链接阶段)
3、收集信息
3.1 ldd
3.2 nm
3.3 /proc
3.4 netstat
3.5 lsof
3.6 fuser
4、确定程序行为
4.1 strace/truss(Solaris)
4.2 ltrace
4.3 LD_PRELOAD
4.4 gdb
5、确定感兴趣的功能
5.1 重建功能和控制信息
5.2 考虑目标
5.3 查找关键功能
5.4 绘制程序流程
6、熟悉汇编
6.1 寄存器
6.2 堆栈
6.3 二进制补码
6.4 阅读汇编
6.5 了解你的编译器
7、编写独立汇编代码
7.1 指令和副作用
7.2 操作码表
7.3 使用GUN as命令
7.4 保存寄存器的约定
7.5 使用库函数
8、使用ELF程序格式
8.1 ELF的布局
8.2 编辑ELF
9、了解版权保护
10、代码修改
10.1 修改代码的原因
10.2 指令的修改
10.3 单指令插入
10.4 单功能插入
10.5 多功能插入
10.6 工具版权保护
(先翻译到这里,下次有空继续翻译,哈哈哈哈哈哈哈,下次如果没翻译完,你还会看到这句话)