约束求解与符号执行在逆向中应用
约束求解与符号执行在逆向中应用
笔记
angrEXP.py
1 | import angr,sys |
做题
[GDOUCTF 2023]Check_Your_Luck
解这个方程组:
$$
\displaylines{
\displaystyle
\begin{cases}
23v-32w+98x+55y+90z=333322\\
123v-322w+69x+67y+32z=707724\\
266v-34w+43x+8y+32z=1272529\\
343v-352w+58x+65y+5z=1672457\\
231v-321w+938x+555y+970z=3372367
\end{cases}
}
$$
没有找到合适的chatgpt…都很蠢…于是z3
1 | from z3 import * |
[羊城杯 2020]login
python逆向,z3求解:
1 | from z3 import * |
xor逆向:
1 |
|
[柏鹭杯 2021]baby_python
pyinstxtractor发现被加密,反编译pyimod00_crypto_key.pyc,取得密钥,反编译pyimod02_archive.pyc,发现加密逻辑为zlib加密,exp:
1 | inf=open(r'...\baby_python.baby_core.pyc.encrypted','rb') |
反汇编,用z3+md5解决
[HGAME 2023 week2]math
注意第2~4行一定不能写成这样:
1 v10=v11=v12=[0]*25这样v10、v11、v12会指向同一个地址,即为同一个变量。
1 | from z3 import * |
挺烦的z3
[MoeCTF 2022]EquationPy
1 | from z3 import * |
[网鼎杯 2020 青龙组]singal
符号执行
1 | import angr,sys |
[HUBUCTF 2022 新生赛]Anger?Angr
这题离谱,尝试angr,发现结果是一堆乱码…
1 | import angr |
尝试z3,就是麻烦点。
1 | from z3 import * |
[网鼎杯 2020 青龙组]singal
学习Ponce插件的使用。
随便输入15个字符,在read
函数的scanf
后下断点,找到输入字符后,选中右键“Symbolic->Symbolize memory”,然后在vm_operad
中判断失败的jz跳转处下断点,并右键“SMT Solver->Solve Formula->最后一个”,即可解出1字节。因为输入不对,手动把EIP设为正确并进入下一轮,再次求解1字节,重复可得flag。
[CISCN 2021初赛]babybc
5x5线性规划,z3做:
1 | from z3 import * |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 The Blog of Monoceros406!