5

I have installed Microsoft C 5.10 on DOS 6.22. It created a 'LIB' directory with static libraries to link against. Now I need to extract the symbols and the code for the functions from them, but can't find the format documented anywhere:

ninja@desktop:/mnt/d/backup/dos/msc510-install/LIB$ ls *.LIB
CLIBC7.LIB  CLIBCE.LIB  GRAPHICS.LIB  LLIBC7.LIB  LLIBCE.LIB  MLIBC7.LIB  MLIBCE.LIB  SLIBC7.LIB  SLIBCE.LIB
ninja@desktop:/mnt/d/backup/dos/msc510-install/LIB$ file CLIBC7.LIB
CLIBC7.LIB: Microsoft Visual C library

Supposedly, static libraries from more recent versions of (Visual) C are COFF archives which can be expanded with ar, but it does not seem to work for these legacy libraries.

12

These are OMF libraries; you can analyse them with Agner Fog’s object file converter.

It probably only makes sense to work with those libraries if you intend to build software with Microsoft C 5.1, in which case you’d use the tools provided with the compiler (LIB.EXE in particular).

The OMF format is described in detail in OMF: Relocatable Object Module Format.

| improve this answer | |
  • yep OMF was and still is the standard ... – Spektre May 29 at 7:26
  • thanks, I'm trying to reverse engineer some old software built with that compiler, finding the library function signatures will make my life much easier. – neuviemeporte May 29 at 18:59
  • 1
    The GNU binutil's "objcopy" and "objdump" utilities could well be your friends here ... they can convert to and from many object file formats, including OMF. – occipita Jun 2 at 1:47

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.