-
-
[求助]小白一枚,最近在破解软件试用期的问题,GetSystemTimeAsFileTime
-
发表于:
2018-7-28 09:52
5658
-
[求助]小白一枚,最近在破解软件试用期的问题,GetSystemTimeAsFileTime
本人小白最近在破解软件试用期的问题,通过OD调试是可以看到软件是调用GetSystemTimeAsFileTime函数来获得系统时间。通过OD在调试时修改返回值是可以解决过期的问题。因此,编写了Hook函数用于对GetSystemTimeAsFileTime这个API进行钩取,修改返回值。编译生成DLL之后,将DLL注入到程序中发现并没有发生钩取,是我的HOOK程序有问题吗?请各位前辈解答一下。
还有就是我用CFF将dll导入到程序之后,用OD对程序进行调试,中间过程会出现 “应用程序无法正常启动0x0000142”这是为什么?
#include "stdafx.h"
#include "detours.h"
#pragma comment(lib, "detours.lib")
#pragma warning(disable : 4098)
static void (WINAPI* PFGETSYSTEMTIMEASFILETIME)
(LPFILETIME lpSystemTimeAsFileTimee) = GetSystemTimeAsFileTime;
void WINAPI NewGetSystemTimeAsFileTime(
LPFILETIME lpSystemTimeAsFileTime)
{
GetSystemTimeAsFileTime(lpSystemTimeAsFileTime);
lpSystemTimeAsFileTime->dwHighDateTime = 111111;
lpSystemTimeAsFileTime->dwLowDateTime = 111111;
}
VOID Hook()
{
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourTransactionCommit();
DetourAttach(&(PVOID&)PFGETSYSTEMTIMEASFILETIME, NewGetSystemTimeAsFileTime);
}
__declspec(dllexport) VOID ExportFuncForSetDll(VOID)
{
}
VOID UnHook()
{
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourTransactionCommit();
DetourDetach(&(PVOID&)PFGETSYSTEMTIMEASFILETIME, NewGetSystemTimeAsFileTime);
}
void APIENTRY DllMain(HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
{
Hook();
}
else if (ul_reason_for_call == DLL_PROCESS_DETACH)
{
UnHook();
}
}
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2018-7-29 17:49
被幸运的张小超编辑
,原因: 没有添加上文字