新浪博客

MATLAB的代码还原

2020-06-08 17:09阅读:
MATLAB的代码还原
1、引子
Matlab是个伟大的工具,不过我自己却是不太咋懂也不求甚解,N年前一个偶然的机会在University of Texas at Austin碰到一个人,他大概知道我会点什么,给我一个小程序问我看看我能不能搞定,这是一个MATLAB编译的可执行程序,业余时间研究了好久都没有头绪,于是没事就在网上找相关资料,墙内墙外的翻,那时只找到一个人,他大概已经弄明白了怎么玩,但是他的网站已经关闭,不再提供免费服务,付费服务用比特币交易,你都可以想见即使是1比特币,也够你喝一壶的。他那篇语焉不详的介绍我读了好多遍都没什么收获。
大概2、3个月后的某一天,在马桶上我突然就想明白了,这不能不说是那位仁兄给了我极大的启发。
2、突破
于是我开始写代码,第一个程序被还原了,除了注释不见了外,代码还原能够精确到行数。以后但凡这种用MATLAB编译的可执行程序,都可以轻松还原。作为给我那个小程序的哥们的回报,我给了他整个University of Texas at Austin Petrophysical and Well-Log Simulator的源代码。但他给我的那个小程序我并没有给他,因为我觉得他有点过分(具体原因就不说了)。
再后来就有人问那既然这个都行,是不是MATLAB 的 P CODE 是不是也可以还原呢?
这一问,就是5-6年的光景。。。
又是一个马桶上的时刻,我想到一种绝妙的方法。
3、以己之矛攻击之盾
技术就是标题,我不愿说太多,倒不是说完全不愿意透露技术,只是因为我遇到太多的人,他们看似关注技术
,其实只关注结果,说白了只想拿来,哪怕是动一下脑子都不愿意,我不愿跟这种人有交集。
我就在MATHWORK的官网释放这条消息,当时有个哥们嘲讽说:“有的人还声称造出了永动机呢?”,打脸很容易,放出一个程序看我能不能给你还原就好了。
4、通杀
目前除了非常古老的版本我不能还原之外,几乎可以全部还原,包括加密的M CODE,加密的P CODE (P FILE),古老版本的不能还原的主要原因是因为我自己不想弄而已,当然,对于P CODE,因为我的词法分析器很粗糙,在罕见的情况下会失误,但是那种错误对于程序员来说简直太easy了,瞄一眼就能发现并修正,所以我也不想去不去改进它了。
下图是一个哥们发给我的程序,他想用这个试试我能不能行,我告诉他我能做,他不信,非要看代码(我其实是很有把握,想偷个懒),我就说你既然不信的话咱们就再见吧。
然后他就真的拉黑我了(^_^),我不明白为什么如今这人都脆弱至此!
我做了小动画(还原前后还原后的对比):
https://user.qzone.qq.com/529767489/blog/1591603089


MATLAB的代码还原


我的更多文章

下载客户端阅读体验更佳

APP专享