crackme---攻防世界

Posted chuxinbubian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了crackme---攻防世界相关的知识,希望对你有一定的参考价值。

首先下载附件之后,查壳

技术图片

虽然什么也没有发现,但是看一下区段就知道,这个是北斗的壳。所以我们首先载入od开始把壳脱掉

技术图片

这里面也可以看到pushfd和pushad是北斗壳的特征

这里面我使用是esp定律脱壳,当然也可以使用f8单步,或者镜像法,这里要说一下北斗的壳可以直接下断点at Getversion直接找到OEP

接下来开始脱壳

技术图片

技术图片

技术图片

F9运行到这里,删除硬件断点,之后就可以dump这里要说的是od自带的脱壳工具有的时候不太好用,也可以自己添加,这里就不说了

技术图片

 

 技术图片

脱壳完成继续向下分析,载入ida F12查看

技术图片

交叉引用看一下基本的结构

技术图片

技术图片

技术图片

技术图片

F5看一下

技术图片

这里可以看到我们要输入42 长度的字符串,

技术图片

先对输入的字符串长度进行检测是否是42,接着对输入的字符串进行操作,用python如下

技术图片

serial_1 = "this_is_not_flag"
serial_2 = [0x12,4,8,0x14,0x24,0x5c,0x4a,0x3d,0x56,0xa,0x10,0x67,0,0x41,0,1,0x46,0x5a,0x44,0x42,0x6e,0x0c,0x44,0x72,0x0c,0x0d,0x40,0x3e,0x4b,0x5f,2,1,0x4c,0x5e,0x5b,0x17,0x6e,0xc,0x16,0x68,0x5b,0x12,0x48,0x0e]
result = ""
for i in range(42):
    result += chr(serial_2[i] ^ ord(serial_1[i%16]))
    print(result)

这里的flag为flag59b8ed8f-af22-11e7-bb4a-3cf862d1ee75

 

以上是关于crackme---攻防世界的主要内容,如果未能解决你的问题,请参考以下文章

攻防世界 Reverse高手进阶区 3分题 crackme

攻防世界 Reverse高手进阶区 3分题 crackme

攻防世界--crackme

xctf攻防世界——crackme writeup

逆向-攻防世界-CRACKME

crackme---攻防世界