如果你不想手动构建某些二进制工具给光猫这类的设备,好的,我已经替你干了这些无聊的活

我提供一些预先构建好的二进制文件

你可以在我的 Github上下载到这些二进制 ELF 工具,如 curl,wget,ftp,buysbox 等。这些工具主要用于分析嵌入式设备的固件,搭建测试环境,还可以整点有趣的活,比如在运营商的光猫上跑点自己的代码,比如 PHP 和 Perl。

如果你不想手动构建某些二进制工具给光猫这类的设备,好的,我已经替你干了这些无聊的活。

mips32_big_endian 目录下的所有二进制 ELF 文件使用 musl 的 mips32_be 交叉工具链构建并且是静态编译的丢到 设备的 /tmp/ 赋予可执行权限就可以直接运行 。mips32_be 交叉编译工具链也是从 Buildroot 构建的。

注意当前我只提供MIPS32 大端架构的静态 ELF 二进制文件。我没有MIPS_EL小端设备,暂时测试不了。

以后还会提供 ARM 架构的二进制 ELF 文件

关于 Debug Symbol

你会发现单个二进制文件体积有点大,因为我保留了 Debug Symbol,因为某些 ELF 文件 运行的不是很好,需要调试,保留Debug Symbol 你也自己可以帮忙调试。

还有一个是安全原因,保留 Debug Symbol 的意思是你可以在 GDB 里直接看到原始的 C 代码。而你在别的地方下载到的ELF文件可能被注入了Shellcode并且去除了这些调试符号,增加你调试这些恶意代码的难度。

这些散布恶意代码的人我不说,但总有一天会被发现。

有用的信息,你可能需要在下载之前看看

即使静态编译的程序有时候还是需要外部文件支持运行,比如 file 就通过外部 magic 文件进行文件类型判断,还有 Vim 需要 Terminfo 和 VimRuntime,部署这些二进制就需要做一点处理,你可以在 BinaryNote.md 里找正确运行这些程序有用的信息,能帮你节约大量的时间

这里提供mips32_big_endian 目录下二进制文件的 ELF 头和我家光猫的内核信息:

# ELF Header:
  Magic:   7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, big endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           MIPS R3000
  Version:                           0x1

# Kernel version
Linux (none) 3.18.21 #4 SMP Tue Nov 22 16:34:26 CST 2022 mips GNU/Linux

# CPU INFO
system type             : EcoNet EN751221 SOC
machine                 : Unknown
processor               : 0
cpu model               : MIPS 34Kc V5.8
MIPS            : 1195.21
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16 dsp mt