AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Sinnlose Zeichenketten etc. im Quellcode erlaubt
Thema durchsuchen
Ansicht
Themen-Optionen

Sinnlose Zeichenketten etc. im Quellcode erlaubt

Ein Thema von Namenloser · begonnen am 19. Apr 2008 · letzter Beitrag vom 20. Apr 2008
Antwort Antwort
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#1

Sinnlose Zeichenketten etc. im Quellcode erlaubt

  Alt 19. Apr 2008, 21:35
Hallo, Community!

Mir ist schon vor einigen Jahren aufgefallen, dass soetwas kompilierbar ist:
Delphi-Quellcode:
begin
  showmessage('sinnvoller text');
  'sinnloser text';
  123; // sinnlose zahl
end;
Das interessante ist, dass der sinnlose Text sogar hinterher in der EXE auftaucht (lässt sich mit einem Hexeditor finden). Das ist ja nun weder etwas nerviges, noch etwas, das einen Fehler produziert. Allerdings würde mich mal interessieren, wieso das eine gültige Syntax zu sein scheint. Ist das ein Bug? Oder ein Feature? Auf jeden Fall ging das bei Delphi 3 noch nicht. Und dass es keinen fehler gibt, deutet ja darauf hin, dass es kein Bug sein kann. Nur, was bringt es dann?

Das einzige, was mir einfiele, wäre, Zeichenketten zur Verwirrung von Crackern einzubauen. Davon hab ich mal irgendwo was gelesen, z.B. baut man an einer willkürlichen Stelle im Code 'Unregistriert' ein, wenn das z.B. bei einem unregistrierten Programm in der Titelzeile steht. Die wirkliche Meldung in der Titelzeile baut man dann aber "soft" zusammen, also mit chr(...)+chr(...) etc. Der Hacker denkt dann, er hätte die Stelle gefunden, in der die Registrierung überprüft wird. Allerdings müsste vor dem String ja ein Sprungbefehl oder ähnliches stehen, damit es zu keinem Fehler kommt, was aber eigentlich auffallen müsste.

Kann mir vielleicht jemand sagen, was es damit auf sich hat?
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Sinnlose Zeichenketten etc. im Quellcode erlaubt

  Alt 19. Apr 2008, 21:38
Delphi hat vermutlich eine Syntax/Semantik, die alleinstehende Werte erlaubt. Parameterlose Funktionen, deren Wert nicht benutzt wird, fallen unter eine solche Semantik. Eventuell wurde das mit der Zeit auch auf Primitive ausgedehnt oder einfach direkt in die Syntax aufgenommen..?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Sinnlose Zeichenketten etc. im Quellcode erlaubt

  Alt 19. Apr 2008, 21:42
Ich vermute, diese sinnlosen Werte werden einfach als Konstanten angesehen, mit denen nicht weiter geschieht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Sinnlose Zeichenketten etc. im Quellcode erlaubt

  Alt 19. Apr 2008, 21:58
Zitat von NamenLozer:
Mir ist schon vor einigen Jahren aufgefallen, dass soetwas kompilierbar ist:
Nur wieviele Jahre? Diese Möglichkeiten kamen erst, nach dem Borland/CodeGear zu D2005 den Parser der Sprache erweitert bzw. z.T. wohl neu geschrieben hatte.

Im Anhang sind die Beschwerden von Delphi 5 zu dem Code...

/EDIT: Delphi 7 beschwert sich mit den gleichen Meldungen im gleichen Stil...
Miniaturansicht angehängter Grafiken
syntax_642.jpg  
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Sinnlose Zeichenketten etc. im Quellcode erlaubt

  Alt 19. Apr 2008, 22:24
Vor einigen Jahren war glaube ich mit Delphi 2005.
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#6

Re: Sinnlose Zeichenketten etc. im Quellcode erlaubt

  Alt 19. Apr 2008, 23:31
Tja, unter D2006, kommt folgende Meldung...

Wie erwartet... GG
Miniaturansicht angehängter Grafiken
compilierbar_897.png  
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Sinnlose Zeichenketten etc. im Quellcode erlaubt

  Alt 20. Apr 2008, 00:02
Fehler:
Delphi-Quellcode:
begin
  writeln('sinnvoller text');
  'sinnloser text'; <--
  123;
end.
Fehler:
Delphi-Quellcode:
begin
  'sinnloser text';
  123; <--
end.
Kein Fehler:
Delphi-Quellcode:
begin
  'sinnloser text';
end.
Merkwürdig
Und ich meine (kanns jetzt nicht beschwören), unter Delphi2005 wären die ersten beides auch noch gegangen.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Sinnlose Zeichenketten etc. im Quellcode erlaubt

  Alt 20. Apr 2008, 01:32
Was anderes witziges. Da ich kein Delphi 6 habe, kann ich nicht sagen, wie sich dies Delphi dazwischen verhält.

Folgende Procedure:
Delphi-Quellcode:
procedure Foo(const ABar1: integer = -1; const ABar2: integer = -1; const ABar3: integer = -1; const ABar4: integer = -1);
begin
  ;
end;
Aufruf in Delphi 5, welcher compiliert wird und keine Warnung, Hinweis etc bringt:
Foo(1,2,); (Ja, das Komma am Ende ist der Witz und richtig so)

Aber in Delphi 7 meckert er dies dann an, richtigerweise wie man bemerken muss...
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Sinnlose Zeichenketten etc. im Quellcode erlaubt

  Alt 20. Apr 2008, 01:34
Ich glaube, das wurde sogar schonmal als Bugreport gepostet.
Der Parser hat auch noch ein paar andere Merkwürdigkeiten, die mir gelegentlich auffallen, mir aber gerade nicht einfallen...
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Sinnlose Zeichenketten etc. im Quellcode erlaubt

  Alt 20. Apr 2008, 01:46
Scheint ein Feature von Turbo-Delphi zu sein.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:51 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