war3辅助代码及运行方式
打开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辅助代码及运行方式的更多相关文章
- 【腾讯Bugly干货分享】深入理解 ButterKnife,让你的程序学会写代码
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/578753c0c9da73584b025875 0.引子 话说我们做程序员的,都 ...
- 玩转SSRS第十篇---自定义代码
提到SSRS 那么就不得不提一下自定义代码的功能,通过自定义代码,有时候可以解决一些比较复杂的问题,比如将让指定的数据行应用指定的属性值.此篇将演示如何通过简单结构的自定义代码进行报表样式的基本设计. ...
- 【Hadoop代码笔记】通过JobClient对Jobtracker的调用详细了解Hadoop RPC
Hadoop的各个服务间,客户端和服务间的交互采用RPC方式.关于这种机制介绍的资源很多,也不难理解,这里不做背景介绍.只是尝试从Jobclient向JobTracker提交作业这个最简单的客户端服务 ...
- linux相关小工具的使用(一)————代码相关工具
在linux环境下,对于程序员来说,知道使用一些好用的小工具,对源代码的阅读.编译和调试都有着事半功倍的效果,这里我也是边学边写的原则,把自己知道的一丁点小知识分享给大家. 一. 源代码的阅读 首先 ...
- 《代码大全(第二版)》【PDF】下载
<代码大全(第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382264 内容简介 <代码大全(第2版)>是著 ...
- 小程序代码包压缩 策略&方案
微信小程序自推出以来,逐渐发展,目前正受到越来越多的青睐.其中很重要的一点得益于小程序的轻量级特性,每个小程序最多不超过2MB,招之即来挥之即去,相比于几十上百兆的APP,用户进入小程序,或者说,小程 ...
- Python--day02(编程语言、运行python代码、变量)
day01主要内容回顾 1.进制转换: 二进制: 1111 0101 1010 十六进制 f 5 a 2.内存分布:堆区 和 栈区 外来人只能访问栈区的数据 ...
- [No0000BB]ReSharper操作指南4/16-配置ReSharper代码快修与导航
代码问题的快速修复 ReSharper可以帮助您立即修复设计时检测到的大部分代码问题.就像按Alt+Enter突出显示的代码问题一样简单,并选择合适的方法来解决问题或改进次优代码. GIF 应用快速修 ...
- 【learning】微信跳一跳辅助c++详解 轻松上万 【上】
写在前面 17年年底Wechat出了这个跳一跳的小游戏,今年2月份的时候简单地玩了一下,发现被游戏虐了(手太残了只能跳20多). 今天刚好有点空,于是就花了一个下午的时间写了一个跳一跳的c++ ...
- 如何快速编写和调试 Emit 生成 IL 的代码
.NET Core/.NET Framework 的 System.Reflection.Emit 命名空间为我们提供了动态生成 IL 代码的能力.利用这项能力,我们能够在运行时生成一段代码/一个方法 ...
随机推荐
- SEO初学者指南之什么是SEO
前言 Hi,大家好,我是听风.欢迎来到SEO基础入门指南.在这个博客中主要教大家SEO的基础知识,以谷歌SEO为主,重点放在实操方面. 虽然是基础入门教程,但我希望朋友们不要对"初学者&qu ...
- Python和RPA网页自动化-浏览器切换不同窗口页面
以百度为例,点击[BOSS直聘]词条会打开一个BOSS新窗口页面,分别使用Python和RPA网页自动化在不同的窗口页面来回切换窗口完成以下顺序步骤 1.Python代码如下 步骤:打开新窗口页面后, ...
- Windows报错0xc0000142的处理方法
1.问题描述 桌面有个弹窗报错(0xc0000142),无法关闭,影响Windows的使用 此错误很有可能是缺少组件导致 2.解决办法 进入" C:\Windows\System32 &qu ...
- 【SpringCloud】 Re01
简单理解 接口跨服务调用 说白了 就是原来只是调用一个接口就能得到资源,现在是调用两个或者更多接口,这些接口来自不同的服务 (从前端的角度来看依然只是调用这个接口,只是这个接口背后又去调用其他的接口了 ...
- 【GPU】如何两周内零经验手搓一个GPU | 美国工程师极限挑战 | 重写三次 | CUDA | SIMD | ISA指令集 | Verilog | OpenLane
地址: https://www.youtube.com/watch?v=FTh-c2ek6PU
- If Messi doesn't understand how to respect others, then he also doesn't deserve to receive respect from others.
If Messi doesn't understand how to respect others, if he doesn't understand the spirit of honoring c ...
- PHP 字符串大小写操作
PHP为我们提供了字符串中大小写字母转换的函数, strtoupper()将指定的字符全部转换为大写: strtolower()将北定的字符都转换成小写: ucwords()将指定字符串中每个单词的首 ...
- [CEOI2018] Lottery 题解
前言 题目链接:洛谷. 题意简述 给出序列 \(a_1 \ldots a_n\) 和常数 \(l \leq n\),定义: \[\operatorname{dis}(i, j) = \sum _ {k ...
- [学习笔记] LCA - 图论
[NOIP2013 提高组] 货车运输 最大生成树+LCA+倍增 好家伙,这道题我写了一个晚上,调了两个晚上,对于这道题我颇有感触.但这道题确实好,实实在在的蓝题,让我发现了许多关于LCA的问题. 首 ...
- AtCoder Beginner Contest 310
freee Programming Contest 2023(AtCoder Beginner Contest 310) - AtCoder A - Order Something Else (atc ...