返回列表 发布新帖

[巴法络] 关于buffalo TS5000系列高端机器ROOT问题,思路已经有了

5867 9
发表于 2015-9-6 12:33:13 | 查看全部 阅读模式

来吧兄弟,一起玩一起讨论!

您需要 登录 才可以下载或查看,没有账号?注册

×
国外大神弄差不多同款机器(LS400)的思路是:解包固件,改代码,打包回去,强刷。
解包修改打包都有现成的源码,不过仅对LS400系列的有效


原文链接(需走天桥访问,走不了的看下面的截图):https://tohenk.wordpress.com/201 ... inkstation-ls421de/
IDEA.png



使用到的工具包下载:https://github.com/tohenk/linkstation-mod/archive/master.zip



./scripts/open-ls-rootfs.sh内容
  1. #!/bin/bash

  2. # Original script from http://buffalo.nas-central.org/wiki/Open_Stock_Firmware_LS-XHL
  3. # Modified by Toha <tohenk@yahoo.com>

  4. # check for parameters
  5. if [ $# -ne 1 ]; then
  6.   echo "You have to specify the filename of the firmware zip-file!\n"
  7.   exit 1
  8. fi
  9. if [ ! -f "$1" ]; then
  10.   echo "File not found $1.\n"
  11.   exit 1
  12. fi

  13. MYDIR=`dirname $0`
  14. MYDIR=`pushd $MYDIR > /dev/null && pwd -P && popd > /dev/null`
  15. ROOT=`pwd`
  16. OUTDIR=$ROOT/out
  17. TMP=$ROOT/tmp
  18. ORIGINAL=$TMP/ORIG
  19. ROOTFS=$TMP/ROOTFS
  20. ROOTFS_IMG_NAME=hddrootfs.img
  21. ROOTFS_FILE_NAME=hddrootfs.buffalo.updated
  22. FIRMWARE=$1

  23. . $MYDIR/ls-functions.sh

  24. do_prep_dirs() {
  25.   show_msg "Preparing directories"
  26.   local DIRS="$ORIGINAL $ROOTFS"
  27.   for D in $DIRS; do
  28.     clean_dir "$D"
  29.   done
  30.   mkdir -p "$OUTDIR"
  31. }

  32. do_unpack_firmware() {
  33.   show_msg "Unpacking firmware"
  34.   ROOTFS_IMG=`unpack_firmware "$TMP" "$FIRMWARE" "$ROOTFS_IMG_NAME"`
  35.   if [ -n "$ROOTFS_IMG" ]; then
  36.     show_info "Found ROOTFS image: $ROOTFS_IMG."
  37.   else
  38.     show_info "No ROOTFS image found! May be it not a valid LinkStation firmware.\n"
  39.   fi
  40. }

  41. do_unpack_rootfs() {
  42.   show_msg "Unpacking ROOTFS image"
  43.   PASSWORD=`unpack_buffalo_image "$ORIGINAL" "$ROOTFS_IMG"`
  44.   if [ -n "$PASSWORD" ]; then
  45.     show_info "Using password $PASSWORD."
  46.   else
  47.     show_info "Can't unpack ROOTFS image, no password matched.\n"
  48.   fi
  49. }

  50. do_extract_rootfs() {
  51.   show_msg "Extracting ROOTFS"
  52.   extract_rootfs "$ROOTFS" "$ORIGINAL/$ROOTFS_FILE_NAME"
  53. }

  54. do_remove_root_password() {
  55.   show_msg "Removing root password"
  56.   INITFILE="$ROOTFS/root/.files/initfile.tar.gz"
  57.   INITFILE_NEW="$ROOTFS/root/.files/new.initfile.tar.gz"
  58.   if [ -f "$INITFILE" ]; then
  59.     show_info "Removing root password from initfile backup."
  60.     INITFILE_TMP=$TMP/INITFILE
  61.     extract_rootfs "$INITFILE_TMP" "$INITFILE"
  62.     remove_root_password "$INITFILE_TMP/etc/shadow"
  63.     package_rootfs "$INITFILE_TMP" "$INITFILE_NEW"
  64.     mv "$INITFILE_NEW" "$INITFILE"
  65.   fi
  66.   show_info "Removing root password from shadow file."
  67.   remove_root_password "$ROOTFS/etc/shadow" "$ROOTFS/etc/shadow~~"
  68.   chmod 0644 "$ROOTFS/etc/shadow"
  69. }

  70. do_create_emergency_script() {
  71.   show_msg "Creating emergency script service"
  72.   local EMERG_SCRIPT="$ROOTFS/etc/rc.d/extensions.d/S00_emergency.sh"
  73.   emergency_script >$EMERG_SCRIPT
  74.   chmod 0755 $EMERG_SCRIPT
  75. }

  76. do_allow_root_login() {
  77.   show_msg "Allowing root login via telnet and ssh"
  78.   # Open telnet
  79.   echo "telnet        stream        tcp        nowait        root        /usr/local/sbin/telnetd        /usr/local/sbin/telnetd" >> "$ROOTFS/etc/inetd.conf"
  80.   #sed -i -e 's/#telnet/telnet/' "$ROOTFS/etc/inetd.conf"
  81.   #if [ ! -f "$ROOTFS/usr/sbin/telnetd" ]; then
  82.   #  cd "$ROOTFS/usr/sbin" && ln -s ../../bin/busybox telnetd
  83.   #fi
  84.   # Allow root login via ssh
  85.   sed -i -e 's/#PermitRootLogin/PermitRootLogin/' "$ROOTFS/etc/sshd_config"
  86.   sed -i -e 's/#StrictModes yes/StrictModes yes/' "$ROOTFS/etc/sshd_config"
  87.   sed -i -e 's/#PermitEmptyPasswords no/PermitEmptyPasswords yes/' "$ROOTFS/etc/sshd_config"
  88.   sed -i -e 's/#UsePAM no/UsePAM no/' "$ROOTFS/etc/sshd_config"
  89.   # Patch sshd.sh
  90.   #sed -i -e 's/`which sshd`/\/usr\/sbin\/sshd/' "$ROOTFS/etc/init.d/sshd.sh"
  91.   sed -i -e 's/\[ "${SUPPORT_SFTP}" = "0" \]/\[ `\/bin\/false` \]/' "$ROOTFS/etc/init.d/sshd.sh"
  92.   # Start sshd
  93.   SSHD=`find $ROOTFS/etc/rc.d/extensions.d -name '*sshd.sh' 2>/dev/null`
  94.   if [ "$?" -ne 0 ] || [ -z "$SSHD" ]; then
  95.     show_info "Enabling SSHD service."
  96.     cd "$ROOTFS/etc/rc.d/extensions.d" && ln -s ../../init.d/sshd.sh S99_sshd.sh
  97.   fi
  98. }

  99. do_fix_su_binary() {
  100.   show_msg "Fixing su binary"
  101.   mv "$ROOTFS/bin/su" "$ROOTFS/bin/su~"
  102.   cd "$ROOTFS/bin" && ln -s busybox su
  103. }

  104. do_correct_permissions() {
  105.   show_msg "Correcting permissions"
  106.   chmod 6555 "$ROOTFS/bin/su"
  107.   chmod 0644 "$ROOTFS/etc/profile"
  108. }

  109. do_correct_pam_modules() {
  110.   show_msg "Correcting pam modules"
  111.   cd "$ROOTFS/lib/security" && ln -s pam_unix.so pam_unix_auth.so
  112.   cd "$ROOTFS/lib/security" && ln -s pam_unix.so pam_unix_acct.so
  113.   cd "$ROOTFS/lib/security" && ln -s pam_unix.so pam_unix_passwd.so
  114.   cd "$ROOTFS/lib/security" && ln -s pam_unix.so pam_unix_session.so
  115. }

  116. do_add_executables() {
  117.   show_msg "Adding executables"
  118.   for ARCHIVE in `ls -1 $ROOT/data/*.tar.gz 2>/dev/null`;
  119.   do
  120.     show_info "Adding from $ARCHIVE."
  121.     tar --numeric-owner -p -xzf "$ARCHIVE" -C "$ROOTFS"
  122.   done
  123. }

  124. do_add_ssh_keys() {
  125.   show_msg "Adding ssh key"
  126.   SSH_DIR="$ROOTFS/root/.ssh"
  127.   AUTHORIZED_KEYS="$SSH_DIR/authorized_keys"
  128.   for KEY in `ls -1 $ROOT/data/*.key 2>/dev/null`; do
  129.     show_info "Adding key $KEY."
  130.     mkdir -p "$SSH_DIR"
  131.     if [ -f "$AUTHORIZED_KEYS" ]; then
  132.       echo "" >> "$AUTHORIZED_KEYS"
  133.     fi
  134.     cat $KEY >> "$AUTHORIZED_KEYS"
  135.   done
  136. }

  137. do_package_rootfs() {
  138.   show_msg "Package ROOTFS"
  139.   package_rootfs "$ROOTFS" "$OUTDIR/$ROOTFS_FILE_NAME"
  140.   pack_firmware "$OUTDIR" "$ROOTFS_IMG_NAME" "$ROOTFS_FILE_NAME" "$PASSWORD"
  141.   if [ -f "$OUTDIR/$ROOTFS_IMG_NAME" ]; then
  142.     show_info "Opened ROOTFS image saved in $OUTDIR/$ROOTFS_IMG_NAME."
  143.   fi
  144. }

  145. main() {
  146.   echo "Opening stock firmware ROOTFS of $FIRMWARE."

  147.   FNAME=`basename $FIRMWARE`
  148.   FEXT="${FNAME##*.}"

  149.   do_prep_dirs
  150.   if [ "$FEXT" = "img" ]; then
  151.     ROOTFS_IMG=$FIRMWARE
  152.     ROOTFS_IMG_NAME=$FNAME
  153.   else
  154.     do_unpack_firmware
  155.   fi
  156.   if [ ! -f "$ROOTFS_IMG" ]; then
  157.     exit 1;
  158.   fi
  159.   do_unpack_rootfs
  160.   if [ -z "$PASSWORD" ]; then
  161.     exit 1;
  162.   fi
  163.   do_extract_rootfs
  164.   do_remove_root_password
  165.   do_allow_root_login
  166.   do_add_ssh_keys
  167.   do_create_emergency_script
  168.   #do_fix_su_binary
  169.   #do_correct_permissions
  170.   #do_correct_pam_modules
  171.   #do_add_executables
  172.   do_package_rootfs

  173.   echo "\nDone.\n"
  174. }

  175. main
  176. exit 0
复制代码

上述LS系列使用到的固件:点击下载TS5000系列(需要ROOT)的固件下载:点击下载

初步判断,稍微小改代码即可对TS5000系列生效,欢迎讨论。

评论9

faninxLv.5 发表于 2015-9-6 13:36:04 | 查看全部
我的LS421DE早卖了 不然还可以折腾下
421DE我这边有现成的ROOT固件,隔壁的网友可以联系我发送  详情 回复
发表于 2015-9-7 11:49
回复 点赞

使用道具 举报

swh485Lv.2 发表于 2015-9-6 14:54:53 | 查看全部
我用的就是LS421DE啊,不是早就可以ROOT了吗?都一个迅雷了。。。。
这次是TS5400D啦,慢慢占领BUFFALO的高端品牌。  详情 回复
发表于 2015-9-7 11:50
回复 点赞

使用道具 举报

易璞楼主Lv.10 发表于 2015-9-7 11:49:46 | 查看全部
faninx 发表于 2015-9-6 13:36
我的LS421DE早卖了 不然还可以折腾下

421DE我这边有现成的ROOT固件,隔壁的网友可以联系我发送
回复 点赞

使用道具 举报

易璞楼主Lv.10 发表于 2015-9-7 11:50:10 | 查看全部
swh485 发表于 2015-9-6 14:54
我用的就是LS421DE啊,不是早就可以ROOT了吗?都一个迅雷了。。。。

这次是TS5400D啦,慢慢占领BUFFALO的高端品牌。
回复 点赞

使用道具 举报

cnhnln 发表于 2015-11-28 22:30:45 | 查看全部
马克一记
回复 点赞

使用道具 举报

wujunan 发表于 2015-12-12 12:42:41 | 查看全部
学习下,最近对BUFFALO感兴趣了
回复 点赞

使用道具 举报

oldthree6289Lv.10 发表于 2015-12-28 13:31:16 | 查看全部
有时间折腾下,谢谢楼主
回复 点赞

使用道具 举报

2011816Lv.3 发表于 2018-8-2 19:51:45 | 查看全部
需要ts5000root方法或root固件,谢谢
回复 点赞

使用道具 举报

2011816Lv.3 发表于 2018-8-2 20:08:59 | 查看全部
易璞 发表于 2015-9-7 11:50
这次是TS5400D啦,慢慢占领BUFFALO的高端品牌。

发个TS5000系列固件给我
回复 点赞

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

淘宝小店

邀请码

VIP会员

微信客服

公众号

微信群

投诉/建议联系

support@gebi1.cn

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2024 隔壁网 版权所有 All Rights Reserved. 粤ICP备14056481号-1
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表