PDA

Просмотр полной версии : Релизы от Great


_Great_
24.04.2007, 22:39
Моя простенькая программка для загрузки/вырузки драйверов.
Выкладываю в связи с тем, что просили уже минимум двое :)
Сам её юзаю для загрузки своих дров ;)
Open Source, язык Си.
Поддержка Drag'N'Drop для SYS файлов (перетаскивание мышкой драйвера в окно проги:) )

http://img519.imageshack.us/img519/4121/ldvpr2.png

ZIP в аттаче с сорсами и бинарником.
loaddriver.zip (https://forum.antichat.ru/attachment.php?attachmentid=496)

* * *

Определение NTSTATUS- и BugCheck-кодов в винде (названия констант) по номеру
http://gr8.cih.ms/uploads/ntbc.png
Слить: http://gr8.cih.ms/uploads/ntstatus.exe (~45 Kb)

_Great_
25.04.2007, 23:17
Вообщем, я, наверное, норкоман, но все же.

Загрузчик защищенного режима
Писал я загрузчик для статьи, да так расписался, что получилось что-то типа мини ОС =\\\
Вот: http://gr8.cih.ms/uploads/loader2.rar (13 Kb)

http://gr8.cih.ms/uploads/ldr2.png

Вообщем эта шня умеет:
- Переходит в защищенный режим
- Ставит обработчики исключений, IRQ и программных прерываний + свой сервис
- Умеет переходить обратно в реальный
- Умеет делать DPC (Deferred Procedure Call) - можно поставить в очередь процедуру, которая будет запущена при следующем вызове IRQ0 системного таймера
- Обработка IRQ1 от клавиатуры - можно набирать текст :)) Обрабатывает из дополнительных клавиш Shift, Backspace, Enter.
- По нажанию Esc очищает экран через переход в реальный режим и вызов там прерывания биоса
- Обработчик исключений выводит полный дамп контекста
- Хотел добавить встроенный отладчик, но задолбало( В итоге оно обрабатывает только нажание Ctrl-F12, от которого падает в #UD

Вот так +) Даже не знаю как его назвать, пусть будет просто "загрузчик". Вообщем надеюсь, что сорсы комунить пригодятся ;)

//на него убито дохрена времени =\\ может допишу до чегонить более интересного

_Great_
29.04.2007, 14:20
Утилита для просмотра списка устройств и IRP-стека каждого устройства

http://gr8.cih.ms/uploads/dd.png

Программа показывает список устройств в системе. Для каждого устройства можно посмотреть его IRP-стек и положение этого устройства в стеке.

Исходники GUI и драйвера прилагаются.

http://gr8.cih.ms/uploads/devstack.rar (14 KB)
http://gr8.cih.ms/uploads/devstack-src.rar (17 KB)

_Great_
29.08.2007, 23:53
gr8lkd - аналог livekd, устанавливает драйвер-фильтр файловой системы, эмулирующий фиктивный файл крешдампа системы для анализа с помощью kd или WinDbg
Файл "создается" на диске C:\ с именем gr8lkd.dmp, на самом деле на диске создается только пустой файл, а все обращения к нему эмулируются - никакие данные файла на диске не хранятся.
Драйвер фильтра невыгружаем. Поэтому в управляющей программе можно загрузить драйвер, начать обработку запросов к дампу и приостановить обработку запросов к дампу.
Исходники прилагаются.
ЗЫ. Может иногда бсодить, полноценно не тестировалось, но вроде работает;)
ЗЫЫ. Драйвер работает только для XP SP2 Free Build 2600

Посвящается ProTeuS'у в честь его дня рождения

http://gr8.cih.ms/uploads/gr8lkd.rar (150 Кб) - исходники и бинарники драйвера и управляющей программы

ЗЫЫЫ. Для тех, кто в танке - анализ дампа запускается так:
i386kd -z C:\gr8lkd.dmp
или
windbg -z C:\gr8lkd.dmp

KEZ
29.08.2007, 23:57
Грит кушает витамины для кодеров, покупайте в аптеке и тоже будете разные драйвера кодить. Только выражен синдром отмены - кончились таблетки и вы забыли как запускать визуал студию и вообще комп включать.

_Great_
13.12.2007, 10:59
Import Library Generator 1.0
Утилита предназначена для генерации библиотеки импорта для исполняемого PE файла и обладает следующими возможностями:
- встраивание в контекстное меню оболочки для файлов EXE, DLL, SYS
- возможность просмотра экспорта файла и выбора списка функций для помещения в библиотеку импорта
- возможность удаления, добавления cdecl или произвольного префикса и суффикса к именами файла.
- библиотека импорта генерируется не самостоятельно (хотя этот вариант я хочу написать), а с помощью создания временного .DEF файла и вызова lib.exe из пакета ms linker'а для генерации либы. Поэтому путь к линкеру должен быть в path.

Замечено пару глюков с экспортом, в след. версии исправлю.

Pochka
13.12.2007, 20:21
>>- встраивание в контекстное меню оболочки для файлов EXE, DLL, SYS

А что эт значит??

>>библиотека импорта генерируется не самостоятельно (хотя этот вариант я хочу написать), а с помощью создания временного .DEF файла и вызова lib.exe из пакета ms linker'а для генерации либы.

А в чем тогда смысл??

>>Поэтому путь к линкеру должен быть в path.

А как мне его туда прописать (я вдел скриншот в интернете где path можно изменить по иконке "система" в настройках управления и еще в реестре видел как ее можно настроить персонально для каждого приложения, а как мне сделать все правильно?)?
upd: я нашел кнопочку.

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

_Great_
14.12.2007, 01:47
>>- встраивание в контекстное меню оболочки для файлов EXE, DLL, SYS

А что эт значит?? Щелкаешь парвой кнопкой на файле EXE/DLL/SYS с проводнике и там есть пункт меню "Generate import library". Добавление-снятие этого пункта регулируется флажком в главном окне

>>библиотека импорта генерируется не самостоятельно (хотя этот вариант я хочу написать), а с помощью создания временного .DEF файла и вызова lib.exe из пакета ms linker'а для генерации либы.

А в чем тогда смысл??
Смысл в автоматической генерации, фактически, .DEF-файла. Автоматизация - ведь сначала надо открыть длл в Dependency Walker, скопипастить экспорты, чтобы всем фунциям какойто префикс дат надо вообще регулярку делать для замены.
а потом еще и lib(link) вручную запускать

>>Поэтому путь к линкеру должен быть в path.

А как мне его туда прописать
если у тебя стоит ms visual studio, онтам уже есть.

Еще он почему-то не закрывается после нажатия на крестик, приходится убивать его в процессах.
Второй человек сообщает об этом.. странно, у меня нет такого ни на дом. компе, ни на ноуте, ни на виртуалке

Pochka
14.12.2007, 11:39
Щелкаешь парвой кнопкой на файле EXE/DLL/SYS с проводнике и там есть пункт меню "Generate import library". Добавление-снятие этого пункта регулируется флажком в главном окне
Ясно! Можно было б по-проще фразу сказать :)


Смысл в автоматической генерации, фактически, .DEF-файла. Автоматизация - ведь сначала надо открыть длл в Dependency Walker, скопипастить экспорты, чтобы всем фунциям какойто префикс дат надо вообще регулярку делать для замены.
а потом еще и lib(link) вручную запускать
Да не так уж и сложно на самом деле.


если у тебя стоит ms visual studio, онтам уже есть.
Вот в том то и дело что стоит, а не работает, каждый раз чтобы нормально скомпилировать что-то я запускаю enviroment батник, и все параметры устанавливаются но только на одну сессию, стоит закрыть окошко и открыть заново cmd exe, он уже не увидит cl.exe/линкер и т.д.


Второй человек сообщает об этом.. странно, у меня нет такого ни на дом. компе, ни на ноуте, ни на виртуалке
Подозрительно. Тем более программка человека, увлекающегося дровописанием.

_Great_
14.12.2007, 15:37
Подозрительно. Тем более программка человека, увлекающегося дровописанием.
не понял намека =)

Вот в том то и дело что стоит, а не работает, каждый раз чтобы нормально скомпилировать что-то я запускаю enviroment батник, и все параметры устанавливаются но только на одну сессию, стоит закрыть окошко и открыть заново cmd exe, он уже не увидит cl.exe/линкер и т.д.

Это настраивается в свойствах системы вроде. Control Panel -> System -> Adv -> Environment Variables кажется

_Great_
28.11.2008, 01:39
Syscall Generator

Написал на коленке мини-тулзу генерировать автоматом хидеры для номеров Native сервисов (зо ипалсо каждый раз лазить в ntdll смотреть)
Перебирает экспорт ntdll.

Исходничек: http://www.everfall.com/paste/id.php?wucqs2cq73to
Вывод (на моей системе): http://www.everfall.com/paste/id.php?7v5ikyvrzmrp

procedure
28.11.2008, 11:16
Как ты чару такой размер выставил?
Очень просто он сделал, массив из char может быть произвольной длинны. Что мешает?
А запись целочисленного значения, в одну конкретную ячейку может быть при unsigned char 0...255, типа (без знака). Со знаком будет -128...127

Я на С не пишу, но могу показать пример на C# с двумя переменными char:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
char[] str = new char[1000];
char[] str2;

for (int i = 0; i < 1000; i++)
{
str[i] = (char)i;
Console.WriteLine(str[i]);
}

str2 = new char[280];
for (int i = 0; i < 280; i++){
str2[i] = (char)i;
Console.WriteLine(str2[i]);
}

}
}
}

Dian
28.11.2008, 12:04
Насколько нас учили, в си++ макс. длина чара - 255.
Странно как-то учили...

Он через драйвер режима ядра переопределил размер чаров в системе... +))
Жесть

procedure
28.11.2008, 12:27
Chaak->
Ты гонишь, ты говоришь о ячейке, а не длине массива...(((
Точно так же в С++:
char str[1024];