前言
可能是第一次单字节手动爆flag
开始
这题是一个涉及到so动态调试的apk。我之前都是用红米note来进行动态调试的,因为android4.4感觉脱壳比较容易,但这次的版本要求为api 26也就是android8.0.这就有点蛋疼了,还好我自己用的手机够格,所以就拿自己手机上了。先是搭了一波环境,64位32位搞不清了都,ida附加了半天没附加上去,最后使用64位来调的。
check1函数的过程比较的简单,关键在native层的check函数。
check
函数中最棘手的恐怕是srand()
和rand()
这两个随机数了,它是产生一个随机数然后和我们的输入相加,在和一个固定的数组进行比较,flag
长度为28位。我采用的方法比较笨,就是动态去跟,得到每次的随机数然后求出正确的v4
,最后可以得到全部的输入序列。在通过脚本解密序列,得到flag。我在求解flag时,懒得的整体的脚