首页
社区
课程
招聘
[求助]小白一枚,最近在破解软件试用期的问题,GetSystemTimeAsFileTime
发表于: 2018-7-28 09:52 5658

[求助]小白一枚,最近在破解软件试用期的问题,GetSystemTimeAsFileTime

2018-7-28 09:52
5658

本人小白最近在破解软件试用期的问题,通过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 被幸运的张小超编辑 ,原因: 没有添加上文字
上传的附件:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2058
活跃值: (1621)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2

DetourAttach(&(PVOID&)PFGETSYSTEMTIMEASFILETIME, NewGetSystemTimeAsFileTime);
再 
DetourTransactionCommit();
2018-7-28 10:42
0
雪    币: 22
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我试了一下,还是有问题
2018-7-28 10:52
0
雪    币: 2058
活跃值: (1621)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
2018-7-28 11:47
0
雪    币: 22
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我按照这个改了过来,但是我用CFF explore将dll文件注入到用来测试的HookTest.exe中,运行exe文件出现了无法启动应用程序,应该很大可能是生成的dll有问题。我把编写生成DLL文件的HookTime工程,和用来测试的HookTest项目上传上来,麻烦前辈大佬帮忙看下,是哪里出问题了。
2018-7-29 17:49
0
游客
登录 | 注册 方可回帖
返回
//