关于 Python 代码反编译问题,请老哥们支支招 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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
pipixiarwksb
V2EX    Python

关于 Python 代码反编译问题,请老哥们支支招

  •  
  •   pipixiarwksb 2024 年 4 月 6 日 2730 次点击
    这是一个创建于 645 天前的主题,其中的信息可能已经有所发展或是发生改变。

    接了个私单,对方老板要求测试下服务,我这边需要把源码发过去才能测试,如何防止反编译呢?

    18 条回复    2024-04-11 17:13:43 +08:00
    Inn0Vat10n
        1
    Inn0Vat10n  
       2024 年 4 月 6 日
    pyarmor
    elioti
        2
    elioti  
       2024 年 4 月 6 日
    你去服务器跑起来,然后删代码
    gerorim
        3
    gerorim  
       2024 年 4 月 6 日 via iPhone
    转译 pyd ,Linux 和 Windows 都支持
    kuanat
        4
    kuanat  
       2024 年 4 月 6 日
    能做成网络请求的方式是最好的,即使是内网也可以临时用穿透方式来测试。

    如果因为实时性或者与其他模块集成没办法,那就编译成 pyd/so ,如果是 so 的话记得移除符号表,pyd 应该是默认移除的。

    做一点简单的限时逻辑,不要有明显的特征,量以 silent crash 的形式来处理。这样一般防老板是够用了。有应对措施的大概率就能自己做了。
    macaodoll
        5
    macaodoll  
       2024 年 4 月 7 日 via Android
    服务器跑起来给个接口测试呢?或者开个远控让他测试,没给钱不给代码。
    vicalloy
        6
    vicalloy  
       2024 年 4 月 7 日
    用 Nuitka 编译成二进制。
    Nuitka 现在已经比较成熟了,用下来没有发现什么问题。
    ktyang
        7
    ktyang  
       2024 年 4 月 7 日
    问题不是光反编译吧。。。他拿着二进制文件只要能用就不会给钱。。。血泪教训。。。还得限制使用才行
    BeUself
        8
    BeUself  
       2024 年 4 月 7 日
    做成服务化最好吧。4 楼老哥说的很全了。
    BeUself
        9
    BeUself  
       2024 年 4 月 7 日
    其他方法,增加了你很多无意义的工作量
    jstony
        10
    jstony  
       2024 年 4 月 7 日   2
    nuitka 编译,加上时间服务器验证,无法验证或者过期直接 exit 0.
    pipixiarwksb
        11
    pipixiarwksb  
    OP
       2024 年 4 月 7 日
    感谢各位老哥回帖
    @Inn0Vat10n 后面试下 貌似找了一圈 网上就这个比较好点
    @elioti 服务器还要买,都是本地跑的
    @gerorim 这个网上说不行,很简单就被破译了
    @kuanat 编译成 so 可以试下
    @macaodoll 没买服务器
    @vicalloy 结合一楼的一块试试
    @ktyang 就是这样啊,看网上有类似套路
    @jstony 可以
    @xhatt510 可以
    iorilu
        12
    iorilu  
       2024 年 4 月 7 日
    远程演示

    实在不行, 上门演示阿

    如果老板都不愿意, 那乘早走人就是, 不用浪费时间
    noahlias
        13
    noahlias  
       2024 年 4 月 7 日
    黑盒不是很危险吗(老板要是想 code review 咋办)
    python 做这种分发的话 我觉得不应该封装一些核心 你认为有价值的逻辑吗 用 c/c++ /rust 等 bind
    pipixiarwksb
        14
    pipixiarwksb  
    OP
       2024 年 4 月 7 日
    @iorilu 不在一个地方啊
    @noahlias 有核心逻辑
    pipixiarwksb
        15
    pipixiarwksb  
    OP
       2024 年 4 月 7 日
    @noahlias 也是一哥思路,我这边也会 go 可以把核心代码封装成 go,问题是 go 会被反编译吗?
    iorilu
        16
    iorilu  
       2024 年 4 月 7 日
    @pipixiarwksb 这种事没底的

    你这假设就几千块的事, 就别折腾了

    假如是几万的活, 一般都是有合同按完成度给钱, 包括怎么演示

    正常远程演示都是可以接受的, 如果对方不接受演示, 直接让你交付再给钱, 显然也不合理

    另外, 这活交付包不包含源代码也要说清楚的
    gerorim
        17
    gerorim  
       2024 年 4 月 8 日 via iPhone
    @pipixiarwksb #11 pyd 就是动态链接库 so ,不是 pyc 。外加绑定机器码+限定时间。
    pipixiarwksb
        18
    pipixiarwksb  
    OP
       2024 年 4 月 11 日
    @gerorim 阔以 老哥强 ,正在为这个发愁,绑定机器码+这个时间阔以
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1091 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:58 PVG 01:58 LAX 09:58 JFK 12:58
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86