[HDCTF2019]MFC
前言
最近刷的题难度都不是很高,主要都是学习新知识。这题主要是考察C++ 的MFC的(主要是加了个vmp1的壳,vmp的壳好像都都挺难脱的)。
参考资料:
简单了解一下MFC
MFC(微软基础类库),主要是作用在Windows平台的GUI开发(不过好像已经有点过时了)
Windowns消息机制
- API 应用程序编程接口(Application Programming Interface)
WindowsAPI函数是通过C实现的,主要在windows.h
头文件中进行了声明
- 窗口和句柄
一个Windows应用程序至少要有一个窗口,称为主窗口。窗口时屏幕上的一块矩形区域,是Windows应用程序与用户进行交互的接口,利用窗口可接受用户输入及显示输出。
而每个窗口都有一个唯一标识的句柄(HWND)
- 消息和消息队列
Windows程序设计是一种基于“消息”的事件驱动模式。简单来说就是:对于一个窗口,操作系统会感知各种事件(如点击鼠标,键盘敲击等),这些事件被包装成消息,应用程序通过一个虚幻来不断从消息队列中取出消息,并进行响应。
简单了解一下xspy的使用
界面很简单,长这样
用法就是把那个“放大镜”拖到要检测扫描的窗口上就行了
作用:可以扫出这个窗口的一些基本信息,包括监听的消息和处理该消息的函数地址(我是这么理解的)
本题解法
硬岔vmp先不管,打开文件弹了个窗
xspy扫一下
得到的信息:
窗口句柄(HWND=001FADE)
句柄后括号里面那串信息(创建窗口时的类名):
944c8d100f82f0c18b682f63e4dbaa207a2f1e72581c2f1b
一个奇怪的消息监听:
OnMsg:0464,func= 0x00402170(mfc.exe+ 0x002170 )
PS:这里解释一下OnMsg,0x0464可以理解为消息内容(其他WM开头那些是属于系统消息),后面的func可以理解为,接受到这个消息后所跳转的响应函数
直接写个脚本发送这条消息给这个窗口触发一下试试(不会写,抄其他师傅的exp学习一下)
1 |
|
触发后窗口变了
这已经提示得很明显了,上DES解密,密文就是长串类名
Comments