Page 1 of 3

HC16 module for IDA Pro 4.7.0.830

PostPosted: Wed May 18, 2005 10:46 am
by cboles
Here is a HC16 dissasembler module for IDA Pro 4.7.0.830 that I wrote.

If you just need to use the module:

* download ida47hc16.zip
* copy the hc16.cfg file to your \Program Files\IDA47\cfg dir
* copy the hc16.w32 file to your \Program Files\IDA47\procs dir
* the module will appear as "Freescale HC16 series: 68HC16" in the processor type list

If you want to compile / change the source

* download srcida47hc16.zip
* unpack it wherever you like
* IDA 4.7 should be installed in C:\Program Files\IDA47 for the post build step to place the hc16.w32 file in C:\Program Files\IDA47\procs
* copy the hc16.cfg file to your \Program Files\IDA47\cfg dir
* use Visual Studio 7 to open the ida\module\hc16\hc16.sln file
* build away!

notes:

* this version does not support any smart tracking of the index register values - i'm working on that feature, but don't completey understand how to best implement this in IDA. if you have experience with this and can help, please contact me.

* there is an intentional non-standard ordering of operands for the BRCLR and BRSET opcodes. this is becaise IDA doesn't seem to follow branches if the code addresses are in an operand position greater than 3 (which happens when you use indirect addressing with X, Y, and Z). as a fix, i turned what should be:

BRCLR yOffset, Y, #bitmask, branchaddress

and changed it to

BRCLR yOffset, Y, branchaddress, #bitmask

PostPosted: Wed May 18, 2005 12:49 pm
by NeverLies
Nice Colby ;) Thanks for this !

PostPosted: Thu May 19, 2005 10:16 pm
by calvinc
thanks colby

PostPosted: Mon May 23, 2005 6:07 pm
by crazymikie
Anyone care to write up a crash course in IDA?

It's not exactly intuitive :(


Mike

HC916Y5 peripheral register map

PostPosted: Fri Jun 24, 2005 10:04 pm
by JonnyM
Colby,

this CPU seems to have some non-standard peripherals for which I can't find any documentation at Freescale.

I'm quite familiar with Motorola CPU's all the way from 6800 :lol:
but can't find any suitable modules matchin my disassembly.

Could you give some explanations to the peripherals in use and possibly post a register map ?

An .idc of the peripheral area would of course be extremely appreciated 8)

/Jonny

PostPosted: Fri Jul 08, 2005 3:03 pm
by DaveImpreza
Those plugins don't work with Ida Pro 4.8.0.487, i get the error :

"IDA Kernel and IDP module ....\hc16.w32 are not compatible"

PostPosted: Fri Jul 08, 2005 6:12 pm
by Spiider
Works fine with my IDAPro v4.7.

PostPosted: Fri Jul 08, 2005 6:37 pm
by cboles
There is probably a new SDK for 4.8. You could probably install that and recompile, and it would work with your version.

DaveImpreza wrote:Those plugins don't work with Ida Pro 4.8.0.487, i get the error :

"IDA Kernel and IDP module ....\hc16.w32 are not compatible"

PostPosted: Sat Jul 09, 2005 7:05 am
by DaveImpreza
I've found a 4.7.0 version and it work.

Now.. he ask me for the entry point after the initial analisys.
How to find it ?

Tnx
Dave

PostPosted: Fri Oct 07, 2005 7:02 pm
by evo
DaveImpreza wrote:I've found a 4.7.0 version and it work.

Now.. he ask me for the entry point after the initial analisys.
How to find it ?

Tnx
Dave


Yes
any pointers/info would be great here!

PostPosted: Fri Dec 09, 2005 5:55 am
by NeverLies
Someone compiled it for 4.8 ?

PostPosted: Fri Dec 09, 2005 10:56 am
by cboles
I think someone mentioned compiling it for 4.8 and that it worked. I can't remember who though.

PostPosted: Fri Dec 09, 2005 11:41 am
by NeverLies
Does someone has started something with 4.7 ? So we may create a thread as we need to understand ECU behavior right now ;)

PostPosted: Tue Jan 31, 2006 5:36 am
by Kha0S
What entry points are you guys using?

PostPosted: Tue Jan 31, 2006 11:27 am
by cboles
for which ROM? if you read up on the CPU datasheets, you fill see the format of the interrupt vector table described. the vector table holds the addresses, or values for SP, and other things. for example, if i look at a 2002 WRX ROM, like A4SGD10C, i see the following entry points:

0x220
0x8F6
0x240
0x252
0x264
....

Colby