2024年4月6日发(作者:)
通过符号表找到系统未导出的函数地址源码
作 者: FlyToTheSpace
时 间: 2007-12-09,19:24
链 接: /?t=56284
说明:第一步设置符号表路径.比如 E:WINDOWSsystem32Symbols
第二步指定系统动态库,比如
第三步指定系统库函数名比如ValidateHwnd.
如果调用成功的话,返回值就为未导出的库函数地址.
例外说明.使用ollydbg设置好了符号表路径,好像是没有效果.
只有把符号文件放到系统目录system32symbols里面才能加载.
class ProcedureAddrRetrieve
{
public:
ProcedureAddrRetrieve(TCHAR *PdbSearchPath,DWORD _Options = NULL);
~ProcedureAddrRetrieve();
BOOL LoadSymbol(TCHAR *DllName);
BOOL EnumSymbol(TCHAR *pSearchMask = NULL);
DWORD64 RetrieveAddr(TCHAR *_szProcedureName);
protected:
private:
BOOL GetFileSize( const TCHAR* pFileName, DWORD& FileSize );
static BOOL CALLBACK EnumSymbolsCallback( SYMBOL_INFO*
ULONG SymbolSize, PVOID UserContext );
DWORD64 ModBase64;
char szProcedureName[MAX_PATH];
DWORD64 Address;
};
pSymInfo,


发布评论