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

15.04.2010, 22:05
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
2 Nightmarе судя по тому что драйвер прописывается в системе по обычному, в SYSTEM\CurrentControlSet\Services\jammer то палится любыми проактивками.
|
|
|

15.04.2010, 22:08
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Сообщение от slesh
2 Nightmarе судя по тому что драйвер прописывается в системе по обычному, в SYSTEM\CurrentControlSet\Services\jammer то палится любыми проактивками.
А без этого в теории нельзя? не прописываясь в реестр, просто запустить, залочить касхера и после этого прописаться.
Последний раз редактировалось Nightmarе; 15.04.2010 в 22:12..
|
|
|

15.04.2010, 22:15
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
DSOD'ит пострашному вируалка WIXP SP2 чистая
|
|
|

15.04.2010, 22:22
|
|
Познающий
Регистрация: 16.07.2008
Сообщений: 82
Провел на форуме: 424387
Репутация:
142
|
|
так она не должна быть чистой))
Последний раз редактировалось _antony; 15.04.2010 в 22:41..
|
|
|

15.04.2010, 22:39
|
|
Познавший АНТИЧАТ
Регистрация: 26.03.2007
Сообщений: 1,095
Провел на форуме: 5265510
Репутация:
455
|
|
Да к стати. С кисом бсодит а с касперский анти хакер норм.
|
|
|

15.04.2010, 22:49
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
2 Nightmarе я ж написал, что идет простое добавление записи в реестр. Никаких хитростей нет. Если нужны беспаливные методы, то реверси руткиты
|
|
|

16.04.2010, 11:24
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
Сообщение от _antony
да оно и так бсодит.
хп сп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
---------
И не много не понятно в чем новизна метода?)
сенкс за крашдамп, понял где, но почему...
__________________
 
snow white world wide
|
|
|

16.04.2010, 11:30
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
Сообщение от slesh
Мдауж. За сброс WP бита Great бы
Когда нужно хукнуть 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. Оставшийся байт ты можеш не успеть записать если второе ядро успеет попасть на эту функцию. Маловероятное событие, но всё же.
найс, но поэтому прерывания и снимаются (раньше все одноядерные были). кстати неплохо, правда мне больше нравится перехватывать сами Nt а не таблицу.
ща на 7 попробую с кисом.
__________________
 
snow white world wide
Последний раз редактировалось sn0w; 16.04.2010 в 11:36..
|
|
|

16.04.2010, 11:58
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
Сообщение от _antony
так она не должна быть чистой))
 Имею ввиду без файрвола и антивиря 
|
|
|

16.04.2010, 12:07
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Кстати вообще когда-то была идея по изменению кода, которая могла заменять до 4 килобайт кода сразу и без разницы скольки ядерная система была. Без запрета прерываний и тому подобных вещей. Но что-то руки не дошли попробовать реализовать. А идея такая:
1) выделяешь себе одну страницу не выгружаемой памяти (4096 байт)
2) в неё копируешь страницу памяти в которой нужно сделать изменения
3) в своей копии ты делаешь изменения.
4) для своей копии ты получаешь адрес физической страницы закрепленной за ней.
5) в PTE подменяешь адрес физической страницы для виртуальной страницы в которой нужно было сделать изменения. И заменяш этот адрес на свою физ страницу.
Таким образом не трогая виртуальную страницу, ты просто подменяешь для неё физическую. И это будет мгновенно, но должно быть условие: код подменяемой виртуальной страницы не должен выполняться в момент подмены.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|