Skip to content

Commit

Permalink
Merge pull request #39 from 0xhakeem/main
Browse files Browse the repository at this point in the history
fix: handle multiple PIDs for terminating tcpdump processes. Thx for providing this fix - looks good :-)
  • Loading branch information
monkeywave authored Jan 13, 2025
2 parents 1c21703 + 0ce9e7b commit 4edbd35
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 16 deletions.
40 changes: 26 additions & 14 deletions friTap/android.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,37 +141,49 @@ def pull_pcap_from_device(self):
def get_pid_via_adb(self, process_name):
try:
pid_result =self.run_adb_command_as_root(f"pidof -s {process_name}")
pid = pid_result.stdout.strip()
pids = pid_result.stdout.strip().split()

if not pid:
if not pids:
if self.print_debug_infos:
print("[-] No PID found. Process may not be running.")
return "-1"
return pid
return []
return pids
except subprocess.CalledProcessError as e:
if self.print_debug_infos:
print(f"Error: {e.stderr.strip()}")
return "-1"
return []

def send_ctrlC_over_adb(self):
self.close_friTap_if_none_android()
if self.is_tcpdump_available():
pid = self.get_pid_via_adb("tcpdump")
pids = self.get_pid_via_adb("tcpdump")
else:
pid = self.get_pid_via_adb(self.tcpdump_version)

if int(pid) > 0:
self.run_adb_command_as_root(f"kill -INT {pid}")
pids = self.get_pid_via_adb(self.tcpdump_version)

if pids:
pids_str = " ".join(pids)
self.run_adb_command_as_root(f"kill -INT {pids_str}")
if self.print_debug_infos:
print(f"[+] Killed processes with PID: {pids_str}")
else:
if self.print_debug_infos:
print("[-] No running tcpdump processes found")

def send_kill_tcpdump_over_adb(self):
self.close_friTap_if_none_android()
if self.is_tcpdump_available():
pid = self.get_pid_via_adb("tcpdump")
pids = self.get_pid_via_adb("tcpdump")
else:
pid = self.get_pid_via_adb(self.tcpdump_version)
pids = self.get_pid_via_adb(self.tcpdump_version)

if int(pid) > 0:
self.run_adb_command_as_root(f"kill -9 {pid}")
if pids:
pids_str = " ".join(pids)
self.run_adb_command_as_root(f"kill -9 {pids_str}")
if self.print_debug_infos:
print(f"[+] Killed processes with PID: {pids_str}")
else:
if self.print_debug_infos:
print("[-] No running tcpdump processes found")

def close_friTap_if_none_android(self):
if self.is_Android == False:
Expand Down
3 changes: 2 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ hexdump
scapy
watchdog
click
importlib-resources
importlib-resources
psutil
3 changes: 2 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ def get_version():
'scapy',
'watchdog',
'click',
'importlib-resources'
'importlib-resources',
'psutil'
]


Expand Down

0 comments on commit 4edbd35

Please sign in to comment.