学破解第147天,《教你零基础一句代码制作自己的工具箱V1.0》学习
学破解第147天,《教你零基础一句代码制作自己的工具箱》学习
前言:
  从小学到大专(计算机网络技术专业),玩过去的,所以学习成绩惨不忍睹,什么证书也没考,直到找不到工作才后悔,不知道怎么办才好。
2017年12月16日,通过19元注册码注册论坛账号,开始做伸手党,潜水一年多,上来就是找软件。(拿论坛高大上的软件出去装X)
2018年8月10日,报名了华中科技大学网络教育本科(计算机科学与技术专业)2018级秋季。(开始提升学历)
2019年6月17日,不愿再做小菜鸟一枚,开始零基础学习破解。(感谢小糊涂虫大哥在我刚开始学习脱壳时,录制视频解答我的问题)
2020年7月7日,感谢H大对我的鼓励,拥有了第一篇获得优秀的文章。(接下来希望学习逆向,逆天改命)
2021年8月11日,华科学位英语2次不过,仅取得了毕业证书,学业提升失败,开始琢磨考注册类和职称类证书,谋求涨薪
  坛友们,年轻就是资本,和我一起逆天改命吧,我的学习过程全部记录及学习资源:https://www.52pojie.cn/thread-1503734-1-1.html
立帖为证!--------记录学习的点点滴滴
0x1 创建一个默认的MFC程序
  2.点下一步,选择基于对话框,同时选择在静态库中使用MFC,这是生成代码时打包静态库,方便其他电脑上运行。
  3.选择主框架样式,修改程序的标题,直接点完成项目就被创建好了。
0x2 添加工具
  1.视图-工具箱,添加一个button,单击,修改caption为计算机:
2.双击进去,看到:
void CMFC_MyToolDlg::OnBnClickedButton1(){    // TODO: 在此添加控件通知处理程序代码}  3.添加inExec("calc.exe", SW_SHOWNORMAL);代码,保存,生成程序,点击计算器,成功打开了计算器。
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.52pojie.cn", "", SW_SHOWNORMAL);}//看雪论坛void CMFC_MyToolDlg::OnBnClickedButton8(){    // TODO: 在此添加控件通知处理程序代码    ShellExecute(NULL, "open", "iexplore", "www.pediy.com", "", SW_SHOWNORMAL);}//吾爱ODvoid CMFC_MyToolDlg::OnBnClickedButton12(){    // TODO: 在此添加控件通知处理程序代码    ShellExecute(NULL, "open", "D:/Crack Tool/吾爱破解专用版Ollydbg/吾爱破解[LCG].exe", "", "", SW_SHOWNORMAL);}//X64 dbgvoid CMFC_MyToolDlg::OnBnClickedButton16(){    // TODO: 在此添加控件通知处理程序代码    ShellExecute(NULL, "open", "D:/Crack Tool/x64dbg_2021_07_01/release/x64/x64dbg", "", "", SW_SHOWNORMAL);}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;    }




