[Windows] 学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习

a1辅助网提供[Windows] 学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习的下载地址,长期提供破解软件,各种线报福利等,94393是一个很好的福利资源网站

切换到64位需要增加text应该是工程配置里的编码和32位的不一致,或者就是你使用了win32的宏。正常情况应该是不需要加转换的
谢谢大佬的新手教程
好详细啊,谢谢分享

学破解第147天,《教你零基础一句代码制作自己的工具箱》学习

前言:
  从小学到大专(计算机网络技术专业),玩过去的,所以学习成绩惨不忍睹,什么证书也没考,直到找不到工作才后悔,不知道怎么办才好。

  2017年12月16日,通过19元注册码注册论坛账号,开始做伸手党,潜水一年多,上来就是找软件。(拿论坛高大上的软件出去装X)

  2018年8月10日,报名了华中科技大学网络教育本科(计算机科学与技术专业)2018级秋季。(开始提升学历)

  2019年6月17日,不愿再做小菜鸟一枚,开始零基础学习破解。(感谢小糊涂虫大哥在我刚开始学习脱壳时,录制视频解答我的问题)

  2020年7月7日,感谢H大对我的鼓励,拥有了第一篇获得优秀的文章。(接下来希望学习逆向,逆天改命)

  2021年8月11日,华科学位英语2次不过,仅取得了毕业证书,学业提升失败,开始琢磨考注册类和职称类证书,谋求涨薪

  坛友们,年轻就是资本,和我一起逆天改命吧,我的学习过程全部记录及学习资源:https://www.a1fz.com/thread-1503734-1-1.html
立帖为证!——–记录学习的点点滴滴

0x1 创建一个默认的MFC程序

  1.第一步新建MFC项目
[Windows] 学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习

  2.点下一步,选择基于对话框,同时选择在静态库中使用MFC,这是生成代码时打包静态库,方便其他电脑上运行。
[Windows] 学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习

  3.选择主框架样式,修改程序的标题,直接点完成项目就被创建好了。
[Windows] 学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习

  4.打开资源文件,del删除里面的内容。
[Windows] 学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习

0x2 添加工具

  1.视图-工具箱,添加一个button,单击,修改caption为计算机:
[Windows] 学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习

  2.双击进去,看到:

void CMFC_MyToolDlg::OnBnClickedButton1() {     // TODO: 在此添加控件通知处理程序代码 }

  3.添加inExec("calc.exe", SW_SHOWNORMAL);代码,保存,生成程序,点击计算器,成功打开了计算器。
[Windows] 学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习

  4.重复上面步骤,就可以完成工具箱的打造了。

//计算器 void CMFC_MyToolDlg::OnBnClickedButton1() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "calc", "","", SW_SHOWNORMAL); }  //画图 void CMFC_MyToolDlg::OnBnClickedButton5() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "mspaint", "", "", SW_SHOWNORMAL); }  //截图工具 void CMFC_MyToolDlg::OnBnClickedButton9() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", TEXT("snippingTool"), "", "", SW_SHOWNORMAL); }  //记事本 void CMFC_MyToolDlg::OnBnClickedButton13() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "notepad", "", "", SW_SHOWNORMAL); }  //系统配置 void CMFC_MyToolDlg::OnBnClickedButton2() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "msconfig", "", NULL, SW_SHOWNORMAL); }  //屏幕键盘 void CMFC_MyToolDlg::OnBnClickedButton6() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "osk", "", "", SW_SHOWNORMAL); }  //注册表编辑 void CMFC_MyToolDlg::OnBnClickedButton10() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "regedit", "", "", SW_SHOWNORMAL); }  //DirectX 诊断 void CMFC_MyToolDlg::OnBnClickedButton14() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "dxdiag", "", "", SW_SHOWNORMAL); }  //组策略 void CMFC_MyToolDlg::OnBnClickedButton3() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "gpedit.msc", "", "", SW_SHOWNORMAL); }  //资源监视器 void CMFC_MyToolDlg::OnBnClickedButton7() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "perfmon.msc", "", "", SW_SHOWNORMAL); }  //任务管理器 void CMFC_MyToolDlg::OnBnClickedButton11() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "taskmgr", "", "", SW_SHOWNORMAL); }  //事件查看器 void CMFC_MyToolDlg::OnBnClickedButton15() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "eventvwr.msc", "", "", SW_SHOWNORMAL); }  //吾爱论坛 void CMFC_MyToolDlg::OnBnClickedButton4() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "iexplore", "www.a1fz.com", "", SW_SHOWNORMAL); }  //看雪论坛 void CMFC_MyToolDlg::OnBnClickedButton8() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "iexplore", "www.pediy.com", "", SW_SHOWNORMAL); }  //吾爱OD void CMFC_MyToolDlg::OnBnClickedButton12() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "D:/Crack Tool/吾爱破解专用版Ollydbg/吾爱破解[LCG].exe", "", "", SW_SHOWNORMAL); }  //X64 dbg void CMFC_MyToolDlg::OnBnClickedButton16() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, "open", "D:/Crack Tool/x64dbg_2021_07_01/release/x64/x64dbg", "", "", SW_SHOWNORMAL); }

[Windows] 学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习

0x3 程序调试

  1.小菜鸟看着自己的工具箱,感觉自己好厉害,来,试试,点击截图工具,没反应???
逐个点击一遍:
截图工具
系统配置
翻车了,点击无效,没有反应。

  2.看一看百度上对这个函数的说明:
返回的HINSTANCE可以将它转换为一个整数(%d),并比较它的值大于还是小于32或比较它的错误代码
返回值大于32表示执行成功
返回值小于32表示执行错误

以截图工具为例,修改代码:      int i = (int)ShellExecute(NULL, "open", TEXT("snippingTool"), "", "", SW_SHOWNORMAL);     switch (i)     {     case 0:         MessageBox("内存不足","错误");         break;     case 2:         MessageBox("文件名错误", "错误");         break;     case 3:         MessageBox("路径名错误", "错误");         break;     case 11:         MessageBox("EXE 文件无效", "错误");         break;     case 26:         MessageBox("发生共享错误", "错误");         break;     case 27:         MessageBox("文件名不完全或无效", "错误");         break;     case 28:         MessageBox("超时", "错误");         break;     case 29:         MessageBox("DDE 事务失败", "错误");         break;     case 30:         MessageBox("正在处理其他 DDE 事务而不能完成该 DDE 事务", "错误");         break;     case 31:         MessageBox("没有相关联的应用程序", "错误");         break;     default:         MessageBox("程序正常", "正确");         break;     }

  3.区区错误,也想欺负小菜鸟,看我case大法一出:
[Windows] 学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习
纳尼???文件名错误,在开始菜单试了又试,明明可以打开的啊???
[Windows] 学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习

  4.目前小菜鸟的编译模式是release x86,那么去SysWOW64目录下看看,居然没有截图工具,那我开始菜单的截图工具哪来的呢?C:Windowssystem32,好吧,我的系统是win7 64位的,64位的…,64位的,32位默认寻找SysWOW64这个目录去了。

  5.代码生成模式改成release x64试试,傻眼了,一片红,c++字符串和window字符串不兼容,每一个包裹一下TEXT宏算了。

ShellExecute(NULL, TEXT("open"), TEXT("SnippingTool"), NULL, NULL, SW_SHOWNORMAL);

  6.成功了,果然是操作系统的问题。
[Windows] 学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习

  7.按钮事件最终源码:

//计算器 void CMFC_MyToolDlg::OnBnClickedButton1() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("calc"), NULL,NULL, SW_SHOWNORMAL); }  //画图 void CMFC_MyToolDlg::OnBnClickedButton5() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("mspaint"), NULL, NULL, SW_SHOWNORMAL); }  //截图工具 void CMFC_MyToolDlg::OnBnClickedButton9() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("SnippingTool"), NULL, NULL, SW_SHOWNORMAL); }  //记事本 void CMFC_MyToolDlg::OnBnClickedButton13() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("notepad"), NULL, NULL, SW_SHOWNORMAL); }  //系统配置 void CMFC_MyToolDlg::OnBnClickedButton2() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("msconfig"), NULL, NULL, SW_SHOWNORMAL); }  //屏幕键盘 void CMFC_MyToolDlg::OnBnClickedButton6() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("osk"), NULL, NULL, SW_SHOWNORMAL); }  //注册表编辑 void CMFC_MyToolDlg::OnBnClickedButton10() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("regedit"), NULL, NULL, SW_SHOWNORMAL); }  //DirectX 诊断 void CMFC_MyToolDlg::OnBnClickedButton14() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("dxdiag"), NULL, NULL, SW_SHOWNORMAL); }  //组策略 void CMFC_MyToolDlg::OnBnClickedButton3() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("gpedit.msc"), NULL, NULL, SW_SHOWNORMAL); }  //资源监视器 void CMFC_MyToolDlg::OnBnClickedButton7() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("perfmon.msc"), NULL, NULL, SW_SHOWNORMAL); }  //任务管理器 void CMFC_MyToolDlg::OnBnClickedButton11() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("taskmgr"), NULL, NULL, SW_SHOWNORMAL); }  //事件查看器 void CMFC_MyToolDlg::OnBnClickedButton15() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("eventvwr.msc"), NULL, NULL, SW_SHOWNORMAL); }  //吾爱论坛 void CMFC_MyToolDlg::OnBnClickedButton4() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("iexplore"), TEXT("www.a1fz.com"), NULL, SW_SHOWNORMAL); }  //看雪论坛 void CMFC_MyToolDlg::OnBnClickedButton8() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("iexplore"), TEXT("www.pediy.com"), NULL, SW_SHOWNORMAL); }  //吾爱OD void CMFC_MyToolDlg::OnBnClickedButton12() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("D:/Crack Tool/吾爱破解专用版Ollydbg/吾爱破解[LCG].exe"), NULL, NULL, SW_SHOWNORMAL); }  //X64 dbg void CMFC_MyToolDlg::OnBnClickedButton16() {     // TODO: 在此添加控件通知处理程序代码     ShellExecute(NULL, TEXT("open"), TEXT("D:/Crack Tool/x64dbg_2021_07_01/release/x64/x64dbg"),  NULL, NULL, SW_SHOWNORMAL); }

0x4 总结

  1.新建MFC程序,选择基于对话框,选择在静态库中使用MFC,主框架选择粗框架带最大化和最小化框,还有菜单栏,修改对话框标题为小菜鸟的工具箱,高级功能全部不勾选,然后点完成。

  2.点击MFC_MyTool.rc资源文件,切换到资源视图,del删掉里面的内容。

  3.选择视图-工具箱,添加button按钮,在外观-caption中修改按钮上的文字。

  4.双击按钮进入编辑界面,添加ShellExecute(NULL, TEXT("open"), TEXT("calc"), NULL, NULL, SW_SHOWNORMAL);,运行程序,点击按钮即可打开计算器。

  5.重复上面步骤,就可以开发自己的工具箱,是不是很简单呢。

  6.调试的时候走了一些弯路,我以为指定路径为system32就可以,后来才想到这个目录下的是64位程序,调用不了,最后才想到修改程序的生成模式。

0x5 参考资料

  1.ShellExecute-百度百科

  2.程序下载地址(编译环境,Visual Studio 2015 release x64,MFC静态链接):https://wwx.lanzoui.com/i4MkKut3pfc

  3.源码下载地址:
链接:https://pan.baidu.com/s/1KgyaSuqQuXqoKtIW3IfWlQ
提取码:52pj

  PS:善于总结,善于发现,找到分析问题的思路和解决问题的办法。虽然我现在还是零基础的小菜鸟一枚,也许学习逆向逆天改命我会失败,但也有着成功的可能,只要还有希望,就决不放弃!

部分文章来自互联网,侵权删除www.a1fz.com/

www.a1fz.com A1fz网专注于福利分享,各种破解软件学习资料,视频教程等等,如有侵权告知管理员删除
币圈科学家软件免费下载网 » [Windows] 学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习

发表评论