推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
bozong
V2EX  ›  Python

最近用 Python 写了个工具,有没有什么办法防止被反编译

  •  
  •   bozong · Mar 1, 2017 · 15813 views
    This topic created in 3378 days ago, the information mentioned may be changed or developed.
    41 replies    2017-03-03 10:46:29 +08:00
    bozong
        1
    bozong  
    OP
       Mar 1, 2017
    代码混淆?
    bozong
        2
    bozong  
    OP
       Mar 1, 2017
    请大牛们指导下
    kumakiti
        3
    kumakiti  
       Mar 1, 2017
    我印象中好像没啥好办法,不过 google 了一下,在知乎上找到了一个问题,你可以参考下
    https://www.zhihu.com/question/20069661
    bozong
        4
    bozong  
    OP
       Mar 1, 2017
    @kumakiti #3 好的
    beginor
        5
    beginor  
       Mar 1, 2017 via Android   ❤️ 1
    关键代码包装成服务, http 调用
    50vip
        6
    50vip  
       Mar 1, 2017   ❤️ 4
    开源就不会被反编译了。
    bozong
        7
    bozong  
    OP
       Mar 1, 2017
    @50vip #6
    bozong
        8
    bozong  
    OP
       Mar 1, 2017
    @beginor #5 额。这是个办法、、、
    slideclick
        9
    slideclick  
       Mar 1, 2017
    python 大神去那公司有这技术,叫什么 dropbox 公司
    BiggerLonger
        10
    BiggerLonger  
       Mar 1, 2017 via Android
    用 Cython 編譯代碼然後打包成 egg 或者 wheel 文件
    bozong
        11
    bozong  
    OP
       Mar 1, 2017
    @BiggerLonger #10 我想打包成在 windwos 下执行的
    xuboying
        12
    xuboying  
       Mar 1, 2017 via Android   ❤️ 1
    带有这种目的的 task 我都尽量尝试用 c++来完成。
    bozong
        13
    bozong  
    OP
       Mar 1, 2017
    @xuboying #12 大牛
    nicevar
        14
    nicevar  
       Mar 1, 2017
    真要反编译你的程序,不做加壳之类的一些加固处理也是分分钟的事,用啥语言都一样,做了防护处理也得看是那群人盯上你的程序了
    BiggerLonger
        15
    BiggerLonger  
       Mar 1, 2017
    @bozong wheel 文件可以跨平台的, 現在 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 上面都是 wheel 文件了
    kaneg
        16
    kaneg  
       Mar 1, 2017
    自带 bug ,漏洞百出的程序不怕被人抄袭。如果真是写程序的高人,也不怕抄, Linux , Python 之父都是搞开源的
    newworld
        17
    newworld  
       Mar 1, 2017
    @nicevar #14 比较赞同 你得看是什么人顶上你的程序 真正的逆向高手那里...哪些商业软件被爆菊都是正常的 只是别人搞不搞你
    ijustdo
        18
    ijustdo  
       Mar 1, 2017
    #include <python.h>
    #include <stdio.h>
    #include <stdlib.h>


    int main(int argc, char *argv[])
    {

    Py_Initialize();

    FILE * fp = NULL;

    PyRun_SimpleString("execfile('test.py')");


    Py_Finalize();

    printf("---------------------END--------------------\n");

    return 0;
    }

    有启发没 明显你没看过 python 的源代码
    bozong
        19
    bozong  
    OP
       Mar 1, 2017
    @ijustdo #18 知道了。拜拜
    lrxiao
        20
    lrxiao  
       Mar 1, 2017
    混淆字节码
    Lycnir
        21
    Lycnir  
       Mar 1, 2017
    最安全的办法就是用自己写的 python 解析器 /斜眼笑
    bozong
        22
    bozong  
    OP
       Mar 1, 2017
    @Lycnir #21
    noNOno
        23
    noNOno  
       Mar 1, 2017
    没有,下一题 23333
    qybei
        24
    qybei  
       Mar 1, 2017 via Android
    用 cython 编译成 c
    phithon
        25
    phithon  
       Mar 1, 2017
    某公司出售的分布式扫描器就是自己研发的 python 解释器,改了字节码。别无他法。
    falseen
        26
    falseen  
       Mar 1, 2017
    或许可以试试用 http://nuitka.net/ 编译成 c ?
    xenme
        27
    xenme  
       Mar 1, 2017 via iPhone
    转成 exe ,然后加加密壳,能防住大多数人了
    yeasy
        28
    yeasy  
       Mar 1, 2017
    nuitka
    likuku
        29
    likuku  
       Mar 1, 2017
    这个只有法律手段了。
    jadecoder
        30
    jadecoder  
       Mar 1, 2017
    IronPython ,编译成 .NET ?
    bozong
        31
    bozong  
    OP
       Mar 1, 2017
    @jadecoder #30 不行吧
    loading
        32
    loading  
       Mar 1, 2017 via Android
    现在有工具能编译成 golang ,再编译。
    suikatw
        33
    suikatw  
       Mar 1, 2017   ❤️ 1
    没什么办法能够完全阻止反编译。给予足够的付出,任何程序都可以逆向出来

    你首先要考虑别人反编译你的程序会得到什么好处,如果能够降低其逆向价值,先降低其逆向给人带来的价值

    如果不能,那么你只要找到一个逆向代价比这个价值高的保护手段就可以了
    bozong
        34
    bozong  
    OP
       Mar 1, 2017
    @suikatw #33 赞
    kokutou
        35
    kokutou  
       Mar 1, 2017
    nuitka 编译。。。
    zmj1316
        36
    zmj1316  
       Mar 1, 2017
    同意 lss 观点,真的有人想破根本没办法防的,想想这么多单机游戏怎么被破解,还被汉化的...
    应该有不少游戏也是用 Python 当逻辑脚本的,不得不承认的确有人看汇编就像看代码一样
    zerofiny
        37
    zerofiny  
       Mar 1, 2017 via Android
    编译成 pyo 然后打包成 exe
    solidx
        38
    solidx  
       Mar 2, 2017
    @phithon 某公司是?
    bozong
        39
    bozong  
    OP
       Mar 2, 2017 via iPhone
    @MichaelJY 感谢
    lovemfc
        40
    lovemfc  
       Mar 3, 2017
    用 cython 把文件转换成二进制的 pyd 不就行了么,看这里 https://www.hajiaoshou.com/10.html
    bozong
        41
    bozong  
    OP
       Mar 3, 2017
    @lovemfc #40 我试试
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2664 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 11:32 · PVG 19:32 · LAX 04:32 · JFK 07:32
    ♥ Do have faith in what you're doing.