爱意满满的作品展示区。
h4x3rotab

搜狗用户词库解密工具

  •  
  •   h4x3rotab · Oct 7, 2018 · 13022 views
    This topic created in 2954 days ago, the information mentioned may be changed or developed.

    https://github.com/h4x3rotab/Sogou-User-Dict-Converter

    搜狗从某个版本开始导出的用户词库全部被加密,给迁移到其他输入法造成很大障碍。于是我做了这个工具,可以把导出的 bin 文件转换为词频 TSV 文件,然后就随便怎么玩了。

    用法:

    python3 parse.py <输入 bin 文件> <输出 tsv 文件>
    

    代码发布在 GPLv3 协议之下。

    Supplement 1  ·  Feb 1, 2019
    解密逻辑已经被整合到了一个对用户更有好的 GUI 工具下:
    https://github.com/studyzy/imewlconverter
    22 replies  •  2019-02-01 02:37:23 +08:00
    littleMaple
    littleMaple
    Oct 7, 2018
    1
    好奇解密原理是什么?搜狗公布了加密算法?
    a1058021348
    a1058021348
    Oct 7, 2018 via iPhone❤️1
    2
    幸亏我一直留着那个词库文件😂
    ax521
    ax521
    Oct 7, 2018 via Android
    3
    明天试试。用法能不能说清楚点,看不懂
    h4x3rotab
    h4x3rotab
    OP
    Oct 7, 2018 via iPhone❤️1
    4
    逆向分析
    easylee
    easylee
    Oct 7, 2018 via Android
    5
    @h4x3rotab 👍。
    h4x3rotab
    h4x3rotab
    OP
    Oct 7, 2018 via iPhone
    6
    @ax521 先在搜狗设置里导出用户词库,导出成一个 bin 文件,然后作为命令行传入到 parse.py 里。

    第一个参数是输入文件,第二个参数是输出文件。运行之后如果顺利,可以得到一个词频 tsv 文件,可以导入到其他输入法用了。
    ax521
    ax521
    Oct 7, 2018 via Android
    7
    @h4x3rotab tsv 文件还能不能转成 txt 文件?
    h4x3rotab
    h4x3rotab
    OP
    Oct 7, 2018
    8
    @ax521 可以直接用文本编辑器打开
    gaupen1186
    gaupen1186
    Oct 8, 2018 via Android
    9
    灰常感谢哈,正需要呢
    mztql
    mztql
    Oct 8, 2018
    10
    好用感谢,8M 转换完是 1.3M ,有一部分输出日志显示'GetData overflow',是没解完全吗
    nicoljiang
    nicoljiang
    Oct 8, 2018
    11
    好东西,支持一下。
    ax521
    ax521
    Oct 8, 2018
    12
    我 15 兆的词库,转化出来才 26k。打开看显示只转化了近期的一部分词,楼主转化出来全部转化了吗?
    ax521
    ax521
    Oct 8, 2018
    13
    ![报错.jpg]( https://i.loli.net/2018/10/08/5bbb14815a486.jpg)
    报错这个,你看看怎么了?
    h4x3rotab
    h4x3rotab
    OP
    Oct 8, 2018 via iPhone
    14
    @ax521 terminal 编码的问题?
    ax521
    ax521
    Oct 9, 2018 via Android
    15
    @h4x3rotab 那该怎么办?
    ax521
    ax521
    Oct 9, 2018 via Android
    16
    @h4x3rotab 那个编码对应韩文。但我没输入过韩文
    NotNil1
    NotNil1
    Oct 10, 2018
    17
    搜狗会保存我输入的数据吗?
    GuryYu
    GuryYu
    Oct 10, 2018
    18
    @h4x3rotab 执行过程中报错了, 解密出来的文件只有原始文件的十分之一大小, 这个正常吗
    h4x3rotab
    h4x3rotab
    OP
    Oct 12, 2018 via iPhone
    19
    @GuryYu 这个警告是正常的,那个原始文件里面还有很多其他乱七八糟的东西没解出来
    AuroraN
    AuroraN
    Oct 16, 2018
    20
    报错,报销信息如下:
    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
    motivation
    motivation
    Nov 7, 2018
    21
    可以告知一下如何使用嘛,我是纯小白,现在已经装好了 python3 和下载好了 GITHUB 上的文件,搜狗的.bin 文件也导出完成了,那么接下来需要做什么呢。

    谢谢!
    h4x3rotab
    h4x3rotab
    OP
    Feb 1, 2019
    22
    @motivation 算法已经被整合到了一个对新手更有好的工具里: https://github.com/studyzy/imewlconverter
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   992 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 16:43 · PVG 00:43 · LAX 08:43 · JFK 11:43
    ♥ Do have faith in what you're doing.