FirmwareModKit翻译

来源:互联网 发布:农村淘宝佣金 编辑:程序博客网 时间:2024/05/16 03:54
翻译这个随便记一下,英语水平差,所以等以后看的时候又的翻译,麻烦。
这年头能蹭的路由器越来越少(主要是对防pin的加强),也慢慢对攻击无线路由的pin感兴趣,暂时对reaver不是太感兴趣,等这个弄不下去了,在研究研究代码。

对于路由器里面的pin模块到底是怎么一会正在摸索中,分析路由器的固件或许是最快的一种方式,fmk对于固件的分析绝对是一利器。

https://code.google.com/p/firmware-mod-kit/wiki/Documentation
  Firmware Mod Kit(fmk)  能够容易的解构和重建各种可嵌入式设备的固件镜像。它虽然最初的目标是基于linux路由器,然也也可以兼容运用统一固件格式和TRX/uImage ,SquiashFS/CRamFS文件系统的大部分固件。
   准备工作
 为了使用Firmware Mod Kit ,必须有一个版本控制客户端(git或svn),linux开发工具(gcc,make,等等),python-magin 模块,zlib和lzma开发包。在发行版的linux(ubuntu,Debian)可以是使用apt-get,利用参数:
ubuntu:

  

   $sudo apt-get install git build-essential zliblg-dev liblzma-dev python-magic

RedHat:
 
  yum groupinstall "Development Tools"  yum install git zliblg-dev xz-devel python-magic

  Firmware Mod Kit 仅仅支持linux平台。(貌似真不能用在windows,应该能修改,等熟悉了再研究研究移植到windows上)


用法:
   fmk是一个实用工具和脚本的程序集。这个程序包可以直接使用,也可以利用shell脚本自动和结合常见的固件操作(例如,提取和重建).操作固件的核心脚本:
主要脚本:
extract-firmware.sh Firmware extraction script//固件提取
build-firmware.sh Firmware re-building script//固件重建
第二阵营脚本:
 

ddwrt-gui-extract.sh Extracts Web GUI files from extracted DD-WRT firmware.   
ddwrt-gui-rebuild.sh Restores modified Web GUI files to extracted DD-WRT firmware.


工作目录:
  fmk运行硬编码工作路径:“fmk”。提取和重建都是在这个目录。只有一些操作支持交替的工作目录。在将来的版本中会扩大开。现在,如果你有多个工作目录,我们建议你修改不是当前工作的那个文件夹名。
  提取固件:
  自动化提取固件适用于大多数固件镜像包括利用uImage/TRX固件头的利用SquashFS、CRamFS文件系统的固件。目前,extract-firmware.sh 是提取的首要方法,因为它支持的固件类型比old-extract.sh 多,不过,old-extract.sh仍能包括固件格式和操作。
  
$ ./extract-firmware.sh  firmware.bin

默认是extrackt-firmware.sh提取的文件放在'fmk'目录内。old-extract.sh可以把提取的数据放在指定的文件夹内。
 Re-Building 固件
  使用那个构建脚本得依赖于那个提取脚本。你使用extract-firmware.sh提取固件镜像,你应该必须使用build-firmware.sh 去重建它。同样,利用old-extract.sh提取,得用 old-build.sh去构建。
   $ ./build-firmware.sh [-nopad] [-min] 

 

通过build-firmware.sh 生成的固件文件位于"fmk/new-firmware.bin",old-build.sh 产生新的固件镜像在指定的目录以多种格式存储。

 -nopad 告诉bulid-firmware.sh 不需要填充新固件到原来固件的大小。
 -min 利用最大的squashfs内存块 1mb。在目标设备上,利用这个减少固件镜像大小为代价去增加cup和ram 资源利用率。除非你有必要的需求可以不用这个选项。因为一般生成的固件对于可嵌入系统是非常大的。原始固件的squashfs块大小得记住,在重建的时候,这个值能用到。很大的块空间也许能把工作表现的很好,但固件运行的性能将会得到一些损失。


   改进 DD-WRT 网页
  
  mfk工具包中有一个独特的特性就是能提取和重建DD-WRT的web界面。这是自动化的通过 ddwrt-gui-extract.sh 和ddwrt-gui-restore.sh  就脚本。
  你可以通过extract-firmwware.sh提取DD-WRT固件镜像,也可以通过下面提取里面的web文件:
  
  $ ./ddwrt-gui-extract.sh

   提取后的web文件被提取到了“www”目录内。你可以用你的任何方式去修改文件,但是不能增加或者删除这些文件。


   结束修改文件后,重建web文件:
   $ ./ddwrt-gui-rebuild.sh
  
  修复一个供应商的固件

  有时你热心的刷了个第三方固件例如Gargoyle或者DD-WRT,但是你发现这些固件没有你喜欢的特性,不能像供应商的固件那样执行,或者是一些功能问题。这时候,你想回到供应商那个固件,但没有方法这样做!
   fmk能帮助你恢复到供应商的那个固件。过程如下:
   1.提取供应商固件。然后重命名'fmk'目录。
   2.提取第三方"upgrade"固件(e.g. Gargoyle-sysupgrade)
   3.替换被提取的第三方固件的 rootfs 和 image_parts   
   4.重建固件镜像
   5.刷服务商固件镜像(现在被打包的第三方固件)
   6.如果....


  一旦回到服务商固件,然后它就会再次接受服务商固件(意思是可以再刷纯的服务商固件)


  例子:
  这个例子示范一下怎样提取一个固件镜像,替代它的telent后台程序,然后重建一个新的固件镜像:
  
  $ ./extraxt-firmware.sh firmware.bin  $ cp new-telnetd fmk/rootfs/usr/sbin/telnetd  $ ./build-firmware.sh

  下面这些例子的命令是提起一个DD-WRT 固件镜像,修改 web 主页,然后重建一个新的固件镜像:

  $ ./extract-firmware.sh firmware.bin  $ ./ddwrt-gui-extract.sh  $ echo "HELLO WORLD" > www/index.asp  $ ./ddwrt-gui-rebuild.sh  $ ./build-firmware.sh


  Tools/Utilities
  fmk包内的工具在嵌入式固件镜像工作的时候是十分有用的,以下列表中一些工具用法:、

....

0 0
原创粉丝点击