2018/8

不好分类的小总结

01

tip:gmpy2几个取模数函数的细微区别

函数名 区别
f_mod(x,y) 取得的模数与y的符号相同
c_mod(x,y) 取得的模数与y的符号相反
t_mod(x,y) 取得的模数与x的符号相同

02

收获总结:

  1. rop链的本质是构造假栈帧
  2. aslr和pie的区别,aslr不会将.bss和.data段代码地址随机化,pie是讲整个进程的地址随机化。
  3. 内存泄漏基本手段及怎样通过内存泄漏来搜索内存找到system()的地址

03

收获总结:

  1. x64和x86参数传送方式不一样

  2. 使用工具查找简单的gadgets

04

收获总结:

  1. 符号执行其实是将输入符号化,并形式化的表示地表示符号执行地过程。有点类似于编译原理中的语义分析,都是形式化的表示程序做了什么(都可以被称作语义信息),不同在于一个是为了编译程序使得机器可以理解,一个是分析程序使得人可以更好的理解。在语义分析的过程中最麻烦的问题是状态爆炸,在符号执行的过程中也有类似的问题被称为路径爆炸;除此之外符号执行还可能遇到表达式不可解的问题。前者可以通过减支加上系统化或启发式路径选择算法来优化,也可以使用Concolic Execution,这种方法有点像深度优先搜索,在此方法基础上改进除了KLEE。后一个问题,有一种改进策略是将某些无法计算的表达式中的符号替换为缺定制,这样会造成路径不完全的问题,当然现在求解器能力也有一定的提高,也是解决问题的一种途径。
  2. AEG(Automatic Exploit Generation)漏洞利用自动化。像是一种理想化的数学模型,给AEG系统一个输入程序,输出一个exploit脚本或者直接弹出shell。比如现在流行的Fuzzer,给一个程序就能循序找到很多导致程序崩溃的输入。另外由于符号执行能得到大量语义信息,也可以作为AEG系统的重要一环。感觉有很多技术细节并不理解,特别是基于符号执行的漏洞挖掘,看得很迷。
0%