第一题


程序很简单,只是一个常规的rc4加密逆向题

题目对一些变量进行简单的混淆,并实现名为_puts函数迷惑选手,在_puts函数中对key进行了一次rc4加密,如果漏了这一步,就解不出答案。

from Crypto.Cipher import ARC4
key = "Th1sIsTheK3y"
enc = "\x1C\x61\x97\x34\x28\x69\xFA\x54\xDA\x3A\x2B\xBB\x05\x09\x16\x38\xF3\xCF\xD8\xA5\x12\x7E\x67\x44"
ob2 = ARC4.new(key)
new_key = ob2.decrypt(key)

ob = ARC4.new(new_key)
flag = ob.decrypt(enc)
print flag

 

flag:bdctf{YOU_CRAKE_THE_RC4}

第二题


题目提示使用angr

贴一下脚本

以后再写一篇详细的angr和z3使用

import angr

p = angr.Project("re2", load_options={'auto_load_libs': False})
init = p.factory.blank_state(addr=0x402E57)
sm = p.factory.simgr(init)
sm.explore(find=(0x402F80), avoid=(0x402F82))
state = sm.found[0]

print state.posix.dumps(1)

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注