Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
{
// Данные, необходимые для работы программы
HMODULE hnd1;
FARPROC a;
char *name1;
char *modul1;
// Вывод сообщения об использовании утилиты
printf("Usage GETADDR <module> <API function> ");
if (argc < 3)
{
// Если запущены без параметров, то выведем адреса
// KERNEL32 и WIN API функции GetProcAddress
name1="GetProcAddress";
modul1="KERNEL32";
}
else
// Если запущены с параметрами, то выведем по запросу
// пользователя
{
name1=argv[2];
modul1=argv[1];
}
// Получаем адрес модуля
hnd1=GetModuleHandle(modul1);
// Получаем адрес WIN API функции
a=GetProcAddress(hnd1,name1);
// Выводим оба адреса
printf("Module=[%s] Address=%xh ",modul1,hnd1);
printf("Function=[%s] Address=%xh ",name1,a);
// Выход из программы
return(0);
}
При помощи данной программы мы должны определить адреса следующих WIN API-функций:
n WinExec
n ExitProcess
Данные функции находятся в ядре (kernel32.dll).
Вот теперь мы готовы перейти к разработке shell-кода на ассемблере. Наш shell-код не будет использовать шифрование текстовых строк, так как в нём будет только одна текстовая строка с финальным нулём, так же мы не должны использовать в тексте кода нулей, опять же из-за особенностей стека.