| Hacks & Crackmes Tests, Fragen oder Hilfestellungen. Crackmes und Hackits werden hier diskutiert. |
Diskussion: Reverse Engineering im Forum Hacks & Crackmes, in der Kategorie Software Home; Anzeige Zitat: Damit wollte ich wissen, ob es das Entpacken erschwert, wenn jede Sub/funktion erst bei gebrauch entschlüsselt wird. Somit ...
![]() |
| | #16 (permalink) | |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Anzeige Zitat:
1.suche nach Calls zu der Entschlüsselungsfunktion 2.rufe den Call auf 3. weiter mit 1, bis Ende. Bsp für PCGuard Anwendung mit unterschiedlichen Cryptloops Je nach dem kann man es auch per Hand machen (wenn es z.B nur 4-5 verschlüsselte Blöcke gibt). Btw: imho ist zwischen "theoretisch alles knackbar" und Praxis ein großer Unterschied . Wie hoch ist die Wahscheinlichkeit, dass irgendeine Nischensoftware mit paar 100 Zielpersonen überhaupt im Debugger landet? Sogar wenn man alle "ich kann Olly starten und Nags wegnoppen!!!" Leute berücksichtigt? Auserdem gibt es gar nicht so viele, die Themida&Co oder auch nur ASProtect&Armadillo "mit Links" entpacken können. Dass sie die Software also überhaupt zu sehen bekommen und dann auch noch für eine unbekannte 0815 Anwendung ihre Zeit aufwenden (ich spreche speziell von Leuten, die ihre Cracks auch releasen) halte ich doch eher für unwahrscheinlich. Besonders wenn CodeVirtulizer/Execrypter Funktionen geschickt eingesetzt wurden - sprich, wenn der Programmierer nicht nur auf "protect" Button geklickt hat, sondern ein paar Stunden in Dokulesen und Protectorlibs einbinden investiert. Da muss die Software schon einen relativ bekannt sein. Genauso verhält es sich mit Donlges - TPM und Chips außen vor - nur den Fall vorausgesetzt, dass die Software mehr als nur einen "if dongle verfügbar then start else Msg 'Error' " beim Start hat, sondern auch paar Daten liest: Der Cracker muss dann 1) überhaupt Dongles reversen können, 2) an das Dongle herankommen. Wie hoch ist also die Wahrscheinlichkeit, dass der böswillige Kunde die "richtigen" Connections hat bzw der "böse" Cracker ein Dongle ergattern kann?
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. | |
| | |
| | #17 (permalink) | ||
| Themenstarter Registriert seit: 03.02.09 ![]() Likes: 0 | Hy Zitat:
Zitat:
Wenn ein Programmierer gerade mal, wie du schreibst, auf 'Protect' klickt und dannach im glauben lebt, es sei damit getan ist er m.E. einfach ein schlechter Programmierer. Das ist wie Auto fahren mit 3 Fahrstunden, da hast du zwar ahnung von, aber machst garantiert Fehler am laufenden Band. Lg Netonator | ||
| | |
| | #18 (permalink) | ||
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Zitat:
Außerdem musst du bedenken: 1) Wieviele unterschiedliche Funktionen zum ent/verschlüsseln willst du überhaupt einsetzen - wieviele Funktionen können überhaupt verschlüsselt werden? Dazu du musst diese Funktionen vor dem Release in der Binary irgendwie verschlüsseln (manuell=viel Aufwand, mit Macros=auch nicht wenig).Eventuell ist der Aufwand zum Entpacken geringer (vor allem, wenn man es automatisieren kann). Denn man kann sich die Referenzcalls zu einer Funktion anzeigen lassen - damit hat man schon die Liste der Funktionen, die Entschlüsselt werden und kann sie gescritpet/manuell abarbeiten. 2)Wie soll die Ent/Verschlüsselung ablaufen? Denn warum soll die verschlüsselte Funktion beim Dumpen stören (vorausgesetzt, man muss überhaupt dumpen) - sofern die Ver/Entschlüsselungscode in der eigentlichen Codesection liegt? Man dumpt einfach alles mit und kann nur bei Bedarf (bei interessanten Funktionen) diese auch mal manuell oder gleich vom Codefluss selber entschlüsseln lassen - das Programm läuft ja munter weiter Das ist gleichzeitig auch der große Angriffspunkt: a) man kann bei dem Heap/VirtualAlloc/whatever - Speicherreservierung einfach eine passende Adresse zurückgeben und das Programm macht den Rest (schreibt den Code in den passenden Speicherbereich, z.B nach der letzen Programmsection - danach funktionert der Dump problemlos). b) Adresstabelle/Korrekturfunktion kann man missbrauchen, um Adressen aller verschlüsselter Funktionen herauszufinden - dann entweder skripten oder im Debugger den Code so modifizieren, dass bei der "Korrektur" auch gleich die Funktionen entschlüsselt werden. Zitat:
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. | ||
| | |
| | #19 (permalink) | |
| Member of Honour ![]() Registriert seit: 05.03.08 ![]() ![]() ![]() ![]() ![]() Likes: 246 | Zitat:
![]() Netonator, fuer kleinere Firmen sollte es reichen den Programmcode ordentlich zu obfuscaten, denn glaub mir nichts ist fuer einen Cracker nerviger als richtig obfuscateten Code nachzuvollziehen (es sei denn, man kennt die Algorithmen, mit denen dies geschah) . Wenn du nicht sowas wie Photoshop, Vmware oder IDA neu erfunden hast, fehlt die Motivation sich durch sowas durchzuquaelen | |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Assembler und Reverse Engineering | TheRealNewbie | Hacks & Crackmes | 3 | 02.11.08 10:33 |
| Game Engineering, wie ??? | Offset | Hacks & Crackmes | 4 | 08.07.08 17:43 |
| Bücher übers "Windows Reverse Engineering" ? | Xalon | Hacks & Crackmes | 4 | 08.04.06 10:45 |