【老骥伏枥-狗年大礼包】嵌入式linux逆向工程,手把手教你作黑Q-第四讲

2019-07-12 18:24发布

原文网址:http://www.nasyun.com/forum.php?mod=viewthread&tid=39736&fromuid=106494
(出处: NAS云论坛)  

第四讲  关于威联通, 群晖的逆向工程技术的讨论


群晖,和威联通是目前比较流行的两个NSA产品。江湖上黑群晖几年前就以xpenology论坛为前沿阵地推出了各种版本的破解产品。而黑威联通的破解产品却鲜有见闻。有人议论说,这是群晖官方故意放水的一种市场行为。这对威联通不公平。笔者退休前,是从事技术教学,和科研的。对于市场营销是外行。以我破解这两个产品固件的经验来看,群晖官方故意放水的可能性不大。但从技术角度而言,群晖和威联通都是使用嵌入式linux的产品,两者都须遵守GPL协议。两者都发布了工具链,和linux但内核代码。所以说破解起来难易程度不应该有太大的差异。

那为什么江湖上鲜有黑威联通的破解产品呢?以笔者的拙见,首先是缺少一个论坛为前沿阵地。难以聚拢愿意无私奉献的志愿者。破解固件一般需要大量有经验,技术好的志愿者。就算一个人浑身都是铁又能打多少钉呢?这也正是我这次的嵌入式linux逆向工程技术教学环节,选择破解威联通固件为实践的范例的原因。一是驳斥一下“放水说”,还群晖一个公平,可别也送我一顶“为威联通放水”的帽子。“皇上,臣妾冤.枉..啊!”。二是希望建设一下NSAYUN论坛。努力把NSAYUN论坛打造成江湖上黑威联通的全球一流前沿阵地。

论坛中的朋友不知有没有人玩儿过“黑苹果”?苹果系统是全封闭的类似unix的系统。无须遵守GPL协议。技术细节的资料也多保密不发布。笔者十几年前就玩儿黑苹果,那才叫真正的技术活。不过好汉不提当年勇,现如今上机时眼花,手抖,思路也不如当年敏捷了。虽然经验积累了,但精力却失去了。不过热心奉献社区等热情并没有熄灭。发挥点余热,为大家做点像黑群晖,黑威联通这样的小case还是手到擒来的。

下面想比较黑群晖与黑威联通的几个技术细节。也都是笔者在破解过程中的拙见和体会,不对的地方请坛友们批评指正。群晖官网发布的固件是pat文件,其实就是一个pat/zip文件。完全没有加密。威联通官网发布的固件是zip文件,解压后会得到一个img文件。这个文件img是加密的。需要解密才能得到固件。从破解角度看,威联通先来了一个下马威。不过这并不代表威联通更难破解。只会吓退一些庸人而已。

群晖与威联通的固件都与自己特定的硬件绑定。群晖是通过一个叫做synobios.ko的外挂模块集中处理硬件绑定问题的。一旦破解了它,很容易解除硬件绑定关系。而威联通则是采用分布式程序根据需要处理硬件绑定关系。这会给破解添加一点难度,但任何事情都有两面性。这也导致威联通发布更新固件时的一些小麻烦。每个发布的固件中都要加上很多的model 类型。从技术角度而言,集中处理硬件绑定是高效方法。分布处理硬件绑定效率低不说,还会引起不必要的bug。以此换取添加一点破解难度,其实得不偿失。根本抵挡不住技术高手。

威联通的浏览器管理界面与群晖的浏览器管理界面相比差距是明显的。但对用户体检有极大的影响极大。这与破解也有间接关系。行走江湖的高手们,往往会根据用户群体的反应,寻找猎物。用户体检直接会影响他们的意愿。于是群晖首先被黑掉了,而不是被放水。

对第三方应用包的开发支持,也与被破解有关系。我没有为威联通写过的第三方应用包。在此对这个问题,暂时不予点评。但我给群晖写过一个第三方应用包。题目是: 
“揭开暗网的神秘面纱,用群晖NAS搭建自己的暗网网站”。


以上是笔者从破解固件的角度,比较了一下黑群晖与黑威联通。

请继续看楼下,【结束语】, 全文的总结。    

结束语


本文从理论到实践,全面系统地讲解了如何利用嵌入式linux逆向工程技术,破解威联通固件,制作了一个教学演示用的创建黑威联通启动工具盘。本文是从学术研究的角度,以破解威联通固件为实践的范例,探索,研究嵌入式linux逆向工程的概念,原理及实现的技术细节。特别要感谢我太太帮助仔细审核了文章并纠正了一些错误。也非常感谢NASYUN论坛提供空间来发表。

我的教学演示盘不是的黑客破解产品。从开始做这个项目,前后大约用了四,五星期的时间。由于时间仓促,难免有设计不周的地方,程序也难免有bug。欢迎广大坛友们给予批评指正。

对于想自己利用这个教学演示工具母盘来开发制作各种升级版黑威联通启动盘的坛友们,请看我的另一篇文章“制作黑威联通启动盘:进阶篇

尽管在这篇文章中我以破解威联通为实践范例做教学。我本人決会不使用黑威联通。作为一个退休老人,我也没有这个需要。我有一个西数的MyBookLive已经用了很多年。我已对系统配置做了必要的改造,非常适合我的需求。我不会轻易更换现有的系统。

文章的最后,老骥伏枥要再次郑重声明:撰写本文与制作教学演示工具盘的目的是为了探索,研究,学习嵌入式linux逆向工程技术。禁止利用本文提供的技术和使用本教学演示工具盘从事任何非法商业牟利性活动。


参考文献:
[1] Tiny Core Linux -维基百科,自由的百科全书 
[2] 逆向工程入门指南
[3] Quick Start Guide
[4] binwalk工具运行支持的平台 
[5] Interactive Disassembler (IDA)
[6] “今天开始学逆向:反汇编的利器IDA和Hopper的基本使用”  
[7] Snowman C/C ++反编译器
[8] [url=http://www.system-rescue-cd.org/]SystemRescueCD[/url]
[9] Linux初始RAM磁盘(initrd)概述
[10] QNAPの基本構造について
[11] 【老骥伏枥-鸡年大礼包】黑群晖6.02-8451版硬盘自启动,USB启动盘,系统救援盘
[12] How to bring up HAL firmware after booting with HDDs unplugged
[13] 【老狼】深入PCI与PCIe之一:硬件篇
[14] 【老狼】深入PCI与PCIe之二:软件篇


作者简介:老骥伏枥是一个退休老人,在家抱孙子是主要任务。闲暇之余凭着35年的计算机软硬件开发经验和自己拥有的技术专利,为NASYUN论坛写些劲爆话题的文章来消磨时间。本人写过商业软件,也写过开源软件。有丰富的系统集成,软件开发(从汇编语言到各类高级语言)经验。在嵌入式linux逆向工程研究领域也有一定的造诣。是一个尊重知识产权,热心奉献社区论坛志愿者。此文绝对是都是本人【原创】。如果你对本文的观点有不同意见,可以回帖喷我,本人从不固步自封,固持己见。