-
-
[原创]看雪CTF2019Q3 第五题 魅影舞姬 WP
-
发表于: 2019-9-25 22:50 4313
-
这道题目浪费的时间太多,在check_fun函数里面绕了半天,找不到它在干啥,于是和度娘交流了2个多小时。
然后只能从后面往前面跟踪,发现0x4AC030这个全局变量的值必须为4,而在sub_403832这个函数里面他有4次递增机会,也就是说它必须过4关。
跟进去看看吧,发现一个很奇怪的字符串unk_4AC038,它在__static_initialization_and_destruction_0里面被初始化成一个特殊串,
"**************@************-************--**----*****-***-**-*****-***#**-*****--*****-******-*****-******-------******-*-----******---**-*******-****--*****************"
看看操作,很明显这个一个迷宫,每两比特为一步,分别代表上下左右,*是墙、@是起点、_是路,#是目标。
一开始我还以为4个迷宫是一样的,但是跟到第二个之后才发现我错了。原来sub_403522这个函数居然会把迷宫按列进行变化。
好吧,就算这样这个迷宫也难不倒我。我很开心的画了张图,走了4个迷宫,算是休息一下。然后把答案继续往上推导。
上面有一个md5函数(它就是叫这个名字,不是我分析出来),看了作者怕迷宫被走出多条路,所以加了个md5校验。
再往上,就发现这4个路径前面3个被合到了一处,而第4个则是分别与前3个进行运算的结果。其中有两次使用sub_4023E4,一次使用sub_40202A。
跟进去分析操作的时候被一大堆bit操作绕晕了,真是绕的头都大的,感觉每个子函数都能看懂,但就是不知道在干嘛(此间浪费2小时)。
于是我觉得这个应该是某种加解密函数,而且看sub_4023E4和sub_40202A的输入输出完全一样,没准互为加解密。于是拿到od里面测试一下,果然成功。
这个时候我突然想起来有种算法叫3des......
在我备注的Maybe_base64里跟踪了半天,最后确认了它就是一个普通的base64解码函数(此间浪费半小时),我想我当时是真晕了,一开始就备注了base64,我居然还在里面跟踪验证。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
- [原创]第十二题 深入内核 4064
- [原创]第十一题 步步逼近 4524
- [原创]第八题 AI核心地带 3453
- [原创] 第七题 智能联盟计划 3623
- 第六题 至暗时刻 10387