I have a AM29F010B with code I was able to read out of it. It is 147 pages of hex. Does anyone know how to convert (disassemble) this to a readable format. The code is loaded into a Motorolla ZCM916X1C microcontroller.
Hi, you could write a simple program to do that on your pc but there would be little point, an undocumented assy program is a nightmare to try and decode, you would need a really good reason to attempt it.
What does this device do? I guess the reason some of us have been hesistant on giving advice retrieving potentially proprietary information is b/c we don't want to help anybody break the law. I'm sure that you wouldn't be doing such a thing, but the voice of experience requires us to ask these questions!
You are correct, it is not illegal to disassemble code, but if you are trying to reverse engineer engine strategy you can get in a LOT of legal trouble. If you decide that you want to "reverse engineer" the code that runs your car and you "improve it" and end up causing an accident because you didn't know what you were doing, then you are know legally responsible for it because you messed it up. However, if the vehicle manufacturer wrote the code that caused the accident, then they are at fault. So please don't assume that just because it is technically feasible, that it should be done without asking questions first!!!
You have no legal problem -- you have his prior job.
Can't you contact him ? professionals usually feel responsible for what they stated.
If not:
Can't you find his ASSY files ? Assemble them and compare with the HEX file to identify.
What does the program do ? <nbucska@pcperipherals.com>
I am confused. I know where the code for my vehicle was generated. Heck, I know who actaully wrote the code, but how does that protect me if I decide to go in and modify it?
I have reread these posts several times, and my question still seems valid. The person who wrote the code for my vehicle has left his job, but I still can try to reverse engineer it. I don't want to insult anyone, but you guys have to stop being so darn sensitive. If you ask for help in a public forum, then don't be surprised if someone asks you a question that you weren't expecting. I feel that I go out of my way to help people. When I try to verify that I am not contributing to unethical practices, I feel that this line of questioning is perfectly legitimate.
What would you say if some student asked you to do his homework? There is no law saying that you have to perform your own schoolwork. Just because the is no law preventing you from doing it, I would hope that you would exercise your moral obligation to not only the student, the institution , and all of the alumni of that institution, that you would NOT contribute to the degredation of the accomplishment. Obviously, this is not a popular opinion, and I must be crazy for thinking these things.
The answer to the orignal post is, write your own program based on the instruction set for the microprocessor that is being used. This should be trivial based on the fact that EVERY INSTRUCTION AND ADDRESSING MODE IS DEFINED. Therfore, all you have to do is read in the hex/binary/etc. file and convert the opcodes / operands. Unfortunately, like it has already been posted, this will result in uncommented code that will be very difficult to troubleshoot. In addition, all variables will show up as hex values (addresses of the register location).
Hopefully, this will get you started. If you still can't do it, send me a copy of your hex file and what type of micro that you are using and I can come up with it.
I don't think it is guilty to study on other people's work. We can learn from other people under the respect of the original. The similar case happened on the IBM PC bios. Finally, the reverse engineering is legal.
Regarding to your question, the program you need is the "universal dis-assembler". Some of them can let you enter a table to map the command, addressing mode and register name.
I have some general search machines and found a lot. Some of them are freeware. You can try.
Some hints may be useful for you. Draw the circuit diagram related to the EEROM to make sure the data bus and address bus are connected as sequence. When I work with the In Circuit Emulator, I found I can read the code from a computer board by the ICE but the dis-assembler fail to work because the computer board has swap the pin of the data bus and address bus. Also, my friend told me a story that the found a Z80 CPU with a data decoding ROM to encrypt the program and data.
Those techniques are simple but effective because most of the people assume the lay out on the CPU will use the standard one.
Hi lkm, that reminds me of a device I reverse engineered about 10 years ago which used a 8049 micro with eprom. They had scrambled the order of both the address and data lines between the micro and the eprom. I had to build a custom adapter socket to go between the eprom and the eprom-reader before I could figure out what was in the eprom.
Yes, it is a very easy, so it is common, trick. If I face your situration, I'll write a simple program to re-arrange the data and not going to hardware.
All the computer can make it very soon to verifly the result.