home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / asm_programming / ID.DOC < prev    next >
Text File  |  1990-02-16  |  3KB  |  62 lines

  1. ID            MS-DOS Programmer's manual            ID
  2.  
  3.   ID (Intelligent Disassembler) version 1.2 is a hacker's basic tool, and
  4. I am pretty suprised that I haven't seen other programs around that do this.
  5.  
  6. Here it is, anyway.  Done in Aztec C 4.2d, under the small memory model (and
  7. optimizing speed-over-size).  The general call is:
  8.     id program[.com] [@cmdfile] [=adjust] [[+]entry] [-exit] [:address] [~]
  9. where the parameters are:
  10.  
  11. program    Name of the program to be disassembled.  If no extension is given,
  12.     .com is assumed.  ID outputs the resulting assembler code to standard
  13.     output, so you'll have to redirect it to a file.  All diagnostic and
  14.     debug output goes to standard error - they won't get redirected into
  15.     the file.
  16.  
  17. cmdfile    Name of a file containing parameter-like commands, one to a line
  18.  
  19. adjust    The start address of the program in memory (hex).  This is assumed to
  20.     be 100h, since .com-programs start at this address.  .com style device
  21.     drivers would need adjust 0
  22.  
  23. entry    A entry point into the program (hex).  ID only disassembles reachable
  24.     code, and the algorithm is very simple: if no entry points are given,
  25.     adjust is assumed.  This often is not enough for TSR programs, since
  26.     the loader portion of the code never directly jumps to the resident
  27.     part
  28.  
  29. exit    A exit address (hex).  Since there is no register trace, ID cannot
  30.     distinguish a normal DOS INT 21h from a exit request (AH=0, 4Ch...)
  31.     However, ID will stop disassembling after a INT 20h, INT 27h or a
  32.     illegal instruction.  This parameter will enable you to set a exit
  33.     point where disassembly will stop
  34.  
  35. address    A address that is forced to be referenced (hex).  This means that
  36.     constant references to this address will be translated to
  37.     OFFSET LBaddress - though the heuristic is rather shaky...
  38.     Initially, only the adjust address is referenced.
  39.  
  40. A tilde will set device driver mode (which basically makes offsets 4,6,8 & 0xA
  41. referenced and marks addresses found at 6 & 8 as referenced code).
  42.  
  43. I hope you will find this program as useful as I do.  Further developement
  44. ideas could be adding 8087 and other processor commands, having a simple
  45. register trace to be able to distinguish different DOS interrupts etc.
  46.  
  47. A really major project would be making this work with .exe-style files...
  48.  
  49.     (c) 1986,87,88,89,90 Otto J. Makela
  50. Address:Kauppakatu 1 B 18
  51.     Sf-40100 Jyvaskyla
  52.     Finland, Europe
  53. Phone:    +358 41 613 847
  54. Email:    otto@jyu.fi
  55. BBS:    JyBox +358 41 211 562
  56.     CCITT V.22bis/V.22/V.21 24h/day
  57.  
  58. See the file COPYING for the GNU General Licence under which this program is
  59. distributed.  Basically, you are allowed to copy this program freely along with
  60. it's source, but you cannot make proprietary changes to it.
  61.  
  62.