読者です 読者をやめる 読者になる 読者になる

年金ロボットをめざして

FX(外国為替証拠金取引)自動運用ロボットの開発ブログのはずだった

MQLEnigma - MQL 難読化ツール

FX・株・金融工学

【 MQLEnigma 実行画面 】

f:id:fxrobot:20130924102522j:plain

知ってのとおり、デコンパイラが横行している現在では、MQLソースファイル(.mq4)を提供しなくとも実行ファイル(.ex4)さえあれば、そこからデコンパイルによって mq4 ファイルが簡単に手にはいるのである。

つまり、ex4 ファイルを提供するということは、mq4 ファイルを提供していることと同じと思わなくてはならない。(もちろん同じではないわけだけど)

そこでというか、ソースファイル(.mq4)を難読化してしまおうというツールが現れたわけだが、これとて、難読化した mq4 ファイルをコンパイルして、その ex4 を提供すればよいかというと、デコンパイルされてしまえば同じこと。うん? じゃ、なんの意味があるのか?

そうなんだよねぇ、デコンパイラ対策にはならないんだよねぇ。おーい。こらっ! デコンパイラ対策で現れたとかいわなかったか。そりゃないだろ。じゃ、無意味か。...うーん、暗号化ごっこができるんじゃないかい。いやね、これ、役に立つんだよ。それはあとでね。

f:id:fxrobot:20130924094627j:plain

上の画像は、MQL4 のソースファイルを難読化した例。変数名と関数名が長い数字に置き換わっている。あと、コメントが削除されている。

使い方は簡単で、MQLEnigma.exe に難読化したい MQLファイル(.mq4)をドロップするだけだ。

f:id:fxrobot:20130924094639j:plain

そうすると下の画像にあるような3つのファイルが新たに作られる。

f:id:fxrobot:20130924094650j:plain

① ○○○_Encoded.mq4          難読化された mq4 ファイル
② ○○○_Encodings.txt          難読化された変数名と元の変数名の対応表
③ ○○○_Open.mq4               難読化される前の mq4 ファイル(バックアップ)

さて、これ、何に使うのか。

最新のメタトレーダー4では、デコンパイルしたソースファイルは許さん!とコンパイルをしてくれない。そのソースファイルを MQLEnigma で難読化したソースファイルは、なんとコンパイルできてしまうのだ。そりゃそうだよ。だって、デコンパイラによるソースファイルのの特徴が吹っ飛んじゃうんだから。

えっ、じゃぁ、MQLEnigma というのは悪の見方なのか。そういえば、エニグマなんて悪そうな名前だよ。って、念のためにいっておくけど、この開発者は素晴らしい人だと思う。MQLEnigma の VisualBasic によるソースコードも公開しているんだ。知らない人のためにいっておくと、Enigma というのは、第二次世界大戦のときにナチスドイツが用いていたことで有名なローター式暗号期のこと。...やっぱり悪の見方だったか。

というわけで、暗号ごっこをしたい人、悪の見方になりたい人、それでかつ、MQLEnigma が見つからない人は「ほしいコメント」をくれればメールで送るよ。