打开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. scanf、cin及其优化、快读性能测试

    为了让大家了解C++各种IO方式的性能,于是就有了这篇文章. 本次测试采取的数据均为 \(10^6\) 个不超过 \(10^8\) 随机正整数. 测试代码: #include<bits/stdc ...

  2. 自己在本地搭建 git 版本仓库服务器

    请确保你安装了 git 的图形化工具和 git 软件 首先先创建一个目录作为你的项目工程目录,比如 e:/gitTest 其次右键 git init. 然后指定一个 git 服务器目录,例如:e:/g ...

  3. 使用Git bash切换Gitee、GitHub多个Git账号

    使用Git bash切换Gitee.GitHub多个Git账号 ​ Git是分布式代码管理工具,使用命令行的方式提交commit.revert回滚代码.这里介绍使用Git bash软件来切换Gitee ...

  4. 【SpringBoot】09 日志集成

    原来日志还分抽象层和实现层... 抽象层被称为是日志门面,实现层被称为是日志实现 门面的有: - JCL[Jakarta Commons Logging]    远古门面 - SLF4J[Simple ...

  5. 【Java】逗号拼接的取巧处理

    需求如图: 这是表的关键处理数据,页面上的输入框要做分开展示,也就是要写业务逻辑来处理 逗号拼接的取巧处理,使用了List集合toString方法来实现,然后移除括号 final String emp ...

  6. 【JS】04 DOM 文档对象模型 P1 查找元素、改变内容、绑定事件

    什么是DOM? Document Object Model 文档指的是HTML文档 当浏览器打开一个网页的时候,实际上把HTML文档读取到内存中进行解析 整个HTML文档被封装为document文档对 ...

  7. 【Layui】14 代码修饰器 CodeDecorator

    文档地址: https://www.layui.com/demo/code.html 基本案例: <pre class="layui-code">//在里面存放任意的代 ...

  8. aarch64/arm_v8 环境下编译Arcade-Learning-Environment —— ale-py —— gym[atari]的安装

    aarch64架构下不支持gym[atari]安装,因此我们只能在该环境下安装gym,对于atari环境的支持则需要源码上重新编译,也就是本文给出的下面的方法: 源码下载: https://githu ...

  9. CH04_程序流程结构

    CH04_程序流程结构 程序流程结构 C/C++支持最基本的三种程序运行结构: 顺序结构:程序按顺序执行,不发生挑战 选择结构:依据条件是否满足,有选择的执行相应的功能 循环结构:依据条件是否满足,循 ...

  10. springcloud config坑系列一之Connection pool shut down on "zuul.host.*" property change

    在使用springcloud config自动刷新功能难免会踩到一些坑,下面来介绍下 在生成中经常需要动态刷新配置,只需要增加@RefreshScope,并且执行手动刷新链接/actuator/ref ...