申明,此文仅此研究学习,私自用于任何商业活动造成的后果,一律无本人无关。
另外:本人想在成都地区找份工作,工作经验也有2-3年了吧,在安全公司做过木马,自己和朋友做过外挂,C++及windows方向的编程都还可以,逆向也懂一点。联系方式: QQ 1536854253 Tel:15659776712
源代码在附件里面
由于看雪,不方便发图片,所以我直接用文字描述了。
废话完毕,正式开说:
今天拿JFZR这个游戏来作为主题游戏。。
1、首先 我们启动游戏的登陆器Client.exe。然后发现进程列表多了3个进程,
TASlogin.exe,
TenioDl.exe,
TenSafe_1.exe
2、然后从任务管理器转到进程发现界面是用Client.exe这个程序提供的。。首先我们用spy++监视这个主窗口的键盘消息,,但是并没有任何发现,所以我大胆猜测,输入用户名和密码不是在这个进程实现的,,
3、打开XT。扫描“应用层勾子->消息勾子->仅显示全局勾子”
发现:
类型 函数 模块 进程路径
WH_KEYBOARD_LL 0x5F5DA645 fszwd.dat D:\疾风之刃\TCLS\TenProtect\TASLogin.exe
由此得知,是由这个进程在输入用户名和密码,,当然后面的分析和测试就不继续说了
4、监视用户名和密码 Edit控件
发现:
用户名控件 是明文
密码控件 是密文
5、OD附加TASlogin.exe。找到勾子函数,发现是各种JMP。能JMP到你头晕。F2下断,就被检测, 对此毫无头绪。。难道就要就此放弃嘛, 为此我还休息过几天,表示没任何办法。。然后过了几天,我突然灵光一现,,他的勾子函数我们不是可以直接利用嘛。
6、利用方法:
对TASLogin.exe注入DLL->然后在DLL中安装勾子->获取用户和密码控件句柄->伪造勾子参数->设置输入焦点->调用勾子函数(伪造的参数)
void InputPwd(TCHAR tch)
{
bool bShift =false;
if( 0x41 <= tch && tch<= 0x5A) //大写字母
bShift=true;
else if( 0x61<=tch && tch<=0x7A) //小写字母
tch -= 0x20;
LowLevelKeyboardProc Proc=(LowLevelKeyboardProc)g_dwCallbackAddr;
if( bShift )
{
pKdb.vkCode = VK_SHIFT;
Proc(nCode,wParamDown,(LPARAM)&pKdb);
}
pKdb.vkCode = tch;
Proc(nCode,wParamDown,(LPARAM)&pKdb);
Proc(nCode,wParamUp,(LPARAM)&pKdb);
if( bShift )
{
pKdb.vkCode = VK_SHIFT;
Proc(nCode,wParamUp,(LPARAM)&pKdb);
}
}
7、后绪的选区分析就不提供了、如果需要我可以联系我本人
好吧,没人看。那我就贴出 登陆结果 部分吧
8、登陆以后,获取登陆结果。。
//获取登陆状态
0476DAF0 55 push ebp ; [esp+4]== 1A9 登陆成功, [esp+4]==0x1AA 登陆失败
0476DAF1 8BEC mov ebp,esp
0476DAF3 6A FF push -0x1
0476DAF5 68 894A8F04 push TCLS.048F4A89
0476DAFA 64:A1 00000000 mov eax,dword ptr fs:[0]
0476DB00 50 push eax
0476DB01 64:8925 0000000>mov dword ptr fs:[0],esp
0476DB08 83EC 68 sub esp,0x68
0476DB0B 53 push ebx
0476DB0C 56 push esi
0476DB0D 57 push edi
0476DB0E 8D4D E8 lea ecx,dword ptr ss:[ebp-0x18]
0476DB11 E8 EA7AFBFF call TCLS.04725600
0476DB16 C745 FC 0000000>mov dword ptr ss:[ebp-0x4],0x0
0476DB1D 66:C745 D0 0000 mov word ptr ss:[ebp-0x30],0x0
0476DB23 33C0 xor eax,eax
0476DB25 8945 D2 mov dword ptr ss:[ebp-0x2E],eax
0476DB28 8945 D6 mov dword ptr ss:[ebp-0x2A],eax
0476DB2B 8945 DA mov dword ptr ss:[ebp-0x26],eax
0476DB2E 8945 DE mov dword ptr ss:[ebp-0x22],eax
0476DB31 8945 E2 mov dword ptr ss:[ebp-0x1E],eax
0476DB34 66:8945 E6 mov word ptr ss:[ebp-0x1A],ax
0476DB38 6A 0A push 0xA
0476DB3A 8D4D D0 lea ecx,dword ptr ss:[ebp-0x30]
0476DB3D 51 push ecx
0476DB3E 8B55 08 mov edx,dword ptr ss:[ebp+0x8]
0476DB41 52 push edx
0476DB42 FF15 181DA704 call dword ptr ds:[<&MSVCRT._itow>] ; msvcrt._itow
0476DB48 83C4 0C add esp,0xC
0476DB4B 68 08020000 push 0x208
0476DB50 68 98A3A604 push TCLS.04A6A398 ; UNICODE ";签名成功"
0476DB55 68 086AA104 push TCLS.04A16A08 ; UNICODE "text"
0476DB5A 8D45 D0 lea eax,dword ptr ss:[ebp-0x30]
0476DB5D 50 push eax
0476DB5E 68 DC69A104 push TCLS.04A169DC ; UNICODE "config\prompt.ini"
0476DB63 8D4D EC lea ecx,dword ptr ss:[ebp-0x14]
0476DB66 E8 7680FBFF call TCLS.04725BE1
0476DB6B 68 98A3A604 push TCLS.04A6A398 ; UNICODE ";签名成功"
0476DB70 FF15 B01CA704 call dword ptr ds:[<&MSVCRT.wcslen>] ; msvcrt.wcslen
0476DB76 83C4 04 add esp,0x4
0476DB79 85C0 test eax,eax
0476DB7B 75 20 jnz short TCLS.0476DB9D
0476DB7D 8B4D 08 mov ecx,dword ptr ss:[ebp+0x8]
0476DB80 51 push ecx
0476DB81 68 C069A104 push TCLS.04A169C0 ; UNICODE "统一登录系统错误:%d"
0476DB86 68 07020000 push 0x207
0476DB8B 68 08020000 push 0x208
0476DB90 68 98A3A604 push TCLS.04A6A398 ; UNICODE ";签名成功"
0476DB95 E8 1391FBFF call TCLS.04726CAD
0476DB9A 83C4 14 add esp,0x14
0476DB9D C745 CC 98A3A60>mov dword ptr ss:[ebp-0x34],TCLS.04A6A39>; UNICODE ";签名成功"
0476DBA4 C745 FC FFFFFFF>mov dword ptr ss:[ebp-0x4],-0x1
9、找到登陆失败原因
//获取登陆失败的原因
047E8500 55 push ebp ; 登陆出错后到这,[esp+c]是字符串指针
047E8501 8BEC mov ebp,esp
047E8503 81EC 60020000 sub esp,0x260
047E8509 53 push ebx
047E850A 56 push esi
047E850B 57 push edi
047E850C 894D FC mov dword ptr ss:[ebp-0x4],ecx
047E850F C745 F4 0000000>mov dword ptr ss:[ebp-0xC],0x0
047E8516 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
047E8519 8378 18 00 cmp dword ptr ds:[eax+0x18],0x0
047E851D 74 2B je short TCLS.047E854A
047E851F 8B4D FC mov ecx,dword ptr ss:[ebp-0x4]
047E8522 83B9 50110000 0>cmp dword ptr ds:[ecx+0x1150],0x0
047E8529 74 1F je short TCLS.047E854A
047E852B 8B55 FC mov edx,dword ptr ss:[ebp-0x4]
047E852E 81C2 38020000 add edx,0x238
047E8534 52 push edx
047E8535 8B45 08 mov eax,dword ptr ss:[ebp+0x8]
047E8538 50 push eax
047E8539 8B4D FC mov ecx,dword ptr ss:[ebp-0x4]
047E853C 8B49 18 mov ecx,dword ptr ds:[ecx+0x18]
047E853F 8B55 FC mov edx,dword ptr ss:[ebp-0x4]
[培训]科锐逆向工程师培训第53期2025年7月8日开班!