bugku-逆向-2、easy_vb

本文详细解析了一次MCTF挑战的过程,从下载并运行程序开始,通过PEiD检查软件是否加壳,使用IDA进行反编译,发现软件由MFC编程且未加壳。在IDA中搜索关键字如'flag'、'CTF',最终找到隐藏的MCTF{N3t_Rev_1s_E4ay}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载程序,运行一下:
在这里插入图片描述

再用PEiD看一下有没有加壳:
在这里插入图片描述

发现是MFC编程的软件并没有加壳,再用IDA打开它:
在这里插入图片描述

F5反编译伪代码,发现并没有源代码,这就是上面我们说的MFC编程的原因。
只能看汇编代码了,先搜索文本:flag、CTF:
在这里插入图片描述

刚好.text代码段中找到了MCTF{N3t_Rev_1s_E4ay}。提交的flag是flag{N3t_Rev_1s_E4ay}。
用OD打开,程序停在入口处:
在这里插入图片描述

在这搜索字符串flag、CTF:

并没有发现flag。
在这里插入图片描述

这时候我们发现程序的注释中写着:“下面的call跳转到00401A50”,暗示我们程序还有另外的程序领空,
而且我们可以在程序的断点和线程中也可以看到:在00401238有一个一次性的断点,有一条线程的入口地址是00401238:
在这里插入图片描述

直接在断点上右击,在反汇编窗口中跟随,就可以看到00401238,之后就可以直接开始搜索字符串了。
在这里插入图片描述

如果要让程序也按正常步骤运行到00401238,点击运行按钮17次,也就是外层代码运行17次之后,会跳转到地址00401238,也就是vb6chs.dll程序领空(动态链接库(Dynamic Link Library或者Dynamic-link library)缩写为vb6chs.dll,又称为动态链接库,是微软公司在微软视窗操作系统中实现共享函数库概念的一种实作方式。这类文件中封装了系统正常运行所不可或缺的大量代码。VB6CHS.DLL是VB的中文语言包的动态链接库文件)。
在这里插入图片描述

到了地址00401238之后,使用插件中文搜索引擎->智能搜索:
在这里插入图片描述

找到MCTF{N3t_Rev_1s_E4ay}
在这里插入图片描述

和它在IDA中的地址是一致的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值