A következő feladatot kaptam az Adatbiztonság témakörből: A printf utasítást a program 24 byte-on tárolja. A veremben a visszatérési címet közvetlenül a lokális változók követik. Mit ír ki a program?
Figyelt kérdés
void function()
{
int buffer[1];
buffer[2] += 0x18;
}
int main()
{
function();
printf("A\n");
printf("B\n");
printf("C\n");
return 0;
}
Előre is köszönöm a segítséget!
2015. máj. 6. 17:47
1/6 A kérdező kommentje:
Puffer túlcsordulásos támadásról van szó.
2015. máj. 6. 17:52
2/6 anonim válasza:
Mi akadályoz meg benne, hogy végiggondold/kipróbáld?
3/6 iostream válasza:
Tök jó lenne tudni, hogy mekkora a pointer mérete (hány bites architektúrára fordítasz), mekkora az int mérete, illetve milyen optimalizálásokat fog a fordító végrehajtani.
4/6 anonim válasza:
A válasz 32 biten, kiírja a b-t és a c-t. Az eip felülíródik a buffer+=0x18-nál. Ami nem mellesleg épp 24 byte-os növelést jelent. De ez önmagában kevés infó. Nem ártana tudni az optimalizációt, a fordító tipusát, valamint azt se van-e stack cookie,illetve a fordító meg az op. Rendszer használ-e aslr védelmet( address space layout randomization-t, mert ebben az esetben is felülíródik az eip, de az op. Tudja csak hogy eip+0x24 hova mutat, egy biztos ebben az esetben nem a printf-ekre fog.
5/6 anonim válasza:
Pontosítok aslr esetén eip+0x18 szinte biztos hogy NOP utasításra fog mutatni, annak is második byte-jára, ami érvénytelen művelet lenne, mivel ez két byte-os utasítás, az op. rendszer dob egy exceptiont, és leállítja a program futását.Az hogy a printf-ek hol vannakazt csak az op. Rendszer tudja.
6/6 A kérdező kommentje:
Köszönöm a válaszokat és a hozzászólásokat mindenkinek!
2015. máj. 8. 20:31
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!