Wofür C++ und C?



  • Artchi schrieb:

    Undertaker schrieb:

    Mr. N schrieb:

    std::string halbwegs(*) richtig benutzen ist leicht. Und subtile Gefahren gibt es da auch nicht wirklich.

    denk doch nur mal an operator[]
    🙂

    Was soll damit sein? Der kann auch secure sein, siehe MSVC8.0 (da sind alle []-Operatoren der C++-Standard-Library secure als Compiler-Default-Setting!).

    lobenswerte sache von m$. ich dachte immer, da sind aus geschwindigkeitsgründen keine checks drin. noch meine vs2003-codes haben sich bei astronomischen indexwerten immer verabschiedet. bereichsüberprüfungen von [] sind aber nicht standard, nehme ich an.

    Bashar schrieb:

    er wird ja gut gefüttert hier.

    hmmmm, mampf, schmatz, lecker 😉



  • Und wie baut man mit operator[] eine Sicherheitslücke?



  • Mr. N schrieb:

    Und wie baut man mit operator[] eine Sicherheitslücke?

    das überlassen wir mal den hackern. ich hab' damit nur abstürze produziert.
    🙂



  • wenn man was gegen c++ sagt, dann können die c++ fanboys nicht anders



  • Bashar schrieb:

    Wer kann's ihm verdenken, er wird ja gut gefüttert hier. Am meisten von denen, die lange dabei sind und es eigentlich wissen müssten.

    Zum Problem wirds aber, wenn die Nubs anfangen, ihm zu glauben, wie in diesem Fall geschehen.



  • Wissendes Wesen schrieb:

    Bashar schrieb:

    Wer kann's ihm verdenken, er wird ja gut gefüttert hier. Am meisten von denen, die lange dabei sind und es eigentlich wissen müssten.

    Zum Problem wirds aber, wenn die Nubs anfangen, ihm zu glauben, wie in diesem Fall geschehen.

    was hab' ich denn falsches erzählt, das einem noob zum nachteil gereichen könnte?
    🙂



  • Undertaker schrieb:

    Wissendes Wesen schrieb:

    Bashar schrieb:

    Wer kann's ihm verdenken, er wird ja gut gefüttert hier. Am meisten von denen, die lange dabei sind und es eigentlich wissen müssten.

    Zum Problem wirds aber, wenn die Nubs anfangen, ihm zu glauben, wie in diesem Fall geschehen.

    was hab' ich denn falsches erzählt, das einem noob zum nachteil gereichen könnte?
    🙂

    Die Falle war gut, aber nicht gut genug.
    🙂



  • Undertaker schrieb:

    Artchi schrieb:

    Undertaker schrieb:

    Mr. N schrieb:

    std::string halbwegs(*) richtig benutzen ist leicht. Und subtile Gefahren gibt es da auch nicht wirklich.

    denk doch nur mal an operator[]
    🙂

    Was soll damit sein? Der kann auch secure sein, siehe MSVC8.0 (da sind alle []-Operatoren der C++-Standard-Library secure als Compiler-Default-Setting!).

    lobenswerte sache von m$. ich dachte immer, da sind aus geschwindigkeitsgründen keine checks drin. noch meine vs2003-codes haben sich bei astronomischen indexwerten immer verabschiedet. bereichsüberprüfungen von [] sind aber nicht standard, nehme ich an.

    Bashar schrieb:

    er wird ja gut gefüttert hier.

    hmmmm, mampf, schmatz, lecker 😉

    sind auch nicht standard - kannst du per Makrodefinition entfernen die Sicherheitsüberprüfung - es gibt aber bei std::vector und co auch eine Funktion "at(Position)", die eine Bereichsüberprüfung drinhat und die ist sehr wohl im Standard enthalten



  • Theston schrieb:

    Die Falle war gut, aber nicht gut genug.

    du sprichst in rätseln 😕

    Checker&Murckser schrieb:

    sind auch nicht standard - kannst du per Makrodefinition entfernen die Sicherheitsüberprüfung - es gibt aber bei std::vector und co auch eine Funktion "at(Position)", die eine Bereichsüberprüfung drinhat und die ist sehr wohl im Standard enthalten

    dass at() sowas drin hat, war mir bekannt.
    🙂



  • Mr. N schrieb:

    Sagt dir Buffer Overflow und One Off Error etwas?

    Tja, hier schmeißen einige mit lustigen Fachbegriffen rum: Wie Produziere ich denn nun, konkret mit diesem Struct, einen Buffer Overflow?



  • F98 schrieb:

    Mr. N schrieb:

    Sagt dir Buffer Overflow und One Off Error etwas?

    Tja, hier schmeißen einige mit lustigen Fachbegriffen rum:

    Mr.N meinte bestimmt 'off-by-one'

    F98 schrieb:

    Wie Produziere ich denn nun, konkret mit diesem Struct, einen Buffer Overflow?

    so wie immer. durch einen zu grossen oder negativen indexwert beim (ungeschützten) operator[] bekommt man zugriff auf speicher ausserhalb des std::strings. wenn man das geschickt ausnutzt, kann man alle möglichen faxen damit anstellen.
    --> http://en.wikipedia.org/wiki/Buffer_overflow


Anmelden zum Antworten