https://github.com/h4x3rotab/Sogou-User-Dict-Converter
搜狗从某个版本开始导出的用户词库全部被加密,给迁移到其他输入法造成很大障碍。于是我做了这个工具,可以把导出的 bin 文件转换为词频 TSV 文件,然后就随便怎么玩了。
用法:
python3 parse.py <输入 bin 文件> <输出 tsv 文件>
代码发布在 GPLv3 协议之下。
1 littleMaple 2018-10-07 21:22:59 +08:00 好奇解密原理是什么?搜狗公布了加密算法? |
![]() | 2 a1058021348 2018-10-07 22:17:53 +08:00 via iPhone ![]() 幸亏我一直留着那个词库文件 |
3 ax521 2018-10-07 22:36:02 +08:00 via Android 明天试试。用法能不能说清楚点,看不懂 |
![]() | 4 h4x3rotab OP ![]() 逆向分析 |
![]() | 6 h4x3rotab OP |
![]() | 9 gaupen1186 2018-10-08 00:20:06 +08:00 via Android 灰常感谢哈,正需要呢 |
10 mztql 2018-10-08 00:26:08 +08:00 好用感谢,8M 转换完是 1.3M ,有一部分输出日志显示'GetData overflow',是没解完全吗 |
![]() | 11 nicoljiang PRO 好东西,支持一下。 |
12 ax521 2018-10-08 16:19:54 +08:00 我 15 兆的词库,转化出来才 26k。打开看显示只转化了近期的一部分词,楼主转化出来全部转化了吗? |
13 ax521 2018-10-08 16:29:34 +08:00  报错这个,你看看怎么了? |
![]() | 17 NotNil1 2018-10-10 14:56:37 +08:00 搜狗会保存我输入的数据吗? |
20 AuroraN 2018-10-16 15:23:37 +08:00 报错,报销信息如下: hashstore [ offset: 2554880, count: 0 ] Traceback (most recent call last): File "/Users/Aurora/Source/Python/Algorithm/sougoUserDictConvert.py", line 432, in <module> word = DecryptWordsEx(word_base, word_info.p1, usr_header.p2, usr_header.p3) File "/Users/Aurora/Source/Python/Algorithm/sougoUserDictConvert.py", line 262, in DecryptWordsEx dec_lstr.string = decwords.decode('utf-16') UnicodeDecodeError: 'utf-16-le' codec can't decode bytes in position 4-5: unexpected end of data |
![]() | 21 motivation 2018-11-07 15:02:40 +08:00 可以告知一下如何使用嘛,我是纯小白,现在已经装好了 python3 和下载好了 GITHUB 上的文件,搜狗的.bin 文件也导出完成了,那么接下来需要做什么呢。 谢谢! |
![]() | 22 h4x3rotab OP @motivation 算法已经被整合到了一个对新手更有好的工具里: https://github.com/studyzy/imewlconverter |