-
-
[求助]请VC请手或汇编高手指点.
-
发表于: 2007-7-1 09:46 3214
-
有个游戏只能全屏模式,并不支持窗口模式,只要按下ALT+TAB键窗口就会最小化,并出现一个MESSAGEBOX,只要按下确定按钮,游戏就退出了.
这几天我把主程序脱了壳,发现是用VC6编写的.现在有几个问题
1.如何变成窗口模式,
0048FD5A |. 6A 00 push 0
0048FD5C |. EB 20 jmp short 0048FD7E
0048FD5E |> 8B35 54435A00 mov esi, dword ptr [<&user32.GetSyst>; |USER32.GetSystemMetrics
0048FD64 |. 6A 01 push 1 ; |/Index = SM_CYSCREEN
0048FD66 |. FFD6 call esi ; |\GetSystemMetrics
0048FD68 |. 50 push eax ; |Height
0048FD69 |. 6A 00 push 0 ; |/Index = SM_CXSCREEN
0048FD6B |. FFD6 call esi ; |\GetSystemMetrics
0048FD6D |. 50 push eax ; |Width
0048FD6E |. 8B45 98 mov eax, dword ptr [ebp-68] ; |
0048FD71 |. 6A 00 push 0 ; |Y = 0
0048FD73 |. 6A 00 push 0 ; |X = 0
0048FD75 68 0000CE00 push 00CE0000
0048FD7A |. 50 push eax ; |WindowName
0048FD7B |. 50 push eax ; |Class
0048FD7C 6A 09 push 9
0048FD7E |> FF15 58435A00 call dword ptr [<&user32.CreateWindow>; \CreateWindowExA
我修改了上面的0048FD75语句之后变成了窗口显式模式,但却出现了问题,虽然能移动窗口,但是窗口中的内容却并不随窗口的位置而移动,我想知道如何才能使窗口中的内容也随着窗口的移动而移动.
2.虽然游戏加了窗口之后,把他移开之后能看到其他的窗口,但我想点击其他窗口时当前的游戏窗口又变成了最小化,我想知道的是他是通过检测哪个消息后让他最变成最小化
3.当程序最小化后出现了MESSAGEBOX信息,通过修改,MESSAGEBOX已经不会在出现,但是却无法从最小化恢复窗口,我想知道需要修改哪个API才能让他最大化.
4,虽说程序正常情况下无法最大化,但有几次我发现我只要在任务栏上把游戏窗口乱点又可以恢复窗口,但是屏幕却是什么也没有显示,可是游戏中的音乐人物等好象感觉都是正常的,就是看不到有什么显示而已,想知道如何能把屏幕上的画面恢复.
附件中的可执行文件可以通过OLLD查看代码(但无法执行因没有上传其他文件)
请高手能从代码中看看能不能帮帮小弟忙.
这几天我把主程序脱了壳,发现是用VC6编写的.现在有几个问题
1.如何变成窗口模式,
0048FD5A |. 6A 00 push 0
0048FD5C |. EB 20 jmp short 0048FD7E
0048FD5E |> 8B35 54435A00 mov esi, dword ptr [<&user32.GetSyst>; |USER32.GetSystemMetrics
0048FD64 |. 6A 01 push 1 ; |/Index = SM_CYSCREEN
0048FD66 |. FFD6 call esi ; |\GetSystemMetrics
0048FD68 |. 50 push eax ; |Height
0048FD69 |. 6A 00 push 0 ; |/Index = SM_CXSCREEN
0048FD6B |. FFD6 call esi ; |\GetSystemMetrics
0048FD6D |. 50 push eax ; |Width
0048FD6E |. 8B45 98 mov eax, dword ptr [ebp-68] ; |
0048FD71 |. 6A 00 push 0 ; |Y = 0
0048FD73 |. 6A 00 push 0 ; |X = 0
0048FD75 68 0000CE00 push 00CE0000
0048FD7A |. 50 push eax ; |WindowName
0048FD7B |. 50 push eax ; |Class
0048FD7C 6A 09 push 9
0048FD7E |> FF15 58435A00 call dword ptr [<&user32.CreateWindow>; \CreateWindowExA
我修改了上面的0048FD75语句之后变成了窗口显式模式,但却出现了问题,虽然能移动窗口,但是窗口中的内容却并不随窗口的位置而移动,我想知道如何才能使窗口中的内容也随着窗口的移动而移动.
2.虽然游戏加了窗口之后,把他移开之后能看到其他的窗口,但我想点击其他窗口时当前的游戏窗口又变成了最小化,我想知道的是他是通过检测哪个消息后让他最变成最小化
3.当程序最小化后出现了MESSAGEBOX信息,通过修改,MESSAGEBOX已经不会在出现,但是却无法从最小化恢复窗口,我想知道需要修改哪个API才能让他最大化.
4,虽说程序正常情况下无法最大化,但有几次我发现我只要在任务栏上把游戏窗口乱点又可以恢复窗口,但是屏幕却是什么也没有显示,可是游戏中的音乐人物等好象感觉都是正常的,就是看不到有什么显示而已,想知道如何能把屏幕上的画面恢复.
附件中的可执行文件可以通过OLLD查看代码(但无法执行因没有上传其他文件)
请高手能从代码中看看能不能帮帮小弟忙.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
看原图
赞赏
雪币:
留言: