Reverse Engineering Assembly Code

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Reverse Engineering Assembly Code

Jump to solution
5,171 Views
Arindam
Contributor I

We are into a project of reverse engineering assembly code based on 68HC11E platform. Any pointers or tools to ease the process would be very helpful.

 

TIA.

 

Regards.

Labels (1)
0 Kudos
1 Solution
1,812 Views
tonyp
Senior Contributor II

There are various tools for this job, but none (AFAIK) is capable of doing the complete work fully unassisted.

 

Shadow11 is one possibility.  It has a very simple disassemble option which assumes all code is linear.  After that you're on your own.

 

SIM11E (a simulator from P&E) is another possibility.  Although not a code-seeking disassembler per se, it can be made into one by using the LF (LOGFILE) and LISTON options with the STEP/STEPFOR commands.  Make sure you follow all possible paths in your program (by manually adjusting CCR or PC as needed.  The resulting logfile (when stripped from the register contents will leave addresses and instructions in this format:

 

 

PC:D016 [LDAA #93]PC:D018 [STAA OPTION]PC:D01B [CLR TMSK2]PC:D01E [CLR BPROT]PC:D021 [LDS #5F]PC:D024 [BSR SETCHIPSELECTS]

 (Example from modified Buffalo.  Labels won't be available without a MAP file, though.)

 

 

Using a sort program (with the option for keeping only unique lines),  you'll end up with a pretty good disassembly of all code areas.  The remaining S19 data you'll have to understand how the code deals with it.

 

From a simple Google search, these two possibly interesting ones came up:

DHC11 from Tech Edge might help too (I haven't tried that one, so no comment).  It claims to be a code-seeking disassembler.

IDA Pro claims to be most powerful 68hc11 disassembler.  Wouldn't know, I haven't tried it.

 

Be prepared for some heavy work. :smileyhappy:

View solution in original post

0 Kudos
4 Replies
1,813 Views
tonyp
Senior Contributor II

There are various tools for this job, but none (AFAIK) is capable of doing the complete work fully unassisted.

 

Shadow11 is one possibility.  It has a very simple disassemble option which assumes all code is linear.  After that you're on your own.

 

SIM11E (a simulator from P&E) is another possibility.  Although not a code-seeking disassembler per se, it can be made into one by using the LF (LOGFILE) and LISTON options with the STEP/STEPFOR commands.  Make sure you follow all possible paths in your program (by manually adjusting CCR or PC as needed.  The resulting logfile (when stripped from the register contents will leave addresses and instructions in this format:

 

 

PC:D016 [LDAA #93]PC:D018 [STAA OPTION]PC:D01B [CLR TMSK2]PC:D01E [CLR BPROT]PC:D021 [LDS #5F]PC:D024 [BSR SETCHIPSELECTS]

 (Example from modified Buffalo.  Labels won't be available without a MAP file, though.)

 

 

Using a sort program (with the option for keeping only unique lines),  you'll end up with a pretty good disassembly of all code areas.  The remaining S19 data you'll have to understand how the code deals with it.

 

From a simple Google search, these two possibly interesting ones came up:

DHC11 from Tech Edge might help too (I haven't tried that one, so no comment).  It claims to be a code-seeking disassembler.

IDA Pro claims to be most powerful 68hc11 disassembler.  Wouldn't know, I haven't tried it.

 

Be prepared for some heavy work. :smileyhappy:

0 Kudos
1,812 Views
Arindam
Contributor I

Thanks a lot for the help... and for heavy work you bet :smileywink:

0 Kudos
1,812 Views
rere
Contributor I

using IDA pro, youl reduce your time GREATLY..:smileyhappy:

0 Kudos
1,812 Views
Arindam
Contributor I

All,

 

Thanks for earlier suggestions.

 

An additional clarification I had on the same micro is that as it is Freescale doesnt support for any compiler, linker or debugger but is handled by cosmic. Now we have files in .S07 format and the eval versions of IDEA6811 from cosmic doesnt support these formats but only .s source files for assembly.

 

Is there any major difference in the file formats if yes which is the optimized and more mature one and how do we convert them to other formats so as to be enable to compile and link the project. Are there any optimization exercises which can be performed on .S07 file?

 

Any suggestions whatsoever would be very helpful.

 

TIA.

0 Kudos