這是一個內置於Windows的DLL,odbc32.dll。該功能被稱爲LoadTraceDll()如果我有它的符號,如何找到參數簽名並在DLL中調用未導出的方法?
在Visual Studio 2008將StackFrame是:
ODBC32.DLL LoadTraceDll()+ 0x42f字節
我已經使用了PE分析器和我在odbc32.dll的導出列表中沒有看到。
我的問題如下:
- 如何確定的參數類型和返回類型(方法簽名)?
- 我該如何稱呼它?我可以避免調用它的相對地址嗎?
完整的堆棧跟蹤如下:
ODBCTracer.dll!TraceVersion() Line 2259 C++
odbc32.dll!LoadTraceDll() + 0x42f bytes
odbc32.dll!FInitTrace() + 0xf3 bytes
odbc32.dll!DllMain() + 0x14692 bytes
odbc32.dll!_CRT_INIT() - 0x3e3 bytes
ntdll.dll!LdrpRunInitializeRoutines() + 0x1e8 bytes
ntdll.dll!LdrpLoadDll() - 0x336 bytes
ntdll.dll!LdrLoadDll() + 0x9e bytes
KernelBase.dll!LoadLibraryExW() + 0x13f bytes
odbccp32.dll!LoadDM() + 0x2a bytes
odbccp32.dll!TracingPageProc() + 0xc46 bytes
user32.dll!UserCallDlgProcCheckWow() - 0x180d bytes
user32.dll!DefDlgProcWorker() + 0xba bytes
user32.dll!DefDlgProcW() + 0x36 bytes
user32.dll!UserCallWinProcCheckWow() + 0x11d bytes
user32.dll!InternalCreateDialog() - 0xc7 bytes
user32.dll!CreateDialogIndirectParamAorW() + 0x5b bytes
user32.dll!CreateDialogIndirectParamW() + 0x18 bytes
comctl32.dll!_CreatePageDialog() + 0xb1 bytes
comctl32.dll!_CreatePage() + 0x161 bytes
comctl32.dll!PageChange() + 0xca bytes
comctl32.dll!PropSheetDlgProc() + 0x36e bytes
user32.dll!UserCallDlgProcCheckWow() + 0x11b bytes
user32.dll!DefDlgProcWorker() + 0xba bytes
user32.dll!DefDlgProcW() + 0x36 bytes
user32.dll!UserCallWinProcCheckWow() + 0x11d bytes
user32.dll!SendMessageWorker() + 0x158 bytes
user32.dll!SendMessageW() + 0x5d bytes
comctl32.dll!CCSendNotify() + 0xfbd bytes
comctl32.dll!SendNotifyEx() + 0x80 bytes
comctl32.dll!ChangeSel() + 0x2dc bytes
comctl32.dll!Tab_OnLButtonDown() + 0xfc bytes
comctl32.dll!Tab_WndProc() + 0x56d bytes
user32.dll!UserCallWinProcCheckWow() + 0x11d bytes
user32.dll!DispatchMessageWorker() + 0x12a bytes
user32.dll!IsDialogMessageW() + 0x102 bytes
comctl32.dll!Prop_IsDialogMessage() + 0x1f0 bytes
comctl32.dll!_RealPropertySheet() + 0x31b bytes
comctl32.dll!_PropertySheet() + 0x55 bytes
odbccp32.dll!MainSheet() + 0x18c bytes
odbccp32.dll!SQLManageDataSources() + 0x4b bytes
odbcad32.exe!WinMain() + 0x25b bytes
odbcad32.exe!ODBC___GetSetupProc() + 0x4ae bytes
kernel32.dll!BaseThreadInitThunk() + 0xd bytes
ntdll.dll!RtlUserThreadStart() + 0x21 bytes
這就是我所害怕的。 –
@JustinDearing如果你想有方法簽名,切換到Objective-C和類轉儲庫被反向工程:P – 2012-09-06 21:33:15
(無論如何,iOS開發比Windows更酷...) – 2012-09-06 21:33:34