【问题标题】:How to decompile a DLL file created by MATLAB into a mat file如何将MATLAB创建的DLL文件反编译成mat文件
【发布时间】:2014-04-25 21:13:15
【问题描述】:

我知道我们无法从 DLL(由 MATLAB 制作)反编译为 .mat 文件。但是现在,我有一个由 MATLAB 创建的 DLL(上传 here)。请尝试将其转换为 mat 文件。非常感谢。

【问题讨论】:

  • 你的意思是.m文件吗?即使您确切知道该怎么做,这也将是一项非常艰巨的工作......
  • @aschepler:是的。我需要 .m 文件。你能帮我吗
  • 对不起,我没有空闲时间来破译未知数量的汇编代码,了解它在做什么,然后编写一些可以做类似事情的 Matlab 代码。

标签: matlab matlab-compiler


【解决方案1】:

简答:不可能。1

长答案: .m 源文件在生成 dll 时由编译器加密。所有 M 文件源代码都存储在 Component Technology File (CTF) 中,使用 AES 加密规范对其进行加密(和解密),其中 symmetric keys 受 1024 位 RSA 密钥保护。 MATLAB Compiler Runtime (MCR) 使用唯一的加密密钥来解密 CTF 的扩展内容,以便它可以执行代码。

来自a MathWorks developer的一些细节:

  • 我们使用 AES 加密标准来保护 CTF 存档中的 M 文件。
  • 当从 CTF 存档解压到磁盘上时,M 文件保留 加密。
  • 密钥也是加密的。
  • extractCTF 实用程序不会解密 M 文件,而只是提取 它们来自 CTF 档案。

1希望如此。

【讨论】:

  • 我们没有任何工具可以做到这一点,对吧?谢谢
  • @user3336190 抱歉。目的是您不应该能够做到这一点,除非您编写了代码。如果存在工具,MATLAB 会迅速修补他们的部署方案,并且该工具会很快变得无用。
  • @chappjc 这是很酷的信息,谢谢。另外,为什么我永远不应该使用 length() (ever)?
  • @MattG 只是因为它选择了最长的维度,这很容易出错。使用size 明确指定所需的维度会节省很多。
猜你喜欢
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-17
  • 2012-02-19
  • 1970-01-01
相关资源
最近更新 更多