能力值:
( LV2,RANK:10 )
|
-
-
26 楼
暂时看不懂哦,先支持了再说啊
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
同问 这样都可加精?
msdn上关于dbghelp的资料不少吧?
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
我正在找这资料你就发了。。。。。。怎么这样呢
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
mark 之
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
mark
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
mark
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
[QUOTE=organic;1194444]还在为找内核未导出函数地址而苦恼嘛?
还在为硬编码通用性差而不爽吗?
还在为暴搜内核老蓝屏而痛苦吗?
请看这里:
赶脚楼主以前做广告的啊。
|
能力值:
( LV2,RANK:10 )
|
-
-
33 楼
求拜师。。。
|
能力值:
( LV3,RANK:20 )
|
-
-
34 楼
Make 备用
|
能力值:
( LV2,RANK:10 )
|
-
-
35 楼
WPE就用到了这个方法
|
能力值:
( LV2,RANK:10 )
|
-
-
36 楼
在我这SymEnumSymbols可用,Win7 64位.贴个C++的版本
#include "stdafx.h"
#include <Windows.h>
#include <imagehlp.h>
#include <locale.h>
#pragma comment(lib,"DbgHelp.lib")
BOOL CALLBACK CallBackProc( PSYMBOL_INFO pSymInfo, ULONG SymbolSize, PVOID UserContext )
{
printf( "函数名: %s\r\n地址: %08X \r\n\r\n", pSymInfo->Name, pSymInfo->Address );
return TRUE;
}
char* UnicodeToAnsi( const wchar_t* szStr, char* szDest )
{
int nLen = WideCharToMultiByte( CP_ACP, 0, szStr, -1, NULL, 0, NULL, NULL );
if ( nLen == 0 )
{
return NULL;
}
char* pResult = new char[nLen];
WideCharToMultiByte( CP_ACP, 0, szStr, -1, pResult, nLen, NULL, NULL );
strcpy( szDest, pResult );
delete pResult;
return szDest;
}
BOOL GetSymbol( LPCTSTR FileName )
{
HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId() );
CloseHandle( hProcess );
if ( !SymInitialize( hProcess, NULL, FALSE ) )
{
return FALSE;
}
DWORD dwOpt = SymGetOptions();
SymSetOptions( dwOpt | SYMOPT_DEFERRED_LOADS | SYMOPT_UNDNAME | SYMOPT_CASE_INSENSITIVE );
char sFileName[MAX_PATH] = {0};
UnicodeToAnsi( FileName, sFileName );
DWORD64 dwSymModule = SymLoadModuleEx( hProcess, NULL, sFileName, NULL, 0, 0, NULL, 0 );
if ( 0 == dwSymModule )
{
SymCleanup( hProcess );
return -1;
}
if ( !SymEnumSymbols( hProcess, dwSymModule, 0, ( PSYM_ENUMERATESYMBOLS_CALLBACK )CallBackProc, NULL ) )
{
SymCleanup( hProcess );
return -1;
}
return SymCleanup( hProcess );
}
int _tmain( int argc, _TCHAR* argv[] )
{
const TCHAR* sDllPath = _T( "C:\\Windows\\System32\\WS2_32.DLL" );
if ( !GetSymbol( sDllPath ) )
{
return -1;
}
getchar();
return 0;
}
|
能力值:
( LV9,RANK:780 )
|
-
-
37 楼
mark
|
能力值:
( LV2,RANK:10 )
|
-
-
38 楼
http://msdn.microsoft.com/zh-cn/library/ms679291.aspx
|
能力值:
( LV4,RANK:50 )
|
-
-
39 楼
不错,可以看看
|
能力值:
( LV2,RANK:10 )
|
-
-
40 楼
getcurrentprocess返回的不是id么
|
能力值:
( LV4,RANK:50 )
|
-
-
41 楼
。。符号。。。。。 支持,符号要网络支持。。追求效率的人儿可以略过。。。哈
|
能力值:
( LV2,RANK:10 )
|
-
-
42 楼
mark
|
能力值:
( LV2,RANK:10 )
|
-
-
43 楼
占楼占楼,暴力抗拆
|
能力值:
( LV2,RANK:10 )
|
-
-
44 楼
谢谢
很不错
|
能力值:
( LV2,RANK:10 )
|
-
-
45 楼
mark,mark~
|
能力值:
( LV2,RANK:10 )
|
-
-
46 楼
我按照你的方法用C++写了一个
最后卡在SymGetSymFromName
GetLastError找不到模块!
|
能力值:
( LV2,RANK:10 )
|
-
-
47 楼
好东西,留着以后用
|
能力值:
( LV4,RANK:50 )
|
-
-
48 楼
联网获取符号文件并解析
|
能力值:
( LV2,RANK:10 )
|
-
-
49 楼
我想起了DIA,不过是RING3的COM的东西。
|
能力值:
( LV5,RANK:60 )
|
-
-
50 楼
先mark,以备后用
|
|
|