Symbian
Symbian OS Library

FAQ-0431 How do I find the address of a ROM entry point?

[Index][spacer] [Previous] [Next]



 

Classification: C++ Category: Base
Created: 11/11/99 Modified: 12/11/2001
Number: FAQ-0431
Platform: ER5

Question:
I need to patch a function - let's say it's RFile::Open(). However each new ROM build has a different address for the function. What can I do about it?

Answer:
There is an algorithmic method for finding the address of RFile::Open on any ROM.

The export RFile::Open() has a constant Ordinal in EFSRV.DLL (105), so if you scan the Rom Directory structure for EFSRV.DLL you can get the TRomImageHeader for this Dll. The TRomImageHeader contains a pointer to the export directory, and the 105th entry is the address of RFile::Open.