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
when you lock your house and loose your key you must get in your house?
no no no no budy, I don't think you "lost" your keys...
Didn't you consider leaving a spare key under your mat?
Seriously - You should have been more careful with the source code.
If you loose the key to your house, you have to call a locksmith. If you break-and-enter yourself, the police will come - even if it is your house.
But you still haven't got it: Even asking about copy protection, or discussing workarounds (if you own the product or not) is illegal in a number of countries, i.e. it is not needed to perform any copying. Just discussing how to do it, or requesting information about how to do it is illegal.
This web server is most probably located in USA, so it is affected by US laws. And even if it wasn't, a number of countries requires their ISP to be responsible for the contents transmitted to/from or published on servers hosted/owned/served by them.
By posting your question, you are violating the laws of a couple of countries that you may not want to violate. The IP number where you post from can be tracked down. Depending on what country you are sitting in, your ISP may be legally forced to forward the full contact information upon request.
So discussing how to circumvent copy protection schemes is not something that should be continued on this site, whoever do own the rights to the firmware in the specific chip.
By the way - how do you manage to loose the source code? No backup? No source code versioning? And even more strange: How do you manage to loose the binary? A factory normally have copies of the binary... If it wasn't factory-produced, but inhouse testing, the chip shouldn't have been locked in the first place, should it?
No mister, to manage to get in a situation where your own application only exists in a read-locked chip requires one or more people to specifically throw away the key, or to be so incompetent that it is likely that the actual value of the program is even less than the value of the chip. A total data loss just doesn't (or really shouldn't) happen by accident, other than for a student or hobbyist!
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.