home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Unsorted BBS Collection
/
thegreatunsorted.tar
/
thegreatunsorted
/
programming
/
asm_programming
/
ID.DOC
< prev
next >
Wrap
Text File
|
1990-02-16
|
3KB
|
62 lines
ID MS-DOS Programmer's manual ID
ID (Intelligent Disassembler) version 1.2 is a hacker's basic tool, and
I am pretty suprised that I haven't seen other programs around that do this.
Here it is, anyway. Done in Aztec C 4.2d, under the small memory model (and
optimizing speed-over-size). The general call is:
id program[.com] [@cmdfile] [=adjust] [[+]entry] [-exit] [:address] [~]
where the parameters are:
program Name of the program to be disassembled. If no extension is given,
.com is assumed. ID outputs the resulting assembler code to standard
output, so you'll have to redirect it to a file. All diagnostic and
debug output goes to standard error - they won't get redirected into
the file.
cmdfile Name of a file containing parameter-like commands, one to a line
adjust The start address of the program in memory (hex). This is assumed to
be 100h, since .com-programs start at this address. .com style device
drivers would need adjust 0
entry A entry point into the program (hex). ID only disassembles reachable
code, and the algorithm is very simple: if no entry points are given,
adjust is assumed. This often is not enough for TSR programs, since
the loader portion of the code never directly jumps to the resident
part
exit A exit address (hex). Since there is no register trace, ID cannot
distinguish a normal DOS INT 21h from a exit request (AH=0, 4Ch...)
However, ID will stop disassembling after a INT 20h, INT 27h or a
illegal instruction. This parameter will enable you to set a exit
point where disassembly will stop
address A address that is forced to be referenced (hex). This means that
constant references to this address will be translated to
OFFSET LBaddress - though the heuristic is rather shaky...
Initially, only the adjust address is referenced.
A tilde will set device driver mode (which basically makes offsets 4,6,8 & 0xA
referenced and marks addresses found at 6 & 8 as referenced code).
I hope you will find this program as useful as I do. Further developement
ideas could be adding 8087 and other processor commands, having a simple
register trace to be able to distinguish different DOS interrupts etc.
A really major project would be making this work with .exe-style files...
(c) 1986,87,88,89,90 Otto J. Makela
Address:Kauppakatu 1 B 18
Sf-40100 Jyvaskyla
Finland, Europe
Phone: +358 41 613 847
Email: otto@jyu.fi
BBS: JyBox +358 41 211 562
CCITT V.22bis/V.22/V.21 24h/day
See the file COPYING for the GNU General Licence under which this program is
distributed. Basically, you are allowed to copy this program freely along with
it's source, but you cannot make proprietary changes to it.