Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Fedora 18 DNSenum IP 顯示亂碼修正:Perl 腳本 $rr->{address} 改為 $rr->address

編輯:關於 Linux

Fedora 18 執行 dnsenum 時,右側 IP 欄位顯示亂碼。BT5(基於 Ubuntu)同腳本正常。經排查為 Perl 版本差異導致物件屬性存取語法不同,將腳本中 $rr->{address} 全部替換為 $rr->address 即可修正。

重現錯誤

執行 dnsenum example.com,輸出 IP 欄位顯示類似 HASH(0x123456) 亂碼。

修正步驟

  1. 進入腳本目錄(BT5 移植路徑):
cd /pentest/enumeration/dns/dnsenum
# 或系統安裝路徑:/usr/bin/dnsenum、/usr/share/dnsenum/ 等
  1. 編輯 dnsenum.pl:
vi dnsenum.pl
# 搜尋 $rr->{address}(全檔案可能有多處)
# 全部替換為 $rr->address
:%s/\$rr->{\address}/\$rr->address/g
  1. 測試:
./dnsenum.pl example.com
# IP 欄位正常顯示

dnsenum IP 亂碼截圖

修正後正常顯示截圖

原因分析

  • BT5 基於 Ubuntu,但作者在裁剪時可能調整了 Perl 模組版本或編譯選項。
  • Net::DNS 模組在不同版本中,Net::DNS::RR 物件的屬性存取方式不同:舊版用雜湊引用 $rr->{address},新版用方法呼叫 $rr->address。
  • Fedora 18 使用較新 Perl/Net::DNS,導致舊語法失效。

通用建議

  • 使用系統套件管理器安裝 dnsenum(yum install dnsenum 或 apt-get install dnsenum),通常已修補相容性。
  • 若手動安裝,優先選擇近期維護的分支(如 GitHub 上的 dnsenum fork)。
  • 遇到 Perl 模組相容問題,檢查 perldoc Net::DNS::RR 確認正確 API。
Copyright © Windows教程網 All Rights Reserved