逆向-攻防世界-zorropub
基本操作,file,strings等看看有没有什么有用的信息,然后再运行试试。
接下来IDA载入,程序逻辑很简单。
似乎是md5,但是有随机数,这也算不出来,只能爆破了。
随机数和我们的输入有关系,直接写脚本看看满足条件的数。
import subprocess
l = []
for i in range(65535):
t = 0
j = i
while i:
i = i & (i - 1)
t += 1
if t == 10:
l.append(j)
上边l[]数组就是满足程序判断的数,下边就是爆破MD5等算法的爆破脚本,压根不会写这个,底下的是抄袭的,可见,就算有思路,不会编程,也还是做不出来,我觉得这道题让我学会了底下这段脚本就够了。
for i in l:
proc = subprocess.Popen(['./zorro_bin'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
out = proc.communicate(('1\n%s\n' % i).encode('utf-8'))[0]
if "nullcon".encode('utf-8') in out:
print(out)