а вот например на старости лет потребовалось мне зарегистрировать под vista rpc интерфейс на named pipes. И все оно замечательно работает, за исключением клиентов с low integrity level - при вызове методов моего интерфейса они обламывались с ошибкой 5 (ERROR_ACCESS_DENIED)
Гугл сказал что нужно в RpcServerUseProtseqEp отдавать правильно настроенный security descriptor, но как его правильно настраивать для указания integrity level не особо помог
Соотв-но ниже небольшой кусок кода, который таки работает
четверг, 30 декабря 2010 г.
Practical File System Design with the Be File System
вот дочитываю давеча subj - в главе про тестирование файловой системы автор жжет напалмом:
At this stage the testing group could still corrupt the file system, but it took a reasonable amount of effort (i.e.,more than15 minutes)
Before the first release of BFS, the system stabilized to the point where corrupting a hard disk took significant effort and all the real-world tests would run without corruption for 24 hours or more. At first customer ship, the file system had one known problem that we were unable to pinpoint but that would only happen in rare circumstances. By the second release (two months later) several more bugs were fixed, and the third release (another two months later) saw the file system able to withstand several days of serious abuse.
среда, 29 декабря 2010 г.
checked vista on virtual box
пишет мне нечеловеческим голосом:
и так без конца
чо ей от меня надо то например ?
Update: а сегодня оно меня дико порадовало следующим assert:
*** Assertion failed: Missing StreamContext Support: post IRP_MJ_CREATE, not a paging file: (volume->FileSystemType == FLT_FSTYPE_MS_NETWARE) || FlagOn(irpSp->Flags,SL_OPEN_PAGING_FILE)
*** Source File: d:\vistartm\base\fs\filtermgr\filter\fltmgr.c, line 703
и так без конца
чо ей от меня надо то например ?
Update: а сегодня оно меня дико порадовало следующим assert:
*** Assertion failed: The system BIOS on this machine does not properly support the processor. The system BIOS did not load any microcode update.A BIOS containing the latest microcode update is needed for system reliability.
(CurrentUpdateRevision != 0)
*** Source File: d:\vistartm\base\hals\update\intelupd\update.c, line 440
хочу странного
а существует ли в природе декомпилятор mof файлов от wmi ?
а то вот например есть всякие разные дрова с неблагозвучными именами типа yk62x86.sys, регистрирующие в системеover 9000 145 wmi GUIDENTRYs, которые непонятно зачем и что делают. Учитывая что через wmi можно вызывать даже методы (работающие в kernel mode) - чо-то мне сцыкотно иметь подобных крокодилов без присмотра
Update:бесчеловечные опыты показали, что в драйверах в ресурсе MOFDATA лежит ровно то же самое текстовое представление, только пожатое алгоритмом CMRCICompression. Например заголовок занимает 0x10 байт:
первый dword - сигнатура FOMB
следующий - флаг наличия компрессии (1 означает что таки да)
следующий - размер сжатых данных
последний - размер распакованных данных
Можно канешна заморочиться и вырипать код распаковки, но на скорую руку проще вызвать из mofd.dll неэкспортируемую ф-цию CMofLexer::CreateBufferFromBMOF :-)
а то вот например есть всякие разные дрова с неблагозвучными именами типа yk62x86.sys, регистрирующие в системе
Update:
46 4F 4D 42 01 00 00 00 │ 53 67 00 00 64 70 03 00
первый dword - сигнатура FOMB
следующий - флаг наличия компрессии (1 означает что таки да)
следующий - размер сжатых данных
последний - размер распакованных данных
Можно канешна заморочиться и вырипать код распаковки, но на скорую руку проще вызвать из mofd.dll неэкспортируемую ф-цию CMofLexer::CreateBufferFromBMOF :-)
суббота, 25 декабря 2010 г.
Be fs
а вот например читаю я тут давеча Practical File System Design with the Be File System (довольно попсовая книжка) и думаю - надо бы посмотреть как отдельные интересные вещи (вроде блокировок b+trees атрибутов и live queries) реализованы
Есс-но первым делом полез в сорцы linux ("динамичная среда, которая лучше поддерживает новое оборудование и самые передовые технологии", бгг) и вижу примерно следующее:
Есс-но первым делом полез в сорцы linux ("динамичная среда, которая лучше поддерживает новое оборудование и самые передовые технологии", бгг) и вижу примерно следующее:
BeOS file system (BeFS) support (read only) (EXPERIMENTAL)
Notable features include support for arbitrary attributes on files and directories, and database-like indices on selected attributes. (Also note that this driver doesn't make those features available at this time)не осилили (c)
четверг, 23 декабря 2010 г.
open-source windows file system driver
если кто не знал например - Ext2Fsd
сорцы местами поучительны, правда комментариев в коде не особо много
сорцы местами поучительны, правда комментариев в коде не особо много
среда, 22 декабря 2010 г.
!kwmi
а вот есть такая недокументированная команда в windbg например
и говорит она мне примерно следующее:
и говорит она мне примерно следующее:
Displaying specific guid info not currently supported...это все патамушта ялузир, да ?
Displaying all guids not currently supported...
Displaying specific provider info not currently supported.
вторник, 21 декабря 2010 г.
Windows 7 new System Information Class
понедельник, 20 декабря 2010 г.
ws2_32.dll exports
чо-то про главную user-mode сетевую запчасть я как-то и запамятовал
vista & vista sp2 одинаковы
vista & vista sp2 одинаковы
пятница, 17 декабря 2010 г.
books for driver writers
нас тут периодически спрашивают как я дошел до жизни такой научился писать дрова и какие книжки для этого нужно прочесть
Я тут подумал да и решил перечислить всякое личнопрочитанное пролистанное - может и пригодитца кому
Прежде всего хочу заметить что в этойстране своего железа не делают, так что мычаниекриса касперски всяких странных русскоговорящих персонажей мне неинтересно по определению. Далее - удивительно, но книжек про написание дров под windows не особо и много. Что еще более удивительно - большинство книжек имеют весьма почтенный возраст, но от этого нисколько не утратили актуальности
общечеловеческое для общего развития:
анальное рабство microsoft windows
и выкините ollydbg на помойку
Наверняка я забыл чего-нть
Я тут подумал да и решил перечислить всякое лично
Прежде всего хочу заметить что в этойстране своего железа не делают, так что мычание
- Andrew Tannenbaum Modern Operating Systems - читать крайне осторожно. В свое время некий финский школьник со странным именем линус,
наколовшись мульки сранойобчитавшись данной книжки, придумал свою собственную жалкую пародию на unix - tcp/ip illustrated - 3 тома комиксов понятно про что
- Bill Blunden Memory Management: Algorithms and Implementations In C/C++ - довольно попсовая, но на удивление познавательная книжка про алгоритмы управления памятью
- Maurice Herlihy & Nir Shavit The Art of Multiprocessor Programming - дико тяжкая книжка с тоннами матана. Но зато ! О, зато вы будете точно знать как устроены механизмы синхронизации и почему именно так, а не как вам бы хотелось
- David Solomon & Mark Russinovich Windows Internals - можно брать любое издание и читать с любой страницы. Объясняет почему windows устроена внутри именно так, а не иначе. Классика и must read
- Jeffrey Richter Programming Applications for Microsoft Windows - аналогично с упором на user mode
- Sven Schreiber Undocumented Windows 2000 Secrets - дико угарная книжка про внутренности w2k, причем даются уже вполне нормальные примеры программирования в kernel mode
- Art Baker The Windows 2000 Device Driver Book, A Guide for Programmers - описано практически все, что вы всегда хотели знать
но боялись спросить - Chris Cant (фамилия зачотная, бгг) Writing Windows Wdm Device Drivers - аналогично вышеупомянутой, но только про wdm - со всеми свистелками и описанием состояний, в которых может пребывать устройство wdm
- Penny Orwick Developing Drivers with the Windows Driver Foundation - про то как сделать программирование wmd дров менее болезненным с использованием KMDF
- Rajeev Nagar Windows NT File System Internals - дико старая (1998) но все еще актуальная книжка
Наверняка я забыл чего-нть
четверг, 16 декабря 2010 г.
openbsd ipsec backdoor
надеюсь все уже читали
My NDA with the FBI has recently expired, and I wanted to make you aware of the fact that the FBI implemented a number of backdoors and side channel key leaking mechanisms into the OCF, for the express purpose of monitoring the site to site VPN encryption system implemented by EOUSA, the parent organization to the FBI. Jason Wright and several other developers were responsible for those backdoors, and you would be well advised to review any and all codeтысячи глаз, ага-ага
commits by Wright as well as the other developers he worked with originating from NETSEC.
воскресенье, 12 декабря 2010 г.
люто-бешенно завидую
нью-йоркским издателям
это ж какая роскошная работа у них - целых 5 (!) дней подряд им не нужнораспевать корпоративные гимны по утрам с умным видом сидеть на бессмысленных совещаниях, отвечать на сотни не менее бессмысленных писем с пометкой urgent и вообще всячески изображать из себя члена общества
с другой стороны мне например сроду не придет в голову порочная мысль "приходить на работу раньше всех". да и "уходить последним" впрочем тоже, томущо после 22:00 в этом проклятом городе бухло больше не продают
это ж какая роскошная работа у них - целых 5 (!) дней подряд им не нужно
с другой стороны мне например сроду не придет в голову порочная мысль "приходить на работу раньше всех". да и "уходить последним" впрочем тоже, томущо после 22:00 в этом проклятом городе бухло больше не продают
суббота, 11 декабря 2010 г.
bug in msdn samples
я тут давеча искал примерчик использования mailslots и нашол сей чудный кусок кода на msdn
Граждане создают event для OVERLAPPED и мало того что не ждут на нем, но и не закрывают его во многих случаях
Использовать такие примеры категорически не рекомендуется
Граждане создают event для OVERLAPPED и мало того что не ждут на нем, но и не закрывают его во многих случаях
Использовать такие примеры категорически не рекомендуется
mailslot owner
например под xp sp2 владельца mailslotа можно выявить примерно так (в данном случае мой тестовый процесс PID EA0 создал mailslot "\sample_mailslot" с handle 7E8):
среда, 8 декабря 2010 г.
понедельник, 6 декабря 2010 г.
воскресенье, 5 декабря 2010 г.
четверг, 2 декабря 2010 г.
tcp_dcerpc_auditor.rb
мне кажется metasploit занимается совершенно социалистическими приписками - например из их списочка IIDs гугл практически ничего не знает про следующие:
- 04fcb220-fcfd-11cd-bec8-00aa0047ae4e
- 0a5a5830-58e0-11ce-a3cc-00aa00607271
- 0c821d64-a3fc-11d1-bb7a-0080c75e4ec1
- 0da5a86c-12c2-4943-30ab-7f74a813d853
- 209bb240-b919-11d1-bbb6-0080c75e4ec1
- 359e47c9-682e-11d0-adec-00c04fc2a078
- 386ffca4-22f5-4464-b660-be08692d7296
- 53e75790-d96b-11cd-ba18-08002b2dfead
- 56c8504c-4408-40fd-93fc-afd30f10c90d
- 5c89f409-09cc-101a-89f3-02608c4d2361
- 6bffd098-0206-0936-4859-199201201157
- 6e17aaa0-1a47-11d1-98bd-0000f875292e
- 7af5bbd0-6063-11d1-ae2a-0080c75e4ec1
- 7e048d38-ac08-4ff1-8e6b-f35dbab88d4a
- 82980780-4b64-11cf-8809-00a004ff3128
- 8d09b37c-9f3a-4ebb-b0a2-4dee7d6ceae9
- 93f5ac6f-1a94-4bc5-8d1b-fd44fc255089
- 9b3195fe-d603-43d1-a0d5-9072d7cde122
- a4c2fd60-5210-11d1-8fc2-00a024cb6019
- aa177641-fc9b-41bd-80ff-f964a701596f
- ce1334a5-41dd-40ea-881d-64326b23effe
- d2d79dfa-3400-11d0-b40b-00aa005ff586
- d7f9e1c0-2247-11d1-ba89-00c04fd91268
- e248d0b8-bf15-11cf-8c5e-08002bb49649
- e76ea56d-453f-11cf-bfec-08002be23f2f
- ec02cae0-b9e0-11d2-be62-0020afeddf63
- eff55e30-4ee2-11ce-a3c9-00aa00607271
- fc13257d-5567-4dea-898d-c6f9c48415a0
- ffe561b8-bf15-11cf-8c5e-08002bb49649
среда, 1 декабря 2010 г.
higher-order perl
читаю давеча subj и в главе 5.4 вижу следующий кусок кода:
но ведь это же не работает ни разу, потому что переменная
И самое главное - зачем это все, если можно обойтись без рекурсии вот примерно так:
sub fib
{
my $n = shift;
my($s1,$s2,$return);
while(1)
{
if ( $n < 2 ) {
return $n;
} else {
if ( $BRANCH == 0 ) {
$return = fib($n-2);
} elsif ( $BRANCH == 1 ) {
$s1 = $return;
$return = fib($n-1);
} elsif ( $BRANCH == 2 ) {
$s2 = $return;
$return = $s1 + $s2;
}
}
}
}
но ведь это же не работает ни разу, потому что переменная
$BRANCH
при любом вызове равна нулю ! wtf ?И самое главное - зачем это все, если можно обойтись без рекурсии вот примерно так:
sub fib
{
my $n = shift;
my $f1 = 0;
my $f2 = 1;
return 1 if ( $n < 2 );
my $tmp;
for ( my $i = 1; $i < $n; $i++ )
{
$tmp = $f2 + $f1;
$f2 = $f1;
$f1 = $tmp;
}
return $f1 + $f2;
}