HELLO,
my name is mhemara fay. i have a q for you.
Anyone has successfully extracted a preprogrammed 8051 chip with fuse locked? I want to retrieve the binary image from a programmed 8051 micro any ideas? Thanx
Just a footnote.
A binary can not be used to recreate any source. All it can be used for is programming into more devices. Hence, it is of no use to a student. He/she can manage to get a pass based on that single chip.
On the other hand: The main goal for a student is to gain experience, not produce finished products. So it would be an excellent time to create firmware version 2.0. Recreating what you have already done takes less time and will give a better program, based on the experience from the first iteration.
A company that has lost it's source should not continue to produce hardware based on that program. If the hw needs to be adjusted because a component can't be bought anymore, there is a high probability that the firmware needs to be updated with a slightly changed timing, a changed initialization, an inverted signal, ... If the company doesn't make any money from the product, they would decide to stop selling the product and use the remaining units as spares. If they do make money, they would immediately start recreating the firmware based on existing specifications, or decide that it is time to start from scratch and update all electronics to reclaim some of the cost by using cheaper, more modern, solutions.
The only people who have a real reason to produce equipment from a ripped binary are people who duplicates other companies products. People who pay for the Keil licenses most probably expects to reclaim their money by selling their products instead of letting other companies harvest what they didn't saw.
"All it can be used for is programming into more devices"
Well, that's not entirely true:
It would be possible to disassemble the binary and, from the disassembly, it could be possible to create some usable assembly "source".
But that would be a non-trivial task for an experienced addembly programmer - and one would hope that such a person wouldn't be so careless as to lose the entire source code in the first place!
It is almost always cheaper to review the original specification, mails etc and recreate from that and a working unit than to fight with reverse-engineering. It also makes sure that the original source didn't contain a copyright clause that is reauired to have in the reverse-engineered source too doesn't result in inadvertent law violations. Remember that the compiler vendor may also forbid reverse-engineering of their runtime library. With a binary image, you don't know what instructions are from the runtime library and what instructions are from the application until a significant part of the application has been reverse-engineered.
A friend of mine had to do a full reverse-engineering of a project after a company spent a lot of money to have a consultant write some software for them. The consultant was a crook. He supplied a secretly time-limited binary image, and then demanded ransom for the contracted source - and finally ended up supplying the source (in return for a job position) to a competing, larger, company... The bad thing was of course that small companies can't afford the legal fees - especially if they have to fight a much bigger company.
"It is almost always cheaper to review the original specification, mails etc and recreate from that and a working unit than to fight with reverse-engineering."
Absolutely!
I was just pointing out that it would - in principle, at least - be possible. Whether it would be sensible or worthwhile is, of course, an entirely different question!
;-)
Yes, I saw the italics on the "entirely" :)
I just wanted to point out the non-obvious fact that it may be illegal to reverse-engineer your own project.
I once was tasked with recreating the code for a unit where the sourcde was lost (the factory burned and the i....s did not have off-site backup). I spent a lot of time with a disassembly and then realized that recreating the code from scratch is far faster than deciphering a disassembly. This is even worse if the original is in C.
Erik
PS the chips were not locked the recereate was to add a feature.