38.控制功能实现

上一个内容:37.添加简易的调试功能

以 37.添加简易的调试功能 它的代码为基础进行修改

效果图:

下图红框位置的功能实现

Dlls项目中添加一个Dialog

Dialog如下

然后给它添加一个类,MFC添加的类可能会报错添加 #include "afxdialogex.h" 这一句就好了

然后把类引入到Dlls.文件中,并且创建下图红框中的两个变量

然后dll实现代码如下图:


// CDllsApp 构造CDllsApp::CDllsApp()
{// TODO:  在此处添加构造代码,// 将所有重要的初始化放置在 InitInstance 中isShowWindow = false;
}// 唯一的 CDllsApp 对象CDllsApp theApp;
CDllsApp *PtheApp;// CDllsApp 初始化
HHOOK keyHook;
LRESULT CALLBACK KeyCallBack(int nCode, WPARAM w, LPARAM l);
BOOL CDllsApp::InitInstance()
{CWinApp::InitInstance();PtheApp = this;keyHook = SetWindowsHook(WH_KEYBOARD, KeyCallBack);AfxMessageBox(L"注入成功!");return TRUE;
}LRESULT CALLBACK KeyCallBack(int nCode, WPARAM w, LPARAM l) {if ((l&(1<<31)) == 0) {switch (w){case VK_HOME: {if (PtheApp->wndMain == NULL) {PtheApp->wndMain = new CWndMain();PtheApp->wndMain->Create(IDD_WNDMAIN);}PtheApp->isShowWindow = !PtheApp->isShowWindow;PtheApp->wndMain->ShowWindow(PtheApp->isShowWindow);break;}default:break;}}return CallNextHookEx(keyHook, nCode, w, l);
}

CWndINJ.cpp文件中代码修改:

void CWndINJ::OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);// TODO: 在此添加控件通知处理程序代码*pResult = 0;int index = pNMItemActivate->iItem;if (index < 0)return;CString GamePath = ExeLst.GetItemText(index, 2);CString GameExe = ExeLst.GetItemText(index, 1);CString GameCmds = ExeLst.GetItemText(index, 3);CString GameDlls = ExeLst.GetItemText(index, 4);UpdateData(TRUE);PROCESS_INFORMATION prinfo{};bool Pause = B_PAUSE;if (B_INJCET && (GameDlls.GetLength() > 1)) {Pause = true;}m_INJCET.StartProcess(GameExe, GamePath, GameCmds.GetBuffer(), &prinfo, Pause);if (B_INJCET && (GameDlls.GetLength() > 1)) {m_INJCET.CreateRemoteData(prinfo.hProcess, GameExe, GameDlls);}if (B_DEBUG){PROCESS_INFORMATION odinfo{};//F:\其它\OllyDbg\Ollydbg.exe - p 4760CString dbgExe, dbgPath, dbgCmds;dbgExe = L"F:\\其它\\OllyDbg\\Ollydbg.exe";dbgPath = L"F:\\其它\\OllyDbg\\";dbgCmds.Format(L"%s -p %d", dbgExe, prinfo.dwProcessId);m_INJCET.StartProcess(dbgExe, dbgPath, dbgCmds.GetBuffer(), &odinfo, false);}if (B_PAUSE) {AfxMessageBox(L"按下确认,进程开始执行!");}ResumeThread(prinfo.hThread);// 用来指定创建时进程的主窗口的窗口工作站、桌面、标准句柄和外观。// STARTUPINFO si{};// si.cb = sizeof(si);//STARTUPINFO si{};//si.cb = sizeof(si);//CreateProcess(dbgExe,//    dbgExe.GetBuffer(),//    NULL, NULL,//    false,//    // 新进程的主线程处于挂起状态创建,在调用 ResumeThread 函数之前不会运行。//    0,//    NULL,//    dbgPath,//    &si,//    &odinfo//);//ResumeThread(odinfo.hThread);//m_INJCET.CodeRemoteData(&_data);/**CreateProcess(GameExe,GameCmds.GetBuffer(),NULL,NULL,FALSE,// 新进程的主线程处于挂起状态创建,在调用 ResumeThread 函数之前不会运行。CREATE_SUSPENDED,NULL,GamePath,&si,&prinfo);*//** 方式一调用apiCStringA GameExeA;GameExeA = GameExe;PLOADED_IMAGE image =  ImageLoad(GameExeA, NULL);DWORD dEntryPoint = image->FileHeader->OptionalHeader.AddressOfEntryPoint;CString wTxt;wTxt.Format(L"%X", dEntryPoint);AfxMessageBox(wTxt);ImageUnload(image)*//** 方式二(要在32位环境下运行)void* image = _imageload(GameExe.GetBuffer());IMAGE_DOS_HEADER* dosHeader = (IMAGE_DOS_HEADER*)image;unsigned PEAddress =  dosHeader->e_lfanew + (unsigned)image;IMAGE_NT_HEADERS* ntHeader = (IMAGE_NT_HEADERS*)PEAddress;DWORD dEntryPoint = ntHeader->OptionalHeader.AddressOfEntryPoint;CString wTxt;wTxt.Format(L"%X", dEntryPoint);AfxMessageBox(wTxt);_unloadimage(image);*///LPVOID adrRemote = VirtualAllocEx(prinfo.hProcess, 0, 0x3000, MEM_COMMIT, PAGE_EXECUTE_READWRITE);//SIZE_T lwt;//WriteProcessMemory(prinfo.hProcess, adrRemote, INJECTCode, 0x200, &lwt);//CString wTxt;//wTxt.Format(L"%X", adrRemote);//AfxMessageBox(wTxt);// 让游戏继续运行//m_INJCET.CreateRemoteData(prinfo.hProcess, GameDlls.GetBuffer());}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/35277.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聚酰胺-酰亚胺(PAI)应用前景广阔 酰氯法和异氰酸酯法为其主流制备方法

聚酰胺-酰亚胺&#xff08;PAI&#xff09;应用前景广阔 酰氯法和异氰酸酯法为其主流制备方法 聚酰胺-酰亚胺又称PAI&#xff0c;是一种分子链呈酰亚胺环和酰胺键有规则交替排列的高性能热塑性树脂。PAI具有耐磨耗性能好、摩擦系数低、尺寸稳定性好、耐高温、耐辐射、化学稳定性…

如何选择OLED弧形屏厂家

在选择OLED弧形屏厂家时&#xff0c;为确保采购到高质量且符合需求的产品&#xff0c;需要综合考虑多个因素。以下是一份详细的指南&#xff0c;帮助您清晰、系统地选择OLED弧形屏厂家&#xff1a; 一、技术实力 研发能力&#xff1a;了解厂家在OLED显示技术方面的研发能力&…

亮数据,一款新的低代码爬虫利器!

在当今数据驱动型时代&#xff0c;数据采集和分析能力算是个人和企业的核心竞争力。然而&#xff0c;手动采集数据耗时费力且效率低下&#xff0c;而且容易被网站封禁。 我之前使用过一个爬虫工具&#xff0c;亮数据&#xff08;Bright Data&#xff09; &#xff0c;是一款低…

力扣随机一题 哈希表 排序 数组

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 2491.划分技能点相等的团队【中等】 题目&#xff1a; 给你一个正整数数组…

【深海王国】小学生都能玩的单片机?零基础入门单片机Arduino带你打开嵌入式的大门!(9)

Hi٩(๑o๑)۶, 各位深海王国的同志们&#xff0c;早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦 (o゜▽゜)o☆ 今天大都督继续为大家带来系列——小学生都能玩的单片机&#xff01;带你一周内快速走进嵌入式的大门&#xff0c;let’s go&#xff01; &#xff08;9&#x…

殷山:摩斯大模型隐私保护技术和应用探索

背景介绍 6月20日下午&#xff0c;“2024信通院数据智能大会”圆满落幕&#xff0c;摩斯技术负责人殷山在论坛上分享了摩斯在大模型隐私保护技术和行业应用的探索。 殷山发表“大模型隐私保护”主题演讲 摩斯技术负责人殷山在“数据智能安全主题论坛“上&#xff0c;带来“大…

NIVision-LabVIEW在灰度图上画圆

问题来源 在csdn上看到的这样一个问题&#xff0c;好像也没个正经答案&#xff0c;都用chatGPT回答&#xff0c;挺没劲的。不说提供个vi源代码&#xff0c;至少也来张截图嘛。我想着问题也不难&#xff0c;就自己动动手吧。 代码展示1 1、首先使用imaq ArrayToImage.vi创建了一…

java error ConcurrentModificationException 并发修改异常

ConcurrentModificationException 概述 这个异常在 Java 中通常发生在以下场景&#xff1a;当某个线程在遍历一个集合&#xff08;如 ArrayList、HashMap 等&#xff09;的过程中&#xff0c;另一个线程尝试修改这个集合的结构&#xff08;如添加、删除元素&#xff09;&#…

sheng的学习笔记-AI-学习向量量化

AI目录 sheng的学习笔记-AI目录-CSDN博客 需要学习前置知识&#xff1a;聚类&#xff0c;可参考 sheng的学习笔记-AI-聚类(Clustering)-CSDN博客 什么是学习向量量化 “学习向量量化”&#xff08;Learning Vector Quantization&#xff0c;简称LVQ&#xff09;是试图找到一…

Qt | 子类化 QStyle(Qt自带图标大全)

01、简介 1、把绘制自定义部件外观的步骤大致分为三大板块,如下: ①、样式元素:即指定需要绘制的图形元素(比如焦点框、按钮,工具栏等)。样式元素使 用 QStyle 类中的一系列枚举(共有 11 个枚举)进行描述。 ②、样式选项:包含了需要绘制的图形元素的所有信息,比如包含…

Tomcat 下载部署到 idea

一、下载Tomcat Tomcat 是Apache 软件基金会&#xff08;Apache Software Foundation&#xff09;下的一个核心项目&#xff0c;免费开源、并支持Servlet 和JSP 规范。属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发…

启动VMWare虚拟机报错

1. 无法打开内核设备“\\.\VMCIDev\VMX”: 操作成功完成。是否在安装 VMware Workstation 后重新引导? 模块“DevicePowerOn”启动失败。 未能启动虚拟机。 解决办法: 解决办法: 将 Ubuntu 64 位.vmx 找到vmci0.present"TRUE"这行改成 vmci0.present "FAL…

wireshark工具获取设备IP地址

背景&#xff1a; 一个网口抓包工具&#xff0c;主要是升级XX设备时候不知道网口的ip地址。每次需要一个一个试&#xff0c;比较麻烦。 使用步骤&#xff1a; 1、连接好XX设备与笔记本&#xff0c;在网络连接里面找到以太网&#xff0c;没有出现红色X号&#xff0c;表示网线连…

文心一言 VS 讯飞星火 VS chatgpt (289)-- 算法导论21.3 2题

二、写出使用路径压缩的 FIND-SET 过程的非递归版本。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在并查集&#xff08;Union-Find&#xff09;数据结构中&#xff0c;路径压缩&#xff08;Path Compression&#xff09;是一种优化技术&#xff0c;用于减少…

智能仓储:立体仓WCS设计

自动化立体仓库简称高架仓库&#xff0c;是采用高层货架存放货物&#xff0c;以巷道堆垛起重机为主&#xff0c;结合入库出库周边设备来进行作业的一种仓库。 立体仓主体由货架、巷道式堆垛机、输送机等组成。 电气控制系统、上位监控系统&#xff08;Warehouse Control Syste…

【前后端实现】AHP权重计算

AHP权重计算&#xff1a; 需求&#xff1a;前端记录矩阵维度、上三角值&#xff0c;后端构建比较矩阵、计算权重值并将结果返回给前端 比较矩阵构建 如果你想要根据上三角&#xff08;不包括对角线&#xff09;的值来构建对称矩阵&#xff0c;那么你可以稍作修改上述的generate…

量化交易面临的难题

量化交易面临的难题 1、监管机构对于算法交易、量化交易的监管越来越严格3、回测场景于实盘交易场景的不匹配性4、策略并非100%有效&#xff0c;并非100%的收益5、股票、基本面、市场新闻之间的关系时刻在变化并且难以捉摸6、很难使用一套通用的交易规则去匹配所有的股票/市场/…

U盘数据恢复实战:两大方案助您找回珍贵数据

在数字化时代&#xff0c;U盘作为我们随身携带的数据存储工具&#xff0c;承载着无数重要的文件和信息。然而&#xff0c;由于误操作、系统崩溃或硬件故障等原因&#xff0c;U盘中的数据可能会突然消失&#xff0c;给我们带来极大的困扰。本文将深入探讨U盘数据恢复的概念、方法…

常见大功率蓝牙应用有哪些?

在无线通信技术飞速发展的今天&#xff0c;蓝牙技术以其低功耗和易用性优势成为短距离无线通信的佼佼者。然而&#xff0c;随着智能家居、工业4.0等新型应用的兴起&#xff0c;蓝牙应用设备对通信距离和稳定性的要求越来越高。为了满足更大范围的无线通信需求&#xff0c;大功率…

山寨币大额解锁抛压拖累比特币:10X Research 深度剖析市场动荡

加密货币市场大幅下跌&#xff0c;山寨币损失惨重 在经历了几个月的强劲表现后&#xff0c;加密货币市场最近经历了一轮大幅下跌&#xff0c;特别是山寨币损失惨重。10X Research 最近在其Newsletter中发表了观点&#xff0c;认为山寨币大额解锁所带来的抛压正在拖累比特币。本…