t-hack.com

English - X300T / X301T / DIT9719 / KISS KMM / BT Vision / Bluewin TV-Box / V-BOX/ VIP 1216 or similar Hardware => Software => WinCE => Topic started by: Hoernchen on 29. Sep 2008, 19:29

Title: c++: CeApiSpy
Post by: Hoernchen on 29. Sep 2008, 19:29
I've managed to port CeApiSpy from http://www.forwardlab.com/freestuff.htm which is the updated version of http://www.ddj.com/architect/184405459?pgno=1 to MIPS.
So what does it do ?
It loads a dll which infects every process and replaces a few API calls, the most important one is LoadLibraryExW. Every app that wants to load tv2engine.dll gets a handle to dummydll3.dll instead, which is a wrapper dll generated by wrappergen. The included dummydll3.dll is slightly modified to log a few function calls, it sends the logged data via tcp to 192.168.2.4 port 31337, i've attached a sample console client (which does not display the received data), too.
There are still a few problems, TV2SecureCore_Encrypt/DecryptMessage creates a massive amount of data because the maximum block size is 4096 so it gets called hundreds of times, which in turn seems to cause problems with the tcp logging. Unhooking the functions or unloading the dlls is impossible, so don't bother, just restart your box.

Just look at http://www.t-hack.com/wiki/index.php/TV2ClientCE.exe for the function signatures and compare them to your tv2clientce (there are slight differences, i.e. the debug tv2clientce calls tv2engine_create with engineparams e) and then replace the data types with the help of the pinvoke cheat sheet from here http://msdn.microsoft.com/en-us/library/ac7ay120.aspx

requirements : vs05, win ce 5 standard sdk