首页
社区
课程
招聘
[求助]请指点跨进程文本获取的问题.
发表于: 2006-11-3 09:25 5851

[求助]请指点跨进程文本获取的问题.

2006-11-3 09:25
5851
本人主要从事应用软件的开发,但是最近碰到一些跨进程获取其他程序中的内容、信息、数据的问题,经过一段时间的学习研究,虽然还没有解决问题,但是得到了一些经验,希望通过我的这些经验能给大家带来一些帮助。我现在还在取一个进程里的信息,但是总有一些信息无法取到,甚是苦恼,作为一个开发者,如果碰到了问题又不想放弃,所以顺便找一些有兴趣的朋友,一块和我研究探讨这个问题:(技术探讨联系方式:QQ511876813 或13903266770)

1、        通过标准消息获取:
例如WM_GETTEXT可以获取EDIT的文本内容;
                  LB_GETTEXT可以获取LISTBOX列表项的文本内容;
                  CB_GETLBTEXT可以获取COMBOBOX下拉列表项的文本内容;
LVM_GETITEMTEXT可以获取LISTVIEW列表项的文本内容;
TVM_GETITEM可以获取TREEVIEW中的文本内容;
说明,这种情况下对于VC、VB等所编写的程序是适用,但是,如果碰到DELPHI所写的程序就无法运用信息直接直接获取了。不过可以采用其它的方法进行获取。

2、        通过ApiHook的技术进行获取,最经典的例子就输入“屏幕取词”了,屏幕取词的基本原理是,通过鼠标移动,当鼠标在一个地方停留一定时间后,将重画鼠标所在的位置,这样系统将调用文本输出的API函数进行文本重画,这个时候在TXTOUT、TXTOUTW、EXTTXTOUT、EXTTXTOUTW、DrawTextA、DrawTextW、tabbedTextOutA、TabbedTextOutW、PolyTextOutW等等API函数里加入HOOK,重画函数执行时,将调用自己的API函数,因为自己的API函数必须很原函数具有相同结构的参数,从而获取的要重画的内容,之后恢复原API函数的执行,从而达到了获取文本的目的,这种方法多数是做一个嵌入其它进程的DLL,运用SetWindowsHookEx钩住WH_GETMESSAGE等消息实现的。

3、        VC具有强大的功能,对于要被监视的进程可以所有通过CreateProcess来创建,创建模式可以DEBUG_ONLY_THIS_PROCESS的调试模式,并且在调试模式下加入断点,断点的设置可以根据各自的需要设置,如果你想获取文本信息,可以把断点设置在文本输出的地方,这样,只要文本信息在输出时,就会自动断住,此时利用ReadProcessMemory可以取到加载内存中的数据。

4、        如果要找到其它进程的数据,可以直接取内存,如果用一些工具,比如OD,找到您所需要的信息在内存中的位置,可以用ReadProcessMemory取内存内容即可。这种方法也多用于软件破解,外挂制作等。

5、        如果数据所监测的进程属于客户端和服务器端的模式,也可以尝试获取经过网卡数据的方式来实现,获取了通过网卡的数据以后,经过分析以后取得自己想要的内容。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
重金??这里不来这套的吧!
2006-11-3 09:49
0
雪    币: 47147
活跃值: (20410)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
dazhenoos你好,己编辑你的帖子,请勿发带有交易性子的帖子。这里的人都很热心的,只要你将技术问题描述清楚,能回答的,会给你答复的。
2006-11-3 10:27
0
游客
登录 | 注册 方可回帖
返回
//