If you have ideas, questions, etc., - please call me! ---------------------------------------------------------------------------- Contents: 1. Macros 2. Default IDC files 3. How IDA searches for files 4. Memory 5. Some history 6. More history 7. Acknowledgements 0. Basics --------- IDA is an interactive disassembler for Intel 80x86, Intel 8080/8085, Intel 8051, Motorola 6502, Z80 and i860 processors. It can handle various input file formats including com, exe, bin, MS Windows executable, OS/2 executable and Intel Hex format files. For 8080..Z80..HD64180 processors it can produce output text for various assemblers. IDA has a user-friendly menu-driven interface, built-in C-like language, ability to patch the input file, and virtually no limitations on the size and complexity of input file. 1. Macros --------- You can use keystroke macros in IDA. To start recording a macro, press Alt-- Press a key to define (for example, Ctrl-D) Enter macro body (any keys) To end recording - Alt-=. To play macro - the defined key (in our example - Ctrl-D) 2. Default IDC files -------------------- When IDA starts, it searches for ida.idc file. If IDA founds it, IDA executes this file. If not, IDA proceeds silently. It is expected that you will place your setup commands into this file. I hope that in the future ida.cfg file will disappear. If you try to disassemble some MS DOS driver (file extension .sys or .drv), IDA executes 'driver.idc' file. 3. How IDA searches for files ----------------------------- First, IDA looks into the directory, where IDA.EXE was started from. After it looks into PATHed directories. 4. Memory --------- IDA requires about 500k memory to start up. It can use extended and expanded memory for its code overlays. The disassembled data is kept partially in the conventional memory, partially on the disk. Normally if IDA starts up, it won't ask for more conventional memory (unless you open more windows). IDA regularly checks the current disk drive for the free space. If free disk space becomes low, it will ask you to exit and give more place. IDA will repeat it until you exit. This is made because unsiffucient disk space is very dangerous. Of course, you need a good disk cache to improve performance of IDA. In this case data will be cached too. 5. Some history --------------- First idea about IDA was born in the fall of 1990. It took half an year to screw up enough courage and to start implementing it. In the beginning of 1991, in January, first code line was written. In April 1991 the first program was fully disassembled with IDA. IDA grew up and new ideas appeared. I wanted to create a built-in C-style language to control analysis of the program, to add more processors, to disassemble object files, to handle UNIX COFF files, to add more intelligence to IDA e t c... Alas, all of this was not implemented. In July 1991 I stopped working at IDA almost completely, working at IDA only for fun. It was time to learn more about other computers, networks and other nice things. Today I would implement something based on client-server architecture with network support (I have a crazy idea about X-windows implementation) working under various operating systems - but I won't. Enough for the moment. I really think that disassemblers and all the staff like this are becoming obsolete. People work with GUIs, write in C++ (IDA is written in C++ too, about 40000 lines); they adore VisualBasic and they debug in source codes. Today's programmer even doesn't know assembler language - and doesn't need to know it. But... I hope that this product will be a help for you. If so, I'm glad. Hope, there are some people who need a tool like this. And if there is a need to add a new processor type to IDA (the same was with Intel 8085), I can do it fast enough. 6. More history --------------- 08.11.93 I never thought that I would work at IDA again. But you see, here is a new version. And now I understand that new versions of IDA will appear... 17.02.84 I'm working on IDA to eat MS Windows executable files now. Hope that it will come soon! 25.02.94 Now IDA can disassemle New Executable format files. 20.09.94 OS/2 files are supported. 17.12.95 IDA runs under OS/2 and can disassemble Win95 files :) 7. Acknowledgements ------------------- IDA would never be created without ideas and great support of these nice folks (sorry, it is not possible to mention all the people involved in IDA here, those three are my old friends): Serge Samborsky Pol Rousnak Nick Logvinov Thanks to you all !