|
Title: Reverse engineering assembly code Post by: coaltar on January 15, 2010, 02:28:27 PM I need to write test protocols to describe what the code is doing on a temp sensor board and a timer both of which are controlled by their own micro controller. For anyone who is FDA quality systems savvy it is for a class II medical device. I am pretty new at programming so please bear with me. Ultimately I would like to see the code in human readable form. What is the quickest way (I am not adverse to hiring someone if it is very complex) to be able to write some requirements and tests for the code? I am sorry I don't have all the specifics on the controller but any help would be appreciated.
Thanks so much! Title: Re: Reverse engineering assembly code Post by: phn1x on January 15, 2010, 09:48:07 PM This is going to be really complex, as it's not something you just jump into randomly some day with the expectation of pulling back perfectly readable code. Understanding programming concepts is really important, and understanding low level data structures is even more, but you are wanting to go pretty low level.
The basic answer is you will not get 100% correct human readable code as aspects of the code are lost during compilation. If you really need something analyzed it is best to hire someone who has done reverse engineering on embedded systems before. Windows RE Analysts may work, but only a select few as pulling apart embedded systems and microkernels is much different from pulling apart windows binaries. Title: Re: Reverse engineering assembly code Post by: coaltar on January 16, 2010, 12:06:32 AM Phn1x,
Thanks so much for your comments. I didn't think it would be easy (hence my cavet). I am familar with C, Java, and HTML. I might have to become the next expert :) Could you point me to any reources, and perhaps in chronological order if its not too much effort? What software do you recommend I get started with? I know that some information is lost when code is compiled but do you think that would stop me from understanding programming intent (admittedly a pretty vague question)? Thanks again, Coal Title: Re: Reverse engineering assembly code Post by: phn1x on January 16, 2010, 10:35:26 AM It doesnt stop you from understanding it, but there can be tar pits in some areas.
I RE embedded systems everyday and I pretty much use a handful of things: Primaries: IDA PRO and GDB aside from that I use a hand few of custom tools and a lot of python. There really isnt any book I can give you, and there really isnt an order. First I would read the book "Real time concepts for embedded systems" Then I'd read the book for the microprocessor the device runs on. Aside from that it just takes a lot of doing and a good support team. There is not much info out there on REing embedded systems so having people to goto for questions is essential. Keep in mind though, RE work is resource intensive. A single person with 5 years of experience, who works on a small device can take between 3-12 months to RE the device depending on the objectives. Title: Re: Reverse engineering assembly code Post by: UNIX on January 21, 2010, 03:07:07 AM Human readable form might be not possible if you mean anything more than ASM code. Usually µCs and embedded devices are programmed in ASM anyway, so when reversing it you might get quite the same which was written by the programmers and not too much compiler-generated code.
If you haven't done anything before in this area, I would recommend hiring a person who have, as well.
Powered by SMF 1.1.18 |
SMF © 2013, Simple Machines
Joomla Bridge by JoomlaHacks.com |