POSTS
Epson Printer Reversing
Why
Don’t be my parents. I like printers. There’s nothing bad about it.
Extraction
At first glance two big section are used. They both start with CROM
.
-
Contains uboot image, linux kernel and two sqashfs partition. Respectively one contains the rootfs, the other contains epson proprietary module and maybe a daemon.
- Early analysis suggest that the kernel calls
/root/PreBoot
. After initializing the system,/root/PreBoot
callsS99NWControl
S99NWControl
seems to be the control script for the low level daemon. It does a few things:- Change the some kinux kernel settings, like ulimits and overcommit_memory
- Loads the proprietary kernel module
epidc.ko
which enables a new ioctl. - Runs
nwsoc
. A low level printer daemon? For sure it dies in pain ifepidc.ko
is not loaded
- Early analysis suggest that the kernel calls
-
Contains a lot of broken jpegs.
-
Jpeg appears to be exported using photoshop encode for web feature:
-
Most likely it’s the gui part of the printer, but it’s broken. Will study a bit more to understand how to unpack it.
-
Notes
0x00 padding is important for squashfs. Trim some zeros and it will fail to extract
We are missing the gui part of the printer. Most likely is done in qt. libqtga.so
is present. Where is the gui? In the second squashfs?