吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3566|回复: 7
上一主题 下一主题
收起左侧

[求助] 怎样hook拦截修改ocx的函数和返回值?手里有个ocx内部调用了mscomm32.ocx进行通信

[复制链接]
跳转到指定楼层
楼主
popdes 发表于 2022-8-12 21:59 回帖奖励
本帖最后由 popdes 于 2022-8-12 22:38 编辑

我的目的:
现有的软件用的是[设备A]提供数据, 想要通过hook方式来改为[设备B]来提供数据,
这样就可以用手头现成的[设备B]来使用软件, 不用另外去买设备了.


手里有一个demo.ocx组件, 这个组件里调用了mscomm32.ocx控件对[设备A]进行串口数据采集,
目前我想要将这个串口通信转移到另外一个[设备B]上面,
当demo.ocx里通过mscomm32对串口请求数据的时候,
hook住mscomm32里面的函数, 先采集[设备B]的数据 , 经过一系列的格式化,
让它满足demo原来的串口收发数据格式, 修改函数的数据返回值

使得demo还是以为这个数据来自[设备A] , 但是其实上数据已经由[设备B]提供了,
这样也就达到了移花接木的目的.


以前有用过raw.apihook , hook住Pcomm.dll里面的串口函数, 利用上面的办法可以很容易的实现移花接木,
但是现在遇到的mscomm32.ocx就不知道该怎么处理了.....


目前, 还有个思路 :
就是按照自己手动重写一个函数名和参数都和mscomm32.ocx内部的函数一模一样的ocx, GUID和IID都一模一样, 用来替代这个系统的mscomm32.ocx
但是这样有两个问题 1. 有很多程序会调用mscomm32.ocx ,如果我给替换掉, 电脑上的其他软件就完蛋了.
2. 我发现这个mscomm32里面有个put函数还有一些其他的问题, 手撸一个一模一样的感觉还是有点难度, 汗

另外用过虚拟串口进行搭桥手术,就是专门做个软件采集设备B,然后连上虚拟串口的1口,虚拟串口的2口连上demo软件,1和2口通过虚拟串口接通,这样就可以在demo上使用设备B了。但是这样做需要在电脑上装上虚拟串口并且所有的连接都要手动接好,对普通使用者来说稍显麻烦,并且不利于批量使用。所以此方法放弃。



不知道大家有没有更好的办法或者思路
谢谢

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
iawyxkdn8 发表于 2022-8-13 09:09
加         油!
3#
sam喵喵 发表于 2022-8-13 10:13
4#
 楼主| popdes 发表于 2022-8-13 15:57 |楼主
感谢楼上帮顶,让更多大佬看到
实在没办法只能手动写一个函数名相同的ocx了
5#
qsdya01 发表于 2022-8-15 16:25
过来帮你顶一下
头像被屏蔽
6#
blgzs 发表于 2022-8-23 12:21
提示: 作者被禁止或删除 内容自动屏蔽
7#
 楼主| popdes 发表于 2022-8-24 18:03 |楼主
blgzs 发表于 2022-8-23 12:21
和dll一样hook就行, ocx本身也是dll.  找到加载ocx的浏览器进程,hook进去,定位到ocx的代码,inline hook , o ...

求指教 ,
例如我上面说的mscomm32.ocx是个串口控件, 我是要拿到demo.exe的进程? 怎么hook进去, 是需要注入一个dll吗?
头像被屏蔽
8#
blgzs 发表于 2022-9-5 16:25
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 06:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表