GCTF2017-debug.exe

准备期末考试,这段时间只能从xctf oj上面看以前没做的ctf拿来做了

打开是一个.net,拖ILSpy,看代码流程
debug
流程还是很清晰的,读取用户输入,然后作比较就好。(a==b)这里就是比较点,再往前面看,b是运行时生成的,再看下生成b的那段函数,直接用Python重写一次,print即可。
以下为生成代码:

def num_xor(a0,a1):
    num_int=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113]
    return num_int[a1]^a0

def compare(a0,a1):
    a2=''
    num=0
    if(0<len(a0)):
        c=a0[num]
        num2=1
        while(num<len(a0)):
            c=a0[num]
            num2=1
            c=chr(num_xor(ord(c),num2))
            num2+=1
            while(num2<15):
                c=chr(num_xor(ord(c),num2))
                num2+=1
            a2+=c
            num+=1
    return a2

def main_in():
    a="CreateByTenshine"
    a_int32=''.join([str(ord(j)) for j in a])
    a3=compare(a,15)
    m1.md5.new()
    m1.update(a3)
    print "flag{"+m1.hexdigest().upper()+"}"

import md5
if __name__ == '__main__':
    main_in()

flag{967DDDFBCD32C1F53527C221D9E40A0B}

以前没接触过.net,ILSPy好像有一个debugger插件,不过官网和Github没找到,有动态调试就更方便了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值