View Single Post
  #23 (permalink)  
Old 11-16-2008, 05:41 PM
no2chem's Avatar
no2chem
Retired Staff
Offline
 
Join Date: May 2007
Posts: 1,168
Reputation: 11628
no2chem can't get a higher reputation levelno2chem can't get a higher reputation levelno2chem can't get a higher reputation levelno2chem can't get a higher reputation levelno2chem can't get a higher reputation levelno2chem can't get a higher reputation levelno2chem can't get a higher reputation levelno2chem can't get a higher reputation levelno2chem can't get a higher reputation levelno2chem can't get a higher reputation levelno2chem can't get a higher reputation level
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Re: Quest to modify the timeout for hardware keyboard.

Quote:
Originally Posted by mdodge View Post
I only have PE explorer and reflector (which is free btw). I tried the following:

IL
MC++
C#
Visual Basic
Delphi
Chrome

I'm sure a way exists to do it but I'm not an experienced in decompiling but thought I would help in anyway I could, cause this problem drives me nuts lol

And I'm sure a new driver could be introduced by someone with the know-how. But without seeing the current structure, source of the dll's, I would assume it would be much harder to make one. Kind of like programming in the dark.

Drivers are not written in C#/.net for performance reasons, and no C++ decompiler exists (well, that works well anyway) for ARM. If you are going to attempt to modify the driver, you need to have a clear understanding of ARM assembly, and a resonably clear understanding of Win32 and the WinCE driver model. Even with that, it still takes a bit of creativity to both read the obscure driver code (which I don't know, seems that HTC intentionally obfustacates, at times) - and to patch in what you want it to do in the limited space you have. As stroths mentioned, I wrote an intermediate driver for older, non-MicroP/pSOC devices, because it was appropiate given the limited amount of space, however, IMO, this isn't the best approach with the new devices.

Either way, there is no way to just "plop" your own C code and get the drivers to do what they want; that would be way too easy. Sorry, but if you want to do stuff, you'll have to get your hands grimy in assembly... Sometimes, it may take you an hour to just identify or find a part of the code you want to modify or understand! Reverse engineering is an art, which they unfortunately do not teach in school... fortunately, they do usually teach some kind of assembly (RISC assembly, typically, last I checked), so any experience in that would help greatly - it is just the different mode of thinking - (how do I change this code given that I've identified this routine, and these imports, and, i have 6 opcodes to do it in?) that will be the leap..

Last edited by no2chem; 11-16-2008 at 05:45 PM.
Reply With Quote