魔兽世界启动器的分析
魔兽世界启动器 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补充:综合编程 , 安全编程 ,
上一个:利用C#设计端口扫描器
下一个:Web应用中缓存的七种武器