能力值:
( LV2,RANK:10 )
|
-
-
2 楼
我的问题怎么没人回啊,有什么不清楚的地方我可以补充,谢谢了。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
帮顶,我也想知道.
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
继续自己再顶
|
能力值:
( LV6,RANK:90 )
|
-
-
5 楼
可以试着观察一下你的程序在调用的时候传递参数什么的和目标程序是否一样
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
参数肯定是一样的,我已经校对过了,今天看了一下好像对象指针没有拿到,总是NULL, 除了Attach和FromPermanenthandle 还有什么办法吗?
我的Dll是Hook进去的,这样可行吗?
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
自已注入代码,挂接GetProcAddress,把它所有获取这个控件的DLL的函数全部拦截到自已的函数中
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
我不清楚,学习的
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
这个控件的DLL的函数我都能拿到,关键时调用它们的时候一定要有对象指针,今天又试了各种方法,都失败了。怎样才能获得窗体对象的指针呢?
|
能力值:
( LV6,RANK:90 )
|
-
-
10 楼
给你个暴力的方法,由于你知道hWnd,那么你可以在内存里找这个值。假设它就是窗体对象中的一部分。这样就有一部分可选的窗体了,然后再排除,比如说虚函数表中应该有哪些函数,这样来试试
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
修改函数入口处的代码,让它跳到自已的函数里
|
能力值:
( LV3,RANK:20 )
|
-
-
12 楼
楼主的思路 可以说对,但那不是简便的方法,其实 动态库里一定存在像listctrl中的additem一样的函数的,你只要拦截这个函数就可以了
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
谢谢 liuyq ,DLL里确实都是你说的那些函数,如果能拦截下来那肯定可以拿到对象指针, 让我再查些相关资料试试看, 感觉要用到汇编了,虽然不是很情愿。
|
能力值:
( LV3,RANK:20 )
|
-
-
14 楼
不需要,用OD,等DLL加载后,在该函数入口处下断(F2),然后运行程序就可以观察了
|
能力值:
( LV3,RANK:20 )
|
-
-
15 楼
如果你不知道是哪个函数,或不知道入口的话,用DLL查看器看它导出些什么 函数,慢慢猜吧
|
能力值:
( LV3,RANK:20 )
|
-
-
16 楼
还有另一种猜函数的方法,就是用OD打开后,在代码处右键弹出菜单中找个"查找模块间调用",这个也会对你有所帮助
|
能力值:
( LV3,RANK:20 )
|
-
-
17 楼
额不会上传图片,刚才看了下,在右键菜单中 "查找"->"所有模块间的调用"
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
和我一样汇编没学好,一直在学习。
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
谢谢liuyq, 我想这是个解决办法,祝你新年快乐。但是由于我的应用环境比较复杂。程序A(第三方)调用我的DLL接口(我在这里面实现代码注入和函数拦截)控制程序B的工具条,程序B的控件都定义在另一个DLL中。虽然我有那个DLL的source code,但还要作更多的尝试。
|
|
|