Re: Looking for a Library Disassembler for X86



The experience I have with libraries is that they contain .obj
routines for linking on demand into a program that call these
routines.
Each .obj module contains the names of entry points, the names of the
segments each part of the code belongs to, a table of addresses in the
following machine code to be adjusted after assigning the relative
address within the linked code, and then the machinei code itself,
using identification numbers instead of addresses.
This is a simplification of course; so I hope you get the idea.

If you take a small object module and open it with a binary editor or
binary dump program, and then examine the hex characters that form the
object module, you could quickly identify the diffeennt sections see
what the rues are and how to write a parser to reconstruct machine
code in a form which a dissembler can then handlese directly.

Here's an example.The routine uses DOS services to move the cursor,
write a string in background/foreground colours, on the screen at Y,X
and then place the cursor where it was or at the string start.

In line 1 is the name with the characer count (4) in front
04 4F 55 54 53
Before and after is 06 00, (6) then the count then the 4 characters,
then a check (98).
Then another entry starting 08 00 then the string, and so on.

<00> 80 06 00 04 4F 55 54 53 2B 96 08 00 00 05 53 4F
<10> 55 54 53 BF 98 07 00 60 8C 00 02 01 01 71 A0 90
<20> 00 01 00 00 55 8B EC 55 B4 03 33 DB CD 10 C4 5E
<30> 16 26 8B 07 A8 04 75 06 C4 5E 0E 26 8B 17 C4 5E
<40> 0A 26 8B 0F C4 5E 12 26 8B 1F C4 6E 06 52 50 A8
<50> 02 75 20 B4 02 CD 10 42 80 FA 50 75 04 81 C2 B0
<60> 00 58 50 26 8A 46 00 51 B9 01 00 CD 10 59 E2 E3
<70> EB 1F 90 B4 02 CD 10 42 80 FA 50 75 04 81 C2 B0
<80> 00 58 50 26 8A 46 00 45 51 B9 01 00 CD 10 59 E2
<90> E2 58 59 50 A8 01 75 02 8B D1 B4 02 CD 10 58 5D
<A0> A8 08 74 06 C4 5E 0E 26 89 17 8B E5 5D CA 14 00
<B0> 28 90 0B 00 00 01 04 4F 55 54 53 00 00 00 15 8A
<C0> 02 00 00 74
1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A

.



Relevant Pages

  • Re: Getting the file name from a FILE *
    ... string -- which might perhaps include the filename openned with, ... but as there can be considerable differences in parameter ... passing between non-varargs routines and varargs routines, ... I expect that that recompile / relink step would not be considered ...
    (comp.lang.c)
  • Re: Trying to execute something stored in variable
    ... Public Function ExecuteMethods(ByVal prmMethodName As String, ... Dim objMethodInfo As MethodInfo ... Public Sub SubRoutine1() ... Please note that I cannot take full credit for these routines. ...
    (microsoft.public.dotnet.languages.vb)
  • Re: Trying to execute something stored in variable
    ... Public Function ExecuteMethods(ByVal prmMethodName As String, ... Dim objMethodInfo As MethodInfo ... Public Sub SubRoutine1() ... Please note that I cannot take full credit for these routines. ...
    (microsoft.public.dotnet.languages.vb)
  • Writing an Adventure game with HLA
    ... For an "adventure" style game, ... These two routines lexically scan13 a string and break it up into ... The create procedure is used to initialize a lookup table. ...
    (alt.lang.asm)
  • Re: Safer and Better C
    ... > which causes memory limit to be inadequate for the desired string ... Unfortunately the world is full of macho programmers who seem to ... providing routines that can be controlled is not such an avoidance. ... fiber to be a Red Sox fan" ...
    (comp.lang.c)