V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
go2sleep

Python 代码加密保护库 pyprotect

  •  
  •   go2sleep · Jul 29, 2018 · 8774 views
    This topic created in 2830 days ago, the information mentioned may be changed or developed.

    github 项目地址

    pyprotect 是一个由 C++ 开发的 python 模块加载器,可以在运行时把事先加密的 python 文件解密出来,增加了被逆向的难度。

    目前只支持 python3

    优势

    • 非侵入,任何已有代码都可以直接集成,无需修改代码,加密之后的 python 工程的调用入口保持不变(比如,原本的 project 通过执行命令 "python3 app.py" 启动,加密之后仍然通过同样的命令启动)
    • 易于使用,只需要执行一个脚本,即可加密整个代码树
    • 提高破解难度,如果想要破解,至少需要基本的二进制逆向知识,无法在 python 层面逆向或者绕过保护 (如果你发现了在 python 层面可以破解的办法,请一定告诉我!谢谢!)
    • 跨平台, mac, linux 测试通过,( windows 应该问题不大,但是没有 windows 开发机,没测试…… 尴尬……)

    路线图

    • [x] 支持 python3.x
    • [ ] 支持 python2.7
    • [ ] 支持简单的反 debug 机制
    • [ ] 支持软件许可证

    使用风险

    只提供基本的加密保护,对于经验丰富的黑客,几乎没啥用。

    如果你觉得有用的话,请帮忙加星,谢谢! 目前还是初期阶段,如果遇到程序 bug 或者安全性问题,欢迎提 Issue 和 PR。

    20 replies    2020-07-21 20:10:13 +08:00
    herozhang
        1
    herozhang  
       Jul 29, 2018   ❤️ 1
    貌似可以放弃对 python2.x 的支持,
    后续官方都不支持了。
    Morriaty
        2
    Morriaty  
       Jul 29, 2018   ❤️ 1
    这个和直接打包成 so/dll 文件,哪个安全些?
    40huo
        3
    40huo  
       Jul 29, 2018 via Android   ❤️ 1
    说实话,二进制的逆向知识会的人比会 python 逆向的人多
    go2sleep
        4
    go2sleep  
    OP
       Jul 29, 2018
    @Morriaty 打包成 so/dll 的方案有很多,得具体分析
    go2sleep
        5
    go2sleep  
    OP
       Jul 29, 2018
    @40huo 防君子不防小人吧😁

    想要的效果是把破解 python 的难度提升到和 c/c++ 差不多,当然目前还达不到。
    ZeoKarl
        6
    ZeoKarl  
       Jul 29, 2018 via iPhone
    建议放弃 py2
    go2sleep
        7
    go2sleep  
    OP
       Jul 29, 2018
    @nieyujiang
    @herozhang

    我自己平时用 python3 比较多,不过貌似还是挺多人用 python2 吧?
    我公司里面不愿意转去 python3 的 python2 遗老有一大堆啊!
    ZeoKarl
        8
    ZeoKarl  
       Jul 29, 2018
    @go2sleep 然而 python2 即将停止支持也是历史进程的选择.
    chroming
        9
    chroming  
       Jul 29, 2018
    运行时解密不是又能看到源码了么
    go2sleep
        10
    go2sleep  
    OP
       Jul 29, 2018
    @chroming 这并不容易,解密是解密在内存中,不是解密在文件了。还需要读取内存才能取得
    LukeChien
        11
    LukeChien  
       Jul 29, 2018 via Android
    得内存 dump 了
    herozhang
        12
    herozhang  
       Jul 29, 2018
    @go2sleep 向前看,有所得就要有所失。
    dorothyREN
        13
    dorothyREN  
       Aug 1, 2018
    @go2sleep dump 内存 了解一下
    go2sleep
        14
    go2sleep  
    OP
       Aug 1, 2018
    @dorothyREN 据我所知,dump 内存的技术比反编译 pyc 要难多了吧?
    另外解密之后的 python 源码在内存中也不是一直存在的,交给 python 解释执行之后很快就释放内存了。

    你有这方面进一步的资料的话,欢迎提供!
    sniper517
        15
    sniper517  
       Aug 1, 2018
    哪些建议放弃 PY2 的,你们真的是开发吗
    wzw
        16
    wzw  
       Aug 16, 2018 via iPhone
    很需要,不知道能不能弄更好的加密
    wzw
        17
    wzw  
       Aug 16, 2018 via iPhone
    和 cython 编译有区别在哪里?哪个安全?
    wzw
        18
    wzw  
       Dec 6, 2018
    建议放弃 py2

    还准备继续开发吗?
    xiner
        19
    xiner  
       Jul 13, 2020
    Python 代码加密应对的风险包括:反编译 Pyc 、提取算法密钥、授权模块破解、篡改关键代码等。
    几维安全支持对 Python 程序进行源码加密和授权管理,保护知识产权,促进稳定营收。兼容 Python2.7 、3.5 、3.6 、3.7 等小版本。安全强度高、兼容性好、使用便捷。python 代码加密: https://www.kiwisec.com/product/python.html
    jsnjfz
        20
    jsnjfz  
       Jul 21, 2020
    请问下楼主,起 tornado 这样的服务时候如果用加密的程序就会停止,不知道有没什么解决方法
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1059 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 18:50 · PVG 02:50 · LAX 11:50 · JFK 14:50
    ♥ Do have faith in what you're doing.