デコンパイル可能性を診断
5つの質問で診断します(所要時間:約1分)
ex4 デコンパイラ
このキーワードで調べている人は、すでに一段深いところまで来ている。
EX4を手に入れた。
デコンパイラを使った。
コードらしきものも表示された。
「解析はできた」
でも、
「解除はできない」
ここで止まる人は、かなり多い。
私は EX4デコンパイルを専門に扱うエンジニアとして、
この「解析できたのに解除できない」という相談を繰り返し受けてきた。
結論から言うと、
EX4デコンパイラで解析できることと、EAの制限を解除できることは、まったく別の話だ。
もし今、
「ここまで来たのに、なぜ先に進めないのか」
そう感じているなら、判断材料として一度ここを見ておくだけでも構わない。
▶ デコンパイルはこちら
EX4デコンパイラで「解析できた」とはどういう状態か
まず、言葉の整理をしておきたい。
EX4デコンパイラで
「解析できた」というのは、多くの場合こういう状態だ。
- コードが表示された
- 処理の流れが見えた
- if文や関数構造が確認できた
これは確かに、解析ではある。
だが、
それは読めるようになったという意味であって、使えるようになったわけではない。
この認識のズレが、
最初のつまずきになる。
解析と解除は別工程
EX4デコンパイラは、
実行ファイルを解析し、
構造を人が理解できる形に近づけるツールだ。
一方で、
解除とは何か。
- 口座縛りを無効化する
- 制御条件を書き換える
- 元と同じ挙動で動かす
これは、
解析のその先の作業になる。
解析できたから解除できる、
という直線的な関係はない。
EX4デコンパイラで解除できない典型的な理由
ここからが本題だ。
「コードは見えているのに解除できない」
その理由には、はっきりしたパターンがある。
理由① 制御ロジックが分離されていない
多くのEAでは、
売買ロジック
制御ロジック
これがきれいに分かれていない。
口座番号チェック。
ブローカー判定。
サーバー名照合。
こうした制御が、
売買条件の中に直接組み込まれている。
そのため、
「このif文を消せばいい」
という単純な話にならない。
解析はできる。
だが、解除ポイントが特定できない。
理由② 変数名と文脈が失われている
EX4は、
コンパイル時に多くの情報を失っている。
意味のある変数名。
コメント。
設計時の意図。
デコンパイラが出力するのは、
var1
var2
tmp_03
こうした無機質なコードだ。
読める。
だが、何を意図した処理なのか分からない。
この状態では、
解除してよい部分と、
触ってはいけない部分の区別が難しい。
理由③ 解除しても挙動が再現できない
仮に、
制御条件らしき部分を見つけて削除したとしても、
次の問題が起きる。
- EAが動かない
- エントリーしない
- 挙動が変わる
これは、
制御と売買が密接に絡んでいる証拠だ。
解除はできたように見えても、
元のEAとは別物になってしまう。
デコンパイラを使い込んだ人ほどぶつかる壁
ここが、少し皮肉なところだ。
EX4デコンパイラを使い込み、
解析に慣れた人ほど、
次の壁にぶつかる。
「全部は読める」
「でも、どう直せばいいか分からない」
これはスキル不足ではない。
EX4という形式の限界だ。
Ghidraを使っても残る課題
さらに一歩踏み込む人は、
Ghidra を使う。
逆アセンブル。
構造解析。
フローの可視化。
かなり深いところまで見える。
だが、それでも解除できないケースは多い。
理由は同じだ。
- MT4特有の関数構造
- EA固有の制御設計
- 再構築前提の設計
Ghidraは解析を助けるが、
解除を保証するツールではない。
Ghidraを使ったあとに残る課題については、
こちらの記事で詳しく整理している。
EX4デコンパイラに期待しすぎると起きるズレ
よくある誤解がある。
「解析できた=解除できる」
「ツールを変えれば何とかなる」
だが実際は、
ツールの問題ではなく、設計の問題であることがほとんどだ。
デコンパイラは、
- 理解を助ける
- 構造を可視化する
ここまで。
解除は、
その先の設計判断になる。
解除できるEAとできないEAの分かれ目
相談が多いので、
ここははっきり書いておく。
解除しやすいEAは、
- 制御と売買が分離されている
- 構造が単純
- 古い設計
逆に、解除が難しいEAは、
- 制御が深く埋め込まれている
- 複数条件が絡む
- 再構築前提の設計
後者の場合、
解析できても解除できないのは普通だ。
まとめの前に整理しておくこと
EX4デコンパイラで、
解析できた。
コードが見えた。
それ自体は、
間違いなく前進だ。
だが、
解除とは別工程であり、
同じ努力では届かない。
まとめ|EX4デコンパイラで解除できないのは珍しくない
EX4デコンパイラで解析できても、解除できない理由は明確に存在する。
それは、
スキル不足ではない。
ツール選びの問題でもない。
EX4という形式と設計の問題だ。
だからこそ、
解析を続けるか。
再構築を前提に切り替えるか。
この判断が、
次の一手になる。
もし今、
「解析はできたが、解除で止まっている」
そう感じているなら、
判断材料としてここを確認しておくだけでも構わない。
▶ デコンパイルはこちら
静かに、
必要な人だけが次に進めばいい。













