はじめに
IPUSIRONさんの著書「ハッキング・ラボ のつくりかた 完全版 仮想環境におけるハッカー体験学習」をもとに、ハッキングの学習をしていたところ、droopescanの実行でつまづいたので備忘録として残します。
動作環境
- Windows 11 Home
- Virtual Box 7.2.6
- ParrotOS 7.1 (VirtualBox上で動作)
- Python 3.13 (ParrotOS上で動作)
要約
droopescanの依存ライブラリにimpがある。
しかし、このライブラリはPython 3.12で正式に削除された。
今回は学習目的の利用なので、pyenvを使用して動作可能なバージョンまで下げてインストールする。
問題
「ハッキング・ラボ のつくりかた 完全版 仮想環境におけるハッカー体験学習」p417-419に記載されているdroopescanについて、書籍通り進めようとすると問題が発生する。
発生する問題は大きく2点
-
droopescanがインストールできない -
droopescan --help実行時にエラーとなる
このうち1点目の解決策は多くの記事が投稿されているので本記事では触れない(参考サイトは後述)
今回、触れるのは2点目
インストール完了後、動作確認のためにdroopescan --helpを実行するとエラーとなる。
内容は「ModuleNotFoundError: No module named imp」
原因
droopescan内でimpを使用しているのですが、impはPython3.12で正式に削除されたためです。
もともとバージョン3.4以降で非推奨だったのが3.12で削除されたようです。
解決策
今回は学習目的の利用なので、力技で解決しました。
pyenvにより使用するPythonのバージョンを3.11以前にします。
手順は以下の通り(作業フォルダにのみバージョン変更を適用する手順)
-
pyenvインストールsudo apt install pyenv -
pyenvで過去バージョンのPythonをインストールpyenv install <version_no> - 作業フォルダーへ移動
-
pyenvでPythonのバージョン切り替え# 作業フォルダで使用するPythonのバージョンを変更する pyenv local <version_no> # (補足) # 全体で使用するPythonのバージョンを変更 pyenv global <version_no> # Shell上で使用するPythonのバージョンを変更 pyenv shell <version_no> - シェルの設定変更を反映
source ~/.bashrc
これでバージョンの切り替えは完了したので、droopescanのinstallをします。
pip install droopescan
こちらの環境では問題なくインストールできましたが、インストールできない場合は こちら に参考リンク貼り付けていますので参照ください。
蛇足
droopescan側の対応について調べてみました。
impの移行先であるimportlibへの変更対応のプルリクエストは出ているようですがmainにはマージされていないようです。(2026/4/21 時点)
参考サイト
本記事の参考サイト
droopescan | GitHub
imp | Python公式ページ
pyenv | GitHub
インストールできない問題を解決
著作者様による解決策(venvを使用する方法)
