
PEバイナリに埋め込まれたAutoItスクリプトを抽出します
これは、PE実行ファイルから「コンパイル済み」AutoItスクリプトを抽出するための短いPythonスクリプトです。
このスクリプトは3つのリソースに強く基づいています。AutoItについてもっと深く掘り下げたい場合は、ぜひチェックしてみてください:
EA05 AutoIt3.00EA06 AutoIt3.26JB01 AutoHotKey v1JB01 AutoIT2python3 -m pip install autoit-ripper
または、ソースからバージョンをインストールしたい場合:
git clone https://github.com/nazywam/AutoIt-Ripper.git
cd AutoIt-Ripper
pip install .
Pythonスクリプトから:
from autoit_ripper import extract, AutoItVersion
with open("sample.exe", "rb") as f:
file_content = f.read()
# EA05 for v3.00+, EA06 for v3.26+
# Omitting `version` or passing None will try both versions
content_list = extract(data=file_content, version=AutoItVersion.EA06)
コマンドラインから:
autoit-ripper sample.exe out_directory
ヘルプメッセージ:
autoit-ripper --help
usage: autoit-ripper [-h] [--verbose] [--ea {EA05,EA06,guess}] file output_dir
positional arguments:
file input binary
output_dir output directory
optional arguments:
-h, --help show this help message and exit
--verbose, -v
--ea {EA05,EA06,JB01,guess}
extract a specific version of AutoIt script (default: guess)
| フィールド | 長さ | 暗号化 (EA05) | 暗号化 (EA06) | 備考 |
|---|
| "FILE" | 4 | MT(0x16FA) | LAME(0x18EE) | 静的文字列 |
| flag | 4 | xor(0x29BC) | xor(0xADBC) | |
| auto_str | flag (* 2) | MT(0xA25E + flag) | LAME(0xB33F + flag) | UTF-8/UTF-16 |
| path_len | 4 | xor(0x29AC) | xor(0xF820) | |
| path | path_len (* 2) | MT(0xF25E + path_len) | LAME(0xF479 + path_len) | コンパイル済みスクリプトのパス |
| compressed | 1 | None | None | スクリプトが圧縮されているか |
| data_size | 4 | xor(0x45AA) | xor(0x87BC) | 圧縮データサイズ |
| code_size | 4 | xor(0x45AA) | xor(0x87BC) | 非圧縮データサイズ |
| crc | 4 | xor(0xC3D2) | xor(0xA685) | 圧縮データCRCチェックサム |
| creation date | 4 | None | None | ファイル作成日時(上位) |
| creation date | 4 | None | None | ファイル作成日時(下位) |
| last update date | 4 | None | None | 最終更新日時(上位) |
| last update date | 4 | None | None | 最終更新日時(下位) |
| data | data_size | MT(checksum + 0x22af) | LAME(0x2477) | スクリプトデータ |
| v3.00 | v3.26 |
|---|
| コードの保存方法 | マジックで検索 | "SCRIPT" リソース(マジックで検索?) |
| 文字列エンコーディング | UTF-8 | UTF-16 |
| 暗号化 | xor/custom MT19937 | xor/LAME crypt |
| コード暗号化キー | 動的 | 静的 |
| 圧縮 | はい | はい |
| コードの「コンパイル」 | いいえ | はい |
| マジック | EA05 | EA06 |