AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

buchstaben-verschiebung optimieren...

Ein Thema von heiopei · begonnen am 17. Apr 2006 · letzter Beitrag vom 17. Apr 2006
Antwort Antwort
Seite 1 von 2  1 2      
heiopei
(Gast)

n/a Beiträge
 
#1

buchstaben-verschiebung optimieren...

  Alt 17. Apr 2006, 14:56
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 ).

=> 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:
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;
...
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...)

jetzt wollt ich nur wissen, inwiefern ich den algo optimieren kann (z.b. verzicht auf das array?...)

mfg,
heiopei
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#2

Re: buchstaben-verschiebung optimieren...

  Alt 17. Apr 2006, 15:11
ich würde spontan etwas in diese Richtung vorschlagen:
Delphi-Quellcode:
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;
BTW: wo in der Registry stehen diese Infos ?
  Mit Zitat antworten Zitat
heiopei
(Gast)

n/a Beiträge
 
#3

Re: buchstaben-verschiebung optimieren...

  Alt 17. Apr 2006, 15:22
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

mfg,
heiopei
Angehängte Dateien
Dateityp: rar decrypt_regentries_248.rar (2,1 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: buchstaben-verschiebung optimieren...

  Alt 17. Apr 2006, 16:18
Zitat von Basilikum:
ich würde spontan etwas in diese Richtung vorschlagen:
Wieso so kompliziert?
Delphi-Quellcode:
function Move13Chars(value char): char;
begin
  result := chr(ord(value) - 13);
end;
Habe ich was vergessen/überlesen?!

@heiopei:
Du hast bei deinem Anhang die Delphi-Referenz durchsuchenXOR_Letter-Prozedur verwendet. Die gibts bei meinem Delphi 7 nicht.
Ist die neu bei >=Delphi 2005 oder hast du die vergessen mitzugeben?

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: buchstaben-verschiebung optimieren...

  Alt 17. Apr 2006, 16:23
und warum "ord"? schneller gehts das ganze einfach auf Byte zu casten
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#6

Re: buchstaben-verschiebung optimieren...

  Alt 17. Apr 2006, 16:26
@SirThornberry:

Nope, es wird der gleiche Assembler-Code erzeugt. That's Delphi!

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: buchstaben-verschiebung optimieren...

  Alt 17. Apr 2006, 16:26
Zitat von SirThornberry:
und warum "ord"? schneller gehts das ganze einfach auf Byte zu casten
Okay, wusste ich nicht.
Woher weiß man das, ohne den Source der Funktion ord zu kennen?

NACHTRAG:
Zitat von Hawkeye219:
Nope, es wird der gleiche Assembler-Code erzeugt. That's Delphi!
Ääh? Was jetzt?

Sorry, hatte keinen roten Kasten.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#8

Re: buchstaben-verschiebung optimieren...

  Alt 17. Apr 2006, 16:26
Hallo,
Zitat von SirThornberry:
und warum "ord"? schneller gehts das ganze einfach auf Byte zu casten
"Ord" ist ja nur ein Überbleisel vergangener Tage. Das wird vom Compiler auch direkt gecasted.

Gruß
xaromz
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#9

Re: buchstaben-verschiebung optimieren...

  Alt 17. Apr 2006, 16:34
@faux:

Welchen Buchstaben liefert Deine Funktion, wenn Du ihr ein "A" übergibst?
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: buchstaben-verschiebung optimieren...

  Alt 17. Apr 2006, 16:35
Zitat von Hawkeye219:
Welchen Buchstaben liefert Deine Funktion, wenn Du ihr ein "A" übergibst?
Keinen, aber eine Zahl.
4

Aber sieh dir mal die oben genannten Schlüsseln an, ich kann da kein A finden...

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz