資源簡介
原理就是Load ,保存一份,Free,把備份的粘貼回來,就斷鏈了,這樣做的好處是方便。斷鏈也是可以的。
代碼片段和文件信息
#include?“HideDLL.h“
#include?
DWORD?g_dwImageSize?=?0;
VOID*?g_lpNewImage?=?NULL;
/************************************************************************/
/*?把當前進程的所有DLL都使用LoadLibrary再次加載一邊,增加引用計數, */
/*?使得Free時對應的DLL資源不釋放????????????????????????????????????????????*/
/************************************************************************/
VOID?LockAllModules()
{
HANDLE?hSnapshot?=?CreateToolhelp32Snapshot(TH32CS_SNAPMODULE?GetCurrentProcessId());?
if?(hSnapshot?!=?INVALID_HANDLE_VALUE)?
{?
MODULEENTRY32?me?=?{sizeof(me)};??
BOOL?fOk?=?Module32First(hSnapshot?&me);??
for?(fOk?=?Module32Next(hSnapshot?&me);?fOk;?fOk?=?Module32Next(hSnapshot?&me))
{?
//跳過第一個(自身)
LoadLibrary(me.szModule);
}
}
}
BOOL?CopycatAndHide(HMODULE?hDll)
{
IMAGE_DOS_HEADER?*?pDosHeader;
IMAGE_NT_HEADERS?*?pNtHeader;
IMAGE_OPTIONAL_HEADER?*?pOptionalHeader;
LPVOID?lpBackMem?=?0;
DWORD?dwOldProtect;
DWORD?dwCount?=?30;
pDosHe
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-07-29?10:52??TestAP\
?????文件????????2110??2014-07-29?10:43??TestAP\HideDLL.cpp
?????文件??????????94??2014-07-29?10:22??TestAP\HideDLL.h
?????文件?????????576??2014-07-29?10:48??TestAP\main.cpp
?????文件????????4027??2014-07-29?10:25??TestAP\TestAP.vcxproj
?????文件????????1170??2014-07-29?10:25??TestAP\TestAP.vcxproj.filters
?????文件?????????143??2014-07-29?10:11??TestAP\TestAP.vcxproj.user
?????目錄???????????0??2014-07-29?10:52??TestDL\
?????文件?????????177??2014-07-29?10:10??TestDL\TestDL.cpp
?????文件?????????244??2014-07-29?10:18??TestDL\TestDL.h
?????文件????????4039??2014-07-29?10:08??TestDL\TestDL.vcxproj
?????文件????????1077??2014-07-29?10:08??TestDL\TestDL.vcxproj.filters
?????文件?????????143??2014-07-29?10:03??TestDL\TestDL.vcxproj.user
評論
共有 條評論