美团CTF2021 高校安全挑战赛 Random
美团CTF2021 高校安全挑战赛 Random
分析
首先查壳,发现没有壳32位exe,然后放入IDA中分析
首先看到congratulation这里,就知道条件是要v7为42,然后发现v7是在上面的if( a == 43 )这个判断语句中,分析一下。得出b这个函数不断与 byte_502138这个函数去比较,每一位,也就是说能知道这个b函数是为42个成员在里面
然后也可以知道这个b函数就是找到flag的关键,看到最开头的部分
要有scanf的输出也就能知道a的初始值为0,再结合这个if的条件和它对应的else语句知道这里是不断的与随机数去异或能得到flag,然后我直接去动态调试去找第一个随机数的种子
然后开始写脚本
脚本
c
|
得到flag
plaintext
flag{3e625fe0-fb18-4f87-93c1-1ec217f86796} |
总结
这里基本的分析还是能动的,如果实在是不知道可以去动态调试一下看看总体的过程。然后就是对srand和rand函数的了解要深刻,这里一开始自己写脚本的时候一直错在srand和rand函数这里,后来看了别人的WP才慢慢弄懂。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 逆向上分之路!
评论
Powered By Valine
v1.5.1
v1.5.1