开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 430|回复: 9
打印 上一主题 下一主题
收起左侧

[讨论] 关于X64位DLL本地验证

[复制链接]
结帖率:67% (8/12)
跳转到指定楼层
发表于 2025-4-27 23:20:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式   河北省衡水市
写了一个C++的X64位DLL,不加网络验证,也不能加壳的授权验证,想加一个本地验证,然后用易语言对这个DLL效验,有什么思路嘛各位大哥,指点指点
结帖率:67% (8/12)

签到天数: 12 天

来自 9楼
 楼主| 发表于 2025-4-28 13:59:36 | 只看该作者   河北省衡水市
在不加网络验证和壳的情况下 在源码里面我该怎么写这个验证呢 只要别人拿走dll不随意使用就行 哪怕特别简单的验证也没关系

大概就是 易语言写的exe对这个dll进行授权 如果不是通过我的exe下载的dll是没办法使用的
回复 支持 反对

使用道具 举报

结帖率:67% (8/12)

签到天数: 12 天

8
 楼主| 发表于 2025-4-28 13:57:55 | 只看该作者   河北省衡水市
菜鸟小杰 发表于 2025-4-28 08:14
要源码是不可能给你的 自己研究吧

不是跟你要源码 哥 我只是想要一个源码版的思路 在不加网络验证和壳的情况下 在源码里面我该怎么写这个验证呢 只要别人拿走dll不随意使用就行 哪怕特别简单的验证也没关系
回复 支持 反对

使用道具 举报

结帖率:100% (22/22)

签到天数: 12 天

7
发表于 2025-4-28 12:26:16 | 只看该作者   广东省惠州市
X64位DLL能让32位EXE调用吗?
[size=16.002px]在Windows系统中,32位(x86)和64位(x64)程序由于架构差异,无法直接互相调用对方的DLL。以下是关键点总结:
1. 直接调用不可行
  • 架构不兼容:32位和64位的指针大小、内存布局及寄存器结构不同,DLL必须与EXE的架构一致才能被加载到同一进程空间。
  • 系统限制:Windows加载器会检查DLL与EXE的位数,若不一致会直接报错(如错误193:"%1 不是有效的 Win32 应用程序")。

2. 间接解决方案
  • 进程间通信 (IPC)

    • 创建一个64位的辅助进程(或服务),由它加载64位DLL并实现所需功能。
    • 32位EXE通过管道、套接字、RPC、COM或共享内存等方式与64位进程通信。
    • 例如:使用命名管道(CreateNamedPipe)或HTTP API交换数据。

  • 中间层代理
    • 开发一个64位的COM组件或本地服务,供32位EXE通过代理调用。
    • 利用Windows的跨架构COM激活机制(通过注册表配置Clsid/ProgId的跨位调用)。


3. 其他替代方案
  • 升级EXE为64位:若环境允许,将主程序编译为64位,直接调用64位DLL。
  • 提供双版本DLL:同时提供32位和64位DLL,EXE根据自身架构加载对应版本(需代码适配)。
  • 虚拟化/封装:通过DLL封装工具(如微软的DLL Wrapper或第三方库)转换接口,但需处理数据类型的位数差异。

4. 技术细节补充
  • WoW64子系统:64位Windows运行32位EXE时,会通过WoW64模拟层,但该层不混合32/64位代码。
  • 注册表隔离:32位和64位程序访问不同的注册表分支(HKLM\Software\Wow6432Node),需注意配置路径。

总结
[size=16.002px]直接调用不可行,但可通过进程隔离和通信技术间接实现功能。选择方案时需权衡开发成本、性能开销及维护复杂度。若长期维护,建议将EXE和DLL统一为64位以简化架构。

回复 支持 反对

使用道具 举报

结帖率:100% (22/22)

签到天数: 12 天

6
发表于 2025-4-28 12:19:27 | 只看该作者   广东省惠州市
X64位DLL本地验证?你是用易语言取这个X64的dll的MD5值吗?
回复 支持 反对

使用道具 举报

结帖率:10% (1/10)

签到天数: 10 天

地下
发表于 2025-4-28 08:15:03 | 只看该作者   四川省眉山市
菜鸟小杰 发表于 2025-4-28 00:10
pe合并   条件对无壳程序一键  目前我自己写的有 x86 x64一键

易语言本身就是 32位的   64位需要其他语言
回复 支持 反对

使用道具 举报

结帖率:10% (1/10)

签到天数: 10 天

地板
发表于 2025-4-28 08:14:42 | 只看该作者   四川省眉山市
要源码是不可能给你的 自己研究吧
回复 支持 反对

使用道具 举报

签到天数: 4 天

板凳
发表于 2025-4-28 02:30:06 | 只看该作者   重庆市重庆市
就用易语言写 怎么方便怎么来 无非就是位数不同而已 主要看校验的思路 同样的思路同样的方法 64来写效果和32来写没有什么区别
回复 支持 反对

使用道具 举报

结帖率:67% (8/12)

签到天数: 12 天

沙发
 楼主| 发表于 2025-4-28 01:26:14 | 只看该作者   河北省衡水市
菜鸟小杰 发表于 2025-4-28 00:10
pe合并   条件对无壳程序一键  目前我自己写的有 x86 x64一键

我想要源码的 哥 加到源码里面的 就相当于一个简单内置的验证
回复 支持 反对

使用道具 举报

结帖率:10% (1/10)

签到天数: 10 天

楼主
发表于 2025-4-28 00:10:30 | 只看该作者   四川省眉山市
pe合并   条件对无壳程序一键  目前我自己写的有 x86 x64一键
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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