IDACompare Helpfile

Author:  David Zimmer <david@idefense.com, dzzie@yahoo.com>

License: Copyright (C) 2005 iDefense.com, A Verisign Company

         This program is free software; you can redistribute it and/or modify it
         under the terms of the GNU General Public License as published by the Free
         Software Foundation; either version 2 of the License, or (at your option)
         any later version.

         This program is distributed in the hope that it will be useful, but WITHOUT
         ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
         FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
         more details.

         You should have received a copy of the GNU General Public License along with
         this program; if not, write to the Free Software Foundation, Inc., 59 Temple
         Place, Suite 330, Boston, MA 02111-1307 USA


Overview:

 IDACompare is a plugin for IDA which is designed to help you
 line up functions across two separate disassemblies. IDACompare
 also contains a signature scanner, where you can save known functions
 and then scan new disassemblies against them looking for key functions.

 This plugin has been designed with Malcode analysis in mind. It should
 work equally well for patch analysis. Typical target sizes this has
 has been designed for is binaries around 500k in size. 

 You are welcome to try it on larger files, however performance may not
 be ideal. 


Installation:
  
  The installer package will create local copies of all binaries and
  source for you. 
  
  The next step is to install the IDA plugin. If you run IDA 4.7, 4.8, or 4.9 
  precompiled binaries are directly available.
  
  If you do not use one of these versions, you will have to compile the VC stub 
  yourself from the source which can be found in the "vc src" sub directory. 
  
  Once you have a plw file that matches your version of IDA, just copy
  it to your IDA plugins directory and it should be ready to use.
  
  When you start a new disassembly in IDA you should now see a plugin 
  menu item called "IDA Compare"
  
  Note that users on older systems may also have to install the VB 6 Runtimes (1 mb) 


Files:

 vb src\  - Source to the vb6 ActiveX DLL which is the plugin User Interface
 vc src\  - Source to the VC6 IDA plugin Stub which launchs the VB plugin UI
 compare\ - Source to the standalone VB6 ida_compare.exe - main compare code
 ida4.7\  - compiled plw plugin for IDA 4.7
 ida4.8\  - compiled plw plugin for IDA 4.8
 ida4.9\  - compiled plw plugin for IDA 4.9
 
 mydoom_example.mdb - Sample comparison database for mydoom.a/.b
 signatures.mdb     - Signature Database for function sig scanning
 blank.mdb          - database template copied when creating new databases.

 ida_compare.exe    - main compare UI, works off of Access Databases filled by plugin
 IdaCompare.dll     - ActiveX DLL plugin UI, exports IDA disasm to Access DB 

Operation:

	Note: A video walk through of the process is also available on the 
	labs.idefense.com software release page. 
	
	
	1) Disassemble target file and launch "IDA Compare" plugin
	
	

	2) Create a NEW database in plugin, and Save Snapshot 1
            - This will export all of the disasm text for each function
               into the Access database you created.

	3) Disassemble target you want to compare with first disassembly.

	4) Launch IDA Compare plugin,
	   select Access database created in step 2
	   Export functions to Snapshot 2

	5) Launch Compare UI to execute ida_compare.exe 
	
	    - The exe will be launched against the current Access database
                and its functions will be automatically compared. 
                
        

	6) Examine the automatch results.
         Make manual matches  
         View function profiles by double clicking on list entries
           
         
          
		 Use the find dialog to try to locate related functionality
           
         
         
         Trim the lower list using its right click menu
         Export Match names from one database to another.

	7) From the IDA plugin, Import match names to update the idb with
       name updates that were set in the Access database.
            

ChangeLog:
  • 12.16.05 - fixed UI bug with exe "Break Match" button behavior - compatiability tweaks in plw src for 4.8 and release build config