软件二次开发-解密开发板

首先,你的在某宝买一个别人家量产的产品或者开发模组,然后你的有一定的硬件基础或者如果你不懂可以先叫人家硬件工程师帮你接出来。然后用串口,如果能中断进入Uboot,那么恭喜你,有戏在后头,看flash的块大小,一般有如Block:64KB(说明这块flash块大小为64kb),看rootfstype

        在uboot里输入printenv查看下启动参数:

        如一家公司的:
         bootargs=mem=160M console=ttyAMA0,115200 root=1f01 rootfstype=cramfs                 mtdparts=hi_sfc:512K(boot),4M(romfs),5632K(usr),1536K(web),3M(custom),256K(logo),1280K(mtd)
         可以看到rootfstype=cramfs整个根文件系统是cramfs的,cramfs制作的根文件系统可以挂载到本地的

         如另外一家公司的:

          bootargs=mem=58M console=ttyAMA0,115200 root=/dev/mtdblock3 noinitrd rootfstype=squashfs mtdparts=hi_sfc:256K(boot),2048K(kernel),512K(userdata),13568K(rootfs)

          可以看到rootfstype=squashfs 整个根文件系统是squashfs 的,squashfs 制作的根文件系统可以挂载到本地的

下面针对两种文件系统的解密:

         依据bootargs显示的各个分区大小可以计算出各自在flash的烧录地址,以解读下一家公司的文件系统为例:

          rootfs大小为13568K即0xD40000,起始地址为0x2c0000,起始地址如果你幸运的话可以在串口打印中看到,如果别人加密了看不到也不要紧,自己计算起始地址。


       依据以上计算,打开tftp,匹配好uboot的ipaddr以及serverip。然后将rootfs上传到PC端tftp目录下。具体如下:

mw.b 0x81000000 0xff 0xD40000
sf probe 0
sf read 0x81000000 0x2c0000 0xD40000
tftp 0x81000000 rootfs 0xD40000

至此,已经将flash上的rootfs拷贝到你的PC端tftp目录下,然后复制到你的虚拟机上,下面针对两种文件系统解密:

1)squashfs 文件系统

     如果你的虚拟机没有unsquashfs命令,请安装squashfs-tools工具,如Ubuntu下安装apt-get install squashfs-tools

     然后执行unsquashfs -i rootfs,这样就已经解压了rootfs,就会看到生成一个目录,为方便讲解,假设生成了目录squashfs-root。想要修改成自己的调试版,那就要修改etc/password里面的信息,改为

      root:$1$$qRPK7m23GJusamGpoGLby/:0:0::/root:/bin/sh

即将串口密码设置为空,然后执行

     mksquashfs ./squashfs-root rootfs.squashfs.img -b 64K -comp xz

     64K即为前面说的flash的块大小,xz即为压缩格式,rootfs.squashfs.img为压缩生成的可烧录文件

2)cramfs文件系统

     如果你的虚拟机没有cramfsck  命令,请安装cramfsprogs工具,如Ubuntu下安装apt-get install cramfsprogs

     然后执行cramfsck  rootfs  -x  cramfs-boot,这样就已经解压了rootfs,就会看到生成一个目录cramfs-boot。想要修改成自己的调试版,那就要修改etc/password里面的信息,改为

      root:$1$$qRPK7m23GJusamGpoGLby/:0:0::/root:/bin/sh

即将串口密码设置为空,然后执行以下命令制作cramfs的文件系统

     mkcramfs cramfs-boot   cramfs.img

     cramfs.img为压缩生成的可烧录文件

最后就是烧录了,以rootfs.squashfs.img 为例

mw.b 0x81000000 0xff 0xD40000
tftp 0x81000000 rootfs.squashfs.img 
sf probe 0;sf erase 0x2c0000 0xD40000;sf write 0x81000000 0x2c0000 0xD40000  

至此reset启动,如果一切正常你就能进入串口开启自己的调试之路了



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值