Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

05.08.2009, 19:06
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
а копирайты на первой странице )
|
|
|

09.08.2009, 01:13
|
|
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме: 3371897
Репутация:
1462
|
|
|
|
|

09.08.2009, 13:29
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Ну вот вечно так, сначало напишу, а потом оказывается что ктото это уже сделал до меня (
Кстати говоря, если компилить это без отладочный инфы, с оптимизацией + без дефолтовых либ, то код получает очень маленький, что очень удобно для юзанья во всяком малваре.
|
|
|

09.08.2009, 13:57
|
|
Познающий
Регистрация: 28.01.2009
Сообщений: 90
Провел на форуме: 432613
Репутация:
80
|
|
msrem - классный кодер, и копатель ядра NT был...
куда он делся? никто не знает?
|
|
|

09.08.2009, 14:53
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
2 flacs официальные неподтвержденные данные - не справился с управлением и разбился.
Но неофициальный, неподтвержденным данным - это было лишь прикрытие для ухода. И это всеголишь смерть ника Ms-Rem
|
|
|

24.02.2010, 14:38
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
Загрузка dll из памяти
Понадобилось загружать dll из памяти сразу вот переделал несколько функцию
Код:
// непосредственно функция загрузки DLL из памяти by Gar|k
HMODULE __stdcall HideLoadLibraryFromMemory(unsigned char * pMemory)
{
ULONG retadr = 0;
DWORD rb = 0;
IMAGE_DOS_HEADER *DosHeader;
IMAGE_NT_HEADERS *PeHeader;
IMAGE_SECTION_HEADER * Section[MAX_SECTIONS];
if (pMemory != NULL)
{
// считаем DOS заголовок
DosHeader=(IMAGE_DOS_HEADER *)&pMemory[0];
if (DosHeader->e_magic == IMAGE_DOS_SIGNATURE) // проверим сигнатуру
{
// установим указатель на PE заголовок
rb=DosHeader->e_lfanew;
// считаем заголовок
PeHeader=(IMAGE_NT_HEADERS *)&pMemory[rb]; rb+=sizeof(IMAGE_NT_HEADERS);
if (PeHeader->Signature == IMAGE_NT_SIGNATURE) // проверим сигнатуру
{
// выделим память столько, сколько указано в SIZE OF BASE
retadr = (ULONG)VirtualAlloc(0, PeHeader->OptionalHeader.SizeOfImage, MEM_COMMIT | MEM_RESERVE | MEM_TOP_DOWN, PAGE_EXECUTE_READWRITE);
if (retadr) // если память выделилась
{
// скопируем туда DOS заголовок
memcpy((void*) retadr, DosHeader, sizeof(IMAGE_DOS_HEADER));
// скопируем туда PE заголовок
memcpy((void*)(retadr + DosHeader->e_lfanew), PeHeader, sizeof(IMAGE_NT_HEADERS));
// скопируем туда таблицу секций
memcpy((void*)(retadr + DosHeader->e_lfanew + sizeof(IMAGE_NT_HEADERS)),&pMemory[rb], sizeof(IMAGE_SECTION_HEADER) * PeHeader->FileHeader.NumberOfSections);
// если есть Rich данные то и их тоже скопируем
if (sizeof(IMAGE_DOS_HEADER) < DosHeader->e_lfanew)
{
memcpy((void*)(retadr + sizeof(IMAGE_DOS_HEADER)), &pMemory[sizeof(IMAGE_DOS_HEADER)], DosHeader->e_lfanew - sizeof(IMAGE_DOS_HEADER));
}
// обработаем каждую секцию
for (int i = 0; i < PeHeader->FileHeader.NumberOfSections; i++)
{
Section[i]=(IMAGE_SECTION_HEADER *)&pMemory[rb]; rb+=sizeof(IMAGE_SECTION_HEADER);
// считаем всё секцию
memcpy((void*)(retadr + Section[i]->VirtualAddress),&pMemory[Section[i]->PointerToRawData],Section[i]->SizeOfRawData);
}
// Обработаем релоки
if (!ProgressReloc(retadr)) // если ошибка
{
VirtualFree((void*)retadr, 0, MEM_RELEASE); // освободим память
retadr = 0;
}
else if (!ProgressImport(retadr))// обработаем импорт
{
VirtualFree((void*)retadr, 0, MEM_RELEASE);// если ошибка освободим память
retadr = 0;
}
else
{
rb=PeHeader->OptionalHeader.AddressOfEntryPoint;
__asm
{
mov eax, rb
add eax, retadr // EAX = ENTRY POINT
push 0
push DLL_PROCESS_ATTACH // ставим флаг что подгрузили DLL
push retadr
call eax // передадим управление на точку входа в DLL
}
}
}
}
}
// закрываем файл
}
return (HMODULE)retadr; // возвращаем адрес загруженного модуля в памяти
}
Спасибо SLESH-у за то что терпеливо выслушивал меня и отвечал в аське 
|
|
|

17.03.2010, 16:34
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Дллка открывается(файл),но не подгружается.На вызове ProgressImport вылазит ERROR_MOD_NOT_FOUND,проблема втом что эту ф-цию построчно перебрал и так непонял где оишбка вылазит  В какую сторону копать?
ЗЫ:на морозе закаментил
Код:
else if (!ProgressImport(retadr))// обработаем импорт
{
/*VirtualFree((void*)retadr, 0, MEM_RELEASE);// если ошибка освободим память
retadr = 0;*/
}
Функция из ддлки нормально отработала ,WTF?
Последний раз редактировалось _nic; 17.03.2010 в 17:00..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|