Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#18

Re: Generierung einer eindeutigen MachineID

  Alt 22. Nov 2005, 13:55
Sorry das ich mich nochmal melde:

Delphi-Quellcode:
procedure AntiProcDump;assembler;
procedure antidebug;assembler;
Sind echt alte Hüte und jeder Hacker wird diese Codestückchen sofort rausfischen. Besonders AntiDebug mit seinem "verstecketen" INT 3 OpCode ist sehr leicht für moderne Dissassembler auszumachen. Dies disassemblieren nämlich gleich mehrere möglich Programmpfade man muß es diesen nur sagen. Naja, bisher hast du sie ja auch noch nciht benutzt.

function GetHDSerialNumber: LongInt; Benutzt GetVolumeInformation() und bekommt die LOGISCHE Serialnummer zurückgeben, NICHT die physikalische Serialnummer. Die Logische Serialnummer lässt sich auf DOS Ebene sehr leicht verändert, oder eine Formatierung reicht schon aus.

Ok dafür hast du ja gleich anschließend

function GetIdeSerialNumber ():string; Diese benutzt den S.M.A.R.T Treiber, und wer aber weis das dieser Treiber nur statistische Aufgaben in einem System erledigt wird diese so wie ich löschen. Dieser Treiber erledigt keine für das OS wichtigen Aufgaben, sondern wird immer wieder gerne nur für den Softwareschutz benutzt.

function gethardwareid: string; Nur ganz wenige Intel CPUs kennen eine CPU-ID. Mit speziellen Tools kann man diese extern deaktivieren und beim Ausführen des CPU-ID Befehles kommt es dann zu einer Hardwareexception. Desweiteren kann der CPU-ID Befehl komplett für Ring 3 Anwendungen gesperrt werden, auch dafür wird es wohl Tools geben. Dies führt zu einer Hardware Exception. Wo ist dein TRY EXCEPT Block eigentlich ? Naja und den Rest machst du über die Registry die ja jeder selber abändern kann.

Du solltest mal den MD5 so erzeugen das er auf Basis der Annahme das KEINE deiner Funktionen mit dem Datensammeln Erfolg gehabt haben, und dir diesen MD5 Digest dann wirklich merken. Es könnte durchaus sein das mit der Zeit immer mehr Registrationen reinflattern mit solchen MD5 Digest.

Erfreulich ist aber die Anwendung des MD5 Hashs da diese bei einer bekannten Serial verhindert das man die nötigen Werte für die Registry ermitteln kann. Man muß also schon Zugriff auf den Rechner haben den man kompromittieren möchte um dann alle Infos auslesen zu können und somit einen zweiten Rechner mit den Werten für die gleiche Serial versehen zu können. Das IST eine Notwendigket die ein Hacker in einem solchen Falle NICHT umgehen kann, das ist also sicher, und liegt am MD5. Bekommt also ein Hacker eine Serial in die Hände so nützt diese ihm wenig wenn er nicht weis von welchem Rechner sie stammt und er keinen Zugriff auf diesen Rechner bekommt.

Du hast also eine echte kryptographische Funktion an einer Stelle eingesetzt wo sie kryptographisch sehr sinnvoll ist und dies führte dann auch tatsächlich zu einer Erhöhung der Sicherheit indem bestimmte Angriffe definitiv ausgeschlossen werden. Dies zeigt sehr schön den Unterschied zu den anderen Funktionen.

Gruß Hagen
  Mit Zitat antworten Zitat