---------------------------------
   IDA to SoftIce symbol loader
   version: 0.03e 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:      mostekaccess@lycos.com

Authors requests:

-If somebody is reversing a PE program that uses more than 1 CODE segment please send me the file name.
 So that I'll do some tests.

-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:
   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 Brding, The Owl, Ousir, BlindnAngel, Snacker and Ilfak 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:

-If plugIn reports "I2S: Can't find the command line....".
 It means that it can't find the collapsed function name.
 SOLUTION:
 In IDA go to 'View' menu ->'Setup hidden items'->uncheck 'Display hidden functions'.
    This options displays hidden function and preserves hidden function attribute.
    If you want to see those functions you will have to un hide them manually.

-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) 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 it self but sometimes it will still fail.

-If plugIn reports "Align directive (ea:xxxxxxx) isn't allowed to have a name." even if an
 align directive is not there.
 This is a bug in IDA, so I can't help (well at least in IDA4.04).
 SOLUTION:
 Define that byte/word/dword (press 'd') and if you're at it, define a few next ones too.

-NO FIX
 PlugIn only supports EBP based local variable. ESP based local variables will NEVER be implemented.
 The variable changes offset in the 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
 0.03e     -A small notice:
            As History section became quite large I decided to write users manual for i2s and move
            most of the History section to oldHistory.txt.
            So beginners read i2s manual.txt, for others nothing changed read History section in this file.

           -Forgot to save(update) the last source file info(in every segment).
            So SIce didn't display the last source file and in some cases displayed the wrong one.
            Fixed!

           -You can now change the file name in setup DBox.
            Reason:
            If breakpoins don't work, check if your exe(dll,..) name is exactly the same as that of
            nms file.
            And more it's best for the name length to be only 8chars long(not counting extension).
            So if you have IDA database that already uses long program name then rename
            the input file name in Setup DBox and change the executable file name.

            This shouldn't happen for system files (or dlls) as they normaly use short names.
            If somebody has a system file or dll that has more than 15 chars long file name please
            contact me.
          

           -More a renotice than anything else:
            SIce can't handle '()' and others characters and i2s will not fix those.
            Why?
            Because only demangled name use those.
            e.g.
            WinMain(x,x,x,x) <-It's a mangled name and not the right procedure name.

            If your database uses mangled name-> every new IDA database uses them(well almost).
            So you have to set demangled names in IDA as a default for new project.
            How to:
            In ida.cfg go to line that includes 'ShortNameForm' variable.
            Default value is 0x001BBE61 set it to 0x001BBE69 <-MNG_SHORT_FORM = (MNG_NODEFINIT|...).

           -If you get a warning =>"Can't rename byte at xxxx as 'sub_XXXXX_XXXXXXX' because the name has
            reserved prefix."
            Now plugIn will try to rename the procedure again with '_' prepended.
            That '_' will stay there for always (well if you don't delete it) in this way you wount get
            any more rename warnings.


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

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

It converts nms file to text file
command line w98  :  n2t  nmsName.nms textName.txt
command line w2000: "n2t" nmsName.nms textName.txt

You can define only 'nmsName.nms' and utility will create nmsName.txt.

You MUST use this command line or it will fail.
Source is included. (I'll not explain what to do to assemble it, source is here just to see what and where.)
(Well in some parts I changed eax<->edi to get even more speed, but because of that the registers eax and edi are kind a
strangely used.)

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