boom2
题目描述
boom2是需要逆向的一道题目:
我只说几个关键的逆向:
大体机制
本题主要是一个栈空间,附带一个寄存器。
我们输入指令的时候需要一个指令占64bit,也就是8个字节
push指令–13
直接p64(13)就是push。
pop操作指令–后面全都是
直接p64(指令),就是寄存器和pop出值得运算
给寄存器赋值的方式
指令0:p64(0)+p64(offset) 把相对于bp为offset的地址赋值给寄存器
指令1:p64(1)+p64(num) 把num赋值给寄存器
给pop出的地址赋值
直接p64(11)就是把pop出的一个地址,将寄存器的值赋值给pop出地址中的内容。
思路
有了这些东西,思路就很简单了,找到_environ的值,计算出EIP的值,更换成one_gadget。
exp 主体
1 | one = 0xf1147 |
最后: