How to find entry points ? - General Discussion and Assistance - CHDK Forum  

How to find entry points ?

  • 4 Replies
  • 3070 Views
*

Offline waldo

  • ***
  • 238
How to find entry points ?
« on: 22 / March / 2008, 18:28:23 »
Advertisements
I have read the topics on the Wiki about developing support for a new camera, but I'm wondering if someone could fill me in on a few details...

I know how to take a firmware dump and process if through IDA per the Wiki, but I'm unclear what process people use to find all the needed entry points.  For the manually added addresses in stubs_entry_2.S, for example, how are these addresses found?  Do you run IDA on a dump from a completed port and then find functions in the new camera's firmware that resembles similar functions in the completed port's firmware?  If so, do you just scroll through all the functions in the firmware or are there tricks to using IDA that simplify this?  I'm a newbie to IDA so any tips here would be greatly appreciated.

*

Offline jetzt

  • ****
  • 316
  • [A710IS,(SD200)]
Re: How to find entry points ?
« Reply #1 on: 23 / March / 2008, 05:36:20 »
I'm also that kind of newbie, so please help us!

I used trunk\tools\finsig.exe > stubs.S (small answer I think: copy that file as corresponding stubs to platform\cam\sub\ver-dir)

But how do I find the undiscovered functions, and especially how do I check if the discovered ones?
For comparing with other dumps, how do I search more code than just one line?
Is there another way to find the functions?

BTW. Before  I forget it: stubs_entry.S should be the right place for the finsig generated file.
« Last Edit: 23 / March / 2008, 05:41:41 by jetzt »

*

Offline GrAnd

  • ****
  • 916
  • [A610, S3IS]
    • CHDK
Re: How to find entry points ?
« Reply #2 on: 23 / March / 2008, 09:28:54 »
I do the following:
1) Open two IDA simultaneously. One with a new dump, and the another with a known one.
2) Take an address of a function from stubs.S for a known dump.
3) Go to that address in IDA.
4) Look for function names, strings, call, etc., which could help to identify that function.
5) Search for that signs in the second IDA (with a new dump).
6) GOTO 2) :)
CHDK Developer.

*

Offline jetzt

  • ****
  • 316
  • [A710IS,(SD200)]
Re: How to find entry points ?
« Reply #3 on: 23 / March / 2008, 11:30:37 »
Thanks, I already tried with 3 IDAs, but thanks to my 5,5 year old pc and my non-multitasking-capable mind...

-> I have Problems with step 4.
How can I search for more than one line in IDA?


*

Offline GrAnd

  • ****
  • 916
  • [A610, S3IS]
    • CHDK
Re: How to find entry points ?
« Reply #4 on: 23 / March / 2008, 11:53:10 »
How can I search for more than one line in IDA?

There is the checkbox in the search dialog:
CHDK Developer.

 

Related Topics