打开VS2019



点这个





自动生成这么一堆代码,全删了,就剩这些就行



然后点这里











然后向CPP里粘贴以下代码

#include "tlhelp32.h"

HANDLE hwnd = { 0 };
DWORD PID = 0; DWORD MyFindProcess(PTCHAR pnameBuffer) {
HANDLE hHand = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
PROCESSENTRY32 processInfo = { 0 };
processInfo.dwSize = sizeof PROCESSENTRY32; Process32First(hHand, &processInfo);
do {
if (!_tcscmp(pnameBuffer, processInfo.szExeFile)) {
CloseHandle(hHand);
return processInfo.th32ProcessID;
} } while (Process32Next(hHand, &processInfo));
} DWORD MyGetModule(DWORD dwPid, PTSTR strModuleName) {
HANDLE hand = 0;
MODULEENTRY32 ModuInfo = { 0 };
ModuInfo.dwSize = sizeof(MODULEENTRY32);
hand = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPid);
if (hand == INVALID_HANDLE_VALUE) {
return 0;
}
::Module32First(hand, &ModuInfo);
do { if (!_tcscmp((PTCHAR)ModuInfo.szModule, strModuleName)) {
return (DWORD)ModuInfo.hModule;
} } while (::Module32Next(hand, &ModuInfo));
return FALSE;
} VOID Change(PTSTR strModuleName, DWORD offset[],int offset_num, DWORD Input) {
DWORD BASE = MyGetModule(PID, strModuleName) + offset[0];
for (int i = 1; i < offset_num; i++) {
ReadProcessMemory(hwnd, (LPCVOID)BASE, &BASE, 4, NULL);
;
BASE += offset[i];
}
WriteProcessMemory(hwnd, (LPVOID)(BASE), &Input, 4, NULL);
}
VOID BIND() {
PID = MyFindProcess(_T("War3.exe"));
hwnd = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID); LPWSTR strValue = (LPWSTR)malloc(2048);
wsprintf(strValue, L"PID:%d", PID);
MessageBoxW(0, strValue,_T("绑定成功"), 1);
} bool enableDebugPriv()
{
HANDLE hToken;
LUID sedebugnameValue;
TOKEN_PRIVILEGES tkp; if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) {
return false;
}
if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &sedebugnameValue)) {
CloseHandle(hToken);
return false;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(tkp), NULL, NULL)) {
CloseHandle(hToken);
return false;
}
return true;
} INT_PTR CALLBACK DialogProc(
HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
) {
DWORD os1[] = { 0xBE40A8,0x0C ,0x14,0x78 };
DWORD os2[] = { 0xBE40A8 ,0xc,0x1c ,0x78 };
switch (uMsg)
{
case WM_INITDIALOG: //窗口初始化
return TRUE;
case WM_CLOSE: //清理
EndDialog(hwndDlg, 0);
return TRUE;
case WM_COMMAND: //命令
switch (LOWORD(wParam))
{ case IDC_BUTTON3:
BIND();
break;
case IDC_BUTTON2:
Change(_T("Game.dll"), os2, 4, 1000000);
break;
case IDC_BUTTON1:
Change(_T("Game.dll"), os1, 4, 1000000);
break;
default:
break;
}
return TRUE;
default:
break;
} return FALSE;
} int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow)
{
BOOL A = enableDebugPriv();
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc);
}

变成这样子

若出现VS2019项目出现"const char *" 类型的实参与 “char *” 类型的形参不兼容错误的解决方法

在VS2019中依次点击项目->属性->C/C+±>语言->符合模式,将原来的“是”改为“否”即可。

war3辅助代码及运行方式的更多相关文章

  1. 【腾讯Bugly干货分享】深入理解 ButterKnife,让你的程序学会写代码

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/578753c0c9da73584b025875 0.引子 话说我们做程序员的,都 ...

  2. 玩转SSRS第十篇---自定义代码

    提到SSRS 那么就不得不提一下自定义代码的功能,通过自定义代码,有时候可以解决一些比较复杂的问题,比如将让指定的数据行应用指定的属性值.此篇将演示如何通过简单结构的自定义代码进行报表样式的基本设计. ...

  3. 【Hadoop代码笔记】通过JobClient对Jobtracker的调用详细了解Hadoop RPC

    Hadoop的各个服务间,客户端和服务间的交互采用RPC方式.关于这种机制介绍的资源很多,也不难理解,这里不做背景介绍.只是尝试从Jobclient向JobTracker提交作业这个最简单的客户端服务 ...

  4. linux相关小工具的使用(一)————代码相关工具

    在linux环境下,对于程序员来说,知道使用一些好用的小工具,对源代码的阅读.编译和调试都有着事半功倍的效果,这里我也是边学边写的原则,把自己知道的一丁点小知识分享给大家. 一.  源代码的阅读 首先 ...

  5. 《代码大全(第二版)》【PDF】下载

    <代码大全(第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382264 内容简介 <代码大全(第2版)>是著 ...

  6. 小程序代码包压缩 策略&方案

    微信小程序自推出以来,逐渐发展,目前正受到越来越多的青睐.其中很重要的一点得益于小程序的轻量级特性,每个小程序最多不超过2MB,招之即来挥之即去,相比于几十上百兆的APP,用户进入小程序,或者说,小程 ...

  7. Python--day02(编程语言、运行python代码、变量)

    day01主要内容回顾 1.进制转换: 二进制: 1111  0101 1010 十六进制          f        5      a 2.内存分布:堆区 和 栈区 外来人只能访问栈区的数据 ...

  8. [No0000BB]ReSharper操作指南4/16-配置ReSharper代码快修与导航

    代码问题的快速修复 ReSharper可以帮助您立即修复设计时检测到的大部分代码问题.就像按Alt+Enter突出显示的代码问题一样简单,并选择合适的方法来解决问题或改进次优代码. GIF 应用快速修 ...

  9. 【learning】微信跳一跳辅助c++详解 轻松上万 【上】

    写在前面 17年年底Wechat出了这个跳一跳的小游戏,今年2月份的时候简单地玩了一下,发现被游戏虐了(手太残了只能跳20多).     今天刚好有点空,于是就花了一个下午的时间写了一个跳一跳的c++ ...

  10. 如何快速编写和调试 Emit 生成 IL 的代码

    .NET Core/.NET Framework 的 System.Reflection.Emit 命名空间为我们提供了动态生成 IL 代码的能力.利用这项能力,我们能够在运行时生成一段代码/一个方法 ...

随机推荐

  1. windows上传ipa到开发者中心(app store)的方法

    假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开发者中心才能在构建版本里选择构建版本上架 ...

  2. 老旧 Linux 系统搭建现代 C++ 开发环境 —— 基于 neovim

    问题背景 公司配发的电脑是 macOS,日常开发需要访问 Linux 虚拟机,出于安全方面的考虑,只能通过跳板机登录.这阻止了大多数远程图形界面的使用,让写代码的工作变得复杂起来,市面上非常好用的 V ...

  3. SLF4J2.0.x与Logback1.3.x的绑定变动还是很大的,不要乱点鸳鸯谱

    开心一刻 今天跟我姐聊天 我:我喜欢上了我们公司的一个女同事,她好漂亮,我心动了,怎么办 姐:喜欢一个女孩子不能只看她的外表 我:我知道,还要看她的内在嘛 姐:你想多了,还要看看自己的外表 背景介绍 ...

  4. 【Windows】关闭 Ctrl+Alt+Delete 锁屏

    参考百度经验: https://jingyan.baidu.com/article/9158e0005787c3a2541228b3.html Win + R 运行 gpedit.msc

  5. 【C3】04 工作原理

    我们已经知道了CSS是做什么的以及怎么写简单的样式这样基础的CSS, 接下来我将了解到浏览器如何获取CSS.HTML和将他们加载成网页. 前置知识: 基础计算机知识.基本软件安装.简单文件知识.HTM ...

  6. 【转载】Typora 的 Markdown 语法

    原文地址: Typora 的 Markdown 语法 详细见原文: https://support.typoraio.cn/zh/Markdown-Reference/

  7. 作业帮基于 DolphinScheduler 的数据开发平台实践

    摘要 随着任务数量.任务类型需求不断增长,对我们的数据开发平台提出了更高的要求.本文主要分享我们将调度引擎升级到 Apache DolphinScheduler 的实践经验,以及对数据开发平台的一些思 ...

  8. centos7安装docker详细教程

    一.准备工作 1.系统要求 docker要求centos的内核版本不低于3.10.centos7满足最低内核要求. 检查当前的内核版本 [root@zspc /]# uname -r 3.10.0-1 ...

  9. 单例模式C++实现

    单例模式 全局静态变量实现饿汉式单例模式 饿汉式实现方式是线程安全的. #include using namespace std; /* 饿汉式单例模式 */ class SingleObject{ ...

  10. 折腾 Quickwit,Rust 编写的分布式搜索引擎-官方教程

    快速上手 在本快速入门指南中,我们将安装 Quickwit,创建一个索引,添加文档,最后执行搜索查询.本指南中使用的所有 Quickwit 命令都在 CLI 参考文档 中进行了记录. https:// ...