PDA

Просмотр полной версии : Обладатели вх мазая возрадуйтесь!


DefenderYO
03.04.2012, 15:04
тык ([Ссылки могут видеть только зарегистрированные и активированные пользователи])/bonk

И так .. очевидно повторюсь но поскольку многие спрашивают :
Насколько вы вкурсе а ктото и невкурсе а ктото и неверит ... практически все методы инжекта были пофикшены фростом ... остались только самоинжекторные ВХ которые кто еще невкурсе реально палятся фростом просто не выписывается еще бан .. достаточно зайти после 5 - 10 минут игры с таким вх в папку с фростом и найти там файл UnloadDll в нем будет записано ваше вх ...
Подозреваю что бан за это вх не выписывают пока ожидая когда я переведу свое вх тоже на самоинжекторный вариант чтобы разом забанить вообще всех пользователей всех оставшихся вх ... такой вариант естественно меня не устраивал и мне пришлось заняться более глубоким изучением фроста в той части которая препятствует инжекту а также обнаруживает посторонние длл .. на данный момент этот механизм практически полностью мне понятен и известен ... включая методы обнаружения фростом сокрытых длл ... разработан метод инжекта который не обнаруживается фростом ...

поскольку обрушился шквал всяких сообщений и т.п. что крайне отклекало от предмета исследования я на время самоизолировался чтобы сосредоточится на данной задаче .. думаю многие из вас понимают что кусок фроста отвечающий за защиту от инжекта писало человек 10 и не один месяц . .а мне пришлось ковырять одному и как можно быстрее ..

на данный момент инжектор встраивается в абдейтер и делается система которая позволит инжектить исключительно только длл скачиваемые абдейтером .. делается то для того чтобы когда начнут выписывать баны за самозагружаемые вх никто кроме пользователей NewBX и AimPB несмогли использовать инжектор.

если все вовремя сделаю то завтра выдам славику техническую копию абдейтера и программы потдерживающей новый инжектор для того чтобы он начал перенастраивать аим под текущий клиент игры ...
также я скорее всего с завтрашнего вечера начну перенастраивать вх под текущий клиент ...
(хотя процесс может и потребовать лишний день - два как пойдет)

на данный момент инжектор работает только под 64 битные системы ....
под 32 битные пока ставлю винду на тестовую машину и буду уже там портировать инжектор под 32 бита .. но не думаю что это будет очень быстро поскольку каждая винда и дажее ее версия имеет свою особенность ..

все невнесенные ключи будут внесены во время выпуска рабочей версии вх и аима
слова мазая с рекласа.:pandal:

warl0ck
03.04.2012, 15:10
а как же реестр? неужто фрост и каспера убивает, не, не верю...в природе существуют куда более легшие способы внедрения
пс в начале прочитал как "обладатели вх мазая задумайтесь" и решил зайти/dgs

DefenderYO
03.04.2012, 15:17
warl0ck, /dgs

DED_MA3AY
03.04.2012, 15:37
а как же реестр? неужто фрост и каспера убивает, не, не верю...в природе существуют куда более легшие способы внедрения
пс в начале прочитал как "обладатели вх мазая задумайтесь" и решил зайти/dgs


если ты необратил внимание некоторыми инжекторами пытаешся инжектить длл и нифига непроисходит (этот сделано для инжектов типа от каспера и т.п.) а за некоторые сразу бан выписывает это инжекты которые юзают чисто читы ...
Каспер при попытке заинжектится в ПБ обламывается тихо и молча вытирает сопли

Опачки!!!
03.04.2012, 15:43
Мазай ,а когда обнова?

warl0ck
03.04.2012, 15:49
(этот сделано для инжектов типа от каспера и т.п.

каспер в смысле антивирус. и стандартно через кольцо инжектить не получаеться, там где zwopenprocess attach итп?
типа вот так
//[Ссылки могут видеть только зарегистрированные и активированные пользователи]
//The_Undead : Rhys M.

//Driver.c
#include "Ntddk.h"
#include "ntifs.h"

#define IO_HOOK_FUNCTIONS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0001, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IO_UNHOOK_FUNCTIONS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0002, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IO_GETSETINFO CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0003, METHOD_BUFFERED, FILE_ANY_ACCESS)

//Global Variables
UNICODE_STRING DeviceName, DeviceLink;
HANDLE UserLandProcessID = (HANDLE)-1;

// Function callnumbers
ULONG NtOpenProcess_callnumber = 0x007a;

//Function Prototypes
NTKERNELAPI HANDLE PsGetProcessId(IN PEPROCESS Process);
NTSTATUS __stdcall IOControll(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
void HookFunctions( void );
void UnHookFunctions( void );
HANDLE RetrivePID( char* );

// Function signatures
typedef ULONG (*NTOPENPROCESS)(OUT PHANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PCLIENT_ID ClientId OPTIONAL);

// Function holders
NTOPENPROCESS OldNtOpenProcess;

void __declspec(naked) __stdcall UnProtect( void )
{
__asm
{
cli
mov eax, CR0
and eax, not 10000H
mov CR0, eax
}
}

void __declspec(naked) __stdcall Protect( void )
{
__asm
{
mov eax, CR0
OR eax, 10000h
mov CR0, eax
sti
}
}

NTSTATUS NewNtOpenProcess(OUT PHANDLE ProcessHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN PCLIENT_ID ClientId OPTIONAL)
{
NTSTATUS ntStatus = STATUS_INVALID_PARAMETER;
if ( ClientId->UniqueProcess == UserLandProcessID )
return STATUS_ACCESS_DENIED;
else
ntStatus = ((NTOPENPROCESS)(OldNtOpenProcess))(ProcessHandle, DesiredAccess, ObjectAttributes, ClientId);
return ntStatus;
}

void UnHookFunctions( void )
{
UnProtect();
//Restore origianl function address
(NTOPENPROCESS)KeServiceDescriptorTable->ServiceTable[NtOpenProcess_callnumber] = OldNtOpenProcess;
Protect();
}

void HookFunctions( void )
{
// Store original functions
OldNtOpenProcess = (NTOPENPROCESS)KeServiceDescriptorTable->ServiceTable[NtOpenProcess_callnumber];
UnProtect();
// Hook Functions
(NTOPENPROCESS)KeServiceDescriptorTable->ServiceTable[NtOpenProcess_callnumber] = &NewNtOpenProcess;
Protect();
}

HANDLE RetrivePID( char* ProcessName )
{
PEPROCESS PeProcess = NULL;
PLIST_ENTRY pNextEntry, pListHead;
PeProcess = PsGetCurrentProcess();
if(!PeProcess)
{
DbgPrint( "[ALARM] -> Cannot find 'System' process!" );
return (HANDLE)-1;
}
if( IsListEmpty( &PeProcess->ActiveProcessLinks ) )
DbgPrint("[ALARM] -> No processes found!");
else
{
pListHead = &PeProcess->ActiveProcessLinks;
pNextEntry = pListHead->Flink;
while(pNextEntry != pListHead)
{
PeProcess = CONTAINING_RECORD( pNextEntry,EPROCESS,ActiveProcessLinks );
if(PeProcess->ActiveThreads)
if( !IsListEmpty( &PeProcess->ThreadListHead ) )
if( _strnicmp( PeProcess->ImageFileName, ProcessName ,strlen(ProcessName) ) == 0 )
return PsGetProcessId( PeProcess );
PeProcess = NULL;
pNextEntry = pNextEntry->Flink;
}
}
return (HANDLE)-1;
}

NTSTATUS __stdcall IOControll(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
{
NTSTATUS status = STATUS_SUCCESS;
int FunctionStatus = -1;

switch (Irp->Tail.Overlay.CurrentStackLocation->Parameters.DeviceIoControl.IoControlCode)
{
case IO_HOOK_FUNCTIONS:
FunctionStatus = 0;
Irp->IoStatus.Information = sizeof(int);
memcpy(Irp->AssociatedIrp.SystemBuffer, &FunctionStatus, sizeof(int));
DbgPrint("Hooking...\n");
HookFunctions();
break;
case IO_UNHOOK_FUNCTIONS:
FunctionStatus = 1;
Irp->IoStatus.Information = sizeof(int);
memcpy(Irp->AssociatedIrp.SystemBuffer, &FunctionStatus, sizeof(int));
DbgPrint("Unhooking...\n");
UnHookFunctions();
break;
case IO_GETSETINFO:
FunctionStatus = 2;
UserLandProcessID = RetrivePID( (char*)Irp->AssociatedIrp.SystemBuffer );
//DbgPrint("Process ID of %s %i", (char*)Irp->AssociatedIrp.SystemBuffer, UserLandProcessID);
DbgPrint("Process ID: %i", UserLandProcessID);
Irp->IoStatus.Information = sizeof(int);
memcpy(Irp->AssociatedIrp.SystemBuffer, &FunctionStatus, sizeof(int));
break;
}
IofCompleteRequest(Irp, IO_NO_INCREMENT);
return status;
}


NTSTATUS __stdcall IOOpenClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
{
IofCompleteRequest(Irp, IO_NO_INCREMENT);
return STATUS_SUCCESS;
}


VOID OnUnload(IN PDRIVER_OBJECT DriverObject)
{
DbgPrint("Unloading!\n");
IoDeleteSymbolicLink(&DeviceLink);
IoDeleteDevice(DriverObject->DeviceObject);
DriverObject->DriverUnload;
}


//Driver entry point
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING theRegistryPath)
{
NTSTATUS ntStatus;
PDEVICE_OBJECT pDeviceObject;
RtlInitUnicodeString(&DeviceName, L"\\Device\\UndeadRootkit");
ntStatus = IoCreateDevice(DriverObject, 0, &DeviceName, FILE_DEVICE_UNKNOWN, 0, FALSE, &pDeviceObject);

if (ntStatus == STATUS_SUCCESS)
{
RtlInitUnicodeString(&DeviceLink, L"\\DosDevices\\UndeadRootkit");
if (IoCreateSymbolicLink(&DeviceLink, &DeviceName) != STATUS_SUCCESS)
{
IoDeleteDevice(DriverObject->DeviceObject);
return STATUS_OBJECT_NAME_EXISTS;
}
DriverObject->DriverUnload = OnUnload;
DriverObject->MajorFunction[IRP_MJ_CREATE] = &IOOpenClose;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = &IOOpenClose;
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = &IOControll;
}
return ntStatus;
}
//[Ссылки могут видеть только зарегистрированные и активированные пользователи]
//The_Undead : Rhys M.

//DriverControl.cpp
#include "windows.h"
#include "tlhelp32.h"
#include "stdlib.h"

#define METHOD_BUFFERED 0x00000000
#define FILE_ANY_ACCESS 0x00000000
#define FILE_DEVICE_UNKNOWN 0x00000022
#define CTL_CODE( DeviceType,Function, Method,Access)(\
((DeviceType)<<16)|((Access)<<14)|((Function)<<2)|(Method))

#define IO_HOOK_FUNCTIONS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0001, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IO_UNHOOK_FUNCTIONS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0002, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IO_GETSETINFO CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0003, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define HOOKFUNCTIONS 0x00000001
#define UNHOOKFUNCTIONS 0x00000002
#define GETISETNFO 0x00000003

/* Global Variables */
char TargetProcessName[MAX_PATH];
//Driver - GUI link
char DriverLink[] = "\\\\.\\UndeadRootkit";
//Driver installation - removal variables.
char DriveName[26] = "UndeadRootkit";
SC_HANDLE hSCManger = NULL;
SC_HANDLE hService = NULL;
char Directory[501];

int CheckOnlyProcess( char* ProcessName )
{
int NumberOfProcesses = 0;
DWORD dwsize = 0;
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);

PROCESSENTRY32 pe32;
pe32.cntUsage = 1;
pe32.th32ModuleID = 0;
pe32.th32ParentProcessID = 0;
pe32.dwSize = sizeof(PROCESSENTRY32);
do
{
if (!strcmp(pe32.szExeFile, ProcessName))
NumberOfProcesses++;
}while (Process32Next(hProcessSnap, &pe32));
CloseHandle(hProcessSnap);
return NumberOfProcesses;
}

bool FileExists( LPSTR lpszFilename )
{
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(lpszFilename, &wfd);
if (hFind == INVALID_HANDLE_VALUE)
return FALSE;
else
{
FindClose(hFind);
return TRUE;
}
}

BOOL InstallDriver( void )
{
SC_HANDLE hSCManger = NULL;
SC_HANDLE hService = NULL;

ZeroMemory(&Directory, sizeof(Directory));
GetCurrentDirectory( sizeof(Directory), Directory );
strcat(Directory, "\\UndeadRootkit.sys");

hSCManger = OpenSCManager(NULL,NULL,SC_MANAGER_CREATE_SERVICE) ;
if(!hSCManger)
return FALSE;
hService = CreateService(hSCManger,
DriveName,DriveName,
GENERIC_READ,
SERVICE_KERNEL_DRIVER,
SERVICE_DEMAND_START,
SERVICE_ERROR_NORMAL,
Directory,
NULL,NULL,NULL,NULL,NULL);
if(!hService)
if(GetLastError() == ERROR_SERVICE_EXISTS)
{
hService = OpenService(hSCManger,DriveName,DELETE);
if(hService)
{
if(!DeleteService(hService))
return FALSE;
CloseServiceHandle(hService);
}
}

CloseServiceHandle(hService);
CloseServiceHandle(hSCManger);

hSCManger = OpenSCManager(NULL,NULL,SC_MANAGER_CONNECT);
if(!hSCManger)
return FALSE;
hService = OpenService(hSCManger,DriveName,SERVICE_START);
if(hService)
{
if (!StartService(hService, 0, NULL))
return FALSE;
CloseServiceHandle(hService);
}
CloseServiceHandle(hSCManger);
return TRUE;
}

BOOL StopDriver( void )
{
SERVICE_STATUS servicestatus;

hSCManger = OpenSCManager(NULL,NULL,SC_MANAGER_CONNECT);
if(!hSCManger)
return FALSE;
hService = OpenService(hSCManger,DriveName,SERVICE_STOP);
if(hService)
{
ControlService(hService,SERVICE_CONTROL_STOP,&servicestatus);
CloseServiceHandle(hService);
hService = OpenService(hSCManger,DriveName,DELETE);
DeleteService(hService);
CloseServiceHandle(hService);
}
CloseServiceHandle(hSCManger);
return TRUE;
}

int DriverControl(int Event)
{
// 0 : Hooked
// 1 : Unhooked
// 2 : Information Received
DWORD bytesIO;
HANDLE hFile;
int ret = -1;

hFile = CreateFile(DriverLink, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0);

switch ( Event )
{
case HOOKFUNCTIONS:
DeviceIoControl(hFile, IO_HOOK_FUNCTIONS, NULL, 0, &ret, sizeof(int), &bytesIO, NULL);
CloseHandle(hFile);
return ret;

case UNHOOKFUNCTIONS:
DeviceIoControl(hFile, IO_UNHOOK_FUNCTIONS, NULL, 0, &ret, sizeof(int), &bytesIO, NULL);
CloseHandle(hFile);
return ret;

case GETISETNFO:
DeviceIoControl(hFile, IO_GETSETINFO, &TargetProcessName, sizeof(TargetProcessName), &ret, sizeof(int), &bytesIO, NULL);
CloseHandle(hFile);
return ret;
}
CloseHandle(hFile);
return ret;
}

int main(int argc, char* argv[])
{
int ret = -1;
char Key[25] = { 0x00 };
BOOL InformationSent, Hooked = FALSE;
ZeroMemory(&TargetProcessName, sizeof(TargetProcessName));
puts("The_Undead - NtOpenProcess Hook");
puts("Target Process Name:");
scanf("%s", &TargetProcessName);
if (strlen(TargetProcessName) < 3)
return 0;
if ( CheckOnlyProcess(TargetProcessName) > 0 )
{
StopDriver();
if ( InstallDriver() == FALSE )
{
puts("Failed to start driver! Please try again.");
StopDriver();
ExitProcess(0);
}
while ( strcmp(Key, "EXIT"))
{
printf("-->");
scanf("%s", &Key);
if (!strcmp(Key, "HOOK"))
{
ret = DriverControl( GETISETNFO);
if ( ret == 2 )
InformationSent = TRUE;
else
InformationSent = FALSE;
if ( Hooked == FALSE )
{
if ( InformationSent == TRUE )
{
ret = DriverControl ( HOOKFUNCTIONS);
if ( ret == 0 )
{
puts("hooked");
Hooked = TRUE;
}
else
Hooked = FALSE;
}
else
puts("No information set...");
}
else
puts("Already hooked...");
}
if (!strcmp(Key, "UNHOOK"))
{
if ( Hooked == TRUE )
{
ret = DriverControl ( UNHOOKFUNCTIONS);
if ( ret == 1 )
{
Hooked = FALSE;
puts("Unhooked");
}
else
ret = 0;
}
else
puts("No functions hooked!");
}
}
}
else
puts("No process found");
StopDriver();
getchar();
return 0;
}


кстати, как насчёт pe infect? тоже будет выбрасывать? (если вдруг кэш длл совпадает с кешем в белом лисите фроста)

BTO
03.04.2012, 16:46
Я не пойму =) что тут за страшилки возле костра скаутов??? Я играю с вх уже не первый день. Включено всё, что можно вообразить в функциях, никакого краша, никакого бана, я особенный? У кого сомнения, зайду покажу работоспособность всех функций.

SliК
03.04.2012, 16:51
Я не пойму =) что тут за страшилки возле костра скаутов??? Я играю с вх уже не первый день. Включено всё, что можно вообразить в функциях, никакого краша, никакого бана, я особенный? У кого сомнения, зайду покажу работоспособность всех функций.

С самоинжекторным?

warl0ck
03.04.2012, 16:54
Я не пойму =) что тут за страшилки возле костра скаутов??? Я играю с вх уже не первый день. Включено всё, что можно вообразить в функциях, никакого краша, никакого бана, я особенный? У кого сомнения, зайду покажу работоспособность всех функций.

знаешь, это как по телевизору вещают апокалипсис, мол комета, пришельцы, вирус и тп. у всех паника, строют бункеры всякие. так и мы готовимся к супер апдейту фроста:)

кстати мазай, в видео ты пишешь мол не придумал как защитить инжектор, дабы он другие длл не инжектил... как на счёт проверки подписи файла с помощью публичного ключа? (алгоритм RSA)

DED_MA3AY
03.04.2012, 17:39
Я не пойму =) что тут за страшилки возле костра скаутов??? Я играю с вх уже не первый день. Включено всё, что можно вообразить в функциях, никакого краша, никакого бана, я особенный? У кого сомнения, зайду покажу работоспособность всех функций.

зайди в папку с фростом и найди там файл(ы) типа UnloadDll и прочитай внем содержимое и протащись что там написано вх которое ты юзаеш ...
эт значи что фрост палит твое вх просто пока бан не выписывает .. причем за самоинжекторное вх бан будет оч большой ибо подмена длл это 100% юзает тока чит ...

Добавлено через 4 минуты
знаешь, это как по телевизору вещают апокалипсис, мол комета, пришельцы, вирус и тп. у всех паника, строют бункеры всякие. так и мы готовимся к супер апдейту фроста:)

кстати мазай, в видео ты пишешь мол не придумал как защитить инжектор, дабы он другие длл не инжектил... как на счёт проверки подписи файла с помощью публичного ключа? (алгоритм RSA)

чтото типо того и думаю сделать

un1c
03.04.2012, 18:01
Мазай замутишь мне бота на л2-руофф,500 заплачу!)

BTO
03.04.2012, 18:21
зайди в папку с фростом и найди там файл(ы) типа UnloadDll и прочитай внем содержимое и протащись что там написано вх которое ты юзаеш ...
эт значи что фрост палит твое вх просто пока бан не выписывает .. причем за самоинжекторное вх бан будет оч большой ибо подмена длл это 100% юзает тока чит ... Играю с февраля 2010, с читами от мая 2010 [Ссылки могут видеть только зарегистрированные и активированные пользователи] до сих пор основа цела при подобных угрозах за всю историю ПБ. Забанить у меня могут только сбрученного твинка, а сидеть в кустах в ожидании чуда у меня желания абсолютно нет [Ссылки могут видеть только зарегистрированные и активированные пользователи] warl0ck, согласен с тобой как видишь на 100% [Ссылки могут видеть только зарегистрированные и активированные пользователи]
Кстати по поводу файлов типа unloadDll2072.txt , DED_MA3AY нет в них названия ВХ, который я использую. Самоинжекторный, который использовал раннее, есть. А последний , который использую уже неделю отсутствует...

revi994
03.04.2012, 21:48
Ну в защите программ я нуб так что не стоит меня гнабить сильно)
Не легче получить md5 hash dll и хранить сайте , updater твой обращается к файлу с md5 и проверяет с вх который пытаются инжектить.

STREETpule
03.04.2012, 21:58
мазай прав в папке с фростом все вх записаны

ElectroVamp
03.04.2012, 22:08
тык ([Ссылки могут видеть только зарегистрированные и активированные пользователи])/bonk
CDqvvxVgGmk

BTO
03.04.2012, 22:11
[Ссылки могут видеть только зарегистрированные и активированные пользователи] Подозреваю, что всё же надо выложить видео своей игры с полным комплектом читов, включая дамаг на 100+скорострельность(за что неделю назад был краш, а теперь нет) [Ссылки могут видеть только зарегистрированные и активированные пользователи]

warl0ck
03.04.2012, 22:21
[Ссылки могут видеть только зарегистрированные и активированные пользователи] Подозреваю, что всё же надо выложить видео своей игры с полным комплектом читов, включая дамаг на 100+скорострельность(за что неделю назад был краш, а теперь нет) [Ссылки могут видеть только зарегистрированные и активированные пользователи]

какой настойчивый/dgs

BTO
03.04.2012, 22:23
какой настойчивый/dgs

Так никто же не просит, а сомневающиеся есть [Ссылки могут видеть только зарегистрированные и активированные пользователи]

DefenderYO
03.04.2012, 22:39
Trundec, скинь в лс/problem

Jeysson
03.04.2012, 22:44
Trundec, а с каким читом? замоинжекторным? или тогда чем инжектишь?

BTO
04.04.2012, 00:55
Trundec, а с каким читом? замоинжекторным? или тогда чем инжектишь?
Не самоинжекторное...

dmitro19951
04.04.2012, 01:05
Не самоинжекторное...

А как-же ответ на остальные два вопроса ?/problem

BTO
04.04.2012, 04:16
А как-же ответ на остальные два вопроса ?/problemостальные ответы платные [Ссылки могут видеть только зарегистрированные и активированные пользователи]

dmitro19951
04.04.2012, 08:52
остальные ответы платные [Ссылки могут видеть только зарегистрированные и активированные пользователи]

Это...это печально /dgs

Respekt®
04.04.2012, 12:36
мазай че на свой сайт не заходишь? там дети в панике , небось пароль забыл от админки

Weapon Control
04.04.2012, 13:11
Мазай , а ели попробывать "Настройки загрузчика" у меня есть обновлёный за который не банят,я сам им инжектю и всё норм

PeTerStormare™
07.04.2012, 01:37
а все файлы типа unloadDll удалять у меня их 293 накопилось/problem