
08.12.2009, 01:01
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
При этом комбинация
Код:
int *ret;
ret=(int *)&ret+2; // ret будет равняться адресу созврата из функции main
printf("Shellcode Length is : %d\n",strlen(shellcode));
(*ret)=(int)shellcode; // перебьем адрес возврата на шелкод
return 0; // завершим функцию main. А т.к. адрес возврата мы подменили то вызовется шелкод
т.е. это пример вызова этого кода через срыв стека.
Передача параметров идет так:
Код:
mov ebp,esp // запомним адрес вершины стека
// поместим в стек
push 20657865h //
push 2E646D63h // это типа cmd.exe
lea eax,[ebp-8] // eax будет равняться указателю на начало строки cmd.exe которую закинули в стек
push eax // занесем параметр для WinExec а именно адрес имени проги. В нашем случае cmd.exe
Причем тут фаер?
Последний раз редактировалось slesh; 08.12.2009 в 01:10..
|
|
|