如何hook到一个其他的程序里面,读取那里面的label上的文字内容 ( 积分: 200 )

  • 主题发起人 主题发起人 zhang312
  • 开始时间 开始时间
Z

zhang312

Unregistered / Unconfirmed
GUEST, unregistred user!
1.如何安装一个钩子到其他的程序里面(不是系统钩子),读取那里面的label上的文字内容<br>愁死了,基础太差,所有的屏幕取词文章都是在下系统钩子,下线程钩子的文章太少<br>2.如何获得线程的真实ID,必须要用DuplicateHandle吗,这函数怎么用,得到了真实的线程ID才好向其发重画命令
 
高手在哪里啊,求救。。。。。。。。。。<br>到底能不能只下钩子到一个线程,
 
下线程钩子只能针对当前程序吗
 
帮你顶!
 
基础胎差就不要想了,很难的。
 
1。远程线程注入<br>2。findcontrol找到窗体实例frmobj<br>3。你定义一个Frm&nbsp;:&nbsp;tform&nbsp;&nbsp;;Frm&nbsp;:=&nbsp;Tform(frmobj);<br>4。核心:for&nbsp;i:=&nbsp;0&nbsp;to&nbsp;MyFrm.ComponentCount&nbsp;-&nbsp;1&nbsp;do//找出所有Component,然后通过类判断(Tlable)找出所有的Lable;<br>5。你自己动手了。。。。。。。<br>注:这里是找到这个线程里所有的控件,要是你要修改指定的lable的内容,你只有通过该方法列出所有的修改指定的控件,要是你想一对一的修改,i&nbsp;dont&nbsp;know&nbsp;了<br>这里我贴出我的FindControl:<br>function&nbsp;MyFindControl&nbsp;(&nbsp;WinHandle&nbsp;:&nbsp;DWORD&nbsp;)&nbsp;:&nbsp;TWinControl;<br>var<br>&nbsp;&nbsp;&nbsp;&nbsp;ThreadID&nbsp;:&nbsp;DWORD;<br>&nbsp;&nbsp;&nbsp;&nbsp;WinAtomStr&nbsp;:&nbsp;String;<br>&nbsp;&nbsp;&nbsp;&nbsp;WinAtom&nbsp;&nbsp;:&nbsp;TAtom;<br>&nbsp;&nbsp;&nbsp;&nbsp;RM_GetObjectInstance&nbsp;:&nbsp;DWORD;<br>begin<br>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;nil;<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;WinHandle&nbsp;=&nbsp;0&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit;<br>&nbsp;&nbsp;&nbsp;&nbsp;GetWindowThreadProcessId&nbsp;(&nbsp;WinHandle,&nbsp;@ThreadID&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;WinAtomStr&nbsp;:=&nbsp;Format(&nbsp;'Delphi%.8X',&nbsp;[ThreadID]&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;WinAtom&nbsp;:=&nbsp;GlobalAddAtom&nbsp;(&nbsp;PChar&nbsp;(&nbsp;WinAtomStr&nbsp;)&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;RM_GetObjectInstance&nbsp;:=&nbsp;RegisterWindowMessage(PChar(WinAtomStr));<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;GlobalFindAtom(PChar(WinAtomStr))&nbsp;=&nbsp;WinAtom&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;Pointer(GetProp(WinHandle,&nbsp;MakeIntAtom(WinAtom)))<br>&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;Pointer(SendMessage(WinHandle,&nbsp;RM_GetObjectInstance,&nbsp;0,&nbsp;0));<br>end;
 
刚做了这个&nbsp;直接挂接&nbsp;textout&nbsp;函数就可以实现
 
Dstorm&nbsp;真是高手级别啊.佩服
 
请教delphfans,怎么实现啊,能给个源码看看吗,要能够HOOK指定程序,读取其中显示出的textout
 
delphi群:23981160,爱好d的都来
 
后退
顶部