![]() |
buchstaben-verschiebung optimieren...
hallo,
ich hab neulich in ner alten pc-zeitschrift nen artikel gefunden, in dem gezeigt wurde, dass windows xp neben der "normalen" Dateibenutzungs-history diese zugriffe auch in der registry mitschreibt (bei mir rund 1400 einträge :!:). dabei werden jedoch alle buchstaben(!!!) um 13 nach vorn verschoben (z.b. C => P) und die einträge somit "verschlüsselt" - entweder, dass nicht jeder depp die einträge entdeckt, oder zur "sicherheit", dass andere programme diese einträge nicht ohne weiteres lesen können (rechtliche absicherung :?: :roll: ). => man muss alle buchstaben wieder um 13 nach hinten verschieben, um die dateipfade lesbar zu machen soweit so gut. jetzt hab ich mir quick'n dirty ein programm geschrieben, dass diese einträge ausließt und sie schließlich entschlüsselt anzeigt. funktioniert bestens. jetzt zur frage: man ist natürlich wieder perfektionist(ähm naja ein bisschen zumindest) und will alles verbessern. hier den verschliebungs-algo...:
Delphi-Quellcode:
d.h. ich definiere den verschiebungswert "shifter"(im bsp. 13) und vergleiche jeden buchstaben mit der tabelle "letters" (aber nur von index 27 bis 52). ist der buchstabe mit dem eintrag der tabelle gleich, gehe ich einfach in der tabelle um den wert "shifter" zurück, und gebe den buchstaben, der sich dort befindet aus. (ich berücksichtige dabei auch groß-/kleinschreibung...)
const
Shifter = 13; ... function Shift_Letter(Letter: Char): Char; const letters: array [1..52] of Char = ( 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); var b: Byte; begin result := letter; for b := 27 to 52 do if letter = letters[b] then begin result := letters[b - Shifter]; Exit; end else if UpperCase(letter) = letters[b] then begin result := Chr(Ord(letters[b - Shifter]) + 32); Exit; end; end; ... jetzt wollt ich nur wissen, inwiefern ich den algo optimieren kann (z.b. verzicht auf das array?...) mfg, heiopei |
Re: buchstaben-verschiebung optimieren...
ich würde spontan etwas in diese Richtung vorschlagen:
Delphi-Quellcode:
BTW: wo in der Registry stehen diese Infos ?
Function Shift_Letter(Letter: Char): Char;
Begin Case Letter Of 'A'..'Z' : Result:=Chr( (((Ord(Letter) - Ord('A') + (26 - Shifter)) mod 26) + Ord('A') ); 'a'..'z' : Result:=Chr( (((Ord(Letter) - Ord('a') + (26 - Shifter)) mod 26) + Ord('a') ); Else Result:=Letter; end; end; |
Re: buchstaben-verschiebung optimieren...
Liste der Anhänge anzeigen (Anzahl: 1)
hallo,
hab grad nachgeschaut, der artikel stammt aus der pc-professional von 8.03... die schlüssel: URL-liste (+ iexplore schließe ich aus den einträgen): HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\UserAssist\ {5E6AB780-7743-11CF-A12B-00AA004AE837}\Count dateiverwendungen (starten von programmen, öffnen von dateien... - komische kürzel am anfang ;-)): HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\UserAssist\ {75048700-EF1F-11D0-9888-006097DEACF9}\Count im anhang ist mal mein quellcode, keine zusätzlichen komponenten, einfach compilieren, liste auswählen und entschlüsseln => staunen :roll: :x :? :shock: mfg, heiopei |
Re: buchstaben-verschiebung optimieren...
Zitat:
Delphi-Quellcode:
Habe ich was vergessen/überlesen?!
function Move13Chars(value char): char;
begin result := chr(ord(value) - 13); end; @heiopei: Du hast bei deinem Anhang die ![]() Ist die neu bei >=Delphi 2005 oder hast du die vergessen mitzugeben? Grüße Faux |
Re: buchstaben-verschiebung optimieren...
und warum "ord"? schneller gehts das ganze einfach auf Byte zu casten
|
Re: buchstaben-verschiebung optimieren...
@SirThornberry:
Nope, es wird der gleiche Assembler-Code erzeugt. That's Delphi! Gruß Hawkeye |
Re: buchstaben-verschiebung optimieren...
Zitat:
Woher weiß man das, ohne den Source der Funktion ord zu kennen? NACHTRAG: Zitat:
Sorry, hatte keinen roten Kasten. :? Grüße Faux |
Re: buchstaben-verschiebung optimieren...
Hallo,
Zitat:
Gruß xaromz |
Re: buchstaben-verschiebung optimieren...
@faux:
Welchen Buchstaben liefert Deine Funktion, wenn Du ihr ein "A" übergibst? |
Re: buchstaben-verschiebung optimieren...
Zitat:
4 Aber sieh dir mal die oben genannten Schlüsseln an, ich kann da kein A finden... :tongue: Grüße Faux |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz