能力值:
(RANK:350 )
|
-
-
2 楼
开始理解错了。
你加密前,先将被加密代码设成可读写。
MEMORY_BASIC_INFORMATION mbi_thunk;
VirtualQuery(pData, &mbi_thunk, sizeof(MEMORY_BASIC_INFORMATION));
VirtualProtect(mbi_thunk.BaseAddress,mbi_thunk.RegionSize,PAGE_READWRITE, &mbi_thunk.Protect);
//此处调用你的函数:CryptMemRange(DWORD dwMemBase, DWORD dwMemSize)
DWORD dwOldProtect; VirtualProtect(mbi_thunk.BaseAddress,mbi_thunk.RegionSize, mbi_thunk.Protect, &dwOldProtect);
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
DLL导出函数CryptMemRange(DWORD dwMemBase, DWORD dwMemSize)
在应用程序中调用它是为了加密应用程序自身的内存
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
程序执行时我用Winhex查看调用时的 dwMemBase 位置的内存
在VC环境中执行后就OK,否则就不行,我是把程序代码区的属性改为执行/读写的
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我是这样写的,在VC环境中执行是对的
就是单独执行不行.
|
能力值:
(RANK:350 )
|
-
-
6 楼
OD单步跟一下,看看哪步出问题了。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
感谢提醒,问题前几天找到了,嘿嘿,是构造的密钥文件放错路径了,导致DLL不能成功加载
不过很奇怪,在开发环境里执行却没有问题??????
|
|
|