社区
进程/线程/DLL
帖子详情
如何访问目标进程里面的函数/接口?
jolley
2008-03-13 12:30:42
如题目显示,我想访问目标进程里面的一些接口(代码)来完成某一些功能,该怎么做?并且这些接口是可以确定的,先谢谢大家了。
...全文
148
16
打赏
收藏
如何访问目标进程里面的函数/接口?
如题目显示,我想访问目标进程里面的一些接口(代码)来完成某一些功能,该怎么做?并且这些接口是可以确定的,先谢谢大家了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cnzdgs
2008-03-14
打赏
举报
回复
LZ可能对于通讯的理解有些偏差,进程之间发送消息就是一个进程主动把一些信息传递到另一进程,发送各种消息都是进程间通讯,如果你写程序时没有处理这些消息,则是由窗口或控件自己来处理了。
WM_COPYDATA这个消息是专门用于传递数据的。
jolley
2008-03-14
打赏
举报
回复
[Quote=引用 10 楼 cnzdgs 的回复:]
你要访问的进程的源程序能修改吗?如果可以修改,这就是个进程间通讯的问题,可以用发消息、管道、共享内存等方式来通讯。如果不能改,则需要用FindWindow、FindWindowEx查找你所感兴趣的控件,再利用SendMessage获取你想要的信息或者控制目标窗口上的控件。
[/Quote]
我可以根据需要来修改源代码以提供一些方便的接口,至于进程间通信的问题,我是有一定了解的。
http://www.toy.360doc.com/showWeb/0/0/435054.aspx
但是我不知道消息在这里起到的具体作用是什么?用发送消息来通讯?之前的理解只是消息只用来获得鼠标/键盘的坐标之类的,而好象不怎么可能用发送消息来进行通讯吧?
至于后面采用的FindWindow的方法,我个人觉得是不可行的,这是因为我试过VC++6。0自带的SPY++,SPY++也是采用FindWindow的方法去查找控件的,并且有对应控件上的消息,但是在我公司游戏客户端里面能查找到的控件很少,一般能查找到的都是windows自带的一些控件,而游戏客户端里面的控件全是自定义的。
[Quote=引用 11 楼 zyyoung 的回复:]
dll注入,木马这么写
[/Quote]
zyyoung大哥也不用说得这么简洁吧?呵呵,我知道有个这样的做法:
http://www.codeproject.com/KB/threads/winspy.aspx
http://www.codeproject.com/KB/system/hooksys.aspx
但是我不知道具体的流程是什么?或者说具体怎么操作?特别是在游戏客户端里面。
lwykj
2008-03-14
打赏
举报
回复
就是dll 注入
cnzdgs
2008-03-14
打赏
举报
回复
进程间通讯的方法有很多,从你贴出的链接上都可以找到,你可以从中选择一个自己认为最方便的方法。
jolley
2008-03-14
打赏
举报
回复
[Quote=引用 13 楼 cnzdgs 的回复:]
LZ可能对于通讯的理解有些偏差,进程之间发送消息就是一个进程主动把一些信息传递到另一进程,发送各种消息都是进程间通讯,如果你写程序时没有处理这些消息,则是由窗口或控件自己来处理了。
WM_COPYDATA这个消息是专门用于传递数据的。
[/Quote]
谢谢cnzdgs的回复,我的确有点头昏,谢谢你指出,才做进程通讯这块,之前用MFC的时候,涉及了一些消息处理,但是都像你所说的一样,都是控件/窗口自己进行处理,最多的时候也就是是自定义控件消息。
我刚才在
http://www.codeproject.com/KB/threads/ipc_wmcopy.aspx
里面看到了他的相关用法,不过我不打算采用它。有个这样的问题:
在一个进程向另外一个进程通讯(传送数据)以后,那些相关接口要继续保留以供第三方来调用接口并返回一些状态,比如我在Hook键盘/鼠标信息以后将鼠标的位置或者键盘的输入以数据的形式告诉目标进程(我公司的游戏客户端),然后在里面做一些判断,比如针对某个位置的状态检查,是选中了呢?还是没有选中,最好的是做成DLL,因为第三方程序就要访问DLL里面的接口对客户端进行操作。感觉采用WM_COPYDATA的话就缺少这种第三方程序对客户端操作后的反馈,并且在提供的接口上面也存在问题。
再次谢谢cnzdgs.
cnzdgs
2008-03-13
打赏
举报
回复
如果可以确定要执行的代码的地址,用CreateRemoteThread来调。
zyyoung
2008-03-13
打赏
举报
回复
dll注入,木马这么写
cnzdgs
2008-03-13
打赏
举报
回复
你要访问的进程的源程序能修改吗?如果可以修改,这就是个进程间通讯的问题,可以用发消息、管道、共享内存等方式来通讯。如果不能改,则需要用FindWindow、FindWindowEx查找你所感兴趣的控件,再利用SendMessage获取你想要的信息或者控制目标窗口上的控件。
jolley
2008-03-13
打赏
举报
回复
谢谢cnzdgs的回复,我现在知道的是目标进程(公司游戏客户端)里面的一些函数和接口,比如一些控件/对象的属性标识接口,我要实现的是通过用户/玩家鼠标和键盘所产生的坐标信息做参数传递进入目标进程里面的函数,并且返回该坐标上的情况(选中状态或者没有被选中状态)。
值得指出的是,我不只是想执行目标进程里面的一个函数,像刚才提到的一样,假如我要确定某个位置上的控件是否被选中的话,那么可能就要知道控件的(坐标(x,y),长,宽)等,这些函数在目标进程中的虚拟地址和目标进程的句柄都是比较难确定的。所以用起来比较麻烦。
jolley
2008-03-13
打赏
举报
回复
谢谢cnzdgs的回复,我现在知道的是目标进程(公司游戏客户端)里面的一些函数和接口,比如一些控件/对象的属性标识接口,我要实现的是通过用户/玩家鼠标和键盘所产生的坐标信息做参数传递进入目标进程里面的函数,并且返回该坐标上的情况(选中状态或者没有被选中状态)。
值得指出的是,我不只是想执行目标进程里面的一个函数,像刚才提到的一样,假如我要确定某个位置上的控件是否被选中的话,那么可能就要知道控件的(坐标(x,y),长,宽)等,这些函数在目标进程中的虚拟地址和目标进程的句柄都是比较难确定的。所以用起来比较麻烦。
jolley
2008-03-13
打赏
举报
回复
谢谢cnzdgs的回复,我现在知道的是目标进程(公司游戏客户端)里面的一些函数和接口,比如一些控件/对象的属性标识接口,我要实现的是通过用户/玩家鼠标和键盘所产生的坐标信息做参数传递进入目标进程里面的函数,并且返回该坐标上的情况(选中状态或者没有被选中状态)。
值得指出的是,我不只是想执行目标进程里面的一个函数,像刚才提到的一样,假如我要确定某个位置上的控件是否被选中的话,那么可能就要知道控件的(坐标(x,y),长,宽)等,这些函数在目标进程中的虚拟地址和目标进程的句柄都是比较难确定的。所以用起来比较麻烦。
jolley
2008-03-13
打赏
举报
回复
谢谢cnzdgs的回复,我现在知道的是目标进程(公司游戏客户端)里面的一些函数和接口,比如一些控件/对象的属性标识接口,我要实现的是通过用户/玩家鼠标和键盘所产生的坐标信息做参数传递进入目标进程里面的函数,并且返回该坐标上的情况(选中状态或者没有被选中状态)。
值得指出的是,我不只是想执行目标进程里面的一个函数,像刚才提到的一样,假如我要确定某个位置上的控件是否被选中的话,那么可能就要知道控件的(坐标(x,y),长,宽)等,这些函数在目标进程中的虚拟地址和目标进程的句柄都是比较难确定的。所以用起来比较麻烦。
jolley
2008-03-13
打赏
举报
回复
谢谢cnzdgs的回复,我现在知道的是目标进程(公司游戏客户端)里面的一些函数和接口,比如一些控件/对象的属性标识接口,我要实现的是通过用户/玩家鼠标和键盘所产生的坐标信息做参数传递进入目标进程里面的函数,并且返回该坐标上的情况(选中状态或者没有被选中状态)。
值得指出的是,我不只是想执行目标进程里面的一个函数,像刚才提到的一样,假如我要确定某个位置上的控件是否被选中的话,那么可能就要知道控件的(坐标(x,y),长,宽)等,这些函数在目标进程中的虚拟地址和目标进程的句柄都是比较难确定的。所以用起来比较麻烦。
jolley
2008-03-13
打赏
举报
回复
谢谢cnzdgs的回复,我现在知道的是目标进程(公司游戏客户端)里面的一些函数和接口,比如一些控件/对象的属性标识接口,我要实现的是通过用户/玩家鼠标和键盘所产生的坐标信息做参数传递进入目标进程里面的函数,并且返回该坐标上的情况(选中状态或者没有被选中状态)。
值得指出的是,我不只是想执行目标进程里面的一个函数,像刚才提到的一样,假如我要确定某个位置上的控件是否被选中的话,那么可能就要知道控件的(坐标(x,y),长,宽)等,这些函数在目标进程中的虚拟地址和目标进程的句柄都是比较难确定的。所以用起来比较麻烦。
cnzdgs
2008-03-13
打赏
举报
回复
不明白你的意思,你现在已知的有哪些?想要实现的是什么?描述具体一点。
按我的理解,你只是想执行目标进程中的一个函数,而且这个函数在目标进程中的虚拟地址和目标进程的句柄(或ID)是已知的。这样的话调用CreateRemoteThread就可以。
jolley
2008-03-13
打赏
举报
回复
谢谢cnzdgs,我已经知道了这个事实,但是如果只是确定目标进程代码的地址,通过什么方法来知道要调用代码的地址什么的?而且即使知道地址了,未必可以获得我想要调用的代码呀?谢谢拉。
2021-09-26
面试二问了整个项目的整体的流程,为什么选择某些技术或者基础组件 1.自我介绍 2.挑一个项目,画项目的架构图 Kafka发送数据之后立即返回还是等待ACK之后才返回? Kafka工作流程: producter先从Zookeeper获取分区的leader producter将消息发送给leader Leader将消息写入本地文件 followers从leader pull消息 followers将消息写入本地后向leader发送ACK leader收到所有副本的A
SAP ABAP 关于 RFC
函数
和
接口
的开发经验总结
直到当前 S4 系统,RFC
函数
仍是 SAP 通讯核心。这篇文章,总结我关于 RFC
函数
和
接口
的开发经验,文章会不定期更新以丰富和完善要点内容。
5w字总结 Unix系统编程学习笔记(面试向)(Unix环境高级编程/Unix环境程序设计)
文章目录一、计算C语言的数据表示与处理计算C语言的基本运算操作内存表和符号表类型转换
函数
类型的分析指令复合指令句法
函数
函数
激活(Activation Record)
函数
激活定义
函数
激活存储内容二、并发多道程序设计和分时Unix分时:存储的保存和加载中断(interrupt)时钟中断( Clock Interrupt )系统调用(system call)
进程
切换(上下文切换)分时的实现应用层并发三、程序、
进程
和线程什么是程序?什么是
进程
?
进程
的状态有哪些?其转换关系是怎么样的?
进程
什么时候开始产生/运行?什么
多个
进程
范文DLL中的
函数
/全局变量/数据共享段问题
转载请标明是引用于 http://blog.csdn.net/chenyujing1234 第一种方法:数据段共享#pragma data_seg 一、 #pragma data_seg() 1,#pragma data_seg()一般用于DLL中。也就是说,在DLL中定义一个共享的,有名字的数据段。最关键的是:这个数据段中的全局变量可以被多个
进程
共享。 否则多个
进程
之间无法共享DLL
整理的最全 python常见面试题(基本必考)
1、大数据的文件读取 利用生成器generator迭代器进行迭代遍历:for line in file2、迭代器和生成器的区别迭代器是一个更加抽象的概念,任何对象,如果它的类有next方法和iter方法返回自身。对于string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()
函数
,iter()是Python的内置
函数
。iter...
进程/线程/DLL
15,466
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章