能力值:
( LV8,RANK:130 )
|
-
-
2 楼
代码看了,但没有看懂有什么用,
MyLoadLibrary proc pDllName : dword LOCAL @dKernelBase : dword ;;获得 kernel32.dll的基址 xor eax, eax assume fs : nothing mov eax, fs : 30h ;add eax, 30h mov ebx, [eax] ; Get PEB mov eax, [eax + 0ch] ; Get _PEB_LDR_DATA mov eax, [eax + 1ch] ; Get InInitializationOrderModuleList mov eax, [eax] mov eax, [eax + 08h] ;Kernel32.dll的imageBase mov @dKernelBase, eax ;;获得LoadLibrary的地址 invoke MyGetProcAddress,@dKernelBase, addr g_szLoadLibrary ;;调用LoadLibrary push pDllName call eax ret MyLoadLibrary endp
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
看来是真没什么用 那就权当是对知识的总结吧
|
能力值:
( LV13,RANK:240 )
|
-
-
4 楼
获取loadLibrary的地址然后调用?这有什么用?
2楼的意思是 自己实现LoadLibrary这个函数。
|
能力值:
( LV4,RANK:55 )
|
-
-
5 楼
楼主的意思可能就是导入表中隐藏掉loadlibary吧。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
好吧,我路过,我看标题进来了
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
楼主标题党了。。
|
能力值:
( LV3,RANK:25 )
|
-
-
8 楼
改成自定义 GetProcAddress 更适合
|
能力值:
(RANK:10 )
|
-
-
9 楼
呵呵,我是向老师们学习的,非常感谢老师分享
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
lz好无聊!
FARPROC CommonObject::MyGetProcAddress(CString dllName, CString funName)
{
FARPROC lp = NULL;
HMODULE dll = LoadLibrary(dllName);
if (!dll)
{
showLogEx(false,"LoadLibrary:%s 错误",(LPSTR)(LPCTSTR)dllName);
}
else
{
//showLogEx(false,"LoadLibrary:%s 成功",(LPSTR)(LPCTSTR)dllName);
FARPROC tmp = GetProcAddress(dll,funName);
if (tmp)
{
//showLogEx(false,"GetProcAddress:%s 成功",(LPSTR)(LPCTSTR)funName);
lp = tmp;
}
else
{
showLogEx(false,"GetProcAddress:%s 错误",(LPSTR)(LPCTSTR)funName);
}
//FreeLibrary(dll);
}
return lp;
}
|
能力值:
( LV5,RANK:70 )
|
-
-
11 楼
lz是想自己实现这两个函数的实现方法吧,虽然很简单,许多人都会,但实现一下对汇编编程应用还是有好处的。。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
reload = =
|
能力值:
( LV3,RANK:20 )
|
-
-
13 楼
-------------------------------
|
能力值:
( LV4,RANK:50 )
|
-
-
14 楼
路过,留个脚印
|
|
|