首页
社区
课程
招聘
[原创] 看雪ctf 207 第三题-CrackMe
发表于: 2017-10-30 11:06 3380

[原创] 看雪ctf 207 第三题-CrackMe

aqs 活跃值
5
2017-10-30 11:06
3380

第三道题目出的有点问题,导致了问题多解的情况,有点忙,正规的思路还没有来的及分析,只能写一下非预期的做法了 = =

运行效果如上,要求输入一个序列号即输入ok,错误则什么都不输出
主要函数如下

程序加上了很多反调试,一言不合就 exitprocess
基本逻辑是

string 是程序生成的字符串,是固定的, v11 是我们输入的字符串,v12,v10 是两个串的长度,所以输入的参数是
( 程序串,输入串-len(程序串),len(程序串))

check1 的代码有点长, 不过调试的时候发现 a3 也就是上面 v10 的长度是固定的0x40 ,所以会直接跑到 default那里执行

sub_43B1f0 如下
也是一堆的 case什么的, 不过前面是进行字符串的比较,如果字符串一样就可以过,跳到check2,虽然不知道是怎么回事,但是总之是进入第二个check了,先看看第二个check吧

check2 的输入是 一堆 01, base64decode(base64decode(输入串))

进去看看,发现程序有点复杂呀

一个byte 一个byte的取 base64decode(base64decode(输入串))
然后后面进行一堆的操作和判断,return 0,不过最前面的地方有一个
input_chr==0x20 就break 了,直接就跳到了后面 return 1
所以这里只要可以构造出一个 0x20 出来就赢了
最后构造
II183920f00e15a0433ee3a8fc90dd9ac164c4142ccf63ca189a8f645ec96ff8de
可以直接过
呃,好吧,这怎么看都不是flag的样子
发现有一些类似莫斯点码的东西,不知道有什么用

嘛,暂时就先到这里吧,期待大佬 正规writeup = =

 
 

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//