Einzelnen Beitrag anzeigen

Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#15

Re: Wie kommen Buchstaben in eine Seriennummer?

  Alt 18. Dez 2009, 11:37
Hm... Naja, angenommen du setzt den Vorschlag um, den der Engel gebracht hat. Dann sähe das in Delphi in etwa so aus:

key := md5str[1] + md5str[3] + md5str[7]; //usw... Ich weiß jetzt nicht, wie das im Disassembler aussähe, aber ich könnte mir vorstellen, dass man so relativ schnell erkennt, auf welche Elemente zugegriffen wird.

Daher war meine Idee, Primzahlen als Zugriff auf die einzelnen Elemente zu nutzen. Sagen wir, dein Key soll 6 Stellen haben, dann könnte eine Schleife so aussehen:

Delphi-Quellcode:
var
prime: integer;
idx,n: integer;

//[...]

key := '';
idx := 3;

for i := 0 to 5 do
begin
 repeat
  idx := idx + 2; //nur ungerade Zahlen
 until isPrimzahl(idx);
 key := key + md5str[idx];
end;
Die Funktion isPrimzahl prüft, ob eine Zahl eine Primzahl ist. Ist sie das, so wird sie als Index verwendet. Ist sie es nicht, wird die nächste ungerade Zahl getestet. Zum Test auf Primzahl fällt mir jetzt Miller-Rabin ein. Hier gibst was gut lesbares und lesenswertes dazu [PDF].

Und ich denke, für den Miller-Rabin-Test wird sich bestimmt eine Implementation in Pascal finden lassen.

Das Ziel ist eigentlich, dem Hacker oder RE die Arbeit möglichst aufwändig zu gestalten, indem man möglichst viele Berechnungen mit möglichst vielen Sprüngen (Bedingungen, Schleifen) einbaut. Die Script Kiddies werden so schnell aufgeben, da ihnen dass dann zu mühsam wird. Es soll aber auch exemplare geben, die durch sowas erst richtig aufblühen.

Ich hoffe, meine geistigen Ergüsse waren etwas verständlich.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat