reverse_box
这是一道攻防世界的逆向进阶中的一道题目。攻防世界里少给了一些条件,道中一开始看的时候,就非常懵逼,然后找到原题后看到提示:
挑战描述
$ ./reverse_box $ {FLAG}
95eeaf95ef94234999582f722f492f72b19a7aaf72e6e776b57aee722fe77ab5ad9aaeb156729676ae7a236d99b1df4a reverse_box.7z
这个二进制文件的用法是把你输入的第二个命令行参数当flag,然后程序给出一堆十六进制的数。
但是如果输入的第二个命令行参数相同,程序输出的十六进制数也可能不相同。
除去查壳等一系列工作,将文件拖入IDA中进行分析,
发现了相同输入但是不同输出的原因:程序里有一个随机函数,以时间作为种子:
然后通过这个随机数构造了一个数组,然后按照输入的flag,对应输出数组中的值.
gdb写脚本爆破
1 | set $i=0 |