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 代码的能力.利用这项能力,我们能够在运行时生成一段代码/一个方法 ...
随机推荐
- python selenium 判断元素是否存在,实现:找到元素,执行对应的代码;找不到元素,继续执行其他代码
selenium因为找不到元素会抛出异常,导致执行结束 可以考虑使用driver.find_elements(),找不到元素时就会返回空列表,使用if-else语句,判断列表是否为空,非空,则正常找到 ...
- selenium屏蔽启动浏览器启动时的提示信息
代码 from selenium import webdriver from selenium.webdriver import Remote from webdriver_helper import ...
- 一些常用的Utils总结
1.BeanUtils.copyProperties,来自spring框架,作用是把对象的属性拷贝给另一个对象 BeanUtils.copyProperties(employeeDTO,employe ...
- 【Java】Reflection 反射机制 02获取类的一切
先创建一个可演示的类 注解类 package cn.dai.Reflection.demo; import java.lang.annotation.ElementType; import java. ...
- 【Linux】Re04
一.文件所有者 [root@localhost ~]# ls -ahl 总用量 40K dr-xr-x---. 3 root root 187 11月 29 19:20 . dr-xr-xr-x. 1 ...
- 深度学习框架theano下的batch_norm实现代码——强化学习框架rllab
深度学习框架theano下的batch_norm实现代码--强化学习框架rllab # encoding: utf-8 import lasagne.layers as L import lasagn ...
- 某宝购入牙膏厂U后其售后事宜的思虑
近日某宝购入i7 9700k, 突然想去保修的问题(没有发票,要发票比京东自营贵200左右, 不要则便宜100左右),由于确实囊中幸亏所以还是选择了某宝,东西到手后突然想起这东西没票是否可以保修 ...
- ( Ubuntu系统下 ) vim插件安装 supertab 实现tab键的补全功能 (vim+python环境下)
本文前提已经安装了 Vundle : 下载 supertab : git clone https://github.com/ervandew/supertab ~/.vim/bundle/ 编 ...
- gym.ObservationWrapper使用时的注意点——reset和step函数可以覆盖observation函数
记录一个刚学习到的gym使用的点,就是gym.ObservationWrapper使用时的注意点--reset和step函数可以覆盖observation函数. 给出代码: import gym cl ...
- java多线程之ReentrantLock详解
1.背景 2.基本语法 public class Test01 { // 定义锁 static ReentrantLock reentrantLock = new ReentrantLock(); p ...