Einzelnen Beitrag anzeigen

brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#36

Re: Anwendungsspeicher schützen

  Alt 29. Sep 2008, 13:10
Zitat von zero_x:
Hallo Macci,

so wie ich festgestellt habe laufen in deinem CrackMe 4 Timer/Threads ab. Wenn man die Adresse des oberen Labels patcht arbeitet das Programm trozdem weiter, da warscheinlich eins der 4 Timer wohl eingreift. Die Verschlüsselung kann man mittels der RVA abfangen.

zero_x
Timer != Threads
Wie patched du bitte eine Adresse eines Labels?
Wie fängst du bitte eine Verschlüsselung mittels einer relativen virtuellen Adresse ab?


Der Code eines TTimers läuft immer im Hauptthread ab. Um an die Code der Verschlüsselung zu kommen sucht man sich schon richtigerweise die StrToInt bzw. SetText Funktion wie es new32 gemacht hat. Debugger/DeDe helfen dabei. Und wenn dann fängt man Exceptions ab aber keine relativen virtuellen Adressen. Daraus berechnet man hächtenst die absoluten virtuellen Adressen. Mit einem Hardware Breakpoint auf die XOR-Variable findet man auch die Adresse wo diese initalisiert wird. Dort könnte man einfach 0 eintragen und dann beliebige Werte für die Variable eintragen ohne sich um die Verschlüsselung zu kümmern (A XOR 0 = A).

Leider wird bei new32 Methode nur das Textfeld verändert. Man kann natürlich auch den richtigen Wert reinschreiben (ist ja nur geXORt). Als Alternative würde ich die globale Variable abändern die im oberen Label angezeigt wird. Beim nächsten Klick wird die ja sowieso übernommen. Diese Änderung wird dann auch für die globale Variable übernommen (also durch XOR verschlüsselt abgespeichert). So hätte man z.B. den Spielstand verändert.

Delphi-Quellcode:
004404EF B9 01000000 MOV ECX,1
004404F4 90 NOP
  Mit Zitat antworten Zitat