Hi,thanks for the feeback
<quote>You would need a masters degree in programing to develop software.</quote>
Whilst I don't hold ANY degree level qualifications, I certainly can develop at this level, my skills go back to reprogramming the Hitachi SH-Micon chip for engine management on the Sierra Cosworth, so I have a little experience with embedded processors ;-)
I appreciate that I can use a Hex editor to look through the machine language, but without reference to bootstrap code, processor architecture, memory allocation, etc. It becomes a VERY long winded & laborious task to reverse compile the code and understand how to then reprogramme it yourself.
I assume (as has been the way for 'at-least' the last 20 years), their will be a compiler/assembler (of some description) so you can turn 'readable' code into machine language.
Even if this is a fairly basic assembler, someone will have the 'program' to do this, as well as documentation of processor instructions & embedded functions, memory/port maps, interrupt tables, etc....
As for the math/algorithm, this must already be included either hardcoded into the CAM, or as part of the software. If the former, there will be calls to use it ~ if the later, then getting these is only a matter of reverse compiling the current code ~ Which is easy if you have the device information.
To my understanding, the functionality of these things is pretty simplistic (I appreciate the code may be VERY complex), in that your receiver gets an data stream and if it is encoded, passes information through the cam that uses an algorithm to decode it. The decoding, in essence, is based on a private key to decrypt the data which was encrypted with the corresponding public key at the broadcasters end (I assume!).
In addition to this, they either have a number of private keys which they can select from, or a way to update values/keys OTA ~ This is actually the part that interests me (i.e. How to do AU or brute force decrypting using the CAM).
I'm ABSOLUTELY SURE I would find there are a lot of things I haven't even considered in the complexity of doing this, but have always believed that the best way to learn, is to look at how it's already been done, then adapt it with my own ideas.
What I was hoping for, was that somebody could point me at the current source & tools for development, partially out of interest in how these things work, partially out of consideration for what-else these things could be used for, and partially that I may be able to enhance/improve it ~ for educational purposes only
I can't see why anybody would want to see this software as proprietary, as any additional work that improves the device would make it more valuable (take Linux as an example!)
Anybody else have an idea where I can get my hands on this 'stuff'