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

第三讲 教学演示黑威联通启动工具母盘的使用方法

为了便于大家学习掌握嵌入式linux逆向工程,实践出真知,只读一读我上一讲的内容,而不自己动手实践的话,是不能掌握嵌入式linux逆向工程技术的。为此我以破解威联通固件为例,为大家制作了一个教学演示启动工具母盘。方便大家做实验。这个启动工具母盘是一个集黑威联通启动盘创建,黑威联通系统启动引导,威联通固件破解,三位一体的工具母盘。母盘中并不包含任何威联通固件。创建启动盘时,该母盘会从威联通官网下载指定的发布的固件。通过破解,打补丁来生成符合当前机种硬件的黑威联通系统启动引导。该盘的设计理念,系统结构,所包含的程序代码均为老骥伏枥本人独家原创已及合法使用开源的TinyCore系统。全部是拥有自主知识产权的本人作品。基本上实现了一键安装。请坛友们遵守 GNU General Public License, 未经授权禁止用于商业用途。 该演示用工具母盘仅仅为的是进行教学, 研究和技术交流。 禁止用于任何商业目的。

该盘的提取地址是: https://pan.baidu.com/s/1bqlAwOn

潇湘居士,如果您要查看本帖隐藏内容请回复

压缩包中包含了两个文件:QNAP-BOOT.qcow2 和QNAP-BOOT.vmdk
它们的md5校验码如下:
d0fdffcc4d3c4c07ca00cf33262b153d  QNAP-BOOT.qcow2
cdaa3760de25480c0d12289402815e73  QNAP-BOOT.vmdk

qcow2格式的文件是KVM虚机用的启动盘。vmdk格式的文件是其它虚机用的启动盘。这次没有提供img格式文件,因为不需要这种格式文件。使用任何一个虚机启动盘,都可以方便容易地制作USB实体机用的启动盘。后面会详细教大家如果做。

下面以KVM虚机为例,详细讲解如何创建黑威联通启动盘。实体机,其它类型的虚机使用方法是完全相同的。首先要用QNAP-BOOT.qcow2盘建立一个KVM虚机。这个盘最好接在IDE总线控制器上。再创建一个数据盘,至少要30G以上,因为威联通系统的部分应用也要装在每块数据盘上,至少会占用16G的空间。这个盘最好要接在SATA总线控制器上,当然也可以接在SCSI或IDE总线控制器上,但与启动盘接在不同的控制器上比较好。以免在安装系统时产生混淆。内存要设定为2G以上。截图如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

启动KVM虚机。启动KVM虚机。你将看到如下截屏:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

启动TinyCore工具母盘。为了防止误操作,这时会要求你输入用户名,默认用户:admin,和默认密码:admin。进入TinyCore系统。
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

点击终端图标,打开一个终端。终端的当前目录是/home/tc。我的程序是以这个目录为基准设计的。千万不要切换目录,以免程序运行出错。

如果你想为实体机制作UBS启动盘,不需要安装虚机的黑威联通。现在就可以插入USB盘。将它连接到虚机。这时你需要用fdisk -l 命令,查一下QNAP-BOOT.qcow2盘和USB盘的盘符。千万不要搞反了,反了会把QNAP-BOOT.qcow2盘给破坏的。然后使用命令:(括号中是我的提示,不要输入到命令中)

  1. dd if=/dev/sd? (QNAP-BOOT.qcow2盘) of=dev/sd? (USB盘) bs=1M count=481

复制代码

注意:这里只需要设备名,不需要设备名的分区号。

USB盘只要512M就够了。没有用1G的代替也可以。不过也不要过大。USB盘启动盘其他多余的地方也不能用是个浪费。USB盘需要品质比较好一点的。品质差的USB盘,会出现不可预见的启动错误。

继续讲如何创建黑威联通启动盘。首先需要确定的是数据盘的总线控制器是什么。我的例子中是SATA。因为威联通默认是SATA。我的硬件检测程序的默认值,就也是SATA。如果你的数据盘是接在SCSI, IDE,或其他总线控制器上,你就要编辑修改我的hardware_check脚本程序中第六行的CONTROLLER="SATA"定义。这一点非常重要,弄错了会出现无法检测到硬盘的问题。

接着需要确定机器网卡能正常工作并可以上网。可以使用命令:ping  download.qnap.com

看看能不能连到威联通官网的下载地址。因为创建黑威联通启动盘时需要从官网下载固件。

如果不能连接官网,你也可以把固件预先下载到自己的服务器中。然后编辑修改我的create_qnap_boot脚本程序中第11行的

  1. DOWNLOAD_URL=https://download.qnap.com/Storage/TS-X82S/

复制代码

指向自己的服务器地址。注意最后的反斜杠一定要有。

教学演示盘默认的威联通固件是“TS-X82S_20171117-4.3.3.0378”。
默认的model 类型是“QY410_QY450_10_10”。

威联通的每一个固件,可能会有很多个不同的model 类型。我的教学演示盘可以破解所有的类型。只要你选一个自己喜欢的就好。这个定义在我的create_qnap_boot脚本程序中第8-9行中。你也可以任意选定。好了,如果一切就绪。就可以执行命令:

  1. sudo  ./create_qnap_boot  (一定不要忘记执行 sudo)

复制代码

如果一切正常,执行完成后的截屏如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

黑威联通的启动盘就做成了。这时你就可以重启机器,开始安装黑威联通系统了。这里我还要教你一点小技巧。你可以执行命令:ifconfig 查看一下这个机器的IP地址。这样重启机器后就可以直接用浏览器输入该IP地址安装系统了。不需要安装威联通Qfinder软件来捡索机器。截屏如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

作为教学演示盘,我还要再介绍一些功能。黑威联通的启动盘就做成后,我会在当前目录中创建一个initrd的子目录。这里包含所有威联通Linux初始RAM磁盘的文件。你可以看看我是如何给文件打补丁的。你也可以添加自己的外挂模块(例如:网卡,hyperV虚机的外挂模块,等等)。总之,可以做任何需要的黑威联通启动盘改造。打造你自己喜欢的黑Q。

这个initrd的子目录是个“沙箱式”的目录,你可以放心地随便查看,修改都没关系。不要执行./re_packing命令,一旦重启机器,这个沙箱就消失了。

如果你需要保留修改,也很简单。只要执行./re_packing命令。你自己版本的黑Q启动盘就做成了。

还有要注意的就是。威联通系统具有硬件关联性。当然黑Q也不例外。如果你拿这个硬件机器生成的黑Q启动盘到另外的硬件上去用。可能就会出现无法检测到硬盘的问题。我的工具母盘在制作时,注意到了这个问题。更换硬件机器后,只要启动进入TinyCore系统。点击终端图标,打开一个终端。重新执行一次命令:

  1. sudo  ./create_qnap_boot  (一定不要忘记执行 sudo)

复制代码

就能让这个黑Q启动盘适应新硬件了。这时不会再去威联通官网下载固件。只会做硬件的pci控制器检测调整,以适应新硬件。截屏如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

好了,现在就重启机器,安装黑威联通系统。重启机器后就会出现如下截屏:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

发一张我在KVM虚机上安装成功的全景截屏给你看看。同时祝你好运,也能一次安装成功。
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

由于NASYUN的篇幅限制,请看楼下,第四讲 【关于威联通, 群晖的逆向工程技术的讨论】,精彩继续!

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

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

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

  2. 【嵌入式开发】手把手教你4418/6818开发板屏幕修改 本文转自迅为: http://www.topeetboard.com 开发平台:iTOP-4418/6818开发板 44186818屏幕

    [嵌入式开发]手把手教你4418/6818开发板屏幕修改 本文转自迅为: http://www.topeetboard.com 开发平台:iTOP-4418/6818开发板 4418&6818 ...

  3. pve安装黑群晖直通硬盘_蜗牛星际装机教程篇三:手把手教你安装黑群晖NAS

    原文作者:范俩仟 蜗牛星际装机教程篇三:手把手教你安装黑群晖NAS 有很多评论说软路由没必要,我想说我就是把这东西当个玩意儿来消遣的,您喜欢看电影,我就喜欢玩电子产品.还有就是我没钱,所以想花最少的钱 ...

  4. clion浏览linux代码,手把手教你使用 Clion 开发 Linux C++ 项目

    手把手教你使用 Clion 开发 Linux C++ 项目 关于CLion CLion是一款专为开发C及C++所设计的跨平台IDE.它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员 ...

  5. 【Linux】手把手教你在 Linux 环境下部署 Oracle 数据库!

    来源:公众号[杰哥的IT之旅] 作者:三笠 相信大家第一次接触 Oracle 数据库时,大多数是在 windows 环境下安装,方便快捷,基本上可以说是一直下一步就能顺利安装成功.然而企业级的数据库, ...

  6. 写字机上位机c语言,易懂 | 手把手教你编写你的第一个上位机

    一.前言 大家好,我是ZhengN,本次来教大家编写一个基于QT的简单的上位机. 学习一个新的东西我们都从最基础地实例开始,比如学习C语言我们会从编写一个hello程序开始.学习嵌入式我们从点灯开始. ...

  7. 如何优化linux服务器,手把手教你如何优化linux服务器

    关闭不需要的服务.列出需要启动的的服务crond.network.sshd.irqbalance.syslog 启用 irqbalance 服务既可以提升性能,又可以降低能耗. syslog 是 li ...

  8. 【Linux】手把手教你搭建自己个人博客(boss版)

    文章目录 前言 环境 搭建LAMP架构 一 . 编译apache 1. 安装依赖包 a. 安装环境依赖 b. 编译安装依赖包apr c. 安装apr-util依赖包 d. 安装pcre依赖包 2. 开 ...

  9. nmon命令linux安装,手把手教你安装nmon

    一.nmon简介 nmon是由IBM 提供.免费监控 AIX 系统与 Linux 系统资源的工具.该工具可帮助在一个屏幕上显示服务器系统资源耗用情况,并动态地对其进行更新.此外,他还可以利用 exce ...

  10. u盘里装linux系统软件,手把手教你在U盘里面安装一个LINUX系统

    烈火建站学院(LieHuo.Net)服务器文档一提到LINUX,一些人会觉得没有WINDOWS那么实用,那么方便,那么简单,甚至觉得LINUX几乎没什么软件.用它干什么.最主要的一点,某些想尝试一下图 ...

最新文章

  1. 讨喜的隔离可变性(五)同时使用多个角色
  2. 关于CSS中的相对路径和绝对路径
  3. P3302 SDOI2013森林
  4. 小技巧 ----- Java中指定保留几位小数
  5. 物联网毕业设计 超声波雷达可视化系统
  6. 【GIT】git 提交代码正确步骤
  7. 常用的英文单词2000
  8. USB总线-Linux内核USB3.0设备控制器驱动框架分析(四)
  9. VS2022开发Arduino(提供Visual.Micro.Processing.Sketch.dll)
  10. odac oracle效率差,垃圾,奇慢 ORACLE ODAC
  11. 算法三:判断该年该月有几天
  12. jQuery插件,UI
  13. 寒武纪重磅发布首款AI云芯片,陈天石要让端云结合占领10亿智能终端!
  14. 2022年必看的18个HR面面试题是这些【值得收藏】
  15. android 全键盘手机排行榜,小巧又精悍 3大系统直板全键盘手机搜罗
  16. MacPro下VirtualBox安装Windows7虚拟机太卡的解决方法
  17. NBA历史上最长的连胜和连败纪录!
  18. java游戏服务端_JAVA游戏服务端的速度比得上c++吗?
  19. 如何判断三角形的朝向
  20. 计算机在未来应用,浅谈未来计算机计算技术的应用与发展

热门文章

  1. usb转rj45 android,USB转RJ45驱动合集
  2. 中国象棋人机对弈搜索算法学习-极大极小值,负极大值,alpha-beta算法
  3. 三菱伺服驱动器示例_三菱伺服电机+编码器(伺服控制器)的接线示例
  4. 数学:概率论与数理统计
  5. 简易抽奖软件逻辑实现
  6. 网络协议详解1 - NBNS
  7. EXCEL数据处理小结(SQL)
  8. 【OR】YALMIP大M法和凸包
  9. js中的new Option默认选中
  10. 利用腾讯云独立IP使用windows用CCProxy搭建Socks5多IP代理服务器图文教程实现单窗口单IP