I am trying to reverse engineer a TDw8960 v7 TP-Link router. Currently the router has a bug, whereby setting the MTU via the GUI has no affect. It seems regardless of the value placed here despite showing a default value of 1480, all interfaces are stuck at 1500 which has caused some navigation issues. Whilst I have brought this to the attention of TP-Link I would rather try to patch this quickly and wait to see if and when they release a fixed version of the firmwares.
I have tried to reverse engineer the following firmware files with no luck:
I have seen the following guide which shows the process very clearly, however, this guide is for v5 and it seems in v5 they used a squash filesystem and have since changed for newer versions.
I have literally just started trying to do and learn this stuff so forgive any stupidity from here.
I have tried a few tools:
- Firmware Modification kit - extract-firmware.sh
- Firmware Modification kit - extract-ng.sh
- Firmware Modification kit - old-extract.sh
- Firmware Modification kit - tpl-tool
I have tried multiple sources of the firmware modification kit. I have also tried router tools zynos.py, but as I understand the ZynOS is not used on this device.
All either fail or result in a message stating it is unsupported.
I am presuming that from the binwalk output the file system is
ecosFS from the line:
768 0x300 eCos RTOS string reference: "eCosFS"
I have done some research and I see ecosfs is a file system and possibly related to Yffs which I believe Firmware Modification Kit was capable of, but this is the first I have heard of this file system. Can anyone advise what can be done to unpack and repack a firmware like this, are there any tools specific to ecosfs that are necessary?
I have literally turned google purple trying to wrap my head around this and could do with a push in the right direction.
Update 03-08-2017 I can now see (maybe more understand), that the original extraction using binwalk gave me a 7zip file of the LZMA data 6223D.7z. I have extracted this file and I have a data file. If I run binwalk on this I see more mention of eCos, VxWorks and little/big endian. This would lead me to suspect I am getting further.