最近我一直試圖從捕獲的DHCP數據包中保存主機名列表。我發現,每個DHCP主機名(選項12)應具有在RFC 1035中定義的表格。因此,如果我理解正確,主機名應以7位ASCII編碼,並具有其他限制,如: - 名稱不應以數字開頭,並應省略一些禁止的字符。Windows DHCP客戶端主機名編碼
幾乎我在數據包中遇到的每個設備都符合此限制,但不包括Windows設備(供應商標識MSFT 5.0)。恕我直言Windows DHCP客戶端需要計算機(移動)名稱並將其填入主機名選項。
問題發生時,計算機名稱設置爲例如「Lukáš-PC」。 Wireshark將此主機名顯示爲Luk \ 240 \ 347-PC。 (240和347是八進制數字)。爲了查看我自己,我用printf(「%hhu」,c)(C語言)打印了數據包中的值。
á = 160
š = 231
恕我直言,我認爲這是簡單的字符變量溢出。我嘗試從溢出值中推導出原始值,但我沒有在字符和已知編碼之間找到任何關係。所以我的問題是:
有什麼辦法將這些值轉換回原來的? 如果是,發生溢出時,原始字符編碼是什麼?
謝謝。
謝謝您的回覆,我再次打印了字符,其值爲: = 160 š= 231 我希望我能理解您寫的內容。所以沒有辦法找出專門針對Windows操作系統的原始值?我的想法是隻檢查數據包中的VENDOR_ID == MSFT 5.0,並且在Windows設備使用相同的編碼時以某種方式將其轉換回來,但我需要知道Windows使用哪種編碼。 – Sach