HDCTF2019-MFC刷题记录

MFC

第一次遇到,记录一下;

image-20230418001312342

既然是控件,那就是调用API,这个用了普通的VMP(有时间一定会学),今天就用工具。

用xspy分析一下这个程序:

image-20230418001413585

可以看到调用了不少API,同时发现

OnMsg:0464,func= 0x00402170(mfc.exe+ 0x002170 )

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#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;
}
image-20230418001544207

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

00190E3E(944c8d100f82f0c18b682f63e4dbaa207a2f1e72581c2f1b)

image-20230418001611346