/[RomCheater]/trunk/Win32/Sojaner.MemoryScanner/PEData.cs
ViewVC logotype

Diff of /trunk/Win32/Sojaner.MemoryScanner/PEData.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 619 by william, Sat Jun 8 05:42:00 2013 UTC revision 620 by william, Sat Jun 8 06:48:29 2013 UTC
# Line 44  namespace Sojaner.MemoryScanner Line 44  namespace Sojaner.MemoryScanner
44          [Browsable(false)]          [Browsable(false)]
45          ulong _VirtualImageBase { get; }          ulong _VirtualImageBase { get; }
46          string VirtualImageBase { get; }          string VirtualImageBase { get; }
47    
48            ISECTION_DATA[] SectionData { get; }
49        }
50        [TypeConverter(typeof(ExpandableObjectConverter))]
51        public interface ISECTION_DATA
52        {
53            string Name { get; }
54            uint _Start { get; }
55            uint _End { get; }
56            uint _Size { get; }
57    
58            string Start { get; }
59            string End { get; }
60            string Size { get; }
61            string ToString();
62            
63        }
64    
65        [TypeConverter(typeof(ExpandableObjectConverter))]
66        public class SECTION_DATA : ISECTION_DATA
67        {
68            public SECTION_DATA() : this(string.Empty, 0, 0) { }
69            public SECTION_DATA(string name, uint virtualAddress, uint rva, uint virtualSize) : this(name, virtualAddress + rva, virtualSize) { }
70            public SECTION_DATA(string name, uint virtualAddress, uint virtualSize)
71            {
72                this._Name = name;
73                this._Start = virtualAddress;
74                this._Size = virtualSize;
75            }
76    
77            #region ISECTION_DATA members
78            private string _Name;
79            private uint __Start;
80            [Browsable(false)]
81            public uint _Start { get { return __Start; } set { __Start = value; } }
82            [Browsable(false)]
83            public uint _End { get { return __Start + __Size; } }
84            private uint __Size;
85            [Browsable(false)]
86            public uint _Size { get { return __Size; } set { __Size = value; } }
87    
88    
89            public string Name { get { return _Name; } }
90            public string Start { get { return string.Format("0x{0:x8}", _Start); } }
91            public string End { get { return string.Format("0x{0:x8}", _End); } }
92            public string Size { get { return string.Format("0x{0:x8}", _Size); } }
93    
94            public override string ToString()
95            {
96                return this.Name;
97            }
98            #endregion
99      }      }
100    
101      public class PEData : IPEDData      public class PEData : IPEDData
# Line 55  namespace Sojaner.MemoryScanner Line 107  namespace Sojaner.MemoryScanner
107          public IMAGE_OPTIONAL_HEADER32 OptionalHeader32 { get { if (reader == null) { return new IMAGE_OPTIONAL_HEADER32(); } else { return reader.OptionalHeader32; } } }          public IMAGE_OPTIONAL_HEADER32 OptionalHeader32 { get { if (reader == null) { return new IMAGE_OPTIONAL_HEADER32(); } else { return reader.OptionalHeader32; } } }
108          public IMAGE_OPTIONAL_HEADER64 OptionalHeader64 { get { if (reader == null) { return new IMAGE_OPTIONAL_HEADER64(); } else { return reader.OptionalHeader64; } } }          public IMAGE_OPTIONAL_HEADER64 OptionalHeader64 { get { if (reader == null) { return new IMAGE_OPTIONAL_HEADER64(); } else { return reader.OptionalHeader64; } } }
109    
110          public IMAGE_SECTION_HEADER[] SectionHeaders { get { if (reader == null) { return new IMAGE_SECTION_HEADER[0]; } else { return reader.ImageSectionHeaders; } } }            public IMAGE_SECTION_HEADER[] SectionHeaders { get { if (reader == null) { return new IMAGE_SECTION_HEADER[0]; } else { return reader.ImageSectionHeaders; } } }
111    
112            private ISECTION_DATA[] _SectionData;
113            public ISECTION_DATA[] SectionData { get { return _SectionData; } private set { _SectionData = value; } }
114    
115          public Boolean Is32bitAssembly() { if (reader == null) { return true; } else { return reader.Is32BitHeader; } }          public Boolean Is32bitAssembly() { if (reader == null) { return true; } else { return reader.Is32BitHeader; } }
116    
# Line 121  namespace Sojaner.MemoryScanner Line 176  namespace Sojaner.MemoryScanner
176              {              {
177                  this._VirtualImageBase = (ulong)p.MainModule.BaseAddress;                  this._VirtualImageBase = (ulong)p.MainModule.BaseAddress;
178              }              }
               
179    
180                  this.SectionData = new ISECTION_DATA[this.SectionHeaders.Length];
181    
182                  for (int i = 0; i < this.SectionHeaders.Length; i++)
183                  {
184                      var t = this.SectionHeaders[i];
185                      SECTION_DATA data = new SECTION_DATA(t.Name, t._VirtualAddress, this._VirtualRVA, t._VirtualSize);
186                      this.SectionData[i] = (ISECTION_DATA)data;
187                  }
188          }          }
189          public PEData(IAcceptsProcessAndConfig iapc) : this((IAcceptsProcess)iapc) { }          public PEData(IAcceptsProcessAndConfig iapc) : this((IAcceptsProcess)iapc) { }
190      }      }

Legend:
Removed from v.619  
changed lines
  Added in v.620

  ViewVC Help
Powered by ViewVC 1.1.22