也许是全球唯一能用的 Python 代码混淆器,新增支持 string literals 混淆

2022-02-27 10:11:57 +08:00
 huntzhan

pywhlobf 0.2.0 发布,也许是全球唯一能用的 Python 代码混淆器, 传送门

这次发布新增支持 string literals 混淆,基于 adamyaxley/Obfuscate

7024 次点击
所在节点    分享创造
27 条回复
shinession
2022-02-27 10:24:51 +08:00
先收藏了,支持一下
Kinnice
2022-02-27 10:50:59 +08:00
balabalaguguji
2022-02-27 10:53:29 +08:00
先收藏了,后面用到再看
huntzhan
2022-02-27 11:05:30 +08:00
@Kinnice 看来我们对“能用”的定义不一样哈哈
duke807
2022-02-27 11:40:19 +08:00
如果混淆覺得還不夠保險,可以把各別或全部 py 文件編譯成二進制,完全不會有源碼的那種(你可以檢查中間的 c 文件),譬如我一個項目,主 py 腳本編譯成可執行文件,被引用的 py 腳本編譯成 so 文件
編譯出来的 so 也可以被普通 py 文件 import
(編譯過的和沒編譯的文件可以任意組合搭配)


echo "cython main"
cython --embed -o main.c main.py
gcc -Os -I /usr/include/python3.8 -o main main.c -lpython3.8 -lpthread -lm -lutil -ldl
mv main.py main.py_bk

echo "cython ae_"
cython --embed -o ae_.c ae_.py
gcc -Os -I /usr/include/python3.8 -o ae_.so ae_.c -shared -fPIC -lpython3.8 -lpthread -lm -lutil -ldl
mv ae_.py ae_.py_bk
huntzhan
2022-02-27 13:33:22 +08:00
@duke807 是的,同样的原理
0o0O0o0O0o
2022-02-27 14:48:43 +08:00
不熟悉 python ,不过既然能够 py to c ,接下来是不是可以直接用 ollvm 以及它的一些 fork 呢?
huntzhan
2022-02-27 14:52:18 +08:00
@0o0O0o0O0o 是的,有空打算把 https://github.com/obfuscator-llvm/obfuscator 也加进去
0o0O0o0O0o
2022-02-27 14:54:15 +08:00
@huntzhan 这个原版有点老了,可以找一些新的 fork ,升级了 llvm 版本,混淆也强力很多
huntzhan
2022-02-27 15:04:24 +08:00
@0o0O0o0O0o 是的,一开始没上 ollvm 的原因也是因为看着 llvm 版本太老了,同时也没有找到比较多人用的替代选项。感觉这里面还是有一些坑的。可以帮忙推荐几个你觉得靠谱的新 fork 吗?
0o0O0o0O0o
2022-02-27 15:18:22 +08:00
huntzhan
2022-02-27 15:25:03 +08:00
@0o0O0o0O0o mark ,谢谢
xinyana
2022-02-27 15:59:11 +08:00
无论如何先支持一下
Garasu
2022-02-27 16:30:49 +08:00
你好,我属于刚入门 python 的非专业相关的。。。 想问一下,关于 python 的混淆和加密这类的知识应该怎么学?有没有相关的博文或书之类的推荐(目前仅有 python 和部分计算机组成原理基础的知识
huntzhan
2022-02-27 16:36:00 +08:00
@Garasu 这部分知识与计算机专业本科的若干课程有关联,如 C/C++、编译原理、操作系统、信息安全等。如果是初学者,我的建议是先读 [CSAPP]( https://csapp.cs.cmu.edu/),这本书基本涵盖了上面的内容
Garasu
2022-02-27 17:24:12 +08:00
@huntzhan 欧克,已找到。
vicalloy
2022-02-28 20:37:38 +08:00
楼主的这个是基于 cython 的?
最近在看 python 代码保护方面的东西。就目前看下来,没有让人很满意的。
1. cython 将 python 编译成 so 。试编译了一个小项目,编译可以成功,跑起来出错。
2. Nuitka 将 python 编译成 so 。编译成功,可以跑,涉及到多线程 /async 的地方有一定概率报错。根据官方说明,lock 的实现太慢,被直接去掉了。
3. 各类代码加密库。可用的不多,安全性也存疑。
huntzhan
2022-02-28 20:45:44 +08:00
@vicalloy 基于 Cython 。Nuitka 的性能问题比较严重,我之前调研过也放弃了。之前执行出错的原因有深入调查吗? Cython 确实是有一些限制导致运行时出错。这个工具我用在生产环境上的多个项目,已经稳定跑了超多一年,可靠程度上我觉得应该不会有太大问题。
wzw
2022-02-28 21:39:51 +08:00
以前需要,现在转 go 了……
gengchun
2022-03-01 10:40:52 +08:00
这个能支持 alpine 那些 musl 吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/836674

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX