Mac Limit umgehen

  • Hab grad mal reingeschaut,



    ist die selbe 0815-Kacke wie vorher auch. Den Client-Side-Packet-Injection Kartoffel-Code von Drew copy&pasted und Themida drübergejagt. Selbst die Debugausgaben sind immernoch drin, man muss nur die Konsole anschalten (den EP ein paar Byte nach oben und CALL AllocConsole).
    Runtime-Protection gibts wiedermal keine. Einmal Themida umgangen debuggts sich ganz angenehm.



    Security by Obscurity ... Ein Proof of Concept :D



    Das größte Problem ist eher, das unter Windows 10 mein geliebtes OllyDBG nicht mehr so richtig wörkt.



    Inzwischen kann das Ding auch Anti-VM, d.H. man kann nicht mehr auf einer virtuellen Maschine botten. Gelöst wurde das ganze per String-Vergleich auf Device- und BIOS-Namen. Nach Auffassung der Entwickler kommt hier aber nur VirtualBox in Frage, daher sollten alle anderen VM-Platformen weiterhin funktionieren. VirtualBox wird nach minimalen Änderungen ebenfalls funktionieren, wie man gleich sieht:




    Die "Hardware-ID" selbst habe ich noch nicht genauer untersucht. Es findet sich im Handler des Timers ein auffällig riesiger Codeblock der entweder aus Copy&Paste oder aus Loop-unrolling (Optimierung des Compilers) entstanden ist. In meiner Boshaftigkeit unterstelle ich den Entwicklern gerne ersteres :P



    Es sind ~ 16 Durchläufe die sich scheinbar mit einem String in 16 Byte Blöcken beschäftigen und danach nochmal einige Durchläufe auf die ich noch keine Lust hatte. Woher die Daten kommen, habe ich ebenfalls noch nicht untersucht. Aus dem VM-Check vermutlich nicht, der hat nur einen Rückgabewert über VM=true/false, alles andere scheint in den Funktionen zu bleiben.
    Die kryptografische Funktion dahinter, wenn da überhaupt was krytografisch ist, zu reversen lohnt warscheinlich nur für einen Lacher :D
    Während der DllMain erfolgt ein unbekannter Library-Call mit "C:\" als Parameter. Könnte wieder meine Lieblingsfunktion GetVolumeInformation(), die wir ja schon aus der Vorgängerversion kennen, sein.



    FUNFACT: Die DLL enthält einige male den String "Electus" aber exakt 0x den String "Onyx". Meines Wissens gehört die DLL doch zu einem Paket das man auf epvpers kaufen kann ... hat da etwa einer ... Recycling betrieben?



    Gruß
    florian0

  • Die dll checkt ein paar Registryeinträge, z.B. SystemManufacturer, BiosVersion, etc.
    Darunter auch Registryeinträge von VMWare. Also wenn man VMWare installiert hat, dann kann man sich nicht einloggen.


    Einfachste Lösung wäre, die Registryeinträge bei jedem Start von SRO zu ändern. Hab ich auf einem anderen PServer schonmal softwareunterstützt gemacht, aber den Weg direkt über die dll zu gehen, indem man sie modifiziert, ist da eventuell angenehmer.


    E: Das mit der VolumeID ist mir auch aufgefallen ;D

  • Obs sich lohnt sei mal dahingestellt :D Spaß machts (mir) auf alle Fälle:


    Der Code für den Paketaufbau lässt sich in etwa so zusammenfassen:



    Das ganze lässt sich also tatsächlich wieder auf die VolumeID reduzieren. Leider geht nach meinem ersten Patch die Dll garnicht mehr ... schade. Ich schau morgen mal weiter.


    Gruß
    florian0

  • Könnte es sein, dass bei der .dll auch noch nach dem Hash eben jener .dll geschaut wird?

  • Ja, das tut die Dll dank Themida (die Schutz-Software außenrum) sowieso. Daher fällt eine gepatchte Dll sowieso raus, außer ich lerne übernacht Themida zu entpacken (etwa auf einem Level mit Sanskrit in 24h erlernen).


    Ich hab die Dll geladen und einfach stumpf die gelesene VolumeID überschrieben, dann ändert sich die Checksumme der Dll nicht. Das hatte bei der simpleren Vorgängerversion auch geklappt (siehe ein paar Seiten vorher), nur hier anscheinend nicht. Keine Ahnung ob Themida da seine Finger im Spiel hatte, oder ob ich einfach nur zu blöd war :D


    Edit: War zu blöd. Geht jetzt:




    Hab 5 derzeit Accounts online.


    Edit: Anti-AntiVM ist einfacher als gedacht.


    Gruß
    florian0

  • moin leute, ich habe echt nur bahnhof verstanden was ihr da gemacht bzw was der florian da gemacht hat,
    ich habe versuch bei den neuen electus-reborn mit den "tutorial" nachzumachen hat aber bei mir net funktioniert, meine frage ist nun. Kann mir einer genau sagen was ich für Programme brauche, wie ich das genau mache?
    hab nix gerafft :D

  • Mein aktuelles Setup ist:

    • Windows 7
    • x64dbg
    • ScyllaHide


    sro_client laden, PUSH, CALL und JMP erkennen. Breakpoint auf den JMP setzen. Ausführen. Wenn der Breakpoint erreicht ist, über EAX -> Rechtsklick -> Follow in Disassembler in die Dll wechseln.


    Die "neue" neue Dll ist mit dem Trick von vorher nur sehr "zufällig" zu knacken, da LastThief nun die GetVolumeInformation()-Abfrage in das Timer-Event gepackt hat. Damit werden aus "beliebig viel Zeit zum patchen" etwa einge 100ns, was die ganze Sache schwierig macht.