Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

hex code problem

Status
Not open for further replies.

paul51

Electrical
Mar 8, 2002
10
US
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.

Thanks,
Paul
 
Replies continue below

Recommended for you

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.
 
I agree. Is there a reason that you can't just call the person who loaded the flash and ask for the commented code?
 
I do not have access to the person who wrote the code. I am reverse engineering the device.
 
Do you know the hasrdware the code works with ? Perhaps
it would be simpler to (re)write the program in a hi level language.

What is the hardware ? What does it do ? <nbucska@pcperipherals.com>
 
I need to understand how the code works. That is why I am reverse engineering the device.
 
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!
 
The engineer who developed the code quit, and there was not proper documentation. It is my job to reproduce it.
 
Hi, its not illegal to dissaseble code, the only reason i ask is because there has to be an easier way.
 
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 &quot;reverse engineer&quot; the code that runs your car and you &quot;improve it&quot; 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?
 
Hi melone:

Paul51 got the job to reproduce the work done by someone who left. Paul haven't mentioned any vehicle -- you insist
on it.

<nbucska@pcperipherals.com>
 
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.

Good Luck and keep us posted!
 
Hi Paul51,

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 &quot;universal dis-assembler&quot;. 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.

Hope it help.
 
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.
 
Hi Lewish,

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.

This is my style for your reference.

LKM
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top