XORSearch(Scan Tech Report) | ScanNetSecurity
2026.01.10(土)

XORSearch(Scan Tech Report)

XORSearchとは、Didier Stevens氏によって開発された「XORSearch」は、XOR, ROL, ROT演算を利用して暗号化されたファイルに対して、ブルートフォースで復号化を試みることができるコマンドラインツールです。

脆弱性と脅威 エクスプロイト
1.XORSearchとは
Didier Stevens氏によって開発された「XORSearch」は、XOR, ROL, ROT演算を利用して暗号化されたファイルに対して、ブルートフォースで復号化を試みることができるコマンドラインツールです。XORSearchは、2007年から公開されているツールですが、MAC OSX版もリリースされてWindows、Linux、MAC OSX上と複数のOS上で動作させることができます。

これら演算を使用した暗号は比較的簡単なものでありますが、マルウェア作者にはデータを難読化する方法として依然人気がある手口です。例えば、マルウェア感染ホスト内にある不正ファイルやWebフィルタリングソフトのHTTP POSTのログ、パケットキャプチャデータの解析時など、マルウェア解析や不正通信の調査時に難読化データに遭遇する機会は増えてきてますので、実際にこのようなデータに遭遇したような場合、復号を諦めている読者の方も多いと思いますが、XORSearchのような比較的すぐ簡単にチェックできるツールも存在しますので、一度試してみると良いと思います。


2.ダウンロード
XORSearchは次のURLよりダウンロードできます。執筆時点での最新バージョン
は1.7.0となっています。

XORSearch:
http://blog.didierstevens.com/programs/xorsearch/


3.インストール
インストールは標準のgccでコンパイルを実行して完了です。
ここではOSはUbuntu Desktop 12.10を使用しています。

$ gcc -o xorsearch XORSearch.c -v
組み込み spec を使用しています。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper
ターゲット: x86_64-linux-gnu
configure 設定: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
スレッドモデル: posix
gcc バージョン 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
COLLECT_GCC_OPTIONS='-o' 'xorsearch' '-v' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.6/cc1 -quiet -v -imultilib . -imultiarch x86_64-linux-gnu XORSearch.c -quiet -dumpbase XORSearch.c -mtune=generic -march=x86-64 -auxbase XORSearch -version -fstack-protector -o /tmp/cc00s83j.s
GNU C (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (x86_64-linux-gnu)
compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
存在しないディレクトリ "/usr/local/include/x86_64-linux-gnu" を無視します
存在しないディレクトリ "/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/include" を無視します
#include "..." の探索はここから始まります:
#include <...> の探索はここから始まります:
/usr/lib/gcc/x86_64-linux-gnu/4.6/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.6/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
探索リストの終わりです。
GNU C (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (x86_64-linux-gnu)
compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 75e879ed14f91af504f4150eadeaa0e6
COLLECT_GCC_OPTIONS='-o' 'xorsearch' '-v' '-mtune=generic' '-march=x86-64'
as --64 -o /tmp/ccr9VpgW.o /tmp/cc00s83j.s
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-o' 'xorsearch' '-v' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.6/collect2 --sysroot=/ --build-id --no-add-needed --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o xorsearch /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.6/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. /tmp/ccr9VpgW.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.6/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crtn.o


4.テスト準備
(Web非公開)

5.実行する
(Web非公開)

6.XORSearch使い方、オプション
(Web非公開)

(執筆:株式会社ラック サイバー脅威分析センター

※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。

Scan Tech Report
http://scan.netsecurity.ne.jp/archives/51916302.html

《吉澤 亨史( Kouji Yoshizawa )》

関連記事

特集

PageTop

アクセスランキング

  1. 複数名でマスキング処理を確認したが時間経過でインクが薄れて個人情報判読可能

    複数名でマスキング処理を確認したが時間経過でインクが薄れて個人情報判読可能

  2. 「攻撃者の高い執念が感じられ」る 日本語版 EmEditor Web サイトのリンク改変

    「攻撃者の高い執念が感じられ」る 日本語版 EmEditor Web サイトのリンク改変

  3. 埼玉大学で在学生 8,373 名の学籍番号及び GPA 等を含む個人情報が閲覧可能に

    埼玉大学で在学生 8,373 名の学籍番号及び GPA 等を含む個人情報が閲覧可能に

  4. 人気米Youtuberが約4億円で購入した「ポケモンカード」、包装に改ざん跡

    人気米Youtuberが約4億円で購入した「ポケモンカード」、包装に改ざん跡

  5. GMOサイバー攻撃 ネットde診断 ASM が「React2Shell(CVE-2025-55182)」の検知に対応

    GMOサイバー攻撃 ネットde診断 ASM が「React2Shell(CVE-2025-55182)」の検知に対応

ランキングをもっと見る
PageTop