简单MFC程序开发-C++反编译肉鸡养成
Posted 向往生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单MFC程序开发-C++反编译肉鸡养成相关的知识,希望对你有一定的参考价值。
目录
一、需求
为了更好的理解MFC(C++)程序的结构,拆解方法,需要首先创建一个MFC窗口程序,对于只了解一点C++的工程师来说,走一遍MFC程序开发的流程,是很有必有的,无奈C++开发工具的版本太多,很难找到visual studio 2022版本的,因此有必要写一写。
二、程序效果
效果1:鼠标左键点击,显示坐标
效果2:按下按键,显示键值
三、实现过程
1.创建MFC程序
打开visual studio 2022选择创建MFC程序。
选择单个文档,MFC标准界面
会看到产生了5个类其中MainFrame是主窗体,view是类似窗体上的画布。
2.修改添加功能
2.1 修改标题
不像基于对话框的窗体,可以在属性页面直接更改标题,需要在窗体创建前的PreCreateWindow里初始化窗体名称,但要先取消默认窗体的设置。
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)//更改窗体的一些参数
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
cs.style &= ~FWS_ADDTOTITLE;/*在单文档的界面中,程序默认的窗口样式是WS_OVERLAPPEDWINDOW和FWS_ADDTOTITLE,
FWS_ADDTOTITLE是MFC特定的一种样式,指示框架将文档标题添加到窗口标题之上,如果
想让窗口显示自己的标题,只需要将窗口的FWS_ADDTOTITLE样式去掉即可。*/
cs.lpszName = TEXT("Hali-- C++反编译demo程序");
return TRUE;
2.2 增加鼠标消息
这一个实例主要是运用MFC的消息机制,因此选择类,开启监听的消息类别(如WM_LBUTTONUP),创建该类消息的处理函数(如OnLButtonUp),添加方法为:
修改代码:
void CMFCApplication5View::OnLButtonUp(UINT nFlags, CPoint point)
// TODO: 在此添加消息处理程序代码和/或调用默认值
CString key;
key.Format(TEXT("X is %d ,Y is %d"), point.x,point.y);
MessageBox(key);
CView::OnLButtonUp(nFlags, point);
2.3 增加键盘消息
键盘事件是WM_CHAR(),处理函数默认为onChar(),添加方法为:
修改代码:
void CMFCApplication5View::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
// TODO: 在此添加消息处理程序代码和/或调用默认值
CString key;
key.Format(TEXT("KEY Is %c"),nChar);
MessageBox(key);
CView::OnChar(nChar, nRepCnt, nFlags);
2.4 显示文字函数
显示文件的事件为PAINT或者DRAW,添加方法为:
添加代码:
void CMFCApplication5View::OnPaint()
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CView::OnPaint()
dc.TextOutW(10, 20, TEXT("Hali onpaint C++"));
2.5 编译生成exe
选择Debug、X86模式编译,生成鲜美的MFC肉鸡,准备投入IDA进行分析。
四、启动反编译观察exe
以上是关于简单MFC程序开发-C++反编译肉鸡养成的主要内容,如果未能解决你的问题,请参考以下文章