Was ist SRLinker?
SRLinker wurde von mir entwickelt, um automatisierte und gezielte Aktionen über die ADB (Android Debug Bridge) auf einem Android-Gerät durchzuführen. Eine kurze Einführung und Befehlssammlung zur ADB kann hier entnommen werden. Insgesamt habe ich zwei Versionen des Tools entwickelt, um eine Anwendung für Linux und Windows zu ermöglichen.
Der jeweilige Code habe ich auf GitHub veröffentlicht und ist in der Programmiersprache C geschrieben:
SRLinker für Windows | GitHub Repository | Download |
SRLinker für Linux | GitHub Repository | Download |
Ich bin von der IT-Sicherheit und dem Entwicklungsfortschritt von Programmen durch Open Source überzeugt. Ich muss jedoch auch zugeben, dass ich kein geborener Programmierer bin und mein Code daher etwas wilder aussieht. So weit so gut, aber was ist denn nun die Voraussetzung, um das Programm unter Windows und Linux nutzen zu können?
SRLinker für Windows
Um SRLinker nutzen zu können wird die adb.exe benötigt. Das Tool ADB kann bei Android Developers für Windows-OS heruntergeladen werden und ist Teil der SDK Platform-Tools.
Wurde Android Studio installiert, ist die benötigte ADB mit hoher Wahrscheinlichkeit bereits vorhanden. Der Pfad zur EXE kann wie folgt aussehen:
C:/Users/USERNAME/AppData/Local/Android/Sdk/platform-tools/
Nachdem SRLinker über die Powershell gestartet wurde, muss dieser Pfad zur adb.exe angegeben werden. Wie das Programm mit Powershell gestartet werden kann, wird wie folgt dargestellt:
Starte das Ausführen-Fenster -> [WIN] + [R]
Powershell eintippen und starten -> powershell + [ENTER]
In Pfad von SRLinker navigieren -> cd .\PFAD ZU SRLINKER\SRLinker_Windows\
Ausführen der SRLinker.exe -> .\SRLinker.exe
Alternativ kann auch im Dateiexplorer Powershell eingegeben und mit Enter geöffnet werden. Die folgende Abbildung veranschaulicht die Ausführung:
In diesem Fall wird der aktuelle Dateipfad direkt in Powershell übernommen und es kann sofort die SRLinker.exe gestartet werden. Nach dem Start muss der Pfad zur adb.exe eingegeben und mit [ENTER] bestätigt werden. Die folgende Abbildung zeigt ein Beispiel:
Projekt unter Windows kompilieren
Um das Projekt zu kompilieren und eine EXE zu erstellen, kann MinGW genutzt werden. Dafür sind die folgenden Schritte nötig:
1) Installation und Einrichtung von MinGW
2) Kompiliere das Projekt mit gcc:
gcc -o C:\Users\USERNAME\Desktop\SRLinker\SRLinker.exe
C:\Users\USERNAME\Desktop\SRLinker\main.c
C:\Users\USERNAME\Desktop\SRLinker\Root.c
C:\Users\USERNAME\Desktop\SRLinker\Actions\Backup.c
C:\Users\USERNAME\Desktop\SRLinker\Actions\DeviceInfos.c
C:\Users\USERNAME\Desktop\SRLinker\Actions\AuxiliaryFunctions.c
C:\Users\USERNAME\Desktop\SRLinker\Logo\Logo.c
3) Anschließend kann das Programm, wie oben beschrieben, gestartet und verwendet werden.
SRLinker für Linux
Um das Programm nutzen zu können wird die ADB benötigt. Dieses Tool kann mit dem folgenden Kommandozeilenbefehl nachinstalliert werden:
sudo apt-get install android-tools-adb
Eine genauere Beschreibung kann der Webseite Ubuntuusers entnommen werden.
Außerdem kann SRLinker auch unter Linux im Moment nur verwendet werden, wenn ein einzelnes Gerät per USB-Kabel angeschlossen ist. Bei mehreren angeschlossenen Devices kann momentan noch nicht ausgewählt werden, mit welchem interagiert werden soll.
Projekt unter Linux kompilieren
Es ist denkbar einfach, das Projekt unter Linux zu kompilieren. Dabei müssen zuerst alle nötigen Pakete über das Terminal installiert und anschließend mit GCC die Kompilierung ausgeführt werden. Eine Möglichkeit wird im Folgenden erläutert.
Installation aller nötiger Pakete
sudo apt-get install build-essential
Kompilierung
cd <Pfad zum Ordner SRLinker>
gcc -o SRLinker main.c Root.c Actions/Backup.c Actions/AuxiliaryFunctions.c Actions/DeviceInfos.c Logo/Logo.c
Programmstart unter Linux
Um das Programm zu starten, muss lediglich der folgende Befehl ausgeführt werden:
./SRLinker
Bevor mit den Aktionen gestartet werden kann, muss das Smartphone an den PC angeschlossen werden. Um zu prüfen ob das Device erkannt wird, kann adb devices in einem Terminal ausgeführt werden. Die Ausgabe sollte wie folgt aussehen (Zahlen-Buchstaben-Kombination kann variieren):
┌──(sven㉿Kali)-[~/Desktop/SRLinker]
└─$ adb devices
List of devices attached
9889db455449334550 device
Aktionsmöglichkeiten
Was kann SRLinker eigentlich? Die Interaktionsmöglichkeiten basieren zum großen Teil auf meinen Erfahrungen, die ich im Rahmen der App-Entwicklung und meiner Bachelorarbeit benötigt habe. Um eine Übersicht der Aktionen zu bekommen, kann der folgende Aktionsbaum herangezogen werden. Außerdem erleichtert er auch die Navigation im Programm selbst, da ohne GUI schnell mal der Überblick verloren gehen kann.
* Rundum-sorglos-Paket
-> Sicherung aller verfügbarer Bereicher der nachfolgenden Kategorien
* ADB-Server startet
-> Startet Verbindung zu Device
* ADB-Server beenden
-> Beendet Verbindung zum Device
* Geräteinfos
-> Auflistung von Geräteeigenschaften
* Logdateien
-> Alle Logs sichern
-> Logcat anzeigen
-> Logcat sichern
-> Bug-Report erstellen
-> Dumpsys anzeigen
-> Dumpsys sichern
-> Kernel-Logs anzeigen (root)
-> Kernel-Logs sichern (root)
-> Packages anzeigen
-> Packages sichern
-> Sicherung von Logs aus /data/log/ (root)
-> Sicherung aller .log-Dateien (beta, root)
* Netzwerk
-> Alles sichern
-> netstat -tulpen
-> netstat -r (Routing-Tabelle)
-> ifconfig
-> ip addr show
-> iptables -L (Firewall-Konfigurationen IPv4, root)
-> ip6tables -L (Firewall-Konfigurationen IPv6, root)
* Prozesse
-> Alles sichern
-> pstree (falls verfuegbar)
-> ps
-> ps -ef
-> top (mit count)
* APKs
-> Installation
-> Deinstallation
-> Update
-> App-Sicherung (root)
* Interaktionen
-> Geraeteneustart
-> Shell
-> Screenshot
-> Telefonanruf starten
-> Android Monkey (Apps)
-> Android Monkey (System)
* Backup erstellen
* Backup wiederherstellen