Здравствуйте, BTFil, Вы писали:
BTF>Возможно ли записать в ресурсы проекта на VC6 или VC7 бинарник драйвера? Если это возможно то помогите примером или хотя бы советом где порыться.
Все утилиты оттуда, которым для работы необходим драйвер, хранят его в ресурсах. Если поискать по сайту можно найти описание процесса динамической загрузки драйвера из ресурсов.
Здравствуйте, BTFil, Вы писали:
BTF>Возможно ли записать в ресурсы проекта на VC6 или VC7 бинарник драйвера? Если это возможно то помогите примером или хотя бы советом где порыться.
Не обязательно в ресурсы, ИМХО проще в переменую.
Скрипт на пёрле (который я не знаю, поэтому не пинать сильно) для генерации исходника (имя бинарника передаём параметром. Или на С перепишите):
$columns = 8;
foreach $argnum (0 .. $#ARGV)
{
$file = $ARGV[$argnum];
print"\nProcessing file `$file'\n";
open(IN, $file) or die"Can't open file: $!";
binmode(IN);
open(OUT, ">$file.cpp") or die"Can't open output file: $!";
print OUT "unsigned char data [] =\n{\n";
$column = 0;
while( ! eof(IN) )
{
! $column++ and print OUT ' ';
printf OUT "0x%02X", ord(getc(IN));
if( $column >= $columns or eof(IN) )
{
if( ! eof(IN) ) { print OUT ","; }
print OUT "\n";
$column = 0;
}
else { print OUT ", "; }
}
print OUT "};\n";
close(OUT);
close(IN);
}
А если в ресурсы, то идея та же, только вместо использования data получаем адрес данных файла (добавить в ресурсы как RT_RCDATA) посредством FindResource+LoadResource (LockResource вызывать по желанию) и размер SizeofResource. Слишком много телодвижений .
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, gear nuke, Вы писали:
GN>Здравствуйте, BTFil, Вы писали:
BTF>>Возможно ли записать в ресурсы проекта на VC6 или VC7 бинарник драйвера? Если это возможно то помогите примером или хотя бы советом где порыться.
GN>Не обязательно в ресурсы, ИМХО проще в переменую.
GN>Скрипт на пёрле (который я не знаю, поэтому не пинать сильно) для генерации исходника (имя бинарника передаём параметром. Или на С перепишите):
GN>$columns = 8;
GN>foreach $argnum (0 .. $#ARGV)
GN>{
GN> $file = $ARGV[$argnum];
GN> print"\nProcessing file `$file'\n";
GN> open(IN, $file) or die"Can't open file: $!";
GN> binmode(IN);
GN> open(OUT, ">$file.cpp") or die"Can't open output file: $!";
GN> print OUT "unsigned char data [] =\n{\n";
GN> $column = 0;
GN> while( ! eof(IN) )
GN> {
GN> ! $column++ and print OUT ' ';
GN> printf OUT "0x%02X", ord(getc(IN));
GN> if( $column >= $columns or eof(IN) )
GN> {
GN> if( ! eof(IN) ) { print OUT ","; }
GN> print OUT "\n";
GN> $column = 0;
GN> }
GN> else { print OUT ", "; }
GN> }
GN> print OUT "};\n";
GN> close(OUT);
GN> close(IN);
GN>}
GN>А если в ресурсы, то идея та же, только вместо использования data получаем адрес данных файла (добавить в ресурсы как RT_RCDATA) посредством FindResource+LoadResource (LockResource вызывать по желанию) и размер SizeofResource. Слишком много телодвижений .
Значит теперь, с помощью CreateService мы можем этот "driver.sys" установить? Или для загрузки этого драйвера нужно использовать другой способ?
Здравствуйте, BTFil, Вы писали:
BTF>Значит теперь, с помощью CreateService мы можем этот "driver.sys" установить? Или для загрузки этого драйвера нужно использовать другой способ?
Дык файл записали на диск — и дальше всё как обычно Потом не забыть удалить только .
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, srggal,
GN>>Дык файл записали на диск — и дальше всё как обычно Потом не забыть удалить только .
S>Записывать не обязательно S>здесь
S>Хардкорный такой способ
Для драйвера режима ядра не пойдёт .
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, gear nuke, Вы писали:
GN>Здравствуйте, srggal,
GN>>>Дык файл записали на диск — и дальше всё как обычно Потом не забыть удалить только .
S>>Записывать не обязательно S>>здесь
S>>Хардкорный такой способ
GN>Для драйвера режима ядра не пойдёт .
Дык что возрвзить — нечего, только то. что в целях увеличения дальности кругозора имеет смысл згать и о таком способе
Здравствуйте, gear nuke, Вы писали:
GN>Здравствуйте, BTFil, Вы писали:
BTF>>Значит теперь, с помощью CreateService мы можем этот "driver.sys" установить? Или для загрузки этого драйвера нужно использовать другой способ?
GN>Дык файл записали на диск — и дальше всё как обычно Потом не забыть удалить только .
Здравствуйте, gear nuke, Вы писали:
GN>Здравствуйте, srggal,
GN>>>Дык файл записали на диск — и дальше всё как обычно Потом не забыть удалить только .
S>>Записывать не обязательно S>>здесь
S>>Хардкорный такой способ
GN>Для драйвера режима ядра не пойдёт .
а если поэкспериментировать с device\physicalmemory ?
Здравствуйте, IID,
S>>>Записывать не обязательно S>>>здесь
S>>>Хардкорный такой способ
GN>>Для драйвера режима ядра не пойдёт .
IID>а если поэкспериментировать с device\physicalmemory ?
Заодно сделать свою реализацию Service Control Manager
По сути все такие решения — обход системы безопасности ОС, и приемлимы только для "специфичного ПО", "пользователи" которого только обрадуются, когда дыру закроют в ближайшем hotfix.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
GN>Заодно сделать свою реализацию Service Control Manager GN>По сути все такие решения — обход системы безопасности ОС, и приемлимы только для "специфичного ПО", "пользователи" которого только обрадуются, когда дыру закроют в ближайшем hotfix.
У меня исключительно мирные цели!
Еще вот один вопрос, правда он задавался уже, но ответа так на него и не поступило:
Есть ли аналог BIN2H для винды???