0x00 前言
由于这几天在忙着研究外挂开发…
但是很遗憾,我并不会图形化界面程序开发…
昨晚开着二倍速和快进用俩小时看完了清华大学的一位教授出的Windows桌面应用程序开发教程…
看完发现,用Windows桌面应用程序开发来开发一款外挂对我来说还要学不少,比如还要再去研究各种类,如Button类等,学习周期比较长。
但我想尽快开发出来目标软件,这时候似乎只有VB、Delphi、MFC、易语言可以选择了。
VB和Delphi我不太熟悉,易语言的话,许多年前接触过,但基本语法忘得差不多了,以后再复习吧。
最终我还是选择了MFC,记得大一下学期老师让用MFC开发飞机大战,但我全程在摸鱼…
用了半天大概学会了MFC开发流程,并开发出了一个简易的植物大战僵尸辅助。
0x01 主要代码
一些宏和全局变量
1 | //一些宏 |
启动
功能是获取程序句柄,赋值给HANDLE类型的全局变量Process
1 | void CMFCTestDlg::OnBnClickedButton1() |
文本框
目的是获取用户输入的想修改的阳光值,赋值给int型的全局变量NumOfSum
1 | void CMFCTestDlg::OnEnChangeEdit1() |
修改阳光值
顾名思义,根据用户在文本框中输入的阳光值来修改阳光值
1 | void CMFCTestDlg::OnBnClickedButton2() |
更新当前阳光值
1 | void CMFCTestDlg::UpdateSunNum() |
计时器
每秒刷新一下当前阳光值,这块因为一点小问题研究了半个多小时才搞明白….
1 | //在Resource.h定义一下Timer |
无CD
1 | void CMFCTestDlg::OnBnClickedCheck1() |
0x02 效果图
无CD不太好放效果图。。。
0x03 总结
这也算是初次接触MFC吧
感觉好多地方可以优化
比如 每次都需要重新获取一下基址的值、一级偏移的值…这样多做了许多无用功吧,可以直接把一级偏移的值存入一个全局变量。
还有一些地方我感觉写的应该不太规范吧
比如没对句柄进行close….因为我没找到MFC中像Win32图形化编程里面那种switch/case中destory的情况在哪。
还有些地方并没对非法输入进行处理,没有异常处理之类的。
今后我会逐步改进的。