CTF--2016XDCTF全国网络安全大赛之reverse2


0x01 题目介绍


题目名称

    reverse2

题目描述

    File: XDCTF2.exe
    Size: 195584 bytes
    File Version: 1.0.0.1
    Modified: Tuesday, March 07, 2017, 00:11:41
    MD5: 1B0EA0BD4B8DA116C7D590F05BE6692A
    SHA1: 81174B9D39D467308818B0BB0C99D427ED80EB6C
    CRC32: 4D44CF29




0x02 解题要点


先点击程序运行测试,发现一闪而过。回到cmd下面进行运行。命令行运行程序,什么也没有输出。

于是觉得奇怪,一般的破解逆向程序都有输入输出提示,或者界面等消息。




于是还是先暂时用IDA载入测试一下。找到代码部分,大理一阳指F5




进入main函数。注意红色标记部分,函数入口。


又出现了多线程,注意此处我们用的是静态分析工具,代码没有执行,

不会出现逻辑分支干扰,运行错误。如果是动态分析可能已经跟踪偏了。


注意此段参数数量为1,sub_405000经过分析是计算字符串长度。

类似于我们常见的函数strlen


这是字符串计算长度函数实体部分,里面用结束\0作为判断标志位。

返回值是result




输入参数1运算,输入参数2运算,0x38,0x66文件参数运算

Name运算完成之后会得到一个TEMP字符串

lpBuffer接收返回的路径


byte_42DECC进行异或运算之后得到读写文件标记。




注意不同的逻辑判断,参数数量1,2,3。发现在3的时候有参数数量限制,长度和比较规则。

由此判断输入必须两个参数,长度为10,而且第一个解密之后和第二个相等。





算法主要函数,以及文件写入函数路径TEMP




注意释放文件函数,由于V13必须为真,才能进入数据文件写入调用阶段。

于是网上追溯,分析获取参数1和参数2值为

user:xidian2016

password:yjejbo3127

才可以生成文件。


生成 C:\Users\ROOT\AppData\Local\Temp\firefox.tmp文件




转向研究释放的文件,一般思路直接解压或者运行不行或者错误的话,


然后点击十六进制查看,发现类似压缩包文件被破坏,于是采用修复RAR测试






修复之后测试成功,但是解压需要密码。于是猜想前面的用户和密码进行尝试,

尝试了很多次,终于发现解压密码是user+pass拼接而成。于是得到解压后的

文件内容。  

xidian2016yjejbo3127



解压出flag.info文件。我勒个去,还是有文件,不过根据名称应该距离答案很近了。

再继续研究文件类型和内容。



尝试了各种方法,包括修复文件头。还是没有找到,不甘心,想啊想。发现文件的尾部特征,

非常像wav音频文件,可以找个各类文件结构头标志参考。没有想到竟然是倒序存储。

但是却没有完整,于是还是修复,然后写代码实现流倒叙存储。于是乎打开就听到了

美妙的声音。答案就在音频里面。





修复好文件,然后自己编码写程序实现二进制流倒叙存储





倒序输出结果如下。播放,仔细听答案,多听几遍测试。




输出结果:


XDFLAG{A1B2C3SUCCESSD4F5G6}


0x03 学习总结


此题目没有提示,没有任何输出。先得逆向分析查看程序逻辑和功能。

要识别出干扰的花指令和去除冗余的代码部分。中间出现一些的错误分支。

同时有文件释放写入。此处信息关键,主要注意学习不同文件尾部和

头部特征,以及文件流式操作,最后编码逆序实现成功解题,

拿到音频答案文件。



  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CTF(Capture The Flag)网络安全大赛题库是一个用于培训和测试网络安全技能的平台,它包含了各种类型的题目,如逆向工程(Reverse)、Web安全、密码学(Crypto)、杂项(Misc)等。在这个题库中,你可以找到多种类型的题目,比如:【RE】:Reverse_Checkin、SimplePE、EzGame;【Web】:f12、ezrunner;【Crypto】:MD5、password、看我回旋踢、摩丝;【Misc】:爆爆爆爆、凯撒大帝的三个秘密、你才是职业选手等。其中,每个题目都有不同的难度和挑战,可以帮助参赛者提升网络安全技能和解决问题的能力。如果你想进一步了解这些题目,可以访问网络信息安全攻防学习平台hackinglab.cn,其中包含了更多的题目和学习资源。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [长春理工大学第六届CTF网络攻防大赛题解(文末有题目下载链接)](https://blog.csdn.net/m0_64659074/article/details/123853255)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [网络信息安全攻防学习平台CTF练习-基础篇](https://blog.csdn.net/weixin_49349476/article/details/130601581)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值