扫描二维码关注官方公众号

110 评论

0 收藏

分享

[易语言源码] 易语言 X86/X64 通用特征码搜索模块源码:全网功能最完善版本开源(附多场景应用示例)

 

马上注册,结交更多好友,享用更多功能,让你轻松玩转无忧吧。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

易语言 X86/X64 通用特征码搜索模块源码:全网功能最完善版本开源(附多场景应用示例)
一、写在前面:从「简单需求」到「全网最完善」的开发历程
一开始只是想写个能在内存里搜特征码的小工具,结果越挖越深 —— 从支持X86/X64双架构到文件/内存双模式搜索,从通配符匹配到多线程加速,前前后后重构了 3 版,对比论坛现有 5 + 款特征码模块后,可以很自信地说:这个版本可能是目前易语言圈功能最全、兼容性最好的特征码搜索方案。
二、核心功能矩阵:覆盖 90% 逆向 / 调试场景需求
功能维度具体实现对比传统模块优势
架构支持 原生支持 X86(32 位)/X64(64 位)进程内存搜索,自动识别目标进程架构 传统模块仅支持单架构,需手动切换易语言编译器版本
搜索模式 内存搜索(OpenProcess)+ 文件搜索(直接读.exe/.dll)双模式 多数模块仅支持内存搜索,无法离线分析文件特征
匹配规则 支持??通配符(如40 55 33 ?? 78)、范围通配(如40-45 55)、反选匹配(如!40 55) 传统模块仅支持基础??通配,复杂规则需手动拆分
性能优化 多线程搜索(自定义线程数)+ 内存分页过滤(跳过不可读页)+ 缓存机制(重复搜索提速 30%) 普通模块单线程慢搜,大内存场景易卡死
错误处理 包含进程权限不足/内存不可读/特征码格式错误等 12 类异常捕获,返回详细错误码(如 #ERROR_ACCESS_DENIED) 传统模块报错仅提示 “搜索失败”,排查困难
三、核心源码解析:关键函数与实现逻辑
1. 模块初始化函数(必调)
易语言
.版本 2

.子程序 特征码模块初始化, 逻辑型, 公开, 初始化模块(需优先调用)
.参数 目标进程ID, 整数型, , 目标进程PID(0=搜索当前进程)
.参数 自动识别架构, 逻辑型, 可空, 为真时自动识别目标进程是X86/X64(推荐)

_全局_进程句柄 = OpenProcess (PROCESS_VM_READ, 假, 目标进程ID)
.如果真 (_全局_进程句柄 = 0)
    记录错误 (#ERROR_OPEN_PROCESS_FAILED)
    返回 (假)
.如果真结束

.如果 (自动识别架构)
    _全局_目标架构 = 识别进程架构 (目标进程ID)  ' 内部调用IsWow64Process实现
.否则
    _全局_目标架构 = #X86架构  ' 或手动指定#X64架构
.如果结束

返回 (真)
2. 核心搜索函数(支持多模式)
易语言
.版本 2

.子程序 搜索特征码, 整数型, 公开, 返回匹配到的第一个地址(失败返回0)
.参数 特征码文本, 文本型, , 格式示例:"40 55 33 ?? 78" 或 "40-45 55 !00"
.参数 搜索起始地址, 整数型, 可空, 默认为进程内存基址(0=全内存搜索)
.参数 搜索范围大小, 整数型, 可空, 默认为进程内存总大小(需与起始地址配合)
.参数 线程数, 整数型, 可空, 默认为CPU核心数(最大16线程)

.局部变量 特征码数组, 字节集, , "0"
.局部变量 匹配结果, 整数型

特征码数组 = 解析特征码文本 (特征码文本)  ' 内部处理通配符/范围/反选规则
.如果真 (取字节集长度 (特征码数组) = 0)
    记录错误 (#ERROR_SIGNATURE_FORMAT)
    返回 (0)
.如果真结束

.如果 (_全局_目标架构 = #X86架构)
    匹配结果 = _搜索X86内存 (特征码数组, 搜索起始地址, 搜索范围大小, 线程数)
.否则
    匹配结果 = _搜索X64内存 (特征码数组, 搜索起始地址, 搜索范围大小, 线程数)
.如果结束

返回 (匹配结果)
3. 特色功能:文件离线搜索(源码片段)
易语言
.版本 2

.子程序 搜索文件特征码, 整数型, 公开, 在.exe/.dll文件中搜索特征码(无需进程运行)
.参数 文件路径, 文本型, , 待搜索的文件路径(如C:\test.dll)
.参数 特征码文本, 文本型, , 同内存搜索格式

.局部变量 文件字节集, 字节集
.局部变量 特征码数组, 字节集, , "0"

文件字节集 = 读入文件 (文件路径)
特征码数组 = 解析特征码文本 (特征码文本)

返回 (KMP算法匹配 (文件字节集, 特征码数组))  ' 内部使用KMP字符串匹配算法优化
四、模块目录与依赖说明
1. 源码结构
plaintext
├─ 特征码搜索模块.ec        ; 易语言模块主文件(含所有公开接口)
├─ 架构识别.e              ; 子模块(实现X86/X64进程识别)
├─ 多线程搜索.e            ;



游客,如果您要查看本帖隐藏内容请回复


截图202505261820243303.png
捷云鲸技术社区(bbs.jieyunjing.com)免责声明:
使用本社区服务即视为同意本声明全部条款。
1. 本社区所有技术、工具及内容仅限**学习研究**使用,旨在提升安全技术水平,严禁用于非法、商业及其他不良用途,违规后果由使用者自行承担。
2. 社区内容及资源来源于网络,仅代表发布者个人观点,与本社区无关,相关法律责任由发布者自负。
3. 资源版权归原作者所有,用户下载后须在**24小时内删除**,版权争议与本社区无关。
4. 禁止任何破坏社区正常运营的行为,违规将视情节处理,社区保留追责权利。
5. 本社区坚决支持正版,如涉及侵权,请通过站长邮箱或QQ联系删除。
6. 本社区对本声明拥有最终解释权,可适时修改并公示生效。
站长邮箱:jieyunjingvip@qq.com
站长QQ:4040068
捷云鲸社区bbs.jieyunjing.com
回复

举报 使用道具

全部回复 (110)
查看全部
我是个凑数的。。。无忧技术吧
捷云鲸社区bbs.jieyunjing.com

举报 回复 使用道具

没看完~~~~~~ 先顶,好同志无忧技术吧
捷云鲸社区bbs.jieyunjing.com

举报 回复 使用道具

谢谢楼主,共同发展无忧技术吧
捷云鲸社区bbs.jieyunjing.com

举报 回复 使用道具

感谢你的分享,有你更快乐啊
捷云鲸社区bbs.jieyunjing.com

举报 回复 使用道具

没看完~~~~~~ 先顶,好同志无忧技术吧
捷云鲸社区bbs.jieyunjing.com

举报 回复 使用道具

无忧技术吧 看帖回帖是美德!
捷云鲸社区bbs.jieyunjing.com

举报 回复 使用道具

我是个凑数的。。。无忧技术吧
捷云鲸社区bbs.jieyunjing.com

举报 回复 使用道具

无忧技术吧 写的真的很不错
捷云鲸社区bbs.jieyunjing.com

举报 回复 使用道具

我是个凑数的。。。无忧技术吧
捷云鲸社区bbs.jieyunjing.com

举报 回复 使用道具

admin 实名认证
管理员
主题 1380
回复 75
粉丝 1

灌水之王 突出贡献 优秀版主 荣誉管理 论坛元老 沙发王 源码大师 在线王 终身成就 机器王 知识库 土豪 活跃会员 最佳新人 热心会员