-
Notifications
You must be signed in to change notification settings - Fork 44
Open
Labels
Description
So it supports Android 7/8, similarly to how MisteryBot / ExoBot do (source: https://www.threatfabric.com/blogs/mysterybot__a_new_android_banking_trojan_ready_for_android_7_and_8.html)
@TargetApi(value = 21)
public void getLastUsedApplication() {
try {
do {
label_0:
TimeUnit.MILLISECONDS.sleep(1000);
gotolabel_8;
} while (true);
} catch (InterruptedException interruptedException) {
try {
interruptedException.printStackTrace();
label_8:
Object usageStatsManager = this.getSystemService("usagestats");
long epochTime = System.currentTimeMillis();
List usageStatsList = ((UsageStatsManager) usageStatsManager).queryUsageStats(0, epochTime - 10000, epochTime);
if (usageStatsList == null || usageStatsList.size() <= 0) {
gotolabel_0;
}
TreeMap sortedMap = new TreeMap();
Iterator usageStatsListIterator = usageStatsList.iterator();
while (usageStatsListIterator.hasNext()) {
Object usageStats = usageStatsListIterator.next();
((SortedMap) sortedMap).put(Long.valueOf(((UsageStats) usageStats).getLastTimeUsed()), usageStats);
}
if (((SortedMap) sortedMap).isEmpty()) {
gotolabel_0;
}
String packageName = ((SortedMap) sortedMap).get(((SortedMap) sortedMap).lastKey()).getPackageName();
PrintStream printStream = System.out;
StringBuilder output = new StringBuilder().insert(0, "Total:================ "));
output.append(packageName);
printStream.println(output.toString());
gotolabel_0;
} catch (Exception ex) {
ex.printStackTrace();
return;
}
}
}