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---攻防世界的主要内容,如果未能解决你的问题,请参考以下文章