ale AAAA to jest szesnastkowo 41414141...wytłumacz
ale AAAA to jest szesnastkowo 41414141...wytłumacz
powiedzialem ci wczesniej...
takie cos: "AAAASDFGHJ" to nic innego jak \x41\x41... Natomiast 414141 to \x34\x31\x34\x31\x34
te wartosci sa pewnie bledne, nie chce mi sie szukac wlasciwych kodow. Ale to nieistotne.
jak by ci to jeszcze wytlumaczyc.
poprostu ciag szesnastkowy jest po sformatowaniu, a jak podasz po czy przed AAA %x, to i takstos jest liczony od nastepnego argumentu.
To trzeba poprostu zrozumiec, ze na konsoli 41 to 2 bajty, a A to 1 bajt (wlasnie 0x41)
daj takie cos:
#include <stdio.h>
int main(int argc, char *argv[]){
if(argc == 2)printf(argv[1], 0xAAAAAAAA, 0x41414141, "AAAAAAA");
return 0;
}
cmd>.\vuln.exe "%x %x %s"
jak jeszcze nie rozumiesz pisz.
To by było inaczej gdyby program przyjmolał 2 argumenty a nie jeden, bo nie bedzie go odpowiednio na stosie czy dobrze rozumiem...mógłbys jakos jasniej powiedziec
pzdr