
auto pwn
文章平均质量分 75
Ayakaaaa
这个作者很懒,什么都没留下…
展开
-
Angr 从入门到放弃(三)
之前我们已经学习了angr的基础操作,比如怎样建立约束模拟器,怎样添加避免执行地址,怎样把创建符号化变量,怎样读取或指定寄存器的值,怎样设置程序符号执行的目标地址,怎样hook一个地址或者直接重写某一个函数,怎样添加寄存器约束条件的,本篇文章将继续学习一些angr的基础操作。通过标准输出来指定目标地址试想如果一个程序会打印good或者bad,但是有很多个地方都打印了good,也有很多个地方都打印了bad,这就无法通过指定某一个地址来让模拟器跑,至于avoid,虽然也可以手动的将所有打印bad的地址都加进原创 2022-05-12 11:57:49 · 343 阅读 · 0 评论 -
Angr 从入门到放弃(二)
本篇直接以一个例子来进一步学习angr在CTF比赛中的实战2021年SCTF上的checkin(虽然叫checkin但是并不是很checkin就是了)这是一个auto pwn,每次连上去先进行一个sha256的验证,然后会给出一大段base64加密后的数据,接收下来然后解密并保存成二进制文件,是一个ELF格式的可执行程序,拖进ida里面会发现,程序逻辑很简单但是量很大,通过不断的读入字符串和数字,然后对数据进行异或,异或之后再和一些固定数据比较,根据比较结果进行跳转。并且每次连上去拿到的程序不一样,要求原创 2022-05-11 12:27:34 · 641 阅读 · 0 评论 -
Angr 从入门到放弃(一)
libfuzzer那个系列先放一放吧,学了学感觉也没有比AFL好用很多,所以重复性较高的东西先不着急学了吧,这里开个新坑,为了做同学出的一道auto pwn,来学学angr基础知识首先了解一下什么是符号执行:传统符号执行传统的符号执行一般是静态的,即将具体的输入值抽象成符号,执行完之后再根据符号结果解方程,举个例子就会好懂很多a=input()b=3+ac=2*bif(c*2+4==9): win()else: lose()对于上述代码,正常的程序执行是给a赋一个实际值,然后经原创 2022-05-11 01:02:50 · 1517 阅读 · 0 评论