![]() ![]()
#DOSBOX DEBUGGER ARCHIVE#I can send you my archive with Debugger and other tools and my notes about suspect places on e-mail. #DOSBOX DEBUGGER PATCH#I unpacked executable by unp ofcourse and find and patch check, which caused quit to DOS suddenly without any message. USB flash drives on 8-bit ISA bus using CH375 ISB to USB adapterĬan you find some time and write to me your e-mail at: I have problem to fix old DOS game "Summer Challenge" to do not quit with disable debugger error when DosBOX have too much cycles. Programming Nostalgia: revisiting Mike Wiering’s Mario game written in Pascal Whenever possible, please support the author by always purchasing paid software via official means. Take note that the download link and all information provided in this article as well as the comments that followed are strictly for educational purposes only. Refer to the comments section of this article for several techniques that are useful in debugging old DOS games. #DOSBOX DEBUGGER REGISTRATION#Graphics registration screen – ZENTRIS.OVL – Offset: 0x9e5f – patch to 0x0dĬlosing demo prompt – ZENTRIS.EXE – Offset: 0x926a – patch to 0xeb 0x5c The complete removal of all the demo prompts (including the graphics registration screen) is done by applying a six-byte patch to the decompressed ZENTRIS.EXE and ZENTRIS.OVL files, detailed below:įile integrity check – ZENTRIS.EXE – Offset: 0x8ca8 – patch to 0xcbįirst registration prompt – ZENTRIS.EXE – Offset: 0x94e2 – patch to 0xe9 0xb5 Thanks to an anonymous reader, the hacking challenge has been completed and the modified version of the game with all the registration prompts removed can be downloaded here. #DOSBOX DEBUGGER HOW TO#I hope someone with the right expertise can give me some hints on how to step into ZENTRIS.OVL and complete the hacking job The original game can be downloaded here. The modified ZENTRIS.EXE with the text mode registration prompts removed, which is good enough for me :), can be downloaded here. Unless I find a way to step into ZENTRIS.OVL at runtime, at this point it is not worth the time and efforts for me to proceed further. It seems as if the author has obfuscated the source code to prevent disassembling. In fact, some functions around the “suspected” area are not disassembled properly by IDA, with some instructions still showing as data bytes. Unfortunately, the actual counter to how long the prompt should be displayed or the correct way to remove the prompt was never found. This proved that I was on the right track. Replacing them with NOP and the game was indeed affected, either stopped responding at the menu, or showed the registration prompt and stopped responding without accepting keyboard input. Inside ZENTRIS.OVL, I was able to identify a few calls to DOS INT 16h, responsible for keyboard monitoring. The only approach was to use IDA to make an educated guess on which instruction is responsible for the prompt, and then use HIEW to replace them with NOP. It is unclear to me why the game has to be designed this way, perhaps to limit the main executable size to less than 64K (the unpacked ZENTRIS.EXE is already 60K), or more likely, to make disassembling the game a hassle. ![]() In fact, under Turbo Debugger, the main game wouldn’t even start, complaining “out of memory” when trying to load the overlay. However, I never found a way to make Turbo Debugger step into the unpacked ZENTRIS.OVL in order to locate the call to display the graphics registration prompt. ![]() Luckily there are no other integrity checks on ZENTRIS.OVL and the game still runs perfectly with the unpacked version of ZENTRIS.OVL. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |