epson-reversing icon indicating copy to clipboard operation
epson-reversing copied to clipboard

Where to find crom files

Open bmourit opened this issue 5 years ago • 3 comments

I'm not sure exactly if the CROM files are in the second segment of each IPL on all firmwares, or just mine. If they are, could the extraction of the CROMs be handled in the rcx_unpacker?

Also, do you know of any tool that is able to disassemble the epson IPL code? The CROM on mine looks to be ARM32.

My printer is a WF-3620 series, but these tools appear to work for it.

bmourit avatar Jul 16 '20 23:07 bmourit

That's a good question. In my case, IPL 0 seg 1 contains a bunch of stuff including a CROM, whilst IPL 1 seg 1 is a CROM with a tiny header.

The IPL is indeed little-endian ARM. I have done a lot of digging in mine (specifically with an eye to the bootloader/flashing commands accepted in IPL mode) and have an IDA database, but that's a commercial tool of course. On the open source side, radare2 or Ghidra should be quite capable -- the latter depending how you feel about the NSA, of course...

It would be interesting to see how similar the early stage boot code is between printers.

I'm yet to find where the code is that is booted on the Xtensa cores.

abrasive avatar Jul 16 '20 23:07 abrasive

Can you see a partition table of any sort in the first blob? It'd be nice if we could unpack them systematically.

abrasive avatar Jul 16 '20 23:07 abrasive

I haven't found a partition table yet. I used IDA to decompile the CROM portions. I assumed the rest of the IPL was xtensa, but I was wrong and they also appear to be ARM.

For me, IPL 0 seg 1 has a CROM at offset 0x6514. It also had a second signature of CROM1 at 0x4018a4. IPL 1 seg 1 has three CROMs. One at 0x40000, 0x5a0000, and 0x6f0000 respectively.

bmourit avatar Jul 19 '20 20:07 bmourit