matlab中P代码即P文件加密与逆向工程探讨
P代码机制介绍
p意思是预解析(preparsed version)。即将.m文件里的代码预解析一遍,生成p文件。当再次调用时,实际上调用的就是.p文件。当MATLAB将某文件转换为p代码文件时,该文件将进行模糊处理而非加密。虽然.p文件中的内容难以理解,但不应将其视为安全的。
m代码到p代码的转换是通过调用pcode函数实现。
pcode(fun)
对 fun.m 中的代码进行模糊处理并生成名为 fun.p 的文件,即所谓的p文件。如果fun是一个文件夹,则该文件夹中的所有脚本或函数文件都在p文件中进行模糊处理。MATLAB 在当前文件夹中创建p文件。原始的 .m 文件或文件夹可以位于搜索路径上的任何位置。
pcode(fun1,...,funN)
从列出的文件创建p文件。如果输入了任意个文件夹,则 MATLAB 为各文件夹所包含的每个 .m 文件创建一个p文件。
pcode(fun,'-inplace')
在脚本或函数文件所在的同一个文件夹中创建p文件。
MATLAB代码加密的原因
大多数的MATLAB用户都在进行复杂算法的设计,或者非常个性化的GUI软件开发,这一过程通常非常费时费力,甚至需要严格保密。如果我们想让其他人用上自己开发的代码(所实现的功能),又不想让对方知道源代码,就需要对代码进行加密。
MATLAB的加密方式探讨与应对策略
p code文件使用AES加密进行代码的加密,因此使用的密钥只有Mathworks知道,当然也只有Mathworks可以将其转换回。值得深思的是,由于matlab本身可以读取这些文件,因此现有的MATLAB软件中应该包含了解密算法和密钥,我们可以从中可以进行反向工程。
其实加密技术和破解技术就是矛与盾的关系,在实际当中弄是相互依存的,本人对此也研究过一段时间,也有一些技术上的突破,基本上能够实现还原m代码。
注意:一般逆向之后的文件,所有的注释都没了,部分语句可能发生格式改变。
有需要解码技术交流的,欢迎联系我,peace.yi@qq.com
matlab中P代码即P文件加密与逆向工程探讨相关推荐
- matlab P 文件加密与逆向工程探讨
最近看论文,很多开源程序被加密成p文件.由于论文写得往往跟程序里实际做的还是有一定差别,很想借鉴一下前人宝贵的经验.之前,网上有大神曾经公布过逆向p文件到m文件,据说p文件采用AES-128加密格式, ...
- BP神经网络算法在MATLAB中的代码
BP神经网络算法在MATLAB中的代码通常包括以下步骤: 导入所需的库,如nnstart.patternnet和train. 准备训练数据和测试数据.这通常包括读取数据文件.将数据转换为矩阵的形式并分 ...
- Matlab 中保存运行的m文件
Matlab中保存运行的m文件 在调试参数的时候为了保证能够在之后完整复刻当前算例,最好保存当前运行的m文件到算例的图片和数据输出目录. 主要有两种方法:1 读写当前文件到指定文档:2 复制当前m文件 ...
- matlab nargin不对称,在matlab中错误使用 nargin
错误: 文件:dfun.m 行:30 列:4
未结束的...
在matlab中错误使用 nargin 错误: 文件:dfun.m 行:30 列:4 未结束的 |浏览2420次 2017/12/05 15:54 在matlab中错误使用 nargin 错误: 文件 ...
- matlab中创建一个工程,从文件夹创建新工程
从文件夹创建新工程 如果您有许多文件并希望将它们整理为一个工程(无论是否进行源代码管理),请按照以下步骤创建一个新工程. 使用 Simulink® Start Page 中的 Folder to Pr ...
- matlab命令批量重命名,MATLAB中预定义对话框之文件打开对话框以及如何批量重命名...
函数:uigetfile. 这个函数的名字分成三部分,也容易理解,ui:用户界面,get:获得,file:文件.加在一块就是给你一个界面去选择(获得)一个文件. 用法:首先说一下这个函数获得的仅仅是文 ...
- matlab怎么导出矩阵,如何将matlab中矩阵导出到txt文件中
Excel Link是一个在Windows环境下实现Excel与Matlab进行链接的插件.通过连接Excel和Matlab,用户可以在Excel工作表空间和宏编程工具中使用Matlab的数值计算,图 ...
- matlab中利用save保存.mat文件
1.单个.mat文件保存 save(filename) %将当前工作区中的所有变量保存在 MATLAB格式的二进制文件(MAT 文件)filename 中. save(filename,variabl ...
- matlab 打包封装,matlab中如何封装打包EXE文件
如何将gui生成exe 方法一: 已有gui.m文件和gui.fig文件 1 在matlab的command窗口中输入 mcc -B sgl GUI.m 2.将上步生成的文件包括*m 文件和*.fig ...
最新文章
- ionic4中使用Swiper触屏滑动---心酸路
- 打开360浏览器显示无法连接服务器错误,Win10电脑上360浏览器提示网络连接错误,错误代码 102的解决方案...
- Exchange 2010之接受域
- MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a raster layer...
- Android 的源代码结构
- db platform mysql_数据库移植: 从Oracle移植到MySQL 注意databasePlatform | 学步园
- 最佳实践:使用负载均衡SLB IPv6搞定苹果AppStore审核
- webkit事件处理
- 【JAVA 第四章 流程控制语句】课后习题 判断两个圆是否相交 圆和直线的位置关系
- linux domino启动和停止命令,在unix平台中通过脚本来启动和停止domino和domino控制器所用的参数_lotus notes...
- IDEA 隐藏编辑器顶部 Tab 栏
- python数据结构-数组/列表/栈/队列及实现
- POJ3076 Sudoku
- C语言基础专题 - 头文件引用
- 如何用 Python 翻译语言?
- Python中NaN的处理
- 开封文化艺术职业学院计算机甲骨文,甲骨文软件学院致19级全体同学的一封信 暨2021年寒假作业安排...
- 阿里云大数据开发一面面经,已过,面试题已配答案
- 如何规范地编写一个MATLAB函数文件
- Hive坑之Where语句的“不等于”
热门文章
- 『腾讯会议』远程教学使用指南
- Linux - 第11节 - 网络入门
- 一键式免费借还的智能充电宝租赁
- WSTMart多商户商城跟随thinkphp框架升级到5.0.3
- vue2+Ts+elementUI_后台管理系统_Excel文件的上传下载
- python自动控制程序_使用 Python 自动执行 ANSYS APDL
- AI-实战-ICON图标
- 车载网络: ECU (电子控制单元)
- java实现PDF转Word(无水印无页数限制)完全开放
- stream流按照个数分割list