一亩三分地

 找回密码 注册账号

扫描二维码登录本站

微信公众号
扫码关注公众号
留学申请公众号
扫码关注留学申请公众号
查看: 1536|回复: 19
收起左侧

请问: python程序的通常如何加密

[复制链接] |只看干货 |技术交流
我的人缘0

升级   82.43%


分享帖子到朋友圈
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   90% (18)
 
 
10% (2)    👎

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
比如c++程序,发布的是可执行文件, 客户看不到源代码. 那么phthon程序应该怎么做呢? 我看到一些加密的方法, 但是不知道工业级别的做法.谢谢!

上一篇:ThinkPad USB-C Dock Gen 2如何才能连两个显示器?
下一篇:Ubuntu系统好用的VPN
我的人缘0

升级   72%

xiaomajia001 2020-10-24 01:30:07 | 显示全部楼层
本楼: 👍   100% (3)
 
 
0% (0)   👎
全局: 👍   98% (1172)
 
 
1% (12)    👎
需要加密的地方写C,封装成library
回复

使用道具 举报

我的人缘0

升级   61%

Esperical 2020-10-24 15:01:17 | 显示全部楼层
本楼: 👍   100% (2)
 
 
0% (0)   👎
全局: 👍   98% (108)
 
 
1% (2)    👎
littlechen32 发表于 2020-10-24 14:12
你要加密的是python 2.7 的代码还是3.x 的,我最近正在搞这个,最直接的方法就是改python 语言源代码,先自 ...

解密方也读内存就好了。。。。  把fmemopen劫持掉 加层壳就读出来了
回复

使用道具 举报

我的人缘0

升级   14.85%

littlechen32 2020-10-24 14:12:42 | 显示全部楼层
本楼: 👍   100% (2)
 
 
0% (0)   👎
全局: 👍   78% (353)
 
 
21% (94)    👎
你要加密的是python 2.7 的代码还是3.x 的,我最近正在搞这个,最直接的方法就是改python 语言源代码,先自己用openssl 写一个加密程序,然后所有工程代码加密,然后python 运行时候有两种情况:1.正常python xxx.py 这种情况在py_main 函数中你可以看到fopen, 把那个改成你自定义的打开方式,具体来讲就是,对加密后的代码进行解码,变成正常文本,放在内存里,用fmemopen 重新打开,这样就可以了。2.import 的情况就特殊了,比如你程序import 另一个加密后的源代码文件,2.7 你去import.c:find_module里找对应打开的函数,3.x 我还在研究,目前发现是lib/importlib.py 做法是改那个,然后重新生成importlib.h ,那个我还没想清楚怎么具体做
回复

使用道具 举报

我的人缘0
Wu_kong 2020-10-24 00:28:52 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   94% (999)
 
 
5% (54)    👎
大概是开源吧

评分

参与人数 1大米 +1 收起 理由
ruidongl + 1 赞一个

查看全部评分

回复

使用道具 举报

我的人缘0

升级   9.29%

ynos1155 2020-10-24 03:31:23 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (98)
 
 
0% (0)    👎
之前查了好久,结论就是Python代码没法加密,折衷的办法:
1 用obfuscator把你的代码弄的别人没法理解
2 用Cython来写代码,然后编译
3 Nuitka:“It translates the Python into a C program that then is linked against libpython to execute in the same way as CPython does, in a very compatible way.

回复

使用道具 举报

我的人缘0

升级   76.5%

deng47 2020-10-24 04:09:06 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (10)
 
 
0% (0)    👎
没有用过,但搜索一下“python封装exe”看行不行
回复

使用道具 举报

我的人缘0

升级   88%

Darkious 2020-10-24 04:35:10 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (1)
 
 
0% (0)    👎
C++写库然后Python暴露封装接口
回复

使用道具 举报

我的人缘0

升级   67%

本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   95% (179)
 
 
4% (8)    👎
试过下面几种:
1.cython弄成.so
2.pyinstaller 弄成single executable file
3.obfuscation,试过pyminifier

目前来看1是最优解,2和3都有一些问题没法解决
回复

使用道具 举报

我的人缘0

升级   41.5%

Xhi 2020-10-24 05:03:18 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (33)
 
 
0% (0)    👎
jtianen 发表于 2020-10-24 04:41
试过下面几种:
1.cython弄成.so
2.pyinstaller 弄成single executable file

这位大哥说的基本也就这样了,不过即便你cython compile到.so, 人家想看你逻辑拿IDA看一遍也就完事了,虽然费点劲。如果刚开始的时候,就有代码保密的状况的话,那代码混淆化应该刚开始就做啊
回复

使用道具 举报

我的人缘0

升级   67%

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   95% (179)
 
 
4% (8)    👎
Xhi 发表于 2020-10-23 14:03:18
这位大哥说的基本也就这样了,不过即便你cython compile到.so, 人家想看你逻辑拿IDA看一遍也就完事了,虽然费点劲。如果刚开始的时候,就有代码保密的状况的话,那代码混淆化应该刚开始就做啊
Obfuscation也可以reverse,那就只能说python不能完美加密了。
回复

使用道具 举报

我的人缘0

升级   72%

xiaomajia001 2020-10-24 05:44:17 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   98% (1172)
 
 
1% (12)    👎
本帖最后由 xiaomajia001 于 2020-10-24 05:50 编辑
Xhi 发表于 2020-10-24 05:03
这位大哥说的基本也就这样了,不过即便你cython compile到.so, 人家想看你逻辑拿IDA看一遍也就完事了,虽 ...

拿IDA看没那么简单的,二进制的话手段比较丰富,指令加花啊,程序加壳啊什么的,这个加密解密的攻防就有来有回了。但是加密一方的目的是使解密成本超过对方承受的极限,而不是完全没办法破解
还可以把核心逻辑封装到专有硬件里,这样的话反编译也没办法,不过这样加密的成本就大大提高了,只能用来加密非常非常核心的地方
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://tools.1point3acres.com/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|||一亩三分地

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

Some icons made by Freepik from flaticon.com

快速回复 返回顶部 返回列表