hacktricks/reversing/reversing-tools
2024-07-19 10:21:08 +00:00
..
blobrunner.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:21:08 +00:00
README.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:21:08 +00:00

{% hint style="success" %} AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する: HackTricks Training GCP Red Team Expert (GRTE)

HackTricksをサポートする
{% endhint %}

Wasm逆コンパイルとWatコンパイルガイド

WebAssemblyの領域では、逆コンパイルコンパイルのためのツールが開発者にとって不可欠です。このガイドでは、**Wasm (WebAssemblyバイナリ)およびWat (WebAssemblyテキスト)**ファイルを扱うためのオンラインリソースとソフトウェアを紹介します。

オンラインツール

  • WasmをWatに逆コンパイルするには、Wabtのwasm2watデモが便利です。
  • WatをWasmにコンパイルするには、Wabtのwat2wasmデモが役立ちます。
  • 別の逆コンパイルオプションはweb-wasmdecで見つけることができます。

ソフトウェアソリューション

  • より堅牢なソリューションとして、PNF SoftwareのJEBが広範な機能を提供します。
  • オープンソースプロジェクトwasmdecも逆コンパイルタスクに利用可能です。

.Net逆コンパイルリソース

.Netアセンブリの逆コンパイルは、以下のツールを使用して実行できます。

  • ILSpyは、Visual Studio Code用のプラグインも提供しており、クロスプラットフォームでの使用が可能です。
  • 逆コンパイル修正、および再コンパイルを含むタスクには、dnSpyが強く推奨されます。メソッドを右クリックしてModify Methodを選択することで、コードの変更が可能です。
  • JetBrainsのdotPeekも.Netアセンブリの逆コンパイルのための別の選択肢です。

DNSpyによるデバッグとロギングの強化

DNSpyロギング

DNSpyを使用してファイルに情報をログするには、以下の.Netコードスニペットを組み込みます。

%%%cpp using System.IO; path = "C:\inetpub\temp\MyTest2.txt"; File.AppendAllText(path, "Password: " + password + "\n"); %%%

DNSpyデバッグ

DNSpyを使用した効果的なデバッグのためには、デバッグのためにAssembly属性を調整する一連の手順が推奨され、デバッグを妨げる可能性のある最適化が無効にされます。このプロセスには、DebuggableAttribute設定の変更、アセンブリの再コンパイル、および変更の保存が含まれます。

さらに、IISによって実行される.Netアプリケーションをデバッグするには、iisreset /noforceを実行してIISを再起動します。デバッグのためにDNSpyをIISプロセスにアタッチするには、DNSpy内でw3wp.exeプロセスを選択し、デバッグセッションを開始するように指示します。

デバッグ中に読み込まれたモジュールの包括的なビューを得るためには、DNSpyのModulesウィンドウにアクセスし、すべてのモジュールを開いてアセンブリをソートして、ナビゲーションとデバッグを容易にすることが推奨されます。

このガイドは、WebAssemblyと.Net逆コンパイルの本質を要約し、開発者がこれらのタスクを容易にナビゲートできる道筋を提供します。

Java逆コンパイラ

Javaバイトコードを逆コンパイルするために、これらのツールが非常に役立ちます:

DLLのデバッグ

IDAを使用

  • Rundll32は、64ビットおよび32ビットバージョンの特定のパスからロードされます。
  • Windbgがデバッガとして選択され、ライブラリのロード/アンロード時に一時停止するオプションが有効になります。
  • 実行パラメータにはDLLパスと関数名が含まれます。この設定により、各DLLのロード時に実行が停止します。

x64dbg/x32dbgを使用

  • IDAと同様に、rundll32はコマンドラインの修正を加えてDLLと関数を指定してロードされます。
  • DLLエントリでブレークするように設定が調整され、希望するDLLエントリポイントでブレークポイントを設定できます。

画像

  • 実行停止ポイントと設定はスクリーンショットを通じて示されています。

ARM & MIPS

  • エミュレーションには、arm_nowが便利なリソースです。

シェルコード

デバッグ技術

  • Blobrunnerjmp2itは、メモリにシェルコードを割り当て、Idaまたはx64dbgでデバッグするためのツールです。
  • Blobrunner リリース
  • jmp2it コンパイル版
  • CutterはGUIベースのシェルコードエミュレーションと検査を提供し、ファイルとしてのシェルコード処理と直接シェルコード処理の違いを強調します。

デオブフスケーションと分析

  • scdbgはシェルコード関数とデオブフスケーション機能に関する洞察を提供します。 %%%bash scdbg.exe -f shellcode # 基本情報 scdbg.exe -f shellcode -r # 分析レポート scdbg.exe -f shellcode -i -r # インタラクティブフック scdbg.exe -f shellcode -d # デコードされたシェルコードをダンプ scdbg.exe -f shellcode /findsc # 開始オフセットを見つける scdbg.exe -f shellcode /foff 0x0000004D # オフセットから実行 %%%

  • シェルコードの逆アセンブルにはCyberChefを使用: CyberChefレシピ

Movfuscator

  • すべての命令をmovに置き換えるオブフスケータです。
  • 有用なリソースにはYouTubeの説明PDFスライドがあります。
  • demovfuscatorはmovfuscatorのオブフスケーションを逆転させる可能性があり、libcapstone-devlibz3-devの依存関係が必要で、keystoneをインストールする必要があります。

Delphi

  • Delphiバイナリには、IDRが推奨されます。

コース

{% hint style="success" %} AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する: HackTricks Training GCP Red Team Expert (GRTE)

HackTricksをサポートする
{% endhint %}