逆向工程入门指南
逆向工程入门指南
Part I 代码模式
CPU简介
最简单的函数
Hello,world!
函数的开始和结束
栈
printf()与参数处理
scanf()
访问实参
一个或者多个字的返回值
指针
GOTO操作符
条件转跳
选择结构switch()/case/default
循环
对C-Strings的简单处理
用其他东西代替算数操作符
浮点数单元
数组
操纵特定的bit
用线性同余生成器来产生伪随机数
结构体
联合体
指向函数的指针
在32位环境中的64位值
SIMD
64位化
使用SIMD来处理浮点数
关于ARM的特殊细节
关于MIPS的特殊细节
Part II 重要的基础知识
有符号数的表示
字节序
内存
CPU
哈希函数
Part III 更高级些的例子
温度转换
斐波那契数列
CRC32的计算实例
网址的计算实例
循环:几个迭代器
Duff’s device
除以9
将字符串转化为数字(atoi())
内联函数
C99 的约束
无分支的abs()函数
参数可变的函数
字符串截取
toupper()函数
不正确的反汇编代码
花指令
C++
负的数组引索
Windoes 16-bit
Part IV JAVA
Java
Part V 在代码里面寻找重要又有趣的东西
可执行文件的识别
和外部世界的交流(win32)
字符串
调用断言
常量
找到真正的指令
可疑代码的模式
在追踪时使用Magic numbers
其他东西
Part VI 操作系统的特性
参数传递方法(调用规则)
本地线程储存区
系统调用
Linux
Windows-NT
Part VII 工具
反汇编器
调试器
系统调用的追踪
反编译器
其他工具
Part IX 逆向文件格式的例子
基本的异或加密
Millenium 的存档文件
Oracle RDBMS SYM-files
Oracle RDBMS MSB-files
后记
附录
附录
x86
ARM
MIPS
一些GCC库函数
一些MIPS库函数
速查表
缩略词表
杂项
快速引索
参考文献
Powered by
GitBook
后记
后记
results matching "
"
No results matching "
"