
Reko(スウェーデン語で「まともで、親切」)は、マシンコードバイナリ用の逆コンパイラです。 このプロジェクトはGNU General Public Licenseのもとで自由に利用できます。
プロジェクトは、フロントエンド、中核となる逆コンパイルエンジン、およびその目標を達成するためのバックエンドで構成されています。現時点では、コマンドライン、Windows GUI、ASP.NETフロントエンドが存在します。逆コンパイルエンジンは、個々の実行可能ファイルまたは逆コンパイラプロジェクトファイルの形式でフロントエンドから入力を受け取ります。Rekoプロジェクトファイルには、バイナリファイルに関する追加情報が含まれており、逆コンパイルプロセスや出力のフォーマットに役立ちます。逆コンパイルエンジンは、入力バイナリの解析を進めます。
Rekoは、最小限のユーザー介入でさまざまなプロセッサアーキテクチャと実行可能ファイル形式の逆コンパイルをサポートすることを目指しています。完全なリストについては、サポートされているバイナリのページを参照してください。
多くのソフトウェアライセンスは、マシンコードバイナリの逆コンパイルやその他のリバースエンジニアリングを禁止していることに注意してください。この逆コンパイラは、バイナリを逆コンパイルする法的権利がある場合にのみ使用してください(たとえば、バイナリが自分自身のものである場合など)。
公式リリースは数か月ごとに Github と SourceForge で公開されています。自分でRekoをビルドできない、またはビルドしたくないユーザーは、Cirrus CI統合ビルダー または Github Actions統合ビルダー の出力をダウンロードできます。もちろん、ソースからプロジェクトをビルドすることもできます。以下の「ハッキング」を参照してください。
最初に、以下の必須ソフトウェアをマシンにインストールする必要があります:
適切なインストーラをダウンロードし、ターゲットマシンで実行してください。
インストール後、統合ビルドサーバーから直接バイナリをダウンロードするか、ソースからRekoをビルドする(以下の「ハッキング」を参照)かのどちらかを選択できます。
Rekoのさまざまな機能に慣れるには、ユーザーガイドをお読みください。プロジェクトの内部動作に興味がある場合は、Wikiを参照してください。
遭遇した問題を報告したり、Reko関連の質問を issue tracker で行うことができます。また、Rekoの Gitter.im チャットルームも試せます。Rekoはボランティアが余暇に開発しているため、応答時間の期待はそれに合わせて調整してください。
Rekoをビルドするには、まず https://github.com/uxmal/reko をクローンします。IDEまたはコマンドラインを使用してソリューションファイル Reko-decompiler.slnx をビルドできます。Rekoのコンパイルには .NET 8.0 SDK が必要です。IDEユーザーの場合は、最新バージョンのVisual Studio 2022を使用してください。コマンドラインでビルドする場合は、次のコマンドを使用します:
dotnet msbuild -p:Platform={platform} -p:Configuration={config} -v:m -t:build_solution -m ./src/BuildTargets/BuildTargets.csproj
{config} を Debug または Release に、{platform} を x64 または x86 に置き換えてください。
注意: それでもコンパイルできない場合は、ご連絡ください。問題解決をお手伝いします。
コードの貢献に興味がある場合は、ロードマップ で探求すべき領域を確認してください。Wiki にはRekoプロジェクトの内部動作に関する詳細情報があります。スタイルガイド も参照してください。
開発マシンにWiXツールセットをインストールしていない場合、Visual Studioでソリューションを読み込むときに警告またはエラーが表示されます。警告は無視して問題ありません。WiXツールセットはMSIインストーラパッケージを作成するときにのみ使用されます。プロジェクトをコンパイルできる場合は、インストーラをビルドする必要はありません。ビルドプロセスにより、すべての必要なファイルが1つのディレクトリにコピーされます。WiXツールチェーンを使用してMSIインストーラをビルドしたい場合は、こちらからダウンロードしてください:http://wixtoolset.org/releases/
行う操作によっては、Visual StudioがCMakeに依存するNativeProxyをリビルドしようとする場合があります。CMake をインストールしてPATHに追加するか、Visual Studioでプロジェクトを無効にすることができます。
Visual Studioの一部としてCMakeがインストールされていれば、開発者コマンドプロンプト からmsbuildを実行するには十分ですが、VS内部からビルドする場合は、グローバルPATHに追加しない限り不十分です。CMakeを外部インストールすると、インストール中にPATHに追加できます。
注意: 特定のバージョンのVisual Studioでは、プロジェクトの読み込み時に問題が発生する場合があります。Visual Studioが「バックグラウンドタスクを実行中」のまま固まり、プロジェクトをビルドできなくなることで気づくでしょう。回避策として、ソリューションエクスプローラーで「NativeProxy」プロジェクトを右クリックし、「プロジェクトのアンロード」を選択してください。そうすると、プロジェクトは正しく読み込まれ、ビルドできるようになります。この問題はコマンドラインからビルドする場合には発生しません。
ソリューションフォルダ Drivers には、ユーザーインターフェースとして機能する実行可能ファイルが含まれています。サブディレクトリ WindowsDecompiler には、Windows Formsユーザーインターフェース用のGUIクライアントが含まれています。サブディレクトリ AvaloniaShell には、クロスプラットフォームの Avalonia ユーザーインターフェース用のGUIクライアントが含まれています(まだ開発中)。CmdLine はコマンドラインドライバです。
最新のリリースについては、リリースログ を参照してください。