wololo, Lan.st , 29 mars 2009 Wrote:Hi MaTiAz, you are probably a busy guy so I'll try not to take too much of your time.
A guy recently contacted me on my blog with a tiff file that crashed his psp. His file is freely downloadable and a small buzz started at DAX.org.
Since I've been working on the libtiff vulnerability, I receive dozens of "check my crash" emails every week from random people, but this one looks really interesting.
I contacted Archaemic yesterday about this but he's probably busy too. (He is in BCC of this message)
I'm lacking the necessary assembly knowledge to go further, but the file offers us control on two registers (maybe three) : t0,a1 (t3), right in the middle of a sw command involving the two of them.
If you know someone who's into hacking (maybe you) but can't bother checking the thousands "fake" files, I'm telling this one is the most interesting I've seen in moths and is probably worth looking.
here are my files (psplink dump and the actual image):
http://wololo.net/files/laughcrash.pnghttp://wololo.net/files/laugh46388.tifflook for 61616161 and AAAAAAAA in the tiff file, at offset 46388
My current problem is that if the second line is not overwritten by the first one, then both t0 and a1 need to be valid addresses, which sort of ruins the point.
But even if I overwrite the second line with a jump, the jump is not performed and I get the same error, as if the command was fetched into memory before being overwritten
Also, on my phat with 5.00m33, the address of the EPC is quite constant, it cycles between 4 values, which gives a 25% "success" rate...
As I said to Archaemic already, I won't make the mistake of going public with this, this time. But I'm convinced something can be done here.