当前位置:编程学习 > 网站相关 >>

魔兽世界启动器的分析

魔兽世界启动器 v0.1.4.7(7月3日更新[定时调用游戏|自动登录|插件、截图管理等])
功能太强大了,自叹不如。。。 

http://bbs.game.mop.com/viewthread.php?tid=1143103&extra=page%3D1

功能:太多了,我就看重这个

定时调用并自动登录游戏,有效防止采用键盘HOOK技术的木马盗取密码(启动器无法防止所有木马,它毕竟不是专业杀木马软件,作者只是尽力降低您中木马的危险而已,绝不是用了它您就可以高枕无忧)

保护方法小小分析了一下,程序实在太大。。。我分析完了,IDA还在跑。。。

本人分析纯属学习,请作者见谅,如有不妥,请联系我,我立刻删除

保护1:随机生成窗口名


0080DBCE |> 8B0F       mov ecx,dword ptr ds:[edi]
0080DBD0 |. 8D45 EC     lea eax,dword ptr ss:[ebp-14]
0080DBD3 |. BA 50DC8000   mov edx,dumped.0080DC50
0080DBD8 |. E8 FF7BBFFF   call dumped.004057DC
0080DBDD |. 8B45 EC     mov eax,dword ptr ss:[ebp-14]
0080DBE0 |. E8 AB7DBFFF   call dumped.00405990
0080DBE5 |. 50         push eax                             ; /Text = "魔兽世界lllllllll"
0080DBE6 |. 56         push esi                             ; |hWnd
0080DBE7 |. E8 40B6BFFF   call <jmp.&user32.SetWindowTextA>             ; SetWindowTextA
0080DBEC |. E8 63B2BFFF   call <jmp.&user32.GetForegroundWindow>         ; [GetForegroundWindow
0080DBF1 |. 3BF0       cmp esi,eax
0080DBF3 |. 0F94C3       sete bl
0080DBF6 |> 33C0       xor eax,eax
0080DBF8 |. 5A         pop edx


保护2:自动登陆

0080E176   > 55         push ebp                             ; 自动登陆
0080E177 > . E8 A0F9FFFF   call dumped.0080DB1C                     ; ->:TfrmMain.修改窗口名()
0080E17C   . 59         pop ecx
0080E17D   . 84C0       test al,al                           ; 这里判断当前窗口是不是WOW
0080E17F   .^ 74 D0       je short dumped.0080E151
0080E181   . 8D55 9C     lea edx,dword ptr ss:[ebp-64]               ; 解密后密码指针
0080E184   . 8B45 F0     mov eax,dword ptr ss:[ebp-10]               ; 加密的密码
0080E187   . E8 2CDACFFF   call dumped.0050BBB8                     ; 解密函数
0080E18C   . 8B55 9C     mov edx,dword ptr ss:[ebp-64]               ; 解密后的密码
0080E18F   . 8D45 F0     lea eax,dword ptr ss:[ebp-10]
0080E192   . E8 A173BFFF   call dumped.00405538
0080E197   . 8B45 E8     mov eax,dword ptr ss:[ebp-18]
0080E19A   . E8 69DACFFF   call dumped.0050BC08
0080E19F   . 8D55 94     lea edx,dword ptr ss:[ebp-6C]
0080E1A2   . 8B45 EC     mov eax,dword ptr ss:[ebp-14]
0080E1A5 > . 8B80 50040000 mov eax,dword ptr ds:[eax+450]               ; *cbbUser:TcxComboBox
0080E1AB   . E8 507BC8FF   call dumped.00495D00
0080E1B0   . 8B45 94     mov eax,dword ptr ss:[ebp-6C]
0080E1B3   . 8D55 98     lea edx,dword ptr ss:[ebp-68]
0080E1B6   . E8 45C6BFFF   call dumped.0040A800
0080E1BB   . 8B45 98     mov eax,dword ptr ss:[ebp-68]               ; 用户名
0080E1BE   . E8 C1FCCFFF   call dumped.0050DE84                     ; 发送用户名
0080E1C3   . EB 25       jmp short dumped.0080E1EA
0080E1C5   > A1 F49D8300   mov eax,dword ptr ds:[839DF4]
0080E1CA   . 8B00       mov eax,dword ptr ds:[eax]
0080E1CC > . E8 1F5FCAFF   call dumped.004B40F0                     ; ->:TApplication._PROC_004B40F0()
0080E1D1   . 8B45 EC     mov eax,dword ptr ss:[ebp-14]
0080E1D4   . 80B8 F3040000 >cmp byte ptr ds:[eax+4F3],0
0080E1DB   . 74 0D       je short dumped.0080E1EA
0080E1DD   . 8B45 EC     mov eax,dword ptr ss:[ebp-14]
0080E1E0 > . E8 5322CAFF   call dumped.004B0438                     ; ->:TApplication._PROC_004B0438()
0080E1E5   . E9 06010000   jmp dumped.0080E2F0
0080E1EA   > 55         push ebp
0080E1EB > . E8 2CF9FFFF   call dumped.0080DB1C                     ; ->:TfrmMain.修改窗口名()
0080E1F0   . 59         pop ecx
0080E1F1   . 84C0       test al,al                           ; 这里判断当前窗口是不是WOW
0080E1F3   .^ 74 D0       je short dumped.0080E1C5
0080E1F5   . B8 38E58000   mov eax,dumped.0080E538                   ; ASCII "vkTab"
0080E1FA   . E8 85FCCFFF   call dumped.0050DE84                     ; 发送TAB健
0080E1FF   . EB 25       jmp short dumped.0080E226
0080E201   > A1 F49D8300   mov eax,dword ptr ds:[839DF4]
0080E206   . 8B00       mov eax,dword ptr ds:[eax]
0080E208 > . E8 E35ECAFF   call dumped.004B40F0                     ; ->:TApplication._PROC_004B40F0()
0080E20D   . 8B45 EC     mov eax,dword ptr ss:[ebp-14]
0080E210   . 80B8 F3040000 >cmp byte ptr ds:[eax+4F3],0
0080E217   . 74 0D       je short dumped.0080E226
0080E219   . 8B45 EC     mov eax,dword ptr ss:[ebp-14]
0080E21C > . E8 1722CAFF   call dumped.004B0438                     ; ->:TApplication._PROC_004B0438()
0080E221   . E9 CA000000   jmp dumped.0080E2F0
0080E226   > 55         push ebp
0080E227 > . E8 F0F8FFFF   call dumped.0080DB1C                     ; ->:TfrmMain.修改窗口名()
0080E22C   . 59         pop ecx
0080E22D   . 84C0       test al,al                           ; 这里判断当前窗口是不是WOW
0080E22F   .^ 74 D0       je short dumped.0080E201
0080E231   . 8B45 F0     mov eax,dword ptr ss:[ebp-10]               ; 密码
0080E234   . E8 4BFCCFFF   call dumped.0050DE84                     ; 发送密码
0080E239   . EB 25       jmp short dumped.0080E260
0080E23B   > A1 F49D8300   mov eax,dword ptr ds:[839DF4]
0080E
补充:综合编程 , 安全编程 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,