Ich würde gerne wissen, wie man die Adresse von Test
, die in der virtuellen Tabelle ist mit der von HackedVTable
ändern.Wie hackt man die virtuelle Tabelle?
void HackedVtable()
{
cout << "Hacked V-Table" << endl;
}
class Base
{
public:
virtual Test() { cout <<"base"; }
virtual Test1() { cout << "Test 1"; }
void *prt;
Base(){}
};
class Derived : public Base
{
public:
Test()
{
cout <<"derived";
}
};
int main()
{
Base b1;
b1.Test(); // how to change this so that `HackedVtable` should be called instead of `Test`?
return 0;
}
Antwort wird sehr geschätzt.
Vielen Dank im Voraus.
Es ist mir egal, warum Sie das tun möchten. Es ist eine schlechte Idee. Tu es nicht. – abelenky
@abelenky, dies ist nur für die Erziehungszwecke nur. Ich wollte wissen, wie die Dinge funktionieren. :) – mahesh
@ Martins Kommentar ist der beste Rat, den Sie für Bildungszwecke bekommen können. Ansonsten - gib einfach auf, der Compiler ist besser für diesen Job. – LiraNuna