大发龙虎首页    注册   登录
大发龙虎 = way to explore
大发龙虎 是一个大发龙虎关于 分享和探索的地方
现在注册
已注册用户请  登录
大发龙虎推荐 学习书目
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
大发龙虎  ›  Python

Python 写商业大发龙虎软件 时 如何保护代码不被泄漏?

  •  1
     
  •   JasonTsang · 5 天前 · 4146 次点击

    最近用 python 开发商业大发龙虎软件 ,但不知道 如何保护这些代码不被轻易破译,当然肯定会有人能破得了 ,但就现在来看 ,python 的源码真的处于无保护状态。请问应该怎么做才能很好的保护商业源码?软著也只能在法律上保护。比如一些人开发了大发龙虎你 的大发龙虎软件 ,大发龙虎你 的大发龙虎软件 根本就不能再商业了。

    51 回复  |  直到 2019-11-12 15:01:34 +08:00
        1
    blackwolf   5 天前   ♥ 5
    直接把 python 编译成二进制包,网上搜搜,教程大把
    现在开源是大趋势,转一下思维吧
    说了不好听,只要代码在机器上跑,就一定可以被汇编,一定是能被破解的,只不过成本高低而已
    非专业的大发龙虎软件 不提了,专业的大发龙虎软件 从 PS,到高端的芯片版图的 candence 都有破解版
    连 apple 这种大厂,最严密的 bootrom 最近都能被人 dump 出来
    所以保护好代码,不如把把大发龙虎服务 放在云端或者大发龙虎服务 器端,以大发龙虎服务 的形式体现或者转向卖大发龙虎服务
    如果大发龙虎软件 里包含了核心的算法,还是不要提供到大发龙虎本地 了吧,怎么搞都是可以被破解的,以云端 api 的形式是目前看起来最稳妥的大发龙虎方法 了。
        2
    Mutoo   5 天前
    密钥有密码学,加密狗。算法、创意有专利法。源码尽管开源呗。
        3
    est   5 天前   ♥ 11
    代码跑起来之后,把大发龙虎本地 文件删了。

    重启一次给 100 元钱。
        4
    chempotato   5 天前 via Android
    用 cython 加密
        5
    wzw   5 天前 via iPhone
    虚拟机,全盘加密
        6
    Cooky   5 天前 via Android
    @blackwolf 混淆,编译,加壳🐸
        7
    panpanhtai   5 天前 via iPhone
    @est
        8
    sadfQED2   5 天前 via Android   ♥ 1
    大发龙虎我 说一个大发龙虎我 见过的,用户大发龙虎服务 器上面装虚拟机,代码全部在虚拟机里面,虚拟机操作系统设置密码,这样别人就破解不了了,另外部署也简单,一个 u 盘拷过去,虚拟机运行起来搞定
        9
    xiaofengchen   5 天前 via Android
    cython +1
        10
    tulongtou   5 天前 via iPhone
    @sadfQED2 把虚拟机停了,然后开另外一台虚拟机把有代码的虚拟机磁盘挂载上去,这样不就能读到代码了嘛?
        11
    singerll   5 天前 via Android
    @tulongtou 磁盘可以加密
        12
    ericgui   5 天前 via Android   ♥ 1
    别想太多,很可能大发龙虎你 在写的代码根本没任何价值,没人破解大发龙虎你 。

    即便真有价值,人家大概率会抄一份大发龙虎你 的所有 feature,破解太费劲了
        13
    dongyulin353   5 天前 via iPhone
    @sadfQED2 linux 的话,单用户模式可破密码
        14
    set01   5 天前
    @est 这个想法真神奇
        15
    tulongtou   5 天前
    @singerll 现在虚拟机磁盘也可以加密了?
        16
    secsilm   5 天前 via Android
    大发龙虎Win dows 的话打包成 pyd,Linux 打成 so
        17
    stevenkang   5 天前
    SaaS 化
        18
    wqzjk393   5 天前
    python 好像没多少人拿 python 写大发龙虎软件 的吧,都是 web 后端+数据分析+ai。web 后端只开放 api 那只要大发龙虎服务 器不被攻破就没什么被破解代码一说,数据分析这些几乎都是脚本文件或者 web 大发龙虎服务 器后台处理的,也没啥破解的意义。ai 的话更没啥意思了,拿 python 写的 ai 基本上都是跟着论文写出来的实例而已,也就是说关键是在论文而不是代码。。
        19
    est   5 天前
    @set01 其实甚至可以远程加载 python+zip 代码。
        20
    Yamtt   5 天前 via Android
    放到 bsv 上
        21
    EminemW   5 天前 via iPhone
    代码有什么关键大发龙虎技术 吗。。。大部分重要的是数据吧。
        22
    warcraft1236   5 天前
    这个问题 Java 也有
        23
    handong970123   5 天前
    大发龙虎大发龙虎我 们 这边都是转成二进制文件
        24
    Cler大发龙虎ICP y   5 天前
    基本别想了, 多少人恰恰就是因为这问题转别的语言去了

    以前玩过 curl 一句一次性 https url 来执行, 也就是打包好 pyz 然后 xargs 那种, 代码和环境因为是在内存里的, 所以只要第一次没抓包到, 就没事, 然而抓包就拿到也没什么用

    所以还是做成 CS 大发龙虎服务 吧
        25
    singerll   5 天前 via Android
    @tulongtou 磁盘全盘加密跟是不是虚拟机没关系吧
        26
    liuzhiyong   5 天前 via Android
    只有一个办法:业务的关键逻辑在自己的大发龙虎服务 器上面。其他的办法,只要利益足够大,都能有牛人破解掉。
        27
    binux   4 天前 via Android
    @est #3 内存 dump 如何?
        28
    zhuangzhuang1988   4 天前
    代码写得烂点就好了.
        29
    guanhui07   4 天前
    转二进制
        30
    hakono   4 天前 via iPhone
    @singerll 磁盘加密也没用。虚拟机要跑起来必定需要对磁盘解密,而解密必定要秘钥,虚拟机都在客户手上了秘钥必定也一定藏在哪里,找到秘钥虚拟机就等于是裸奔了

    除非做法是虚拟机启动后就销毁秘钥再也不关闭虚拟机,每次关机后想启动虚拟机必须联系大发龙虎公司 人员上门去启动导入秘钥
        31
    hkitdog   4 天前 via iPhone
    @guanhui07 Python 还能转二进制?
        32
    anonymous256   4 天前
    1. 大多数情况没有加密的必要性, 大发龙虎你 的烂代码没多少闲人会看.
    2. 想要编译成二进制包, 参考知名开源项目:
    http://github.com/volatilityfoundation/volatility/wiki/Compiling-Binaries-with-Pyinstaller#compiling-with-pyinstaller
    3. 只是纯粹想保护代码, 使用 cython 编译成 C 扩展, 这样代码就不可读了.
        33
    est   4 天前
    @binux 当然可以。。。这就是双方对抗升级的过程了。23333
        34
    blackwolf   4 天前
    @Cooky 如果真有人愿意逆向,花点力气,费点时间,还是可以逆向出来的,混淆加壳,代码加花,大部分情况下只能延迟被逆向的时间,看看好多姿势水平极高木马,病毒,最后还不是被一波搞安全的把底裤脱得光光的。。。
        35
    augustheart   4 天前
    别多想,大发龙虎你 都选择 python 了,就不要再考虑保护代码不被破译的问题,毕竟生命苦短嘛。
    当然,如果只是字节码的层次,可以考虑字节码混淆大发龙虎工具 。

    但是不要妄想在逆向层次对抗,任何大发龙虎公司 ,想对抗整个黑产都是痴心妄想,谷歌微软都不例外。有花在对抗上的心思把业务做好一点。
        36
    crab   4 天前
    加密狗要么法律手段。
        37
    leavic   4 天前
    pyinstaller 这种所谓的打包,大发龙虎你 们是来搞笑的吗?
        38
    singerll   4 天前 via Android
    @hakono 大发龙虎你 可以看下类似 bitlocker,是可以套多层壳的,虽然是可以解,但有生之年。。。
        39
    mamahaha   4 天前 via Android
    必须联网才能使用。在大发龙虎服务 器上进行加密。
        40
    JasonTsang   4 天前
    @blackwolf 要的就是成本破解成本高,当成本高过大发龙虎我 大发龙虎软件 的价值,就没人掂记了。。
        41
    JasonTsang   4 天前
    @sadfQED2 大发龙虎你 是指 Docker????
        42
    hakono   4 天前 via iPhone
    @singerll 大发龙虎我 寻思即便是 bitlocker 有秘钥也一样解密啊。难道 bitlocker 还存在有秘钥都无法解密的情况?那所有者是怎么解密的。。。。
        43
    MartinWu   4 天前
    @est #3 是个狼人
        44
    MartinWu   4 天前
    @est #3 但是如果非要说的话,从内存里 dump 出来也不是不可能。
        45
    Achilless   4 天前
    @leavic 大发龙虎我 也觉得,竟然这么多人大发龙虎推荐 打包成可执行文件。。很容易被反编译的,无成本那种。。服了
        46
    singerll   4 天前 via Android
    @hakono 从系统引导时就开始加密了,理论上是可以解,实际上大发龙虎你 要搞定好几层,理论上算法都是能破解的,实际上大发龙虎你 要投入的精力真的是有生之年。
    而且,大发龙虎我 的意思是,跟虚拟机没关系,即便是物理机,也能把硬盘拆下来。
        47
    est   3 天前
    @MartinWu 可是可能,但是看雪什么地方能抄着实践的教程就少了。很多人就放弃了。。。
        48
    qile1   3 天前 via Android
    现在好像是用 0oO 做混淆,生成 pyd,大发龙虎我 也一直没啥办法,之后就是大包 exe 程序魔改编译器等,在之后好像是用其他语言写核心比如用 c 写核心调用接口!
        49
    hkitdog   3 天前 via iPhone
    @qile1 C 麻烦啊,用 libcurl 写个请求也要几百行的代码量,Python 一行搞定
        50
    yuyanglive   3 天前 via Android
    Cython
        51
    iMath   21 小时 43 分钟前
    用 Nuitka 打包就能实现大发龙虎你 的要求
    github.com/Nuitka/Nuitka
    和 Cython 一样,都是先将 py 代码转成 C++,但是 Nuitka 在用来打包方面比 Cython 好用
    大发龙虎关于   ·   FAQ   ·   API   ·   大发龙虎大发龙虎我 们 的愿景   ·   广告投放   ·   感谢   ·   实用小大发龙虎工具   ·   3272 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 38ms · UTC 04:44 · PVG 12:44 · LAX 20:44 · JFK 23:44
    ♥ Do have faith in what you're doing.