private void MenuItemInteract_Click(object sender, RoutedEventArgs e) { bool TabItemisExsits = false; TabItem tabItemSelected = new TabItem(); TargetListView listViewItem = (TargetListView)this.BodySessionListView.SelectedItems[0]; foreach (TabItem tabItem in BodyControlPanel.Items) { if (tabItem.Name == ("BeaconTabItem_" + listViewItem.uid)) { TabItemisExsits = true; tabItemSelected = tabItem; } } if (listViewItem != null && TabItemisExsits == false) { TabItem BeaconTabItem = new TabItem() { }; //header StackPanel BeaconHeaderStackPanel = new StackPanel() { }; BeaconHeaderStackPanel.Orientation = Orientation.Horizontal; PackIcon packIcon = new PackIcon() { Foreground = (Brush) new BrushConverter().ConvertFromString("#FFD4D7D6"), Kind = PackIconKind.FormatAlignLeft, Height = 11, Width = 11, VerticalAlignment = VerticalAlignment.Center, Margin = new Thickness(0, 0, 5, 0), }; TextBlock textBlock = new TextBlock() { Text = "Beacon(" + listViewItem.InternalIP + "#" + listViewItem.Pid + ")" }; BeaconHeaderStackPanel.Children.Add(packIcon); BeaconHeaderStackPanel.Children.Add(textBlock); //content Grid grid = new Grid(); RowDefinition rowGrid1 = new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }; RowDefinition rowGrid2 = new RowDefinition { Height = new GridLength(25) }; grid.RowDefinitions.Add(rowGrid1); grid.RowDefinitions.Add(rowGrid2); Grid grid1 = new Grid(); Border border = new Border() { BorderThickness = new Thickness(0, 0, 0, 1), BorderBrush = (Brush) new BrushConverter().ConvertFromString("#FF897979") }; grid1.Children.Add(border); ScrollViewer stackPanelScrollViewer = new ScrollViewer(); stackPanelScrollViewer.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; StackPanel stackPanel = new StackPanel() { Orientation = Orientation.Vertical, Margin = new Thickness(6, 5, 6, 0), Name = "StackPanel_" + listViewItem.uid, HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top }; stackPanelScrollViewer.Content = stackPanel; grid1.Children.Add(stackPanelScrollViewer); Grid.SetRow(grid1, 0); StackPanel stackPanel1 = new StackPanel() { Orientation = Orientation.Horizontal }; Grid.SetRow(stackPanel1, 1); PackIcon packIcon1 = new PackIcon() { Kind = PackIconKind.KeyboardArrowRight, Height = 25, Width = 20 }; stackPanel1.Children.Add(packIcon1); TextBox textBox = new TextBox() { Name = "BeaconTextBox_" + listViewItem.uid, Width = this.ActualWidth - 20, HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Center }; textBox.KeyDown += new KeyEventHandler(BeaconTextBox_KeyDown); stackPanel1.Children.Add(textBox); grid.Children.Add(grid1); grid.Children.Add(stackPanel1); //add BeaconTabItem.Header = BeaconHeaderStackPanel; BeaconTabItem.Content = grid; BeaconTabItem.Name = "BeaconTabItem_" + listViewItem.uid; BodyControlPanel.Items.Add(BeaconTabItem); BodyControlPanel.SelectedItem = BeaconTabItem; string textBoxName = "BeaconTextBox_" + listViewItem.uid; if (this.sslTcpClients == null || !this.sslTcpClients.ContainsKey(textBoxName)) { SslTcpClient sslTcpClient = new SslTcpClient(this.userProfile.host, int.Parse(this.userProfile.port), "localhost"); sslTcpClient.StartSslTcp(); this.sslTcpClients.Add(textBoxName, sslTcpClient); } } else { BodyControlPanel.SelectedItem = tabItemSelected; } }
//public ListView BodySessionListView; public void GetImplantResult() { DataFormat MessageData; MessageData.type = "1"; MessageData.token = userProfile.token; MessageData.data = null; string sendMessage = JsonConvert.SerializeObject(MessageData); bool isGo = true; Thread.CurrentThread.IsBackground = true; SslTcpClient sslTcpClient = userProfile.sslTcpClient; do { SslStream sslStream = sslTcpClient.SendMessage(sendMessage); sslTcpClient.ReadMessage(sslStream); JObject rMJson = (JObject)JsonConvert.DeserializeObject(sslTcpClient.resultMessage); if (rMJson["code"].ToString() == "200") { foreach (var item in rMJson["result"]) { TimeSpan ts = DateTime.Now - Function.GetDateTime(item["time"].ToString()); string invalTs = ts.Seconds.ToString() + "s"; if (ts.Minutes != 0) { invalTs = ts.Minutes.ToString() + "m " + invalTs; if (ts.Hours != 0) { invalTs = ts.Hours.ToString() + "h " + invalTs; if (ts.Days != 0) { invalTs = ts.Days.ToString() + "d " + invalTs; } } } TargetListView tLV = new TargetListView( item["country"].ToString(), item["ip"].ToString(), item["innerip"].ToString(), item["pid"].ToString(), item["user"].ToString(), item["osinfo"].ToString(), item["cpuinfo"].ToString(), invalTs ) { uid = item["uid"].ToString(), time = item["time"].ToString() }; //Console.WriteLine(Function.GetDateTime(item["time"].ToString()).ToString()); bool isE = false; foreach (TargetListView tlv in targetListViews) { if (tlv.uid == tLV.uid) { if (tlv.Country != tLV.Country) { targetListViews.ElementAt(targetListViews.IndexOf(tlv)).Country = tLV.Country; } if (tlv.ExternalIP != tLV.ExternalIP) { targetListViews.ElementAt(targetListViews.IndexOf(tlv)).ExternalIP = tLV.ExternalIP; } if (tlv.InternalIP != tLV.InternalIP) { targetListViews.ElementAt(targetListViews.IndexOf(tlv)).InternalIP = tLV.InternalIP; } if (tlv.Pid != tLV.Pid) { targetListViews.ElementAt(targetListViews.IndexOf(tlv)).Pid = tLV.Pid; } if (tlv.User != tLV.User) { targetListViews.ElementAt(targetListViews.IndexOf(tlv)).User = tLV.User; } if (tlv.Computer != tLV.Computer) { targetListViews.ElementAt(targetListViews.IndexOf(tlv)).Computer = tLV.Computer; } if (tlv.Arch != tLV.Arch) { targetListViews.ElementAt(targetListViews.IndexOf(tlv)).Arch = tLV.Arch; } //if (tlv.time != tLV.time) //{ targetListViews.ElementAt(targetListViews.IndexOf(tlv)).Last = tLV.Last; //} isE = true; } } if (isE == false || targetListViews.Count == 0) { targetListViews.Add(tLV); string events = "[" + tLV.Country + "] " + Function.GetDateTime(tLV.time).ToString() + " " + tLV.InternalIP + "(" + tLV.computer.Trim() + ") Online"; if (eventsContent.Content == "") { eventsContent.Content = events + "\n"; } else { eventsContent.Content = eventsContent.Content + events + "\n"; } //this.BodySessionListView.Dispatcher.Invoke(new Action(() => { this.BodySessionListView.Items.Clear(); this.BodySessionListView.ItemsSource = this.targetListViews; })); } } //Thread.Sleep(1000); } } while (isGo); }