能力值:
( LV2,RANK:10 )
|
-
-
2 楼
这个论坛好多的。随便搜一大票!
http://bbs.pediy.com/showthread.php?t=203910
这个类源代码 就是这里:55aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6X3j5h3&6U0P5h3y4G2k6r3g2Q4x3V1k6y4k6h3#2G2M7Y4W2y4L8$3c8#2L8r3f1`.
两个地址都可以下到这个类
这个类就可以搞定 DLL 但要WIN32的DLL 不支持MFC DLL
但可以 MFC.exe 内存加载调用win32的DLL(非MFC DLL文件)
把那类下了 然后添加你工程 你建立个MFC.exe工程 然后把win32.dll加入资源
就是不支持MFC DLL 要是楼主搞定支持MFC DLL 请告诉我啊!
typedef int (WINAPI *PFN_POPMSGBOX)(void);
void LoadDllFromMemAndCallEX()
{
HRSRC hResInfo;
HGLOBAL hResData;
DWORD dwSize;
PVOID DllResourceModule=NULL;
HMEMORYMODULE hDll;
PFN_POPMSGBOX pfn;
hResInfo = FindResource(NULL,MAKEINTRESOURCE(IDR_MYDLL), "MYDLL"); //资源文件夹和资源名称
if (hResInfo == NULL)
{
printf("无法找到指定的资源!\n");
return ;
}
dwSize = SizeofResource(NULL, hResInfo);
// 装载资源
hResData = LoadResource(NULL, hResInfo);
if (hResData == NULL)
{
printf("无法加载指定的资源!\n");
return ;
}
//锁定资源,并获取指向资源的指针
DllResourceModule=LockResource(hResData);
// 加载
hDll=MemoryLoadLibrary(DllResourceModule); //内存加载
if (hDll==NULL)
{
printf("从内存直接加载Dll失败!\n");
return ;
}
//获取导出的函数的地址
pfn=MemoryGetProcAddress(hDll,"PopCurrentProcPath"); //获取函数地址
if (pfn==NULL)
{
printf("无法获取指定的函数地址!\n");
MemoryFreeLibrary(hDll);
return;
}
//调用导出的函数
pfn();
//printf("调用结束!\n");
if (hDll!=NULL)
{
MemoryFreeLibrary(hDll);
hDll=NULL;
}
}
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
给分分转正呀
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
我是来转正的
|
能力值:
( LV12,RANK:760 )
|
-
-
5 楼
支持MFC DLL的也有,只是大家都觉得,撸起来很蛋痛
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
求传送门! 一直找不到!
|
能力值:
( LV4,RANK:50 )
|
-
-
7 楼
这个可能是你需要的
afaK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6X3j5h3&6U0P5h3y4G2k6r3g2Q4x3V1k6y4k6h3#2G2M7Y4W2y4L8$3c8#2L8r3g2Q4x3V1j5`.
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
MemoryModule不支持加载MFC DLL
原因概括下大概是:
mfc dll有些函数用到了文件名,然而你直接从内存中加载的,没有文件名,然后就不开心了。
77cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4u0W2j5h3c8Q4x3X3g2H3N6h3c8F1i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0%4L8X3I4G2j5h3c8K6z5e0y4Q4x3V1k6K6L8%4g2J5j5$3g2U0L8$3c8W2i4K6u0r3N6$3W2F1k6r3!0%4M7#2)9J5c8X3y4G2L8Y4c8J5L8$3I4Q4x3V1j5K6y4U0R3I4x3o6u0Q4x3V1k6u0L8X3y4Q4x3V1k6d9j5i4N6b7k6f1q4H3K9g2)9J5k6h3S2Q4y4h3k6Q4y4h3k6Q4x3X3g2Z5N6r3@1`.
|
能力值:
( LV6,RANK:90 )
|
-
-
9 楼
inline HMODULE ModuleHandleByAddr(const void* ptrAddr)
{
MEMORY_BASIC_INFORMATION info;
::VirtualQuery(ptrAddr, &info, sizeof(info));
return (HMODULE)info.AllocationBase;
}
inline HMODULE ThisModuleHandle()
{
HMODULE sInstance = ModuleHandleByAddr((void*)&ThisModuleHandle);
return sInstance;
}
HMODULE hInst= ThisModuleHandle();
HRSRC hrsc = FindResource(hInst, MAKEINTRESOURCE(nResID), szFileType);
if (hrsc == NULL)
{
CloseHandle(hFile);
return FALSE;
}
HGLOBAL hG = LoadResource(hInst, hrsc);
DWORD dwSize = SizeofResource(hInst, hrsc);
WriteFile(hFile, hG, dwSize, &dwWrite, NULL); //WriteFile(hFile,LockResource(hG),dwSize,&dwWrite,NULL);
FreeResource(hG);
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
还在做梦幻辅助啊! 梦幻有行为检测 看过你之前帖子 应该还没破解 梦幻的保护吧。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
小菜鸟,学习中,有分赚吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
LOAD的方法,动态加载DLL.
|
|
|