WaxfordSqueers
October 24th, 2006, 01:20
I have not looked in the archives because I have no idea where to begin. I think you'll see why in a minute.
I have a game looking for a CD in the drive. I have it on decent information that the game has no protection other than CD check. I was going to try the old GetDriveType and play with that. But a dead listing in IDA does not show that function. So, I fired up Ice with IceExt.
The app loads OK with the loader, and if I start stepping through code, eventually I hit a point where an intro screen appears, asking me to pick a player. The minute I do, the computer crashes. It only does that with Ice running. I tried turning Faults Off with no success.
There is a variation. If I press ctrl-D, to access Ice, I crash to a reboot (both with Ice hidden by IceExt, and unprotected). If I select the player button with the mouse, I get a BSOD with params (stop 7F, 8,80042000,0,0). I can play with this data without bugging anyone here for help, but my question is, "what am I trying to accomplish"? There's no point playing in the dark, if you know what I mean.
OK...I've single stepped into the code, and there's a call before Winmain in which this intro screen is called. I'm closing in on the code where it is called. What then?? Once it's called, the intro takes up the entire screen and I can't access Ice when it does. I'm thinking I should get as close as I can to the code and look for a break point I can set after the call to it.
One problem there is that the CD check comes while the intro screen is up, after player selection, and as I've said, any mouse action causes a BSOD. The CD check is prompted by a flying horizontal window, with text in it, that falls down the screen. It's pretty fancy, but that might be the Achilles heel. They ask for a keypress (any key) to acknowledge the CD is in the drive. AHA...something to work on. (BPX with WM_Command on a keystroke???)
BTW...there's an Exit icon on the intro window that can be pressed with the mouse cursor that does not cause a BSOD or outright crash. That might indicate the BSOD is intentional. The question then, is how does one cause an intentional BSOD. What code am I looking for?
Another approach I've considered is bypassing the intro screen. Somehow, I still have to bypass the player selection, which seems trivial. There's only one player playing. It would seem, however, that if I can't work around the BSOD, that I'll have to work through a dead-listing. Obviously the app calls a movie in the intro and that might be a giveaway too, if I can ID the movie.
One last solution might be to convert the intro window from full screen to a window. I have no idea how to do that, if it can be done. In most games, you can use Alt-Tab to move back and forth between the game and the desktop, or another app. Is there a way to force that?
Does anyone have any suggestions? TIA.
I have a game looking for a CD in the drive. I have it on decent information that the game has no protection other than CD check. I was going to try the old GetDriveType and play with that. But a dead listing in IDA does not show that function. So, I fired up Ice with IceExt.
The app loads OK with the loader, and if I start stepping through code, eventually I hit a point where an intro screen appears, asking me to pick a player. The minute I do, the computer crashes. It only does that with Ice running. I tried turning Faults Off with no success.
There is a variation. If I press ctrl-D, to access Ice, I crash to a reboot (both with Ice hidden by IceExt, and unprotected). If I select the player button with the mouse, I get a BSOD with params (stop 7F, 8,80042000,0,0). I can play with this data without bugging anyone here for help, but my question is, "what am I trying to accomplish"? There's no point playing in the dark, if you know what I mean.
OK...I've single stepped into the code, and there's a call before Winmain in which this intro screen is called. I'm closing in on the code where it is called. What then?? Once it's called, the intro takes up the entire screen and I can't access Ice when it does. I'm thinking I should get as close as I can to the code and look for a break point I can set after the call to it.
One problem there is that the CD check comes while the intro screen is up, after player selection, and as I've said, any mouse action causes a BSOD. The CD check is prompted by a flying horizontal window, with text in it, that falls down the screen. It's pretty fancy, but that might be the Achilles heel. They ask for a keypress (any key) to acknowledge the CD is in the drive. AHA...something to work on. (BPX with WM_Command on a keystroke???)
BTW...there's an Exit icon on the intro window that can be pressed with the mouse cursor that does not cause a BSOD or outright crash. That might indicate the BSOD is intentional. The question then, is how does one cause an intentional BSOD. What code am I looking for?
Another approach I've considered is bypassing the intro screen. Somehow, I still have to bypass the player selection, which seems trivial. There's only one player playing. It would seem, however, that if I can't work around the BSOD, that I'll have to work through a dead-listing. Obviously the app calls a movie in the intro and that might be a giveaway too, if I can ID the movie.
One last solution might be to convert the intro window from full screen to a window. I have no idea how to do that, if it can be done. In most games, you can use Alt-Tab to move back and forth between the game and the desktop, or another app. Is there a way to force that?
Does anyone have any suggestions? TIA.