跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • PyArmor 这样的工具真的可以保护 Python 源代码吗?
未分類
12 5 月 2020

PyArmor 这样的工具真的可以保护 Python 源代码吗?

PyArmor 这样的工具真的可以保护 Python 源代码吗?

資深大佬 : wzw 27

关于 PyArmor 第二次询问大家了.

询问的目的:

PyArmor 真的可以保护源代码吗?

其他相关信息

  • 我们不讨论源代码重要性, 只讨论这个工具是否能真的保护
  • @fgg1991 麻烦你说一下, 你那边的使用情况. 谢谢
  • 官网 https://github.com/dashingsoft/pyarmor
大佬有話說 (15)

  • 主 資深大佬 : wzw

    @fgg1991 麻烦你说一下, 你那边的使用情况. 谢谢

  • 資深大佬 : niubee1

    一般都是服务端程序,如果是要出售给甲方使用,一般都会做个 C++的启动器,从 git 上加载完到内存后就自动删掉源码。同时也可以用来作为版权控制和远程升级,bugfix 等功能。

  • 主 資深大佬 : wzw

    @niubee1 #2 现在讨论的就是要装在 甲方服务器上的.

    (代码没有重要到值得他们这样搞, 只讨论技术的实现)
    1. 你这个方案, 内存里面会被 dump 吧.
    2. 每次启动都需要 git?
    3. 有现成的启动器吗

  • 資深大佬 : bigtan

    用 cython 把核心代码转换成二进制的 dll

  • 主 資深大佬 : wzw

    @bigtan #4 暂先讨论 PyArmor, 实在重要, 可以用 Go 来写了

  • 資深大佬 : locoz

    咦,这个不是之前 pycon china 上海站的一位讲师做的嘛

  • 主 資深大佬 : wzw

    @locoz #6 我好想看懂你说的话了, 还是可以解开的?

  • 資深大佬 : niubee1

    @wzw 1,内存里会被 dump ?你对程序的执行貌似有那里理解不对。
    2,每次启动都要 git,实际上服务端程序为了无缝替换,重启过程都是先 git 新版本代码,启动新进程,等老进程执行完毕后用新进程替换。其实 Git 过程也有被窃取的风险,所以实际上用的时候是有个源码分发的服务,传输过程中源码是加密的。
    3,启动器是自己写的,事关 money,花了时间和精力开发的,也不会免费放出来用,你最好也自己写,用别人的就算是花了钱也难保不会有后门窃取你代码什么的。

  • 資深大佬 : xuboying

    用 gcore 可以 dump 出源码或者字节码么?
    感觉只有真正能把代码编译成机器码的工具才是绝对的安全啊,如果工具能做到这个,完全可以换一个更高层次的卖点了(类似 webasm )?

  • 資深大佬 : m939594960

    @niubee1 #8
    1.太天真了,首先内存确实会被 dump,DNF 的 TP 就会 dump 注入到 dnf 里的 dll,当初有些不懂的开挂人员天真的把外挂放到 U 盘里,然后启动之后拔掉 U 盘,然而毛用没有。
    2.这个太简单了,人家抓包都能玩死你,还放 Git 人家直接从你 git 上拿。
    3.你敢放出来,我就敢弄死他。

    再说几个思路
    1.hook python load 开始加载的位置,直接拿到代码
    2.hook git clone 的位置,直接拿到 git 地址

  • 資深大佬 : locoz

    @wzw #7 解释型语言没办法的,最终总得解密出一个能运行的东西。虽然说有各种混淆方法能让代码晦涩难懂,但是如果只是为了拿到源码的话,解出来就够了,剩下的爱怎么反混淆就怎么反混淆。

  • 資深大佬 : lewis89

    @m939594960 #10 内存里面肯定会被 dump 吧,就算没有原始代码,解析后的词法令牌树肯定是有的,反编译一下就出结果了

  • 資深大佬 : niubee1

    @m939594960 内存 dump 出来的不是源码吧,就算反编译也得不到 Python 源码吧。 独立的加密文件分发服务替换掉 git
    hook python load 这事没考虑到,独立加载 Python 不用系统的能破

    剩下的时候就是从破解程序变化成了破解 Loader 的源码了。因为 Loader 程序比较小巧而且变化性小,所以比较容易做防护。

  • 資深大佬 : m939594960

    @niubee1 #13
    你在 U 盘里放一个 python 文件,运行之后拔掉 u 盘,你看还能正常运行不? pyc 可以反编译到 py 哦,python 应该不会翻译到其他代码了把,他又没有 jit 。

    独立加载 Python ?没用的,你用啥 python,我也能 hook 你的 load 啊,我找不到你的 load 我找你读文件的 call 行了吧。

    个人觉得最好的办法,就是自己编译一个 python 解释器,把里面的很多功能改写一下,还能提升一点难度

  • 資深大佬 : niubee1

    @m939594960 你把所有 py 文件都 import 后是可以的。pyc 可以反编译到 py (部分)但是内存里不是 pyc 。

    一直很好奇已经跑起来的程序你怎么从内存 dump 恢复到 python 源码的。来试试?

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具