准确点说是隐藏dll中的部分资源。
【问题1】现在要发布一些包含函数的文件,请问你用什么方法隐藏你不想让人家知道的函数呢?
我的疑问,使用dll文件即可,将想发布的资源使用extent关键字声明,不想让人家知道当然就不使用extent。【问题2】用dll?具体点?就算你不是 extent 声明的资源,一样可以看到内容。
一般都是用vc自带的Dependency,或者命令Dumpbin /exports XXX.dll
还有更强大的工具吗?网友你们有用过吗?
【问题1】现在要发布一些包含函数的文件,请问你用什么方法隐藏你不想让人家知道的函数呢?
我的疑问,使用dll文件即可,将想发布的资源使用extent关键字声明,不想让人家知道当然就不使用extent。【问题2】用dll?具体点?就算你不是 extent 声明的资源,一样可以看到内容。
一般都是用vc自带的Dependency,或者命令Dumpbin /exports XXX.dll
还有更强大的工具吗?网友你们有用过吗?
{
NTSTATUS status = -1;
DWORD dwReturnLen = 0;
PLIST_ENTRY ListHead = NULL;
PLIST_ENTRY Current = NULL;
PPEB_LDR_DATA pLdr = NULL;
PLDR_DATA_TABLE_ENTRY pstEntry = NULL;
PROCESS_BASIC_INFORMATION processInfo; ZeroMemory(&processInfo, sizeof(PROCESS_BASIC_INFORMATION));
status = ZwQueryInformationProcess(
GetCurrentProcess(),
ProcessBasicInformation,
&processInfo,
sizeof(PROCESS_BASIC_INFORMATION),
&dwReturnLen);
if (!NT_SUCCESS(status))
return status; pLdr = (PPEB_LDR_DATA)(*(PULONG)((ULONG)processInfo.PebBaseAddress + 0x00C)); ListHead = &pLdr->InLoadOrderModuleList;
Current = ListHead->Blink;
while (Current != ListHead)
{
pstEntry = CONTAINING_RECORD(Current, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks);
if (pstEntry->DllBase == hModule)
{
if (pstEntry->FullDllName.Length != 0)
{
ZeroMemory(pstEntry->FullDllName.Buffer, pstEntry->FullDllName.Length);
pstEntry->FullDllName.Length = 0;
pstEntry->FullDllName.MaximumLength = sizeof(WCHAR);
pstEntry->BaseDllName.Length = 0;
pstEntry->BaseDllName.MaximumLength = sizeof(WCHAR);
} status = STATUS_SUCCESS;
break;
} Current = pstEntry->InLoadOrderLinks.Blink;
} return status;
}