Il Wednesday 13 February 2008 00:39:59 Edin Hodzic ha scritto: > -march=mips1 or -mips1 should do the trick, no? > > Dino > > On 02/12/2008 03:34 PM, Matteo Croce said: > > Hi, > > I have a machine, an AR7 MIPS router I want to hack, but I'm unable > > to run _any_ executable on that machine outside the ones in the firmware. > > I tried building a static mips1 binary, but it fails so: > > > > # /var/test.bin > > /var/test.bin: 1: Syntax error: "(" unexpected > > > > so I downloaded a binary builtin in the firmware and I compared it to my own: > > > > $ file busybox.bin test.bin > > busybox.bin: ELF 32-bit LSB executable, MIPS, MIPS-I version 1 (SYSV), dynamically linked (uses shared libs), stripped > > test.bin: ELF 32-bit LSB executable, MIPS, version 1 (SYSV), statically linked, stripped > > > > busybox.bin is the builtin busybox while test.bin is a static HelloWorld > > > > I ran readelf on it: > > > > $ readelf -h busybox.bin > > ELF Header: > > Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 > > Class: ELF32 > > Data: 2's complement, little endian > > Version: 1 (current) > > OS/ABI: UNIX - System V > > ABI Version: 0 > > Type: EXEC (Executable file) > > Machine: MIPS R3000 > > Version: 0x1 > > Entry point address: 0x4037e0 > > Start of program headers: 52 (bytes into file) > > Start of section headers: 337304 (bytes into file) > > Flags: 0x5, noreorder, cpic, mips1 > > Size of this header: 52 (bytes) > > Size of program headers: 32 (bytes) > > Number of program headers: 6 > > Size of section headers: 40 (bytes) > > Number of section headers: 21 > > Section header string table index: 20 > > $ readelf -h test.bin > > ELF Header: > > Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 > > Class: ELF32 > > Data: 2's complement, little endian > > Version: 1 (current) > > OS/ABI: UNIX - System V > > ABI Version: 0 > > Type: EXEC (Executable file) > > Machine: MIPS R3000 > > Version: 0x1 > > Entry point address: 0x400140 > > Start of program headers: 52 (bytes into file) > > Start of section headers: 11780 (bytes into file) > > Flags: 0x50001007, noreorder, pic, cpic, o32, mips32 > > Size of this header: 52 (bytes) > > Size of program headers: 32 (bytes) > > Number of program headers: 3 > > Size of section headers: 40 (bytes) > > Number of section headers: 17 > > Section header string table index: 16 > > $ diff -u <(readelf -h busybox.bin) <(readelf -h test.bin) > > --- /dev/fd/63 2008-02-13 00:26:48.880261477 +0100 > > +++ /dev/fd/62 2008-02-13 00:26:48.880261477 +0100 > > @@ -8,13 +8,13 @@ > > Type: EXEC (Executable file) > > Machine: MIPS R3000 > > Version: 0x1 > > - Entry point address: 0x4037e0 > > + Entry point address: 0x400140 > > Start of program headers: 52 (bytes into file) > > - Start of section headers: 337304 (bytes into file) > > - Flags: 0x5, noreorder, cpic, mips1 > > + Start of section headers: 11780 (bytes into file) > > + Flags: 0x50001007, noreorder, pic, cpic, o32, mips32 > > Size of this header: 52 (bytes) > > Size of program headers: 32 (bytes) > > - Number of program headers: 6 > > + Number of program headers: 3 > > Size of section headers: 40 (bytes) > > - Number of section headers: 21 > > - Section header string table index: 20 > > + Number of section headers: 17 > > + Section header string table index: 16 > > > > The router firmware uses: > > # cat /proc/version > > Linux version 2.4.17_mvl21-malta-mips_fp_le (root@xxxxxxxxxxxxxxxxxxxxx) (gcc version 2.95.3 20010315 (release/MontaVista)) #1 Fri Mar 18 11:00:12 EST 2005 > > > > While I have a gcc-4.2.3 toolchain with 2.6.24 headers. > > > > > > How can I build a mips1 binary instead of the mips32 I make? Can I disable o32? > > > > Best Regards, > > Matteo Croce > > > > > Already tried, won't work. I attach the binaries
Attachment:
test.bin
Description: application/executable
Attachment:
busybox.bin
Description: application/executable