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文件加密与逆向工程探讨相关推荐

  1. matlab P 文件加密与逆向工程探讨

    最近看论文,很多开源程序被加密成p文件.由于论文写得往往跟程序里实际做的还是有一定差别,很想借鉴一下前人宝贵的经验.之前,网上有大神曾经公布过逆向p文件到m文件,据说p文件采用AES-128加密格式, ...

  2. BP神经网络算法在MATLAB中的代码

    BP神经网络算法在MATLAB中的代码通常包括以下步骤: 导入所需的库,如nnstart.patternnet和train. 准备训练数据和测试数据.这通常包括读取数据文件.将数据转换为矩阵的形式并分 ...

  3. Matlab 中保存运行的m文件

    Matlab中保存运行的m文件 在调试参数的时候为了保证能够在之后完整复刻当前算例,最好保存当前运行的m文件到算例的图片和数据输出目录. 主要有两种方法:1 读写当前文件到指定文档:2 复制当前m文件 ...

  4. matlab nargin不对称,在matlab中错误使用 nargin 错误: 文件:dfun.m 行:30 列:4 未结束的...

    在matlab中错误使用 nargin 错误: 文件:dfun.m 行:30 列:4 未结束的 |浏览2420次 2017/12/05 15:54 在matlab中错误使用 nargin 错误: 文件 ...

  5. matlab中创建一个工程,从文件夹创建新工程

    从文件夹创建新工程 如果您有许多文件并希望将它们整理为一个工程(无论是否进行源代码管理),请按照以下步骤创建一个新工程. 使用 Simulink® Start Page 中的 Folder to Pr ...

  6. matlab命令批量重命名,MATLAB中预定义对话框之文件打开对话框以及如何批量重命名...

    函数:uigetfile. 这个函数的名字分成三部分,也容易理解,ui:用户界面,get:获得,file:文件.加在一块就是给你一个界面去选择(获得)一个文件. 用法:首先说一下这个函数获得的仅仅是文 ...

  7. matlab怎么导出矩阵,如何将matlab中矩阵导出到txt文件中

    Excel Link是一个在Windows环境下实现Excel与Matlab进行链接的插件.通过连接Excel和Matlab,用户可以在Excel工作表空间和宏编程工具中使用Matlab的数值计算,图 ...

  8. matlab中利用save保存.mat文件

    1.单个.mat文件保存 save(filename) %将当前工作区中的所有变量保存在 MATLAB格式的二进制文件(MAT 文件)filename 中. save(filename,variabl ...

  9. matlab 打包封装,matlab中如何封装打包EXE文件

    如何将gui生成exe 方法一: 已有gui.m文件和gui.fig文件 1 在matlab的command窗口中输入 mcc -B sgl GUI.m 2.将上步生成的文件包括*m 文件和*.fig ...

最新文章

  1. ionic4中使用Swiper触屏滑动---心酸路
  2. 打开360浏览器显示无法连接服务器错误,Win10电脑上360浏览器提示网络连接错误,错误代码 102的解决方案...
  3. Exchange 2010之接受域
  4. MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a raster layer...
  5. Android 的源代码结构
  6. db platform mysql_数据库移植: 从Oracle移植到MySQL 注意databasePlatform | 学步园
  7. 最佳实践:使用负载均衡SLB IPv6搞定苹果AppStore审核
  8. webkit事件处理
  9. 【JAVA 第四章 流程控制语句】课后习题 判断两个圆是否相交 圆和直线的位置关系
  10. linux domino启动和停止命令,在unix平台中通过脚本来启动和停止domino和domino控制器所用的参数_lotus notes...
  11. IDEA 隐藏编辑器顶部 Tab 栏
  12. python数据结构-数组/列表/栈/队列及实现
  13. POJ3076 Sudoku
  14. C语言基础专题 - 头文件引用
  15. 如何用 Python 翻译语言?
  16. Python中NaN的处理
  17. 开封文化艺术职业学院计算机甲骨文,甲骨文软件学院致19级全体同学的一封信 暨2021年寒假作业安排...
  18. 阿里云大数据开发一面面经,已过,面试题已配答案
  19. 如何规范地编写一个MATLAB函数文件
  20. Hive坑之Where语句的“不等于”

热门文章

  1. 『腾讯会议』远程教学使用指南
  2. Linux - 第11节 - 网络入门
  3. 一键式免费借还的智能充电宝租赁
  4. WSTMart多商户商城跟随thinkphp框架升级到5.0.3
  5. vue2+Ts+elementUI_后台管理系统_Excel文件的上传下载
  6. python自动控制程序_使用 Python 自动执行 ANSYS APDL
  7. AI-实战-ICON图标
  8. 车载网络: ECU (电子控制单元)
  9. java实现PDF转Word(无水印无页数限制)完全开放
  10. stream流按照个数分割list