here is a way how to log the functionnames + offsets
for example i use i3SceneDx.dll
Code:
.rdata:101B9E14 dd 1803h ; NumberOfFunctions
.rdata:101B9E18 dd 1803h ; NumberOfNames
.rdata:101B9E1C dd rva off_101B9E28 ; AddressOfFunctions
.rdata:101B9E20 dd rva off_101BFE34 ; AddressOfNames
.rdata:101B9E24 dd rva word_101C5E40 ; AddressOfNameOrdinals
Code:
DWORD dwFunction = (dwi3SceneBase + 0x1B9E28);
DWORD dwNames = (dwi3SceneBase + 0x1BFE34);
for(int i=0; i<6147/*1803 decimal*/; i++)
{
DWORD dwFunc = *(DWORD*)(dwFunction + (i*0x4))+dwi3SceneBase;
char* Name = (char*)(*(DWORD*)(dwNames + (i*0x4)) + dwi3SceneBase);
Log("[%s] = [0x%x]", Name, dwFunc );
}
piece of my log
Code:
[??0i3Body@@QAE@ABV0@@Z] = [0xa431a0]
[??0i3Body@@QAE@XZ] = [0xaa15c0]
[??0i3BoneRef@@QAE@ABV0@@Z] = [0xa43360]
[??0i3BoneRef@@QAE@XZ] = [0xa439e0]
[??0i3Camera@@QAE@ABV0@@Z] = [0xa327f0]
[??0i3Camera@@QAE@XZ] = [0xa451d0]
[??0i3ClearRenderTargetAttr@@QAE@ABV0@@Z] = [0xa323e0]