Programm PluginChecker - automatische Analyse von Plugins auf potentiell gefährlichen Code

Dieses Thema im Forum "Selbstgeschriebene Plugins | Mods | Programme" wurde erstellt von yoloswagbabo, 8. Oktober 2015.

  1. yoloswagbabo
    Offline

    yoloswagbabo

    Registriert seit:
    15. Juli 2014
    Beiträge:
    11
    Hi,
    mir war mal langweilig, weshalb mir die Idee kam, das oben genannte Programm auf die Beine zu stellen.
    Habe mir dazu nicht zu viel Zeit genommen (was man, wenn man sich den Code anschaut, merken sollte; das werde ich aber noch ordnen), aber es scheint zu funktionieren.

    Wenn es jemand mal ausprobieren oder mir Feedback geben will, einfach mal anschauen.

    Download (führt zu Dropbox):
    http://bit.ly/1Rw06cg

    Quellcode (führt zu Dropbox-Ordner):
    http://bit.ly/1Lk3kOW

    Die bit.ly-Umleitungen werden zur Statistik verwendet, damit ich weiß, wie viele Klicks auf die einzelnen Links gemacht wurden.

    Bitte keine Plugins analysieren, die größer als 100 kB sind. Ich verwende einen externen Open-Source-Decompiler, der damit nicht klar kommt und einfriert.

    (Was den Code angeht, den werde ich auf jeden Fall noch umstrukturieren. Bitte kein Feedback diesbezüglich)
     
    #1
    MichiPlaysYT und Baba43 gefällt das.
  2. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    657
    Von der Idee her ganz nett und ich denk sogar, dass es relativ wenig false positives gibt. Wenn man allerdings bewusst diese Erkennung verhindern will kann man mit Reflections einige deiner Tests umgehen. Wo ich mir jetzt nicht sicher bin ist, wie sichh das verhält wenn man an bestimmten Stellen Leerzeichen und Zeilenumbrüche verwendet, da Java ja die Zeilennummern im Bytecode speichert.
     
    #2
  3. yoloswagbabo
    Offline

    yoloswagbabo

    Registriert seit:
    15. Juli 2014
    Beiträge:
    11
    Danke für den Hinweis. Habe das mal getestet (Code werde ich nicht veröffentlichen, kann ich aber per PN verschicken) und es ist tatsächlich möglich, ausgeführte Methoden so zu tarnen. Da sich der Großteil der "Griefing-Developer-Szene" jedoch auf unerfahrenere Personen beschränken sollte, muss nicht unbedingt davon ausgegangen werden, dass diese wissen, was Reflections sind (zugegeben, mir ist der Begriff bis jetzt auch noch nicht untergekommen, muss mich mal reinarbeiten).

    Ich habe für den Text eine zusammengesetze Zeichenkette genommen ("set" und "Op"), die nicht erkannt wird, da nach "setOp" im Ganzen gesucht wird. Man könnte das Programm jetzt natürlich so erweitern, dass es nach so zusammengesetzten Zeichenketten sucht, aber ich glaube nicht, dass sich der Aufwand (wäre schon einiger, im Prinzip müsste man den ganzen Code emulieren) lohnen würde, denn wer so weit fortgeschritten in Java ist, wird auch die nötige Erfahrung haben, um den String "setOp" noch weiter zu tarnen, bis er eventuell nicht mal mehr im Programmcode auffindbar ist (kann ja so gesetzt werden, dass er durch bestimmte Impulse eines Ingame-Spielers zusammengebaut wird).

    Trotzdem nochmal danke für dein Feedback :)
     
    #3
  4. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    657
    Im Endeffekt hast du da keine Chance alles zu erkennen ohne es auszuführen, das ist korrekt. Ähnliche Methoden nutzt ja auch Malware, die als Binärcode vorliegt, wobei man dort sogar noch viel mehr machen kann. Aus dem Grund wird Schadware ja auch oft über bestimmte Muster im Code erkannt oder direkt über den Dateihash.

    Und ja, zu deiner letzten Vermutung. Man kann z.b. über Reflektions die setOp Methode des Servers suchen ohne jemals "setOp" im Code zu haben, indem man z.b. einen Befehl /harmlos erstellt, der durch Permutation der Buchstaben dann "setOp" ergibt (als durch scheinbar zufällig Daten des Servers, die man aber mit sicherheit irgendwann erwartet den Code aufbauen). Eine entsprechende Methode würde für andere Eingaben halt einfach Blödsinn ausgeben, aber solange man nicht das komplette Programm untersucht findet man das nie raus. Die Methode ist halt verdächtig, aber nahezu unmöglich zu entschlüsseln.

    Damit muss man aber leben, so funktioniert das nunmal und wie du schon sagtest, sind die meisten Kiddies, die solche Plugins schreiben eh zu blöd dafür. Wenn du die Idee aber ausbauen willst könntest du das ganze ja auf einer Website anbieten, wo man Plugins hochläd und dann führt das Programm eine Analyse aus (vielleicht bisschen mehr als das, was aktuell drin ist) und gibt dann am Ende ne Liste mit Zugriffen aus, die das Plugin durchführt. Müsste man natürlich verdammt gut absichern. Nur so als Idee.
     
    #4
    maybeto gefällt das.