Einzelnen Beitrag anzeigen

Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#1

(C++) Zeiger ein Sicherheitsrisiko?

  Alt 10. Sep 2004, 09:21
Hallo Freunde der sicheren Speicherverwaltung,
einer meiner überheblichen Tutoren war doch tatsächlich der Ansicht, dass es KEINE Möglichkeit gibt, von außerhalb einer Klasse (C++) auf deren private Attribute zuzugreifen. Da musste ich natürlich dagegen wetten um ihn eines besseren zu belehren. Der Mann ist ohnehin einer der arroganteren Sorte (kurz: Klugscheißer), meine Lektion war einfach nötig, um ihn am Boden der Tatsachen zu halten. Ging um nix Großes, nur um eine Pizza, die ich gleich in vollen Zügen genießen werde, da er wohl oder übel einsehen musste, dass ich diese Wette gewonnen habe. Ich werd’ jetzt meine Pizza genießen gehen und wünsche Euch viel Spass mit meinem erdrückenden Argument, das mich diese Wette gewinnen lies. Also, hier mein Quelltext, der einen externen Zugriff auf ein privates Attribut ermöglicht:
Check this out.
DANYBOY
Code:
#include <iostream.h>
#include <string.h>
/* Hinweis: Folgende Klasse enthält KEINE publike (explizite)
            Möglichkeit um das Passwort lesen zu können! Es
            kann lediglich geschrieben werden!
*/
  class AnyClass {
  private:
// privates Passwort
    char password[50];
  public:
// öffentliche Methode, um privates Passwort zu setzen
    void setPassword(char*);
  };

  void AnyClass::setPassword(char *p) {
    strcpy(password, p);
  };

  int main(void) {
// Objekt instanziieren
    AnyClass secret;
// Passwort setzen
    secret.setPassword("If you're seeing this text, YOU'VE ALREADY LOST OUR BET!");
// Char-Zeiger auf Anfang von Objekt im Speicher (explizieter Typecast).
    char *PChar = (char*)&secret;
// Char-Zeiger ausgeben
    cout<<"Cracked Password --> "<<PChar;
// Warten auf Keypress
    cin.get(); cin.get();
// result auf Null setzen
    return 0;
  };
 (C) Dannyboy 2004
PS: Seit lieb zu Euren Tutoren.
How much wood would a wood-chuck chuck if a wood-chuck would chuck wood?
Check this out.
DANNYBOY
  Mit Zitat antworten Zitat