如何将MATLAB创建的DLL文件反编译成mat文件

Posted

技术标签:

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

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

【问题讨论】:

你的意思是.m文件吗?即使您确切知道该怎么做,这也将是一项非常艰巨的工作...... @aschepler:是的。我需要 .m 文件。你能帮我吗 对不起,我没有空闲时间来破译未知数量的汇编代码,了解它在做什么,然后编写一些可以做类似事情的 Matlab 代码。 【参考方案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 明确指定所需的维度会节省很多。

以上是关于如何将MATLAB创建的DLL文件反编译成mat文件的主要内容,如果未能解决你的问题,请参考以下文章

如何利用ILSPY反编译工具重建C#NETWeb源码解决方案

dll文件如何反汇编成源码,C++语言编写

问一下高手 c++dll文件如何反编译 看源代码啊????

Matlab中wav文件怎么转换成mat文件

如何将excel数据文件转换成MATLAB中的.mat文件?

matlab中,如何将.txt格式文件转换成.mat格式文件