here? ? man можешь помочь? дароф :) в win32 переполнении а? privet, 4em imenno pomo4'? mogu only dat' sovet :) слух буду рад слух я вот написал для примера бажную прогу ща покажу #include #include int main(int argc, char *argv[]) { char buf[20]; strcpy(buf, argv[1]); } так вот я не пойму в linux все предельно ясно адрес возврата прально определить не могу написал сплоит он не пашит вот пример сплоита int main(int argc, char* argv[]) { char buf[100]; char exec[600]; memset(buf,0x00,sizeof(buf)); memset(buf,0x90,190-strlen(shellcode)); memcpy(buf+strlen(buf), &shellcode, strlen(shellcode)); *(long *)&buf[24] = 0x0012FF8C; sprintf(exec,"vuln.exe %s",buf); system(exec); return 0; } тут ? a ti sam podumai.... char buf[100]; memset(buf,0x90,190-strlen(shellcode)); u tebya u samogo perepolnenie v ploite :) heh w8 а как надо? char buf[200] пробовал i vo-vtorih... char buf[20]; покажи плз. пример сплоита smotri v moem texte :) смотрел не пашит vse tam pashet u menya po krainei mere :)) w8 4to ti tam delaesh.. ya hz у тя winxp? da rus? rus у меня тоже пашит только второй пример с буфером в 100 байт но 20 не пашит 20..eto uje tvoi variant ну да ti dlya svoego varianta nepravilno ploit delaesh так вот я и прошу помощи poetomu U MENYA VSE WORK...:) хех можешь помочь? a ya tebe govoryu...smotri moi text i pitaisya ponyat' :) дык я понял текст пишу свой вариант нихера может адрес неправильный хз перепробовал много imho ti nihuya ni4ego ne ponyal..sudya po tomu kakoi ploit ti napisal dlya svoego primera :) )) ya tebe vse hints uje dal..sm. vishe ща слух скажи мне вот что допустим в линухе я заполняю буфер хоть 1000 байтами а далее указываю адрес и все ок. в винде что-то не так тут буфер допустим буфер у меня 20 байт я его заполняю 24 байта 4 адрес возврата на шеллкод так? нихера ti hot' sam ponyal 4to skazal? :) я заполняю буфер хоть 1000 байтами а далее указываю ^^^ eto v slu4ae, esli u tebya perepolnyaemii buffer 1000b(+-32b v zavisimosti ot compilera) a v vinde izvini drugoi kompilyator :) да я понял в linux все просто там даже понимать нечего esli vse prosto, to po4emu tut problemi? :))) в win траблы не могу понять там даже понимать нечего - silno skazano :)) допустим в linux такой сплоит написать просто vot iz-za togo, 4to ti tam nifiga ne ponimaesh, to i tut ne poimesh :) я просто прошу помочь тебя я в linux понимаю переполнение a ya prosto govoryu tebe..napryagi mozg :) u menya sha time netu ob'yasnyat' 4itai i ponimai use debuggers to understand howto просто скажи a ya prosto govoryu tebe..napryagi mozg :) u menya sha time netu ob'yasnyat' в 24 байта нужно заполнять адрес :) *(long *)&buf[24] = 0x77F5801c; так? a ti sam podumai :)) я думаю да т.к. 4 байта отводятся под адрес или же в 28 байт ща попробую dumai..probui... :) пробую Ж0 я смотрю в 28 байта ;) запихать vse zavisit ot kompilyatora... ya uzal ms visual c++ 6.0 compiler теперь нихера не исполняется :) ща memset(buf,0x00,sizeof(buf)); memset(buf,0x90,190-sizeof(shellcode)); memcpy(buf+strlen(buf), &shellcode, strlen(shellcode)); *(long *)&buf[28] = 0x0012FF8C; что-то я непрально делаю видимо размер заполняемый непрально указал :( a ti progressiruesh :)) хех :) ne obolshaisya... ti prosto nihuya ne vrubaeshsya 4to delaesh i vse :) всмысле? *(long *)&buf[28] = 0x0012FF8C; --- 0x00 (hint #N) дык это понятно здесь нули hahahaha мля они не исполнятся i 4to tebe ponyatno-to? :)) pizdec :))) хех *(long *)&buf[28] = 0x77F5801c; hint #N+1 : sprintf(exec,"vuln.exe %s",buf); strcpy(buf, argv[1]); что? sam dumai то что нули? *(long *)&buf[28] = 0x77F5801c; нули мешают копированию hint #N+2: *(long *)&buf[28] = 0x77F5801c; --- a u sure about this addr ? :) просто я юзал его для 100 байт в буфере он пахал это jmp esp в ntdll.dll ti ego prosto vzyal s moego primera :) dlya raznih sp address mojet bit' diffrent no raz pahal..zna4it tebe povezlo :) ladno..dai mne poest' spokoino :) .. sam dumai..