Ejemplo n.º 1
0
        public static Program LoadEXE(string filename)
        {
            Program program = new Program();

            using (FileStream exe = new FileStream(filename, FileMode.Open, FileAccess.Read))
            {
                byte[] buffer = new byte [4];
                exe.Position = 0x10;
                exe.Read(buffer, 0, 4);
                int entrypoint = BitConv.FromInt32(buffer, 0);
                exe.Position = 0x18;
                exe.Read(buffer, 0, 4);
                int address = BitConv.FromInt32(buffer, 0);
                exe.Position = 0x800;
                while (exe.Read(buffer, 0, 4) == 4)
                {
                    program.SetWord(address, BitConv.FromInt32(buffer, 0));
                    address += 4;
                }
                program[entrypoint].IsMethod = true;
                program[entrypoint].Label    = "Main";
                program.MarkBranch(entrypoint);
            }
            return(program);
        }
Ejemplo n.º 2
0
 public static Program LoadEXE(string filename)
 {
     Program program = new Program();
     using (FileStream exe = new FileStream(filename,FileMode.Open,FileAccess.Read))
     {
         byte[] buffer = new byte [4];
         exe.Position = 0x10;
         exe.Read(buffer,0,4);
         int entrypoint = BitConv.FromInt32(buffer,0);
         exe.Position = 0x18;
         exe.Read(buffer,0,4);
         int address = BitConv.FromInt32(buffer,0);
         exe.Position = 0x800;
         while (exe.Read(buffer,0,4) == 4)
         {
             program.SetWord(address,BitConv.FromInt32(buffer,0));
             address += 4;
         }
         program[entrypoint].IsMethod = true;
         program[entrypoint].Label = "Main";
         program.MarkBranch(entrypoint);
     }
     return program;
 }