海运的博客

使用squashfs-tools和binwalk修改路由/光猫固件rootfs文件

发布时间:April 26, 2023 // 分类: // No Comments

查看rootfs所在分区:

cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00040000 00020000 "bootloader"
mtd1: 00040000 00020000 "romfile"
mtd2: 00300000 00020000 "kernel"
mtd3: 01400000 00020000 "rootfs"

通过nc将mtd rootfs分区发送到远程机器上:

nc -l -p 3333 > rootfs.bin
cat /dev/mtd3 | nc 192.168.1.8 3333

查看确认备份的文件头部是squashfs格式:

head -c 4 rootfs.bin |hexdump -C
00000000  68 73 71 73                                       |hsqs|

查看squashfs打包参数:

binwalk rootfs.bin 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 17975011 bytes, 2288 inodes, blocksize: 131072 bytes, created: 2020-06-22 04:04:58

用binwalk解压:

binwalk -e rootfs.bin 
ls _rootfs.bin.extracted/
#0.squashfs为真正大小文件,其它空间为FF填充
0.squashfs  squashfs-root

用unsquashfs解压,推荐使用:

unsquashfs rootfs.bin 

修改squashfs-root目录内文件后重新打包,使用之前查看的参数:

mksquashfs squashfs-root rootfs-new.bin -comp lzma -b 131072

将修改的rootfs用mtd刷入:

mtd write rootfs-new.bin rootfs

校验下:

mtd verify rootfs-new.bin rootfs

注意:有的机器固件包含签名验证,修改后不能正常开机。

参考:
https://www.callmewing.com/2018/10/03/%E9%80%86%E5%90%91PT632_G2%E5%85%89%E7%8C%AB%E5%9B%BA%E4%BB%B6/
https://akbwe.com/posts/trying-to-modify-f7607p-rootfs/
https://github.com/csersoft/HWFW_GUI

此内容被密码保护

发布时间:April 23, 2023 // 分类: // No Comments

请输入密码访问

openwrt/immortalwrt编译内核模块并修改版本号

发布时间:April 21, 2023 // 分类: // No Comments

#编译工具链
make tools/install
make toolchain/install
#先进入菜单将要编译的模块选择为M
make menuconfig
make target/linux/{clean,compile}
make package/kernel/linux/{clean,compile}

使用现成工具链,省得编译浪费时间:

wget https://downloads.openwrt.org/releases/21.02.6/targets/mediatek/mt7622/openwrt-sdk-21.02.6-mediatek-mt7622_gcc-8.4.0_musl.Linux-x86_64.tar.xz
tar Jxf openwrt-sdk-21.02.6-mediatek-mt7622_gcc-8.4.0_musl.Linux-x86_64.tar.xz 
mv staging_dir staging_dir-back
mv openwrt-sdk-21.02.6-mediatek-mt7622_gcc-8.4.0_musl.Linux-x86_64/staging_dir ./

如mtkhnat模块和ipk位置:

build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7981/packages/ipkg-aarch64_cortex-a53/kmod-mediatek_hnat/lib/modules/5.4.238/mtkhnat.ko
bin/targets/mediatek/mt7981/packages/kmod-mediatek_hnat_5.4.238-1_aarch64_cortex-a53.ipk 

如果编译的最新模块小版本号与系统不一致可用sed修改,要确保模块无大更新,不然可能有兼容性问题。

sed -i 's/5\.4\.238/5\.4\.225/g' build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7981/packages/ipkg-aarch64_cortex-a53/kmod-mediatek_hnat/lib/modules/5.4.238/mtkhnat.ko

https://openwrt.org/docs/guide-developer/toolchain/single.package
https://forum.openwrt.org/t/how-to-build-an-additional-kernel-module/56575/2

联通贝尔光猫G-140W-UG修改为桥接/管理员密码并开启telnet

发布时间:April 20, 2023 // 分类: // 2 Comments

1.修改管理员密码,WEB修改普通用户密码用浏览器F12网络拦截或监听后编辑重发请求,修改url中的set为set_super,将POST参数中pswdNew替换成pswdNewSuper、pswdConfirm替换成pswdConfirmSuper。
2.设置拨号桥接:
internet.jpg
iptv配置:
iptv.jpg
备份下tr09参数,可以删除
tr09.jpg
3.访问 http://192.168.1.1/system.cgi?telnet 开启telnet。
如需修改SN和MAC:

ritool dump
ritool set YPSerialNum ALCLxxxxxxxx #SN码
ritool set MACAddress xx:xx:xx:xx #MAC地址 

这猫用来桥接够用了,跑满千m宽带不占用CPU资源,top查看sirq无占用,/proc/softirqs内NET_TX和NET_RX很小,说明走的是硬桥接。
但是IPTV走的是软桥接,流量也不大,CPU够用。
更新:IPTV协议封装选PPPOE是硬桥接。
https://wp.for-get.com/538.html
https://www.sohu.com/a/389057275_662688

linux/openwrt清空iptables连接跟踪状态表conntrack

发布时间:April 19, 2023 // 分类: // No Comments

最近在用iptables mark后做qos,当规则更新后要先清空下conntrack,不然之前已建立连接的mark并不改变,影响后续的判断。
使用conntrack工具:

conntrack -F

openwrt可使用以下方法:

echo f > /proc/net/nf_conntrack

openwrt如有开启hnat需先关闭再清除conntrack,不然无效,如mtk/360t7闭源驱动:

echo 0 > /sys/kernel/debug/hnat/qos_toggle
echo 0 > /sys/kernel/debug/hnat/hook_toggle

https://forum.openwrt.org/t/mwan3-how-to-flush-firewall-conntrack-table/133776

分类
最新文章
最近回复
  • opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...
归档