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 · 265 天前 · 2075 次点击
    这是一个创建于 265 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    实在不行, 上门演示阿

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

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

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

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

    另外, 这活交付包不包含源代码也要说清楚的
    gerorim
        17
    gerorim  
       263 天前 via iPhone
    @pipixiarwksb #11 pyd 就是动态链接库 so ,不是 pyc 。外加绑定机器码+限定时间。
    pipixiarwksb
        18
    pipixiarwksb  
    OP
       261 天前
    @gerorim 阔以 老哥强 ,正在为这个发愁,绑定机器码+这个时间阔以
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2577 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:14 · PVG 19:14 · LAX 03:14 · JFK 06:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.