首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

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

  •  
  •   bozong · 2017-03-01 13:43:04 +08:00 · 10086 次点击
    这是一个创建于 837 天前的主题,其中的信息可能已经有所发展或是发生改变。
    41 回复  |  直到 2017-03-03 10:46:29 +08:00
        1
    bozong   2017-03-01 13:43:31 +08:00
    代码混淆?
        2
    bozong   2017-03-01 13:44:37 +08:00
    请大牛们指导下
        3
    kumakiti   2017-03-01 13:49:48 +08:00
    我印象中好像没啥好办法,不过 google 了一下,在知乎上找到了一个问题,你可以参考下
    https://www.zhihu.com/question/20069661
        4
    bozong   2017-03-01 13:50:54 +08:00
    @kumakiti #3 好的
        5
    beginor   2017-03-01 13:56:08 +08:00 via Android   ♥ 1
    关键代码包装成服务, http 调用
        6
    50vip   2017-03-01 14:00:25 +08:00   ♥ 4
    开源就不会被反编译了。
        7
    bozong   2017-03-01 14:01:22 +08:00
    @50vip #6
        8
    bozong   2017-03-01 14:05:51 +08:00
    @beginor #5 额。这是个办法、、、
        9
    slideclick   2017-03-01 14:09:34 +08:00
    python 大神去那公司有这技术,叫什么 dropbox 公司
        10
    BiggerLonger   2017-03-01 14:10:07 +08:00 via Android
    用 Cython 編譯代碼然後打包成 egg 或者 wheel 文件
        11
    bozong   2017-03-01 14:11:15 +08:00
    @BiggerLonger #10 我想打包成在 windwos 下执行的
        12
    xuboying   2017-03-01 14:12:03 +08:00 via Android   ♥ 1
    带有这种目的的 task 我都尽量尝试用 c++来完成。
        13
    bozong   2017-03-01 14:12:48 +08:00
    @xuboying #12 大牛
        14
    nicevar   2017-03-01 14:46:03 +08:00
    真要反编译你的程序,不做加壳之类的一些加固处理也是分分钟的事,用啥语言都一样,做了防护处理也得看是那群人盯上你的程序了
        15
    BiggerLonger   2017-03-01 14:58:11 +08:00
    @bozong wheel 文件可以跨平台的, 現在 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 上面都是 wheel 文件了
        16
    kaneg   2017-03-01 15:05:42 +08:00
    自带 bug ,漏洞百出的程序不怕被人抄袭。如果真是写程序的高人,也不怕抄, Linux , Python 之父都是搞开源的
        17
    newworld   2017-03-01 15:08:31 +08:00
    @nicevar #14 比较赞同 你得看是什么人顶上你的程序 真正的逆向高手那里...哪些商业软件被爆菊都是正常的 只是别人搞不搞你
        18
    ijustdo   2017-03-01 15:27:45 +08:00
    #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 的源代码
        19
    bozong   2017-03-01 15:42:02 +08:00
    @ijustdo #18 知道了。拜拜
        20
    lrxiao   2017-03-01 16:12:28 +08:00
    混淆字节码
        21
    Lycnir   2017-03-01 16:15:26 +08:00
    最安全的办法就是用自己写的 python 解析器 /斜眼笑
        22
    bozong   2017-03-01 16:46:06 +08:00
    @Lycnir #21
        23
    noNOno   2017-03-01 17:12:34 +08:00
    没有,下一题 23333
        24
    qybei   2017-03-01 19:53:12 +08:00 via Android
    用 cython 编译成 c
        25
    phithon   2017-03-01 20:02:40 +08:00
    某公司出售的分布式扫描器就是自己研发的 python 解释器,改了字节码。别无他法。
        26
    falseen   2017-03-01 20:08:43 +08:00
    或许可以试试用 http://nuitka.net/ 编译成 c ?
        27
    xenme   2017-03-01 20:14:48 +08:00 via iPhone
    转成 exe ,然后加加密壳,能防住大多数人了
        28
    yeasy   2017-03-01 20:39:22 +08:00
    nuitka
        29
    likuku   2017-03-01 20:42:14 +08:00
    这个只有法律手段了。
        30
    jadecoder   2017-03-01 20:45:10 +08:00
    IronPython ,编译成 .NET ?
        31
    bozong   2017-03-01 21:00:38 +08:00
    @jadecoder #30 不行吧
        32
    loading   2017-03-01 21:14:24 +08:00 via Android
    现在有工具能编译成 golang ,再编译。
        33
    suikatw   2017-03-01 21:30:50 +08:00   ♥ 1
    没什么办法能够完全阻止反编译。给予足够的付出,任何程序都可以逆向出来

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

    如果不能,那么你只要找到一个逆向代价比这个价值高的保护手段就可以了
        34
    bozong   2017-03-01 21:40:40 +08:00
    @suikatw #33 赞
        35
    kokutou   2017-03-01 21:52:20 +08:00
    nuitka 编译。。。
        36
    zmj1316   2017-03-01 21:56:07 +08:00
    同意 lss 观点,真的有人想破根本没办法防的,想想这么多单机游戏怎么被破解,还被汉化的...
    应该有不少游戏也是用 Python 当逻辑脚本的,不得不承认的确有人看汇编就像看代码一样
        37
    hasdream   2017-03-01 22:38:43 +08:00 via Android
    编译成 pyo 然后打包成 exe
        38
    solidx   2017-03-02 11:44:53 +08:00
    @phithon 某公司是?
        39
    bozong   2017-03-02 21:56:38 +08:00 via iPhone
    @MichaelJY 感谢
        40
    lovemfc   2017-03-03 10:42:05 +08:00
    用 cython 把文件转换成二进制的 pyd 不就行了么,看这里 https://www.hajiaoshou.com/10.html
        41
    bozong   2017-03-03 10:46:29 +08:00
    @lovemfc #40 我试试
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1178 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 17:29 · PVG 01:29 · LAX 10:29 · JFK 13:29
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1