斐訊K2P配置文件破解筆記


手上有一個斐訊K2P路由器,刷機前我想把原機帶的固件備份出來。搜到恩山A大開啟telnet、固件備份的教程,里面提到了配置文件破解的方法,心血來潮試了一下,發現算出的密碼不能解密,一直報"bad decrypt"。在確認不是openssl版本的問題后,只能硬着頭皮去爬encryconfig的匯編代碼。

發現是CRC32計算這一步存在差異,encryconfig比IEEE 802.3標准少了最后一步按位取反。感興趣的朋友可以看看我另一篇關於CRC32算法的筆記。

最后貼一段我寫的計算密碼的程序:

 1 import binascii
 2 import unittest
 3 
 4 
 5 def getcode(macstr):
 6     code = ''
 7     ss = macstr.split(':')
 8     for s in ss:
 9         a, b = s
10         code += '%d' % ((ord(a) + ord(b)) % 9)
11     return code
12 
13 
14 def crc32(s):
15     crc = binascii.crc32(s.encode())
16     return '%08X' % (~crc & 0xffffffff)
17 
18 
19 def getkey(macstr):
20     s = 'PHICOMMK2' + macstr + getcode(macstr)
21     return crc32(s)
22 
23 
24 class TestMethods(unittest.TestCase):
25     def test_getcode(self):
26         self.assertEqual(getcode('CC:81:DA:8B:3A:20'), '867588')
27         self.assertEqual(getcode('CC:81:DA:A6:5C:02'), '867238')
28 
29     def test_getkey(self):
30         self.assertEqual(getkey('CC:81:DA:11:22:33'), '376BBAA8')
31 
32 
33 if __name__ == '__main__':
34     unittest.main()

提供2個我之前下載的配置文件給大家做測試(不要輕易導入以防變磚):


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM