예제 #1
0
        private void ParserStart(string name)
        {
            this.SymbolList = new List <SymbolItem>();
            this.BuildTreeHeader();

            if (OpenEPFile(name) == true)
            {
                GetImports(BywayCallback, SymbolCallback);

                exportsCallbackDelegate = new SymbolCallbackDelegate(ExportsCallback);
                GetExports(exportsCallbackDelegate);

#if _X64
                this.TB_Tip.Text = currentPEName + " is a x64 PE file";
#else
                this.TB_Tip.Text = currentPEName + " is a x86 PE file";
#endif
                this.B_InfoPlane.Background =
                    new SolidColorBrush((Color)ColorConverter.ConvertFromString("#007acc"));
            }

            if (this.importsItem.Items.Count == 0)
            {
                this.TV_Tree.Items.Clear();
#if _X64
                this.TB_Tip.Text = "Not a x64 PE file";
#else
                this.TB_Tip.Text = "Not a x86 PE file";
#endif
                this.B_InfoPlane.Background =
                    new SolidColorBrush((Color)ColorConverter.ConvertFromString("#990000"));
            }
            else
            {
                this.GetSymbolList();
                this.allSymbelItem.DataContext = this.SymbolList;

                if (this.IsDotNet(name) == true)
                {
                    this.TB_Tip.Text += " Is .Net Assembly";
                }
            }
        }
예제 #2
0
 public static extern void GetExports(SymbolCallbackDelegate symbolCallBack);
예제 #3
0
 public static extern void GetImports(SymbolCallbackDelegate bywayCallBack, SymbolCallbackDelegate symbolCallBack);