不好分类的小总结
01
tip:gmpy2几个取模数函数的细微区别
函数名 | 区别 |
---|---|
f_mod(x,y) | 取得的模数与y的符号相同 |
c_mod(x,y) | 取得的模数与y的符号相反 |
t_mod(x,y) | 取得的模数与x的符号相同 |
02
收获总结:
- rop链的本质是构造假栈帧
- aslr和pie的区别,aslr不会将.bss和.data段代码地址随机化,pie是讲整个进程的地址随机化。
- 内存泄漏基本手段及怎样通过内存泄漏来搜索内存找到system()的地址
03
收获总结:
x64和x86参数传送方式不一样
使用工具查找简单的gadgets
04
收获总结:
- 符号执行其实是将输入符号化,并形式化的表示地表示符号执行地过程。有点类似于编译原理中的语义分析,都是形式化的表示程序做了什么(都可以被称作语义信息),不同在于一个是为了编译程序使得机器可以理解,一个是分析程序使得人可以更好的理解。在语义分析的过程中最麻烦的问题是状态爆炸,在符号执行的过程中也有类似的问题被称为路径爆炸;除此之外符号执行还可能遇到表达式不可解的问题。前者可以通过减支加上系统化或启发式路径选择算法来优化,也可以使用Concolic Execution,这种方法有点像深度优先搜索,在此方法基础上改进除了KLEE。后一个问题,有一种改进策略是将某些无法计算的表达式中的符号替换为缺定制,这样会造成路径不完全的问题,当然现在求解器能力也有一定的提高,也是解决问题的一种途径。
- AEG(Automatic Exploit Generation)漏洞利用自动化。像是一种理想化的数学模型,给AEG系统一个输入程序,输出一个exploit脚本或者直接弹出shell。比如现在流行的Fuzzer,给一个程序就能循序找到很多导致程序崩溃的输入。另外由于符号执行能得到大量语义信息,也可以作为AEG系统的重要一环。感觉有很多技术细节并不理解,特别是基于符号执行的漏洞挖掘,看得很迷。