[HDCTF2019]MFC

打开程序,会显示一个窗口

 

对程序进行查壳,会发现是一个MFC写的VMProtect保护的32位程序。

 

用MFC事件处理函数的工具xspy打开,将放大镜对准分析的字符串会发现

 

这里有个OnMsg:0464 这是一个没有系统库名的,而且数字特殊,所以写一个程序发送一个有关这个数字的消息,用FindWindow函数获取窗口句柄,SendMessage函数发送消息。

#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
​
int main()
{
    HWND h = ::FindWindowA(NULL, "Flag就在控件里");
    if (h)
    {
        SendMessage(h, 0x464, NULL, NULL);
    }
    else{
        printf("false");
    }
​
    system("pause");
    return 0;
}
​

会发现窗口变成了这样,我们拿到了一个DES的key

 

在xspy中会发现有一串这样的字符串,仔细观察发现句柄有一串奇怪字符

 

944c8d100f82f0c18b682f63e4dbaa207a2f1e72581c2f1b

尝试DES解密

 

得到flag

thIs_Is_real_kEy_hahaaa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值