3

I'm interested in doing some practice work around legacy systems out of pure recreation.

I want to extract data or information related to a DOS game running on the 16bit arch of Windows 3.1 (1991 game). This may be seen as decompiling or deobfuscating. I don't intend on doing anything illegal but I would love to make it a learning exercise. The original product is nearly 30 years old.

What is the feasibility of extracting games from this era now and are there any tools that are available to assist in such an action?

  • 1
    A DOS game doesn't need 3.1 to run. Is it a Windows game, or a DOS game? Generically speaking, it is still possible to find the information you're looking for, but the specific technique you'll need depends on exactly what you're doing. Is this a "COM" file or an "EXE" file? Will it run in MS-DOS? Have you tried running it in DOS-BOX to see what happens? – phyrfox Jun 25 at 3:29
  • 1
    It's SimAnt to be exact. I'm not very familiar with this and just want to do it out of recreation. I'm a software engineer but just not in my neck of the woods here as it came out nearly a decade before I was born. It's an .EXE file. It won't run on 32/64bit PCs AFAIK, only dosbox. I know it's perfectly capable of being ran in dosbox, my steps there would be to debug it extensively but even then I'm not sure if any information can be picked up or injected? – insidesin Jun 25 at 5:49
  • reverseengineering.stackexchange.com/questions/3074/… I noticed my question is very similar to this, and may even be more apt for that exchange board. Though it's 6 years old.. – insidesin Jun 25 at 5:53
  • if it run on DosBOX then it is DOS game... the executable is most liekly packed with PKLITE utility and can be unpacked ... but IIRC game data at that era did not usually use windows CAB file format ... it was more common to have a *.PAK files containing all the files inside (its something like archive but usually not compressed) ... Yes there where some utilities to compose/decompose them but I do not remember names anymore ... – Spektre Jun 25 at 6:15
  • 32-bit windows should run 16-bit Windows programs. – Thorbjørn Ravn Andersen Jun 25 at 8:59
6

It’s easier to extract data from old games now than it was at the time, because the tools available now are better in general. Before embarking on this, it’s always worth poking around Jason Scott’s CD archives since there might well be an unpacker for your game already.

Two tools I particularly like are

  • QuickBMS — a scriptable file extractor, with support for a huge variety of compression, checksum and encryption algorithms, and a large number of ready-made extraction scripts (see the list on that page, and look through the forums too);
  • Kaitai Struct — a binary parser construction tool; this is more oriented towards building parsers that can be re-used, than extracting individual files, but it has good data exploration tools, and of course once you have a binary parser you can extract the data.

It’s common to need to disassemble code in order to understand how data should be read; in such circumstances, disassemblers and reverse-engineering tools come in handy, tools such as

  • Radare 2 — more of a disassembly framework, hard to learn but powerful;
  • Ghidra — the NSA’s reverse-engineering framework, with a decent user interface (but I haven’t used it for DOS analysis);
  • IDA — the long-standing reference, and its free versions provide good DOS support.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.