VC++6.0远程调用Call

C语言 游戏远程call调用,创建远程线程 调用游戏所有call [hide]函数原型HANDLE CreateRemoteThread(HANDLE hProcess, // handle to processLPSECURITY_ATTRIBUTES lpThreadAttributes, // SDSIZE_T dwStackSize, // initial st... 阅读详情
好久没来了,心情不好,又来到这熟悉又怀念的地方,伴我快一年多的地方,真的很感谢伴我渡过孤独的大半年。  
又看到喜欢的VC++,VC++这块一直很少有人发表,可能高手都忙吧。今天没事就发下我以前的远程调用Call。  

有不好的地方希望大家可以指正交流。 

  1. typedef struct ParamData    //参数结构   
  2. {   
  3.     long Param1;   
  4.     long Param2;   
  5.     DWORD Param3;   
  6.     DWORD Param4;   
  7. }ParamData,*Paramp;   
  8.    
  9. //**************************************************************************************   
  10. //函数名:InfusionFunc   
  11. //功能  :封装远程注入的函数   
  12. //参数 1:进程ID    
  13. //参数 2:被注入函数指针<函数名>    
  14. //参数 3:参数    
  15. //参数 4:参数长度    
  16. //**************************************************************************************   
  17. void InfusionFunc(DWORD dwProcId,LPVOID mFunc, LPVOID Param, DWORD ParamSize)    
  18. {    
  19.     HANDLE hProcess;//远程句柄   
  20.     LPVOID mFuncAddr;//申请函数内存地址           
  21.     LPVOID ParamAddr;//申请参数内存地址   
  22.     HANDLE hThread;    //线程句柄   
  23.     DWORD NumberOfByte; //辅助返回值   
  24.     CString str;       
  25.     //打开被注入的进程句柄       
  26.     hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcId);   
  27.     //申请内存   
  28.     mFuncAddr = VirtualAllocEx(hProcess,NULL,128,MEM_COMMIT,PAGE_EXECUTE_READWRITE);   
  29.     ParamAddr = VirtualAllocEx(hProcess,NULL,ParamSize,MEM_COMMIT,PAGE_EXECUTE_READWRITE);   
  30.     //写内存    
  31.     WriteProcessMemory(hProcess,mFuncAddr,mFunc,128, &NumberOfByte);       
  32.     WriteProcessMemory(hProcess,ParamAddr,Param,ParamSize, &NumberOfByte);   
  33.     //创建远程线程   
  34.     hThread = CreateRemoteThread(hProcess,NULL,0,(LPTHREAD_START_ROUTINE)mFuncAddr,   
  35.         ParamAddr,0,&NumberOfByte);   
  36.     WaitForSingleObject(hThread, INFINITE); //等待线程结束   
  37.     //释放申请有内存   
  38.     VirtualFreeEx(hProcess,mFuncAddr,128,MEM_RELEASE);   
  39.     VirtualFreeEx(hProcess,ParamAddr,ParamSize,MEM_RELEASE);       
  40.     //释放远程句柄   
  41.     CloseHandle(hThread);    
  42.     CloseHandle(hProcess);    
  43. }    
  44.    
  45. //**************************************************************************************   
  46. //函数名:CallAddhp   
  47. //功能  :调用加血Call   
  48. //**************************************************************************************   
  49. void  CallAddhp ()    
  50. {    
  51.     DWORD dwAddr = 0x00452E98;    
  52.     _asm   
  53.     {           
  54.         pushad    
  55.         mov eax,dword ptr DS:[0x456D68]    
  56.         mov edx,0x00453028   
  57.         call dwAddr    
  58.         popad    
  59.     }   
  60. }     
  61.    
  62. //**************************************************************************************   
  63. //函数名:CallAddhp   
  64. //功能  :调用加法计算Call   
  65. //**************************************************************************************   
  66. void CallAdd(LPVOID lParam)   
  67. {   
  68.     ParamData * lp;   
  69.     lp=(ParamData *)lParam;   
  70.     long lp1=(long)lp->Param1;   
  71.     long lp2=(long)lp->Param2;   
  72.     DWORD dwAddr = 0x45992C;    
  73.     _asm   
  74.     {   
  75.         pushad   
  76.         pushad    
  77.         push lp2   
  78.         push lp1   
  79.         mov eax,dword ptr DS:[0x461CF8]   
  80.         push eax   
  81.         call dwAddr    
  82.         popad    
  83.     }   
  84. }   
  85. 下面是调用实例   
  86. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////   
  87. //一例:调用无参Call   
  88. void CInfusionFunDlg::OnButton4()    
  89. {   
  90.     // TODO: Add your control notification handler code here       
  91.     DWORD ProcessId=NULL;   
  92.     HWND hWnd = ::FindWindow(NULL,"游戏找CALL练习实例one"); //窗口标题取句柄   
  93.     GetWindowThreadProcessId(hWnd,&ProcessId);   
  94.     if(ProcessId==NULL)   
  95.         ::AfxMessageBox("未找到进程");   
  96.     else   
  97.     {   
  98.    
  99.         InfusionFunc(ProcessId,CallAddhp,NULL,NULL);   
  100.     }   
  101. }   
  102. //二例:调用有参Call   
  103. void CInfusionFunDlg::OnButtonAdd()    
  104. {   
  105.     // TODO: Add your control notification handler code here   
  106.     DWORD ProcessId=NULL;   
  107.     HWND hWnd = ::FindWindow(NULL,"F8 CALL 01"); //窗口标题取句柄   
  108.     GetWindowThreadProcessId(hWnd,&ProcessId);   
  109.     ParamData CallParam;   
  110.     CallParam.Param1 = atoi(m_edit1_text);   
  111.     CallParam.Param2 = atoi(m_edit2_text);   
  112.     if(ProcessId==NULL)   
  113.         ::AfxMessageBox("未找到进程");   
  114.     else   
  115.     {   
  116.    
  117.         InfusionFunc(ProcessId,CallAdd,&CallParam,sizeof(CallParam));   
  118.     }       
  119. }  

转载地址: http://www.ghoffice.com/bbs/read-htm-tid-67453.html
VC++ 6.0完整安装与维护指南:让经典开发环境在现代系统重生 在软件工程领域,向后兼容与遗留系统维护是持续存在的挑战,尤其涉及核心生产工具链的稳定性。其原理在于确保历史代码库能在原始编译环境中正确构建,避免因编译器差异导致的未定义行为。这一实践的技术价值在于保护既有投资,为技术栈迁移赢得时间窗口,是工业控制、嵌入式上位机等长周期系统的重要保障。应用场景广泛存在于需要维护90年代末至21世纪初MFC、ATL项目的企业环境中。本文聚焦于VC++ 6.0这一经典工具,详细解析其完整安装包组件构成,并提供在Windows 10/11等现代系统上的具体兼容性配置方案,涵盖MSD 阅读详情

相关推荐

024-1跨进程调用CALL+跨进程注入代码.flv

//官方网站:www.feiyuol.com //郁金香灬老师 //QQ 150330575 //个人网站:www.yjxsoft.com 跨进程调用CALL 跨进程调用带多个的参数CALL // myInject_dll.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include"RWA.h" //PVOID 跨进程分配内存(WORD nSize ); //1、获取进程句柄 //2、读写 分配内存 创建线程 //3、跨进程分配内存 void mycall() { PVOID p1=跨进程分配内存(1000); printf("分配的内存地址=%p\n",p1); printf("按回车键 释放内存\n"); getchar(); 跨进程释放内存(p1,1000); printf("已经 释放内存\n"); } LPTHREAD_START_ROUTINE a; BOOL 跨进程调用CALL(PVOID pcall地址,PVOID plst参数 ); //LoadLibraryA(dll名字指针) //MessageBeep(1) void Test远程调用MessageBeep() { 跨进程调用CALL(MessageBeep,(PVOID)0x12768); } //注入my022MFC.dll到目标进程 void Test3() { char szDllName[]="my022MFC.dll"; //全路径 // char szDllName[]="C:\\Users\\yjxsoft\\Documents\\visual studio 2010\\Projects\\my022\\Debug\\my022MFC.dll"; PVOID p1=跨进程分配内存(1000); printf("分配的内存地址=%p\n",p1); WN((DWORD)p1,szDllName,sizeof(szDllName));//WriteProcessMemory /*跨进程调用CALL(LoadLibraryA,(PVOID)szDllName);*/ 跨进程调用CALL(LoadLibraryA,(PVOID)p1); } void Test4() { // char szDllName[]="my022MFC.dll"; //全路径 char szDllName[]="E:\\1905\\代码\\my022-24\\Debug\\my022MFC.dll"; PVOID p1=跨进程分配内存(1000); printf("分配的内存地址=%p\n",p1); WN((DWORD)p1,szDllName,sizeof(szDllName));//WriteProcessMemory /*跨进程调用CALL(LoadLibraryA,(PVOID)szDllName);*/ 跨进程调用CALL(LoadLibraryA,(PVOID)p1); } int _tmain(int argc, _TCHAR* argv[]) { //mycall(); Test3(); Test4(); return 0; } //作业 //1、练习跨进程注入DLL //2、跨进程分配的内存内存 使用完后 用VirtualFreeEx释放掉 //3、进程句柄使用完后用CloseHandle释放句柄资源

赞!VC++编程创建远程线程式调用CALL_VirtualAllocEx_WriteProcessMemory_CreateRemoteThread_WaitForSingleObject

16赞!VC++编程创建远程线程式调用CALL。 借箭源码:14.解密!远程CALL调用代码实现原理。 VirtualAllocEx 在指定进程里 申请一块内存 LPVOID WINAPI VirtualAllocEx(   __in      HANDLE hProcess, //进程句柄   __in_opt  LPVOID lpAddress, //指定分配的内存地址 N

2405

C++ RemoteCall 远程call 源码

C++ RemoteCall远程call源码

C++远程调用Call步骤

MyGame:指定窗口标题 address:远程调用地址 //查找窗口句柄 HWND h=::FindWindow(NULL,"MyGame"); //进程ID DWORD id; LPDWORD pid=&id; //取得指定窗口的进进程ID,存放到变量ID里 ::GetWindowThreadProcessId(h,pid); //获取访问进程的权限,存放至h...

weixin_30436101的博客 2015

C++ 网游 远程call 演示

曾经试过的一个分析游戏内存和call的测试,只为理解游戏原理。代码只是演示如何在其他进程中创建一个线程并执行

025-3跨进程调用多参数的CALL.flv

025-3跨进程调用多参数的CALL //0\准备好要写入的代码 //1\跨进程分配 代码的内存 //2\跨进程分配 参数的内存 //3\写入代码 写入参数 //4\跨进程调用call

C语言 游戏远程call调用,C++远程调用类操作支持CallbackInterface(1)

今天展示一下如何使用这里描写的库实现一个简单的聊天工具。Callback Interface是昨晚才加的,但是还有一些features没实现,等做完了再做一个Demo,然后提供源代码。使用这个库开发网络程序的步骤如下1:将需要提供给客户端调用的功能封装成类,实现在服务器端,然后注册需要的类、类成员变量和类成员函数。2:服务器创建VL_ObjectServer,并将注册的类提供给它,然后运行。3:打...

weixin_42510026的博客 642

全志T113s3主线linux开发(0)--基础准备

嵌入式Linux设备的启动大概是三步:1)启动芯片+内存:常见的是Uboot,不过全志的Uboot主线对SPI NAND 不太友好,用TF卡就方便。对于T113S芯片,推荐使用Awboot,简陋但快速。开发阶段用这个就方便好多,对SPINAND支持也方便。2)启动linux内核:主线内核以下通篇都用6.13以上的内核。对比tina5.0还在用5.4 ,主要是性能、安全上有变化。6.0以上内核在devicetree的编写具体格式上有了变化,网上大量tina5.0和5.4内核的编写方式不适用。

2301_79234138的博客 2247

用VC++ 6.0来编译WDM驱动

用VC++ 6.0来编译WDM驱动作者:Arthur Tu2003年9月28日星期日标题:用VC++ 6.0来编译WDM驱动(限于2K DDK)Version 1.02如果转贴,务必加上以下内容:***************************************作者:Arthur Tu出处:驱动开发网 www.driverdevelop.com*********************

sxjswift的专栏 1698

无迹卡尔曼滤波(UKF)推导

提出,使用了一种不同的方法来计算误差协方差矩阵。它不使用(连续时间)黎卡提方程(Riccati Equations,形如。的一类非线性方程)或(离散时间)协方差传播和更新规律。关键的思想是基于一组特殊的样本点来估计误差协方差,这些点被称为。无迹卡尔曼滤波(Unscented Kalman Filter),最初由。点(Sigma Points),这些点直接通过原始非线性模型传播。无迹变换表示有三个特殊样本点的高斯分布,称为。

生活如此美好,致敬每一个热爱“热爱”的人! 1776

Comsol&Matlab 亥姆霍兹共振消声器传递损失理论解与仿真解

当外界噪声以共振频率进入共振器时,共振器内的空气质量发生周期性的振动,从而减少或消除噪声。当特定频率的声波进入共振器时,共振器的空气质量会发生周期性的振动,从而实现对该频率的噪声的减弱或消除。5. 反射和吸收:共振器的几何形状和容积还可以影响共振器内空气振动的反射和吸收。然而,对于不同频率的噪声,需要相应调整共振器的参数以匹配新的共振频率。3. 腔体内的空气振动:当特定频率的声波进入共振器时,共振器内的空气质量会发生振动。2. 声波进入共振器:外界的声波通过共振器的颈部进入共振器的封闭空腔。

声学黑洞仿真工作室 4573

2.用VC++ 6.0来编译WDM驱动

标题:用VC++ 6.0来编译WDM驱动(限于2K DDK)Version 1.02如果转贴,务必加上以下内容:***************************************作者:Arthur Tu出处:驱动开发网 www.driverdevelop.com***************************************内容:用VC++ 6.0来编辑(不是编译)Dri

grp_rainy的专栏 1318

SPSS_Process—简单&平行&链式中介模型

本篇文章介绍采用SPSS的插件Process对简单中介、链式中介、平行中介模型进行检验的操作方法及结果解读。

m0_54401011的博客 4万+

第一课[编辑器设置-VC++6.0]

用VC++6.0直接生成driver内容: 用VC++ 6.0来编辑(不是编译)Driver的源文件是很不错的选择,尤其是搭配用Visual Assist,更方便了。编辑完了,就在VC++里面build,就更方便了。 我在M$的站点参考了些,DS生成的dsw、和build生成的log文件,都有参考。实际上,M$站点上就是根据build的log文件来改VC的Setting的。Me too 限于2K

小发猫 4832

ERA5数据驱动WRFV4.4实战:单层嵌套配置与关键报错排查指南

本文详细介绍了使用ERA5再分析数据驱动WRFV4.4模式进行单层嵌套模拟的完整实战流程。内容涵盖从数据精准下载、WPS前处理配置、WRF核心参数设置到高频报错的深度排查与解决方案,旨在帮助初学者在有限服务器资源下,高效完成WRF模拟并规避常见陷阱。

q5r6s7的博客 770

Hermes Agent 对阵 OpenClaw:自我改进的 AI 队友

但在 2026 年 2 月,Nous Research 发布了 Hermes Agent,它带来了不同的愿景:一个不仅能够运行,还能学习的代理。在完成复杂的多步骤任务后,它会分析自己的操作并创建一个可复用的技能。对于已在使用 OpenClaw 的澳大利亚企业而言,这意味着您可以试用 Hermes Agent,而无需丢失数月的配置和自定义成果。最重要的区别在于理念:OpenClaw 是一个需要配置的工具,而 Hermes Agent 则是一个会学习的队友。OpenClaw 的技能是静态的。

xiaoshun007的专栏 1571

0xC0000005: Access Violation -vc++6.0

0xC0000005: Access Violation -vc++6.0 aps001,002,003创建的C:\SMW200DATA\DATA,内容是不一样的,不通用的。读取相关文件就会报错咯。 如果想要运行,则目录内容得删除。然要运行时,自动创建。每台设备已经有了数据时,需要先备份C:\SMW200DATA\DATA里面的内容。否则数据丢失。 参考: https://blog.csd...

Txwtech 4166

uniapp - HBuilder提示adb: failed to install X Failure [INSTALL_ARSE_FAILED_NOT_APK:X(安装HBuilder调试基座失败)

安装HBuilderX调试基座失败,uniapp APP运行到手机adb: failed to install,Uniapp提示adb,uniapp ios 真机调试报错 uniapp安卓调试,Uniapp安装不了基座,手动安装基座,正在安装手机端HBuilder调试基座,点击运行到手机报错信息:基座无法正常安装,Uniapp-安装HBuilder调试基座失败解决方案,解决 HBuilderX 安卓基座安装失败的问题,显示adb报错,UniApp苹果真机运行调试(自定义基座,版本更新后/没有基座打开失败)如

🏆 前端领域优质创作者 8061

解决VC++6.0在现代Windows系统上打开项目闪退的完整指南

软件兼容性是软件开发与系统维护中的基础课题,尤其在Windows平台,不同版本的操作系统API和运行库的演进常导致旧版应用程序运行异常。其核心原理在于程序对特定系统组件(如运行库、API调用)的依赖与新版环境不匹配。理解并解决这类问题具有重要的技术价值,不仅能保障遗留系统的稳定运行,也是深入理解Windows系统机制和软件故障排查的实践。典型的应用场景包括工控、嵌入式开发以及历史遗留项目的维护。本文聚焦于一个经典案例:如何系统性地诊断和修复Visual C++ 6.0 IDE在现代Windows(如Win1

weixin_34005042的博客 348

人工蜂群优化算法(ABC)详解:原理、实现与应用

人工蜂群算法(Artificial Bee Colony, ABC)是Karaboga于2005年提出的一种群体智能优化算法,其灵感来源于蜜蜂群体在自然界中高效的采蜜行为。该算法通过模拟雇佣蜂、观察蜂和侦察蜂三种角色的分工协作来寻找最优解。在ABC算法中,每个潜在的解决方案被视为一个“食物源”,其质量由适应度函数评估。雇佣蜂负责在已知优质食物源附近进行局部开采;观察蜂根据雇佣蜂分享的信息,以一定概率选择并跟进优质食物源;侦察蜂则随机探索新区域,防止种群陷入局部最优。

qq_42212808的博客 393

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

VC++6.0 建 C 语言工程:从新建到调试避坑指南

学习 C 语言时,IDE 与工程结构往往比语法更早成为门槛。VC++6.0 通过工作区、工程和源文件三层模型管理控制台程序,其 cl.exe 编译器主要遵循 C89,并带有微软扩展。理解 Win32 Console Application 向导、.c 与 .cpp 后缀差异、预编译头机制和链接报错,能帮助初学者把源码、编译选项与输出文件对应起来,减少环境配置与调试时间。这类知识不仅适用于教材和课程作业,也能迁移到 GCC/Clang 等现代工具链。围绕 VC++6.0 建 C 语言工程,从安装设置、新建工程

weixin_33805992的博客 316

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VC++6.0绿色版:兼容历史项目与便携开发的完整指南

在软件开发和系统维护领域,向后兼容性是处理历史遗留项目时必须面对的核心挑战。其原理在于,特定时期开发的软件往往深度绑定于当时的编译器版本、运行时库和开发环境,直接迁移到现代平台会引发严重的编译与运行错误。这一问题的技术价值在于,它要求开发者掌握在不破坏原有系统生态的前提下,进行维护和更新的能力。便携化(Portable)开发环境正是应对此类场景的工程实践方案之一,它通过封装完整的工具链和动态配置运行时环境,实现了开发环境的即开即用与系统无污染。对于依赖特定MFC库和编译器版本的经典C++桌面应用或教学项目而

weixin_30615767的博客 339

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC++ 6.0 MFC绘图实战:从消息循环到GDI实现交互式直线绘制

在Windows桌面开发中,理解图形用户界面(GUI)的底层机制是构建稳定应用程序的基石。其核心原理在于事件驱动模型,程序通过响应系统消息(如鼠标点击、移动)来执行相应逻辑。为实现图形绘制,需要掌握设备上下文(DC)这一关键概念,它作为绘图操作的画布与工具集合。GDI(图形设备接口)作为Windows经典的绘图API,提供了直线、矩形等基本图元的绘制功能,其技术价值在于实现了与设备无关的图形输出。在诸如绘图软件、CAD工具等应用场景中,实时交互式绘图是常见需求,这通常涉及鼠标消息处理与“橡皮筋”预览效果的实

weixin_33788244的博客 1012
上一篇: PE格式文件的代码注入
下一篇: 应用层反WG技术研究
M-先生
博客等级 码龄17年 60粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值