18374|49

1万

帖子

24

TA的资源

版主

楼主
 

使用mpy-cross保护py文件 [复制链接]

 
 
大家知道,在python中,可以将py文件编译为pyc文件。编译后的pyc文件是二进制格式,一是可以加快加载速度,更重要的是可以保护原始代码。

在micropython中同样提供了这个功能,只是它将pyc改名为mpy,编译出的文件扩展名是.mpy。要使用这个功能,首先,我们需要产生mpy-cross工具。在micropython目录下,进入mpy-cross子目录,然后在命令行下输入make编译产生mpy-cross执行文件(需要先安装gcc编译器)。在windows会产生mpy-cross.exe,在linux下会产生mpy-cross。

然后用mpy-cross处理py文件,如:mpy-cross user.py,就会产生user.mpy,我们可以直接用user.mpy代替原有的user.py文件,使用起来和原来一样。前一段时间还有网友担心使用micropython时的安全问题,使用mpy-cross就没有问题了。


最新回复

那请赐教一下,如果写?能不能给个DEMO,因为我也是用新编译的mpy-cross的。   详情 回复 发表于 2024-8-5 10:48

赞赏

1

查看全部赞赏

点赞 关注(3)
 
 

回复
举报

846

帖子

0

TA的资源

纯净的硅(中级)

沙发
 
多谢版主的经验分享,这样的确是个不错的选择!在很大程度上保护源码,再加上硬件保护,回头试试
 
 
 

回复

2774

帖子

8

TA的资源

版主

板凳
 
不过还是存在问题!micropthon 源代码看不到了 mpy文件还是在的,相于源代码来说是更加好了,不过还是与MBED有些差距,MBED的bin文件写入MCU后是不能直接拷出来,而这个依然是直接可以拷走。

点评

mbed是可以读出来的,除非你自己另做保护。  详情 回复 发表于 2016-8-7 14:44
对于一个简单应用,这个可能容易复制。对于一个复杂系统,可能会和很多硬件绑定或者有复杂的通信机制,直接复制过去就很难保证不出问题。应该有很多办法来保护你的程序。  详情 回复 发表于 2016-6-21 16:45
 
 
 

回复

1万

帖子

24

TA的资源

版主

4
 
strong161 发表于 2016-6-21 16:07
不过还是存在问题!micropthon 源代码看不到了 mpy文件还是在的,相于源代码来说是更加好了,不过还是与MBE ...

对于一个简单应用,这个可能容易复制。对于一个复杂系统,可能会和很多硬件绑定或者有复杂的通信机制,直接复制过去就很难保证不出问题。应该有很多办法来保护你的程序。
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

5
 
您好,我想请问make编译生成mpy-cross执行文件是什么意思呢 我没有发现 micropython目录下存在mpy-cross目录呢是被我删除了吗?

点评

需要下载micropython的源码,然后自己编译产生执行文件。windows下编译时需要安装gcc编译器(PC版的,不是arm版的)。  详情 回复 发表于 2016-6-23 09:32
 
 
 

回复

1万

帖子

24

TA的资源

版主

6
 
balabalaxmx 发表于 2016-6-23 08:47
您好,我想请问make编译生成mpy-cross执行文件是什么意思呢 我没有发现 micropython目录下存在mpy-cross目 ...

需要下载micropython的源码,然后自己编译产生执行文件。windows下编译时需要安装gcc编译器(PC版的,不是arm版的)。
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

7
 
dcexpert 发表于 2016-6-23 09:32
需要下载micropython的源码,然后自己编译产生执行文件。windows下编译时需要安装gcc编译器(PC版的,不 ...

thx,我试一下
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

8
 
make之后,执行mpy-cross test.py 错误,找不到命令

点评

你没有将mpy-cross的目录加到路径吧,或者在mpy-cross前加上完整路径才行。  详情 回复 发表于 2016-6-28 12:33
 
 
 

回复

1万

帖子

24

TA的资源

版主

9
 
curry30 发表于 2016-6-28 12:30
make之后,执行mpy-cross test.py 错误,找不到命令

你没有将mpy-cross的目录加到路径吧,或者在mpy-cross前加上完整路径才行。
 
 
 

回复

113

帖子

0

TA的资源

一粒金砂(中级)

10
 
这个有意思 貌似是准备商用的准备了

点评

看起来是的。  详情 回复 发表于 2016-7-8 21:49
 
 
 

回复

1万

帖子

24

TA的资源

版主

11
 
47857872 发表于 2016-7-8 21:41
这个有意思 貌似是准备商用的准备了

看起来是的。
 
 
 

回复

111

帖子

0

TA的资源

一粒金砂(高级)

12
 
太棒了!
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

13
 
dcexpert 发表于 2016-6-28 12:33
你没有将mpy-cross的目录加到路径吧,或者在mpy-cross前加上完整路径才行。

我把main.py编译成main.mpy,如何执行?

点评

执行因该是一样的吧,重启啊  详情 回复 发表于 2016-8-3 12:19
 
 
 

回复

828

帖子

8

TA的资源

一粒金砂(高级)

14
 
很赞
个人签名人生有许多选项是灰色的、不可选的,但至少你可以选择生活的态度。。。韬光养晦,志存高远http://www.xzroad.com/
 
 
 

回复

828

帖子

8

TA的资源

一粒金砂(高级)

15
 
curry30 发表于 2016-8-3 11:51
我把main.py编译成main.mpy,如何执行?

执行因该是一样的吧,重启啊
个人签名人生有许多选项是灰色的、不可选的,但至少你可以选择生活的态度。。。韬光养晦,志存高远http://www.xzroad.com/
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

16
 
wugx 发表于 2016-8-3 12:19
执行因该是一样的吧,重启啊

不执行.mpy文件

点评

main.py是在内核中直接调用的,所以main.mpy不会自动运行,但是可以在main.py中import其他程序,这样同样可以起到保护作用。  详情 回复 发表于 2016-8-3 21:08
 
 
 

回复

1万

帖子

24

TA的资源

版主

17
 

main.py是在内核中直接调用的,所以main.mpy不会自动运行,但是可以在main.py中import其他程序,这样同样可以起到保护作用。
 
 
 

回复

1305

帖子

0

TA的资源

纯净的硅(高级)

18
 
保密性还是没有太大改观。稍好一点。
 
 
 

回复

98

帖子

0

TA的资源

一粒金砂(中级)

19
 
strong161 发表于 2016-6-21 16:07
不过还是存在问题!micropthon 源代码看不到了 mpy文件还是在的,相于源代码来说是更加好了,不过还是与MBE ...

mbed是可以读出来的,除非你自己另做保护。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(中级)

20
 
请问一下mpy == pyc吗?  另外pyc是可以逆出来的

点评

类似于pyc。旧版本的pyc的确可以逆向出来,新版本的就不太容易了。真正安全还依赖各种因素,如使用硬件ID,网络授权、使用外部安全芯片等。  详情 回复 发表于 2016-8-8 11:45
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表