1.远程调用其他进程中的代码

学习记录。

void usegoods()
{
    _asm
    {
        push 3//3是小金疮药。金疮药id
        push 1
        push 0
        mov eax,0x79D330
        call eax
    }
}

上诉代码是通过od找出的一个call。然后用c++内嵌汇编来调用这个call

void CrxjhcDlg::OnBnClickedButton1()
{
    HWND h;
    h=::FindWindow(NULL,L"YB_OnlineClient");//获取游戏窗口句柄spy++
    DWORD id;
    LPDWORD pid=&id;//LPDWORD是DWORD的地址类型。
    //获取指定窗口进程id 放id
    ::GetWindowThreadProcessId(h,pid);
    //获取访问进程权限放hp中
    HANDLE hp=OpenProcess(PROCESS_ALL_ACCESS,false,id);
    //在游戏中分配内存空间放入自己的代码
    //返回值是申请地址的基地址,1,进程权限,2null  3申请的大小,4固定,5,权限
    LPVOID calladdress=VirtualAllocEx(hp,NULL,0x3000,MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);
    //将代码写入申请的空间中
    //1进程权限,2申请的地址3调用的方法名,4大小5实际大小。
    ::WriteProcessMemory(hp,calladdress,usegoods,0x3000,NULL);
    //远程调用写入的代码
    DWORD tid;
    CreateRemoteThread(hp,NULL,0,(LPTHREAD_START_ROUTINE)calladdress,0,0,&tid);

}
时间: 2024-11-09 09:19:22

1.远程调用其他进程中的代码的相关文章

学习笔记之卸载远程目标进程中的DLL模块(转)

学习笔记之卸载远程目标进程中的DLL模块 (2007-07-23 23:51:02) 转载▼ 学习笔记之卸载远程目标进程中的DLL模块2007/7/231.首先得把DLL模块中的线程结束使用CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,0);创建系统线程的快照然后用Thread32First()和Thread32Next()遍历系统中所有线程.将遍历到的线程保存到THREADENTRY32结构,然后判断结构中的th32OwnerProcessID成员是否与

【Rest】在Dubbo中开发REST风格的远程调用(RESTful Remoting)

目录 概述 REST的优点 应用场景 快速入门 标准Java REST API:JAX-RS简介 REST服务提供端详解 HTTP POST/GET的实现 Annotation放在接口类还是实现类 JSON.XML等多数据格式的支持 中文字符支持 XML数据格式的额外要求 定制序列化 配置REST Server的实现 获取上下文(Context)信息 配置端口号和Context Path 配置线程数和IO线程数 配置长连接 配置最大的HTTP连接数 配置每个消费端的超时时间和HTTP连接数 GZ

MFC动态调用dll到指定的进程中(win7系统vs2013环境下)

一.主程序 1.新建一个MFC项目,类型选择基于对话框 2.写一个简单的窗体 点击启动事件 MessageBox(L"调用Dll到程序中成功."); 二.要调用的Dll 1.新建一个win32dll 选择dll.勾选导出符号 1.生成Dll项目 此时会在主程序Main的debug文件夹中生成了Dll.dll和Dll.lib文件 三.配置主程序Main的属性 1.选择链接器--输入--附加依赖项:Dll.lib 1.选择连接器--输入--常规--附加库目录:..\Debug 1.包含头文

在进程中运行新代码

摘要:本文主要讲述如何在进程中运行新代码,以及exec系列函数的基本使用方法. 在进程中运行新代码 用函数fork创建子进程后,如果希望在当前子进程中运行新的程序,可以调用exec函数执行另一个程序.当进程调用exec函数时,该进程用户空间资源(正文.数据.堆和栈)完全由新程序替代,新程序则从main函数开始执行.因为调用exec函数并没有创建新的进程,所以前后的进程ID并没有改变,也即内核信息基本不做修改. exec系列函数共有7函数可供使用,这些函数的区别在于:指示新程序的位置是使用路径还是

在挂起的进程中创建一个远程线程

以挂起状态创建一个进程 invoke CreateProcess, NULL, szPath, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, addr @si, addr @pi 在该进程中创建一个远程线程 invoke CreateRemoteThread, hProcess, NULL, 0, eax, NULL, NULL, NULL 如果在恢复主线程之前,远程线程退出了,程序就会退出或没有界面(XP下会有这个问题,WIN7不会出现).

远程调用原理初探(附c#代码示例)

分布式系统有很多成熟的解决方案.如:微软的WCF.WCF太过于复杂,配置也麻烦.其实可以自己动手设计一个小的分布式系统.系统的原理完全在自己掌握之中,可以根据业务随机而变.这里展示远程调用最核心最基本的处理逻辑,其实远程调用并不复杂神秘. 分布式系统其实是数据流的交换.数据必须快速的从一段传送到另一端,否则系统性能就大打折扣.对于.net,本人设计一个非常优化易于使用的网络库(EasyNetMessage).使用该库,不需要关心底层细节,所有处理对象是string.byte:发送时,不需要处理分

Python中实现远程调用(RPC、RMI)简单例子

说白了,远程调用就是将对象名.函数名.参数等传递给远程服务器,服务器将处理结果返回给客户端 远程调用使得调用远程服务器的对象.方法的方式就和调用本地对象.方法的方式差不多,因为我们通过网络编程把这些都隐藏起来了.远程调用是分布式系统的基础. 远程调用一般分为两种,远程过程调用(RPC)和远程方法调用(RMI). RPC RPC属于函数级别的远程调用,其多是通过HTTP传输数据,数据形式有XML.JSON.序列化数据等.在此,用python做一个xml-rpc的示例. 先给服务器端server.p

Dubbo搭建HelloWorld-搭建服务提供者与服务消费者并完成远程调用(附代码下载)

场景 Dubbo简介与基本概念: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103555224 Dubbo环境搭建-ZooKeeper注册中心: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103555470 Dubbo环境搭建-管理控制台dubbo-admin实现服务监控: https://blog.csdn.net/BADAO_LIUMANG_QI

C代码中如何调用C++ C++中如何调用C

1. 在C++中调用C:使用extern "C"则是告诉编译器依照C的方式来编译封装接口,当然接口函数里面的C++语法还是按C++方式编译. 包装(wrapper) 2. 在C中调用C++:extern "C" 的作用是:让C++连接器找调用函数的符号时采用C的方式 注意这里的C调用C++或者C++调用C意思是.c文件中调用.cpp文件中代码,或者相反. 集成开发环境如VC++6.0或者vs都是以文件后缀来区别当前要编译的是C代码还是C++代码,然后采用响应的编译.