Einzelnen Beitrag anzeigen

Marcu

Registriert seit: 20. Mai 2012
50 Beiträge
 
#243

AW: Verschlüsselungs-Trojaner, Hilfe benötigt

  Alt 17. Jun 2012, 15:17
@Blup

Zitat:
Der Programmierer des Trojaners verwendet einen 32Bit-Wert als Ausgangspunkt für die "Zufallszahl", dafür verknüpft er die beiden Register mit xor.
Völlig richtig Das "xor eax,edx" muss da natürlich rein. Danke

Ich habe es in Delphi 5 getestet und gemerkt, dass es dann immer noch nicht so ganz klappt. Delphi 5 fügt vor der Rückkehr aus der Funktion ein "mov eax,edx" ein und überschriebt das Ergebnis der XOR- Operation. Ich geh jetzt lieber den Weg des geringsten Widerstands und habe den Funktionsaufruf ganz aufgelöst. So sollte es jetzt mit jeder Delphiversion klappen.
Zitat:
Bei meinen Versuchen schwankt die Anzahl allerdings erheblich, ich sehe hier keinen Angriffspunkt.
Das ist echt schade Ich hatte so ein bisschen das Gefühl, dass das sehr schwierig wird, aber trotzdem die Hoffnung nicht ganz aufgegeben. Klasse dass du es versucht hast

Delphi-Quellcode:
function GetRandomNumber: DWORD; // finale Version :-)
// http://www.cems.uwe.ac.uk/~irjohnso/coursenotes/ufeen8-15-m/p1192-parkmiller.pdf
// Seite 1195 (function Random Integer Version 2)
const
  a = 16807;
  q = 127773; (* 2147483647 div a *)
  r = 2836;
var
   hi, lo, seed: DWORD;
begin
  asm
    dw $310F (* = rdtsc -> 64 bit in edx:eax *)
    xor eax,edx
    mov seed,eax
  end;
  hi := seed div q;
  lo := seed mod q;
  Result := (a * lo - r * hi) mod 10000; (* $186A0 *)
end;
@ewhiz

eine Datei mit der Endung ".$$0" speichert die Version die ich untersucht habe (1.150.1) mit Gewissheit nie ab. Da liegt eine andere - neuere Version vor, die etwas anders macht als ich es kenne.
Ich bekomme bald eine aktuelle Version von Markus - dann werde ich danach suchen. Wird interessant werden die neue mit einer älteren Version zu vergleichen und zu sehen was der Virenprogrammierer als verbesserungswürdig ansieht.

@HofMar
Zitat:
wie bekommt man möglichst schnell die Versionsnummer aus dem schadhaften Code heraus?
Die Versionsnummer ist bestimmt eine wichtige Information, wenn man sich mit diesem Trojaner beschäftigt und wird in Zukunft sicher noch wichtiger, da der Erpresser den Virus weiterentwickelt. Man müsste den Code der in ctfmon injected wird nach der Versionsnummer durchsuchen die bei der Internetkommunikation gesendet wird. Dieser Code steht in verschlüsselter Form in der Trojanerdatei. Ist also ein ganz hübsches Stück Arbeit, aber die Mühe auf jeden Fall wert. Falls mir keiner zuvorkommt, werde ich mich nächste Woche damit beschäftigen.


@pcnberlin
Zitat:
@Marcu: Danke für die super Erklärungen & das Bild für die bessere Übersicht!

@markusg: Ja, eine Version 2.X hätte ich gern.
Danke, Super, dass du noch dabei bist!

VG Marcu
  Mit Zitat antworten Zitat