UILM Info
UILM is the abbreviation for User Interface Loadable Module (some kind of extension or plug in).
These modules be loaded from within the user interface of
Intruder.
They can be executed automatically, by pressing an internal or external hot key or/and
they can be linked to a chain of modules which are called from inside of the integrated
debugger instead of disassembling the code. This way it's very easy to improve the
performance of Intruder and to implement functions Intruder doesn't support
itself. After all it is easy to create your own modules.
Actually UILMs are
COM-files using a special header which contains some information for Intruder. The
format of this header can be found in Intruders help file. If you don't have the help
file yet you can get it here.
just a label
Download UILMS
Conditional Breakpoints (1997 by Future Vision): This UILM is for enabling conditional
breakpoints. That means first any breakpoint can be skipped some times before Intruder will
be entered and second some register conditions that have to be met can be defined.
Support for the dos extender by Doug Huffman (1997 by Future Vision):
This UILM is able to detect the dos extender by Doug Huffman and enables protected mode
debugging by initializing the descriptor tables (plain real mode only).
Dirty page frames (1997 by Future Vision):
This UILM scans for dirty frames in the current page table, adds them to the memory
analysis array or stores them into the address and data table. You can imagine that
this works great with the memory analysis, because in this way it is easy to include
only modified memory in the analysis array.
File view (1997 by Future Vision):
This is a quick and dirty file viewer for text and hex files in form of an UILM. External
and internal hot keys are supported.
FPU code generator:
This UILM translate the FPU emulation interrupts to the actual fpu code whenever the
current debug address inside the integrated debugger reaches one of the emulation interrupts.
These interrupts are used by the floating-point emulators in Borland and Microsoft languages
and Lahey Fortran.
Interrupt help (1996 by Future Vision):
This UILM is an internal help viewer for the great interrupt list by Ralf Brown. Whenever
an interrupt instruction appears in the integrated debugger the UILM takes the current
register contents and display the corresponding interrupt function. Both ZIP-files contain
a compiler to generate the index file used by this UILM. If you already have the interrupt
list you don't need to download it again.
Note: We won't spread the interrupt list in this incomplete version. If you want to get the
entire package search for files that have a name like INTERxxy.ZIP, where xx stands for the
version number (53+) and y for the volume (a,b,..).
TSS-I/O breakpoints (1997 by Future Vision):
This UILM is able to emulate I/O breakpoints by modifying the TSS-I/O-permission bitmap of
the installed memory manager. In this way it is possible to monitor I/O instructions and to
enter Intruder in the same way you could do it by any other breakpoint. This works
fine as long as the descriptor tables and the task state segment are not hidden. Of course this
works only in v86 mode.
Intruder online help (1996 by Future Vision):
This UILM allows to view Intruders online help form inside the debugger and from external
programs by pressing a hot key. If you don't have Intruders help file follow this
link.
Opcode help (1996 by Future Vision):
This UILM works similar to the Interrupt help. In the integrated debugger it displays
information about the currently selected opcode. In detail that means you can see the opcode
encoding, timing, possible faults and a short description of what the opcode does.
Program structure analysis (1997 by Future Vision)
This UILM is for analysing the structure of interrupted programs. It monitors jumps in
the program execution, interrupts and subroutine calls of the interrupted program and writes
these information to a swap file on the disk. Later these data can be analysed by an
external program.
The following program is an example, how the external analysis can be done. It compares
the data of two different analysis files and marks all differences found. Actually this
program has been written for our personal use.
UHS file viewer (1997 by Future Vision):
This is a quick and dirty viewer for UHS files. The original concept of the UHS has been
created by Jason Strautman. Support for external hot keys only.
If you want to get some UHS files look for files with the extension UHS. (Ahh!) You can find
them on nearly every FTP-server.
just a label
Legal Stuff
UILMs are freeware. That means you can distribute and use the modules as long as you:
- do not change the distribution file or any part of it
- do not use it for commercial purposes or 'earning money' in general
- do not reengineer or disassemble any part of the program
Anyway we'd appreciate it if you'd send us an email
to tell us your opinion about the modules and what should be improved.
just a label
Programming Details
If you want to create your own UILMs you need the help file of
Intruder. The programmer notes of the help file contain all information you
need. If you don't have the help file yet you can get it
here.
If you have problems or questions about creating UILMs you can contact
us by email. But you should note that usually our support is for registered user of Intruder
only. After all you can always send us hints or suggestions.
While writing our UILMs we created an include file that contains all data structures ready
for use in assembly language. Furthermore it contains macros for all the Service Interrupt
functions, other useful macros, bit records and some macros for creating UILMs working in
high memory. If you are interested get the following file:
Additionally we created the following UILM bodies for modules in conventional and XMS
memory. Download them to save some programming work writing your own UILMs. Moreover they
are optimized to be used with the macro file.
If you are using the include file in combination with protected or high memory calls to
the Service Interrupt functions there may occur some problems when assembling your UILM.
This is due to several problems of conditional assembling with the Borland Turbo Assembler.
One of the problems is as follows:
ifdef def1
label1:
endif
def1 equ yes
jmp label1
Assembling this constructions the error "label not defined" will be reported. There are
a lot of similar problems. Apparently TASM is not able to handle this kind of conditional
assembling. However we didn't find a solution so we wrote a kind of preassembler that
searches for all definition made in the ASM file. Afterwards it creates a file that contains
these definitions. If the output file will be included at the beginning of your ASM file the
assembling should succeed. Get the following file if you want to get our preassembler.
The current version may work very slow because the program needs an additional pass if
another definition is found. But however: It works!
|