吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3343|回复: 22
上一主题 下一主题
收起左侧

[原创工具] C++64位程序调用32位大漠插件的方法附源码

[复制链接]
跳转到指定楼层
楼主
Patty 发表于 2024-5-27 17:14 回帖奖励
本帖最后由 Patty 于 2024-5-27 17:18 编辑

前言:
C++免注册调用大漠插件3.1233 ,我想大家都使用过,这里就不说啦
我们都知道dm.dll的3.1233版本是32位dll,不支持64位程序的调用的,大漠作者也没有放64位的dm.dll出来;
我这里可以将dm.dll以资源的形式封装到32位程序中,然后在32位程序与64位程序建立http通信从而实现64位程序调用32位dm.dll中的功能的目的。

本想使用共享内存通信的,这样通信快,可共享内存通信请求数据做1套共享内存通信,响应数据也需要做1套共享内存通信都得自己做,因为懒不想写,所以使用的http通信,我只需要设计一下http通信的json协议就行了。
本想将大漠dll封装到资源中内存加载使用呢!这样dm.dll就不会在硬盘上运行了,可是因为dm.dllOEP入口点是被修改了的,无法内存加载,正常的PE结构定位不到了,我懒得写固定地址,就资源释放加载使用了。

大漠3.1233一共314个函数,在64位上大部分函数可以使用,个别函数无法使用自己调用测试就知道了。
如果可以的话不建议使用这种方法,主要是封装太累,都使用C++了建议自已写64位库比什么都好用,当然不得不的时候,可以使用这个方法。

还有就是64位绑定窗口 只能前台操作了。
还有关于多线程:大漠也支持多线程的,好像支持的不是很完美,我这里的http通信是单线程的,不过一个进程启动多个子进程,是可以实现多线程的通信的。
------------------------------------------------------------------------------------------------------------------------------
环境
语言:C/C++
工具:VS2017

------------------------------------------------------------------------------------------------------------------------------
引用的库
    1,httplib.h库
    2,nlohmann::json

------------------------------------------------------------------------------------------------------------------------------
代码执行逻辑与通信逻辑

------------------------------------------------------------------------------------------------------------------------------
工程
64位进程=httplibClent.exe 先执行
32位进程=httplibServer.exe 资源含大漠dm.dll
64位进程调用子32位进程,测试大漠功能挺完美


------------------------------------------------------------------------------------------------------------------------------
执行后进程状态


------------------------------------------------------------------------------------------------------------------------------
64位程序调用32位dll完美解决方案
库也在源码代码中可以直接编译可用主要是搭框架,我仅封装了大漠的这几个函数,大漠300+函数这体力活太累了,谁有空做完了发我一份啊

httplibTest源码: httplibTest源码.rar (1.82 MB, 下载次数: 41)
httplibTest编译成品: httplibTest编译成品.rar (987.07 KB, 下载次数: 37)
完毕谢谢观看!~
------------------------------------------------------------------------------------------------------------------------------



免费评分

参与人数 3吾爱币 +9 热心值 +2 收起 理由
catoo1 + 1 我很赞同!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
only998 + 1 + 1 我很赞同!

查看全部评分

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

推荐
plauger 发表于 2024-5-27 22:52
RPC服务就可以做到,而且不用自己去实现这些通讯细节,特别是对这种几百个函数的包装,工作量会少很多。

另外,如果不考虑跨平台的话,包装成Windows Services也可以做到,相对来说个人觉得要比RPC复杂一些,开发/调试也要麻烦一些.
3#
wa313906614 发表于 2024-5-27 18:13
4#
q12569463 发表于 2024-5-27 18:21
5#
雪莱鸟 发表于 2024-5-27 20:28
大漠:太好了,我有个64bit的马甲了
6#
muyu08 发表于 2024-5-27 20:30
谢谢分享!
7#
only998 发表于 2024-5-27 21:35
方法不错!
8#
adm471808 发表于 2024-5-27 22:09
谢谢分享
9#
latte777 发表于 2024-5-27 22:24
看看分享,感谢大佬贡献
10#
jiqimaoer 发表于 2024-5-28 07:21
感谢分享,试试
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-15 11:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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