美文网首页
2018-04-21 RE第二记

2018-04-21 RE第二记

作者: wanncy | 来源:发表于2018-04-21 13:34 被阅读0次

    夜深了,写完要赶紧睡了!

    题目:ISC2016训练赛——phrackCTF

        拿到这个题目,打开PEid看看是否加了壳,观察发现是C#文件,呵!今天算是又抓了个典型,话不多说,赶紧找工具送进去反编译一波儿(哦,对了还是应该先运行一下,看看具体流程),找了个工具:dnsPy据说是神器!

    dnSpy资源管理器一角

    有点懵,这都是什么奇奇怪怪的没被识别出来的字符,不过耐着性子熟悉了一下环境:和普通IDE差不多,至于那些图标可以提示这些代表什么:这些其实是些函数与变量的标识符

    Step1:找入口点


    入口点处函数

    前段时间Qt的经验暗示我具体逻辑在那个Wm函数中

    Step2:找逻辑

    看到了一些MessageBox这不是验证模块吗,再看下发现就是输入字符串text,经过一函数加工成text2后判断一个是否与另一个函数的结果相等,不等报错......

    关键函数判断逻辑

    Step3:动态调试

    动态跟下程序,发现其中有些量是不变的,并且那个加工函数其实是个加密函数,搜了一下,是AES加密方式,key也在调试过程中暴露出来了,因此解密即可。

    AES加密的key


    flag加密后的数据

    Step4:解密脚本

    #-*-coding:utf8-*-

    import base64

    from Crypto.Cipher import AES

    from binascii import b2a_hex,a2b_hex

    key = 'pctf2016pctf2016pctf2016pctf2016'

    result = 'x/nzolo0TTIyrEISd4AP1spCzlhSWJXeNbY81SjPgmk='

    deb64 = base64.b64decode(result)

    obj = AES.new(key, AES.MODE_ECB)

    print(b2a_hex(obj.decrypt(deb64)))

    转成字符串得flag

    相关文章

      网友评论

          本文标题:2018-04-21 RE第二记

          本文链接:https://www.haomeiwen.com/subject/apetlftx.html