---------------------------------
   IDA to SoftIce symbol loader
   version: 4.09 release
---------------------------------

1)Author words
2)Problems and solutions to errors reported by the plugIn
3)History
4)Utilities (for other file types -> map2sice)

--------------------------------------------------------------------------------------------------------------------------
Author: Mostek
home page: http://mostek.subcultural.com  <- Check for updates every now and then.

mail:      mostek  access @ l ycos. com  (remove the spaces)

Authors requests:

-If you don't like or you want to add something please write to me.
 I would be more than happy to help.

 If you find a bug, it would be nice to mail me (don't be shy).

-Included in this version:
   All types of arrays.
   Local/Global Variables
   Local/Global Procedures
   Structures/Unions
   Local Labels
   Variables and Code in any Segment
   Renaming of Import Functions (read the problems and history sections (down))
   Register Variables(values, pointers)
   IDA Source Listing

 Support for: PE, LE file types

-A Big thanks to : Tsehp, Magnus Bråding, Snacker, The Owl, Ousir, Ilfak, Tom and BlindAngel for helping me out.

-Read the manual.txt as for some things to work you must follow the rules exactly.

--------------------------------------------------------------------------------------------------------------------------
2)Problems and solutions to errors reported by the plugIn:

- There is a misinformation in source file borders -> in I2S_Source_Info list the borders are sometimes wrongly set.
  As for now this values can't be changed by the user and the program doesn't use the start address this isn't a problem.
  The end address is set correctly.

-If you get a warning =>"Can't rename byte at xxxx as 'sub_XXXXX_XXXXXXX' because the name has reserved prefix."
 SOLUTION:
 When you will get back to IDA screen go to that address(read the address in msg window -> double click on the msg)
 and change address to:
 e.g. before:  'sub_401656'
      after:  '_sub_401656' -> Just add an underscore in front of the name and everything will be ok.

 NOTICE:
 From versions 0.03e  plugIn tries to fix this on itself but sometimes it will still fail.

-If plugIn reports "I2S: Failed to get type (ea:%x)." try to define the variable again.
 As it can happen that IDA defines an align type to normal data and in that case i2s can fail to get the type.

 SOLUTION:
 Undefine ( press 'u' ) -> define.

-NO FIX
 PlugIn supports only EBP based local variable. ESP based local variables will NEVER be implemented.
 The variable changes offset in function and I can't explain SIce when to use one offset and
 when the other.

-Some primitive types are not right. (octaword, tbyte, packed real)
 If anyone knows the primitive type numbers for this types, please let me know.

--------------------------------------------------------------------------------------------------------------------------
3)History (fixed bugs/new things)

version
4.09       - BUG: Data types were not properly evaluated -> change of sourceInfo version -> all the source files info
             will get reset.
           - BUG: SizeOfRawData and VirtualSize wasn't properly evaluated.
		   - BUG: Source listing offset was wrong if first segment didn't contain commands.
		   - Build for IDA 5.0.

4.08       - BUG: Serious memory allocation problem.
           - BUG: Small stack problem.
           - Updated segment handling if IDA created segment out of file header.

4.07       - Fixed major bugs:
             - if function was hidden the nms file contained the address of the function when it should a segment offset.
             - start offset of source file/s was not set correctly (recreation of files definition is needed).
             - source file definition loop was not aware of multi segments creation from one file segment
               (recreation of files definition is needed).

           - Fixed minor bugs:
             - if 'use project saving directory' was used the path window didn't get disabled some times.
             - nms saving path was not retrieved correctly.
             - some registry flags weren't check correctly.

           - Small update to n2t utility.

4.06       - Added support for variable length structures and undefined bytes in structures.

4.05       - Added a small protection against possible source files database problems.
           - Added protection against unk_xxxxxxxx names definitions and zero length names.
             (Some strange databases had the unk_xx names that didn't appear in source listing -> i2s crashed.
              At the same time I added the zero length protection also as it looks that can happen also.)

4.04       - Fixed a bug with original file reading(if properties of the missing segment needs to be read).

4.03       - Fixed a bug that caused improper segment selection in 'Creating NMS database' part of the mainLoop.
           - Also changed some memory management.
           - Updated n2t also.

4.02       - Just added 4.30 and 4.50 versions.

4.01       - It looks I've accidentally thrown out the ability to create nms databases if SoftIce isn't loaded.
           - Fixed a bug:
             In SeSection_SYMD nEnabledSourceFiles wasn't cleared if 'master source listing' flag was cleared.
             So NMS database reported that there is source info data even if there wasn't any.

4.0        - As you can see I've removed the zeros from the version -> well it was time. :)
           - Huh what's new: A LOT.
             a) The main thing is that i2s was completely rewritten and ported to M$ platform (use VC++ .Net version).

             b) Added support for arrays -> now you should be able to define any type of array and you should see
                it in SIce.

             c) And what's the really great stuff -> SPEEED -> i2s should be much, much faster now.

             d) Upgrade source file definition table -> unfortunately all old source names will be gone.

             e) If source listing is saved to directory the Loader32 will automatically find them.

             f) You can now define which source files you want to include in NMS database ->
                you can define symbols and source separately (well if symbols are disabled, source listing
                will be disabled automatically also).

             f) Upgraded NMS database version -> it's time for SoftIce upgrade(if you haven't done it yet).

           - Removed a few bugs.
             a) Error reporting back to main loop.
             
             b) Segments are now defined in a slightly different way so the segments should be loaded properly
                into the SoftIce now.

             c) Fixed the source lisiting offset to code.

--------------------------------------------------------------------------------------------------------------------------
4)Utilities

1st (n2t)
For testers there's another utility => n2t.exe

2nd (map2sice)
This one is intended for other file types (NE,...).
