【破解EA过程全解密】(附赠一次一单源码)

| 发表于 7 小时前 | 显示全部楼层 |复制链接
闲话不多说,这里只分享技术。
以EX4举例,
先搞清楚:ex4 到底是什么
  • 源码:.mq4 文本文件,是我们能看懂的代码。编程语言类似于c语言
  • 编译后:.ex4 是 MQL4 字节码 + 加密壳 / 混淆 的二进制文件。
  • 1.png
  • 破解的过程,首先:

1. 识别 ex4 版本是否加密
首先看编译版本:

  • Build 600 以前:老 ex4,很容易反编译,几乎能完整还原。
  • Build 600 以后:迈达克官方加强加密,原生字节码被加密 + 压缩。
  • 特别是最新的版本,加了VPM,脱壳难度暴增。
  • 2.png

如果你有Hxd,那么打开Hxd:
用Hxd打开 ex4,Hxd是十六进制的

3.png
由于EX4有壳,所以必须先脱壳,否则读不到真实字节码。

  • 先内存 Dump
    • 运行 MT4,加载 EA
    • 等 EA 加载到内存后
    • 用工具把内存里的原始 ex4 字节码 dump 出来
    • 接下来就是常规操作,
  • 修复 IAT ,
  • 修复字节码
    • 去掉跳转干扰
    • 还原被异或
    • 移位加密的指令
  • Patch 验证代码
    • 把账号绑定、时间验证、远程验证的代码直接 NOP 掉(跳过)

这一步纯手工逆向,需要:

  • IDA Pro / Ghidra
  • 汇编基础
  • 了解 Windows 内存加载机制

脱壳后我们就得到干净字节码,这个时候如果破限制,就可以直接破限制,然后正常使用。
如果破源码,那么还需要其他操作。
现在一般上工具:

工具流程:

  • 解析 ex4 文件结构
    • 头部信息
    • 函数表
    • 变量表
    • 字符串表
  • 逐条翻译字节码指令翻译成 mq4 语法:int var_0 = 123;
  • 重建函数结构
    • 识别 OnInit()、OnDeinit()、OnTick()
    • 识别循环、if-else、函数调用
  • 输出伪代码
    • 变量名都是自动生成:var_1008、func_401200
    • 这就是你们看到的,为什么大部分破解后的代码,参量都是无意义的,因为是统一编排,自动生成。
    • 工具重构后的代码

剩下的,就是靠人工修复了。这个时候,你不光得懂逆向,还需要有MT4编程的经验。
4.png

  • 在 MetaEditor 打开反编译后的 mq4
  • 解决报错:函数未定义、数组越界、类型不匹配
  • 编译成新 ex4
  • 在策略测试里跑,对比原版信号是否一致
  • 不一致就继续调试、修正逻辑。
  • 这就是为什么破源贵,破限制便宜了。
  • 下面我给上一个EX4的原文件(无限制的),一单一结突破策略
  • 然后通过两种方法破解出来的代码
  • 供你们研究
  • 再附上实时回测效果图
  • 5.png
  • 6.png
filetype

一单一结突破 反编译源码.zip

25.45 KB, 下载次数: 3, 下载积分: 活跃度 -5 售价: 2 H币  [记录]  [下载]

评分
  • 1
  • 2
  • 3
  • 4
  • 5
平均分:NAN    参与人数:0    我的评分:未评 下载时遇到问题?
如果有帮助,就支持一下我呗
举报

评论 使用道具

精彩评论3

movie
C
| 发表于 6 小时前 | 显示全部楼层
厉害了,有技术实力。
举报

点赞 评论 使用道具

lilihuan
C
| 发表于 5 小时前 | 显示全部楼层
突破的回测曲线都是不错的。
举报

点赞 评论 使用道具

卿云量化
D
| 发表于 5 小时前 | 显示全部楼层
一次一单这个参数界面长啥样,来学习了解了解
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

Fast跟单EA