I am trying to reverse engineer the Linksys WAG120N router firmware. I've been able to unpack it and extract the bootloader, kernel and filesystem.
The kernel is MIPS big endian. I loaded the kernel into IDA pro with start address of 0x80002000
. The entry point is 0x801B2040
.
The problem I have now is that all the functions are named as sub_
. I need a symbol table to help me reverse this binary. Binwalk doesn't find any symbol tables and I'm not sure how to rebuild a symbol table, as I am new to this sort of stuff.
I read a post Rebuild symbol table, but that was about static and shared libraries, which my kernel is not.
Running file
on my kernel gives
kernel: data
I don't know if the binary has a symbol table, but if it does, I don't know how to extract it. Or is there another way of reversing the binary?
Any help is appreciated.
EDIT: I have found what appears to be a symbol table. It has the libc string functions and lots of other functions. But there aren't many cross references to these function names in the disassembly. How do I use this?
strings
produce anything that looks like function names?strings kernel | grep "()"
seems to give a few functions arguments. Here is the output: pastebin.com/XeMxQU19