private void RefreshCommandBinding_Executed(object sender, RoutedEventArgs e)
        {
            DependencyWindow SelectedItem = this.TabControl.SelectedItem as DependencyWindow;

            if (SelectedItem == null)
            {
                return;
            }

            SelectedItem.InitializeView();
        }
        /// <summary>
        /// Open a new depedency tree window on a given PE.
        /// </summary>
        /// <param name="Filename">File path to a PE to process.</param>
        public void OpenNewDependencyWindow(String Filename)
        {
            var newDependencyWindow = new DependencyWindow(Filename);

            newDependencyWindow.Header = Path.GetFileNameWithoutExtension(Filename);

            this.TabControl.AddToSource(newDependencyWindow);
            this.TabControl.SelectedItem = newDependencyWindow;

            // Update recent files entries
            App.AddToRecentDocuments(Filename);
            PopulateRecentFilesMenuItems();
        }
        public void SetImports(List <PeImportDll> Imports, PhSymbolProvider SymPrv, DependencyWindow Dependencies)
        {
            this.Items.Clear();

            foreach (PeImportDll DllImport in Imports)
            {
                PE     ModuleImport   = Dependencies.LoadImport(DllImport.Name, null, DllImport.IsDelayLoad());
                string ModuleFilepath = (ModuleImport != null) ? ModuleImport.Filepath : null;

                foreach (var Import in BinaryCache.LookupImports(DllImport, ModuleFilepath))
                {
                    this.Items.Add(new DisplayPeImport(Import.Item1, SymPrv, ModuleFilepath, Import.Item2));
                }
            }
        }
        private void OpenCustomizeSearchFolderCommand_Executed(object sender, RoutedEventArgs e)
        {
            DependencyWindow SelectedItem = this.TabControl.SelectedItem as DependencyWindow;

            if (SelectedItem == null)
            {
                return;
            }

            if (this.SearchFolder != null)
            {
                this.SearchFolder.Close();
            }

            this.SearchFolder = new SearchFolder(SelectedItem);
            this.SearchFolder.Show();
        }
Пример #5
0
        public void SetImports(List <PeImportDll> Imports, PhSymbolProvider SymPrv, DependencyWindow Dependencies)
        {
            this.ImportList.Items.Clear();

            foreach (PeImportDll DllImport in Imports)
            {
                PE     ModuleImport   = Dependencies.LoadImport(DllImport.Name, null, (DllImport.Flags & 0x01) == 0x01 /* TODO : Use proper macros */);
                string ModuleFilepath = (ModuleImport != null) ? ModuleImport.Filepath : null;

                foreach (PeImport Import in DllImport.ImportList)
                {
                    this.ImportList.Items.Add(new DisplayPeImport(Import, SymPrv, ModuleFilepath));
                }
            }

            // Refresh search view
            ImportSearchFilter_OnTextChanged(null, null);
        }
Пример #6
0
        public SearchFolder(DependencyWindow SelectedItem)
        {
            _SelectedItem        = SelectedItem;
            _working_directory   = SelectedItem.RootFolder;
            _CustomSearchFolders = new ObservableCollection <SearchFolderItem>();
            foreach (var item in SelectedItem.CustomSearchFolders)
            {
                _CustomSearchFolders.Add(
                    new SearchFolderItem()
                {
                    Folder = item,
                    Dummy  = false
                }
                    );
            }

            EnsureSearchFolderHasDummyEntry();

            // bind window to observable collections
            this.DataContext = this;
            InitializeComponent();
        }
        public void SetImports(string ModuleFilepath, List <PeExport> Exports, List <PeImportDll> ParentImports, PhSymbolProvider SymPrv, DependencyWindow Dependencies)
        {
            this.Items.Clear();

            foreach (PeImportDll DllImport in ParentImports)
            {
                foreach (var Import in BinaryCache.LookupImports(DllImport, Exports))
                {
                    this.Items.Add(new DisplayPeImport(Import.Item1, SymPrv, ModuleFilepath, Import.Item2));
                }
            }
        }