ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

15.04.2010, 19:33
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
Сообщение от gold-goblin
Спасибо за хп версию.
Но она так же бсодит по тем же адресам.
Возможно это из-за вмваре.
блин( смори суть в чем. если у тебя гдето в таблице сдт перехвачена хотябы одна из функций указанных выше, то дров перехватывает обработчик перехватчика. проверь сперва - есть ли у тебя вообще перехваты в таблице - те я уже говорил - рку или авз. если их нет, то дело не в бабине (тода дров вообще ничего не будет делать, кроме эмм некоторых инициальных действий) - соотв надо будет разбираться в других аспектах. напомню - среда должна быть 32разрядной, попробуй не на виртуалке)
__________________
 
snow white world wide
|
|
|

15.04.2010, 19:38
|
|
Познавший АНТИЧАТ
Регистрация: 26.03.2007
Сообщений: 1,095
Провел на форуме: 5265510
Репутация:
455
|
|
напомню - среда должна быть 32разрядной, попробуй не на виртуалке)
Да дело в вмваре. на чистой системе работает =)) Молодец!
И спасибо за разъяснение =)
|
|
|

15.04.2010, 19:49
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
Сообщение от gold-goblin
Да дело в вмваре. на чистой системе работает =)) Молодец!
И спасибо за разъяснение =)
работает то, это гуд) пробовал с чем? просто в сухую (без ничего) ето тоже что и mov eax, eax; =)
зы я на самом деле делал под myAC (античит такой) и все норм работает, но как оказалось - довольно перспективная тема и в отношении других средств защиты, поэтому и написал что отпосьте есть ли какая система защиты и проходит ли тема)
__________________
 
snow white world wide
Последний раз редактировалось sn0w; 15.04.2010 в 19:52..
|
|
|

15.04.2010, 19:55
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
sn0w, как всегда на высоте!
|
|
|

15.04.2010, 20:33
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
эм каким методом снимаешь хуки?
Восстановление SDT или сплайсинг хуков антивиря с последующей передачей управления на оригинальные адреса?
|
|
|

15.04.2010, 20:35
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
хуки не снимаются, вслучае если я вижу что в сдт энтри не тот адрес, те адрес стороннего обработчика, я просто перехожу к нему и пишу на начале тела джамп к себе (с созданием трамплина пролога и тд). у себя на этот момент я имею адекватные Nt адреса, куда и передается упраление.
__________________
 
snow white world wide
|
|
|

15.04.2010, 21:15
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Мдауж. За сброс WP бита Great бы
Я буду долго бить ногами за аппаратное отключение CR0. WP и уж тем более за запрет прерываний.
Когда нужно хукнуть SDT то делаю так:
Код:
// функция установки и снятия перехвата
BOOL SetHook(USHORT id, ULONG NewAddr, PULONG OldAddr)
{
BOOL ret = false;
ULONG Addr;
PHYSICAL_ADDRESS PhysicalAddr;
ULONG VirtualAddr;
Addr = (ULONG)KeServiceDescriptorTable->ServiceTable; // получаем адрес таблицы сервисов
if (Addr) // если нет ошибки
{
Addr += 4 * id; // вычислим адрес функции которую необходимо перехватить
if (OldAddr) // если указана память для сохранения старого значения
{
*(ULONG*)OldAddr = *(ULONG*)Addr; // сохраним старый адрес
}
// получим физический адрес, зная виртуальный
PhysicalAddr = MmGetPhysicalAddress((void*)Addr);
if (PhysicalAddr.QuadPart)
{
// выделим себе виртуальную память по физ. адресу
VirtualAddr = (ULONG)MmMapIoSpace(PhysicalAddr, 4, 0);
if (VirtualAddr)
{
*(ULONG*)VirtualAddr = NewAddr; // установим перехват
ret = true;
MmUnmapIoSpace((void*)VirtualAddr, 4); // освободим вирт. страницу памяти
}
}
}
return ret;
}
Если не хукать SDT а просто писать куда-либо то достаточно будет просто сделать копию страници и записать туда данные
А вообще тут даже запрет прерываний не поможет.
Если ты вписываешь JMP XX XX XX XX то как не крути, нужно записать 5 байт. При атомарном доступе максимум 4. Оставшийся байт ты можеш не успеть записать если второе ядро успеет попасть на эту функцию. Маловероятное событие, но всё же.
Последний раз редактировалось slesh; 15.04.2010 в 21:17..
|
|
|

15.04.2010, 21:28
|
|
Познающий
Регистрация: 16.07.2008
Сообщений: 82
Провел на форуме: 424387
Репутация:
142
|
|
да оно и так бсодит.
хп сп2 + касперский.
могу и минидамп залить если надо.
Код:
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck 7E, {c0000005, b1b236ee, f89a3980, f89a367c}
*** ERROR: Module load completed but symbols could not be loaded for jammer.sys
Probably caused by : jammer.sys ( jammer+6ee )
Followup: MachineOwner
---------
kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (7e)
This is a very common bugcheck. Usually the exception address pinpoints
the driver/function that caused the problem. Always note this address
as well as the link date of the driver/image that contains this address.
Arguments:
Arg1: c0000005, The exception code that was not handled
Arg2: b1b236ee, The address that the exception occurred at
Arg3: f89a3980, Exception Record Address
Arg4: f89a367c, Context Record Address
Debugging Details:
------------------
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - <Unable to get error code text>
FAULTING_IP:
jammer+6ee
b1b236ee 8b433c mov eax,dword ptr [ebx+3Ch]
EXCEPTION_RECORD: f89a3980 -- (.exr 0xfffffffff89a3980)
ExceptionAddress: b1b236ee (jammer+0x000006ee)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000000
Parameter[1]: 0000003c
Attempt to read from address 0000003c
CONTEXT: f89a367c -- (.cxr 0xfffffffff89a367c)
eax=f89a3ae4 ebx=00000000 ecx=000005ce edx=806830e0 esi=00000000 edi=00000000
eip=b1b236ee esp=f89a3a48 ebp=f89a3a60 iopl=0 nv up ei ng nz ac po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00210292
jammer+0x6ee:
b1b236ee 8b433c mov eax,dword ptr [ebx+3Ch] ds:0023:0000003c=????????
Resetting default scope
PROCESS_NAME: System
ERROR_CODE: (NTSTATUS) 0xc0000005 - <Unable to get error code text>
EXCEPTION_PARAMETER1: 00000000
EXCEPTION_PARAMETER2: 0000003c
READ_ADDRESS: 0000003c
FOLLOWUP_IP:
jammer+6ee
b1b236ee 8b433c mov eax,dword ptr [ebx+3Ch]
BUGCHECK_STR: 0x7E
DEFAULT_BUCKET_ID: NULL_CLASS_PTR_DEREFERENCE
LAST_CONTROL_TRANSFER: from b1b23c67 to b1b236ee
STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be wrong.
f89a3a60 b1b23c67 00000000 b1b242e2 00000000 jammer+0x6ee
f89a3a98 b1b23d27 00000000 82301da0 00000000 jammer+0xc67
f89a3ab8 b1b24097 00000000 804d7000 f89a3ae4 jammer+0xd27
f89a3c74 b1b234b9 f89a3d4c 805a2ead 82301da0 jammer+0x1097
f89a3c7c 805a2ead 82301da0 81bda000 00000000 jammer+0x4b9
f89a3d4c 805a3182 00000b2c 00000001 00000000 nt!IopLoadDriver+0x66c
f89a3d74 804e426b 00000b2c 00000000 823c68b8 nt!IopLoadUnloadDriver+0x45
f89a3dac 8057cfce f877fcdc 00000000 00000000 nt!ExpWorkerThread+0x100
f89a3ddc 804f88fa 804e4196 00000001 00000000 nt!PspSystemThreadStartup+0x34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16
SYMBOL_STACK_INDEX: 0
SYMBOL_NAME: jammer+6ee
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: jammer
IMAGE_NAME: jammer.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4bc72969
STACK_COMMAND: .cxr 0xfffffffff89a367c ; kb
FAILURE_BUCKET_ID: 0x7E_jammer+6ee
BUCKET_ID: 0x7E_jammer+6ee
Followup: MachineOwner
---------
И не много не понятно в чем новизна метода?)
Последний раз редактировалось _antony; 15.04.2010 в 21:31..
|
|
|

15.04.2010, 21:52
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Вещь безусловно роскошная (на первый взгляд), но можно ли уточнить один вопрос, этот метод внедряется в систему (не важно каким способом) полностью без палева какой-либо проактивной защиты, или по тому-же принципу что и руткит? (то есть руткита словит проактивка, но если разрешить ему все действия, то его уже ничто не остановит, но в самом начале он запалится)
|
|
|

15.04.2010, 22:00
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
Сообщение от Nightmarе
Вещь безусловно роскошная (на первый взгляд), но можно ли уточнить один вопрос, этот метод внедряется в систему (не важно каким способом) полностью без палева какой-либо проактивной защиты, или по тому-же принципу что и руткит? (то есть руткита словит проактивка, но если разрешить ему все действия, то его уже ничто не остановит, но в самом начале он запалится)
в данном случае он никуда не внедряется сам. Ну а проактивка (у меня на Kaspersky CRYSTAL) абсолютно не палит загрузку драйвера. Но аутпост палит
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|