а вот например на старости лет потребовалось мне зарегистрировать под 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;
}
вторник, 30 ноября 2010 г.
идентификация vtbl OLE интерфейсов
нас тут отдельные несознательные граждане спрашивают - вот например внутри activex дико много всяких vtbl - как узнать какая какому именно интерфейсу соответствует ?
Можно подумать за 11 лет в ole появилось что-то новое
Но тем не менее я заметил тут одну интересную фишку, значительно облегчающую subj для activex, написанных с применением mfc
Возьмем например запущенный случай - AcroPDF.dll от империи зла, которая сроду никому и никогда .pdb от своих [censored] продуктов не даетв отличие от империи добра
Можно подумать за 11 лет в ole появилось что-то новое
Но тем не менее я заметил тут одну интересную фишку, значительно облегчающую subj для activex, написанных с применением mfc
Возьмем например запущенный случай - AcroPDF.dll от империи зла, которая сроду никому и никогда .pdb от своих [censored] продуктов не дает
пятница, 26 ноября 2010 г.
wcncsvc.dll RPC interfaces
Windows Connect Now - Config Registrar Service
WcnpRpc C100BEAB-D33A-4A4B-BF23-BBEF4663D017 version 1.0
0x1c methods
4 methods
WcnpRpc C100BEAB-D33A-4A4B-BF23-BBEF4663D017 version 1.0
0x1c methods
- WcnpRpcSubscribe
- WcnpRpcUnSubscribe
- WcnpRpcGetCachedPeers
- WcnpRpcAsyncGetNotification
- WcnpRpcCancelPendingNotification
- WcnpRpcPerformDiscovery
- WcnpRpcTargetedWlanDiscovery
- WcnpRpcGetPeerUuidFromTransportAddress
- WcnpRpcGetPeer
- WcnpRpcReleasePeer
- WcnpRpcPeerOpenSession
- WcnpRpcPeerGetAttribute
- WcnpRpcPeerGetAttributeAsInteger
- WcnpRpcPeerGetAttributeAsString
- WcnpRpcPeerGetVendorExtensions
- WcnpRpcSessionSetPassword
- WcnpRpcSessionSetProfileData
- WcnpRpcSessionSetProfilePassphrase
- WcnpRpcSessionConnect
- WcnpRpcSessionGetNotifications
- WcnpRpcSessionGetWirelessProfile
- WcnpRpcSessionGetAttributeAsInteger
- WcnpRpcReleaseSession
- WcnpRpcSessionSetVendorExtensions
- WcnpRpcSessionGetVendorExtensions
- WcnpRpcCreateManagementHandle
- WcnpRpcSetAdvertisementsEnabled
- WcnpRpcCloseManagementHandle
4 methods
- WcnSinkOpenHandle
- WcnSinkCloseHandle
- WcnSinkDeliverMessage
- WcnSinkAsyncGetNextAction
bdesvc.dll RPC interface
BitLocker Drive Encryption Service
BdeSvcApi AE55C4C0-64CE-11DD-AD8B-0800200C9A66 version 1.0
2 methods
BdeSvcApi AE55C4C0-64CE-11DD-AD8B-0800200C9A66 version 1.0
2 methods
- BdeSvcApipConversionEncrypt
- BdeSvcApipEventTrigger
wwansvc.dll RPC interfaces
WWAN Auto Config Service
winwwandiag D4254F95-08C3-4FCC-B2A6-0B651377A29D version 1.0
4 methods
0x14 methods:
winwwandiag D4254F95-08C3-4FCC-B2A6-0B651377A29D version 1.0
4 methods
- WWDiagQueryInfSnapShot
- WWDiagQueryInfRecentStats
- WWDiagQueryInfBulkStats
- WWDiagQueryInfSignalStrengthStats
0x14 methods:
- WwanRpcOpenHandle
- WwanRpcCloseHandle
- WwanRpcRegisterNotification
- WwanRpcAsyncGetNotification
- WwanRpcEnumerateInterfaces
- WwanRpcSetInterface
- WwanRpcQueryInterface
- WwanRpcScan
- WwanRpcRegister
- WwanRpcConnect
- WwanRpcDisconnect
- WwanRpcSetSmsConfiguration
- WwanRpcSmsRead
- WwanRpcSmsSend
- WwanRpcSmsDelete
- WwanRpcSetProfile
- WwanRpcDeleteProfile
- WwanRpcGetProfile
- WwanRpcGetProfileList
- WwanRpcGetProfileIstream
wbiosrvc.dll RPC interfaces
Windows Biometric Service
WinBioCredentialManager 4BE96A0F-9F52-4729-A51D-C70610F118B0 version 1.0
6 methods
0x16 methods
Висят на ALPC port 8765
WinBioCredentialManager 4BE96A0F-9F52-4729-A51D-C70610F118B0 version 1.0
6 methods
- WinBioCredMgrSrvSetCredential
- WinBioCredMgrSrvRemoveCredential
- WinBioCredMgrSrvRemoveAllCredentials
- WinBioCredMgrSrvRemoveAllDomainCredentials
- WinBioCredMgrSrvGetCredentialState
- WinBioSrvGetServiceMonitorEvent
0x16 methods
- WinBioSrvEnumBiometricUnits
- WinBioSrvOpenSession
- WinBioSrvCloseSession
- WinBioSrvCancel
- WinBioSrvVerify
- WinBioSrvIdentify
- WinBioSrvLocateSensor
- WinBioSrvEnrollBegin
- WinBioSrvEnrollCapture
- WinBioSrvEnrollCommit
- WinBioSrvEnrollDiscard
- WinBioSrvEnumEnrollments
- WinBioSrvGetEvent
- WinBioSrvCaptureSample
- WinBioSrvDeleteTemplate
- WinBioSrvLockUnit
- WinBioSrvUnlockUnit
- WinBioSrvControlUnit
- WinBioSrvControlUnitPrivileged
- WinBioSrvGetProperty
- WinBioSrvLogonIdentifiedUser
- BioCredMgrGetLogonUserIdentity
Висят на ALPC port 8765
среда, 24 ноября 2010 г.
+1'' за 7770р
А вот например являюсь я уже почти два года гордым обладателем читалки LBook v3 (да, это наглая реклама yandex market) и даже прочел на нем по складам две с половиной книжки про хоббитов всем хорош сей агрегат кроме чтения всяких специфичных pdf (пусть adobe горит в аду) с кучей формул мелким корявым почерком а тех pdf скачано уже 3 полных dvd
И вот например появляется вот такой девайс - теперьбанановый с экранчиком аж целых 7 дюймов вместо 6ти. И вы таки будете заливисто смияццо, но этот +1 дюйм дороже ровно на 7770 честно украденных у сирот и вдов рублей !
Дичайше негодую например
И вот например появляется вот такой девайс - теперь
Дичайше негодую например
вторник, 23 ноября 2010 г.
crypt32.dll exports
Для симметрии с
Поскольку xp sp2 & xp sp3 и vista & vista sp2 совершенно одинаковы, я их поместил в два столбца - xp и vista соотв-но
Особо пугает тенденция к увеличению числа безымянных экспортируемых символов - например в w2k их не было вовсе, в последующих версиях windows их 2 (наверняка с внутренними именами типа BackDoorForNSA & ZOGAnalZond), а в window7 их уже 11 штук !
Поскольку xp sp2 & xp sp3 и vista & vista sp2 совершенно одинаковы, я их поместил в два столбца - xp и vista соотв-но
Особо пугает тенденция к увеличению числа безымянных экспортируемых символов - например в w2k их не было вовсе, в последующих версиях windows их 2 (наверняка с внутренними именами типа BackDoorForNSA & ZOGAnalZond), а в window7 их уже 11 штук !
понедельник, 22 ноября 2010 г.
keyiso.dll RPC interfaces
CNG Key Isolation Service
INCryptKeyIso B25A52BF-E5DD-4F4A-AEA6-8CA7272A0E86 version 1.0
0x1B methods
INCryptKeyIso B25A52BF-E5DD-4F4A-AEA6-8CA7272A0E86 version 1.0
0x1B methods
- SrvRpcCreateContext
- SrvRpcReleaseContext
- SrvRpcCryptOpenStorageProvider
- SrvRpcCryptIsAlgSupported
- SrvRpcCryptEnumAlgorithms
- SrvRpcCryptEnumKeys
- SrvRpcCryptFreeBuffer
- SrvRpcCryptFreeProvider
- SrvRpcCryptFreeKey
- SrvRpcCryptOpenKey
- SrvRpcCryptCreatePersistedKey
- SrvRpcCryptGetProviderProperty
- SrvRpcCryptSetProviderProperty
- SrvRpcCryptGetKeyProperty
- SrvRpcCryptSetKeyProperty
- SrvRpcCryptFinalizeKey
- SrvRpcCryptEncrypt
- SrvRpcCryptDecrypt
- SrvRpcCryptImportKey
- SrvRpcCryptExportKey
- SrvRpcCryptSignHash
- SrvRpcCryptVerifySignature
- SrvRpcCryptDeleteKey
- SrvRpcCryptNotifyChangeKey
- SrvRpcCryptSecretAgreement - название метода доставляет
- SrvRpcCryptDeriveKey
- SrvRpcCryptFreeSecret
- named pipe PIPE\protected_storage
- named pipe pipe\lsass
- ALPC Port protected_storage
- ALPC Port audit
- ALPC Port samss lpc
- ALPC Port securityevent
- ALPC Port LSARPC_ENDPOINT
- ALPC Port lsasspirpc
- ALPC Port lsapolicylookup
воскресенье, 21 ноября 2010 г.
setupapi.dll exports
Поскольку xp sp2 & xp sp3 и vista & vista sp2 совершенно одинаковы, я их поместил в два столбца - xp и vista соотв-но
netapi32.dll exports
а msdn оказывается частенько врет неточен
вот например там английским по белому написано про NetDfsSetSecurity
Minimum supported client - Windows Vista
Redistributable - Windows Server 2003 and Windows XP with Service Pack 2
и нету ее на xp sp2, а уже в xp sp3 - есть
вот например там английским по белому написано про NetDfsSetSecurity
Minimum supported client - Windows Vista
Redistributable - Windows Server 2003 and Windows XP with Service Pack 2
и нету ее на xp sp2, а уже в xp sp3 - есть
пятница, 19 ноября 2010 г.
sspisrv.dll RPC interfaces
sspisrv.dll - LSA SSPI RPC interface DLL
sspirpc 4F32ADC8-6052-4A04-8701-293CCF2096F0 version 1.0
0x10 methods
sspirpc 4F32ADC8-6052-4A04-8701-293CCF2096F0 version 1.0
0x10 methods
- SspirConnectRpc
- SspirDisconnectRpc
- SspirDisconnectRpcAsync
- SspirCallRpc
- SspirAcquireCredentialsHandle
- SspirFreeCredentialsHandle
- SspirProcessSecurityContext
- SspirDeleteSecurityContext
- SspirSslQueryCredentialsAttributes
- SspirNegQueryContextAttributes
- SspirSslSetCredentialsAttributes
- SspirApplyControlToken
- SspirLogonUser
- SspirLookupAccountSid
- SspirGetUserName
- SspirGetInprocDispatchTable
- ALPC Port lsapolicylookup
- ALPC Port securityevent
- ALPC Port audit
- ALPC Port protected_storage
- ALPC Port LSARPC_ENDPOINT
- ALPC Port lsasspirpc
- ALPC Port samss lpc
среда, 17 ноября 2010 г.
касперски жжот
на основе моделирования мышления хакеров, которое предсказуемое и шаблонное и потому были пойманы все известные мне zero-daysотсюдова
ну вы понели, да - моделирование мышления хакеров предсказуемое и шаблонное
предсказуемое и шаблонное
шаблонное и предсказуемое
а разгадка одна -
вторник, 16 ноября 2010 г.
Extending and Embedding Perl
осилил наконец дочитать subj
буду краток - книжку читать не стоило совершенно. Авторы банально взяли вполне общедоступную документацию, добавили туда примеров использования perl функций - и всё
Например из книжки вы не узнаете как
отвратительно
буду краток - книжку читать не стоило совершенно. Авторы банально взяли вполне общедоступную документацию, добавили туда примеров использования perl функций - и всё
Например из книжки вы не узнаете как
- общаться с magic-переменными
- сделать свои tied переменные
- использовать layered perl IO
- использовать unicode при биндинге
- использовать при биндинге bignum
- вернуть из своей ф-ции perl class
отвратительно
жыжы все ?
таки крепкие вещи делают американцы - потрясающе долго оно не ломалось в похотливых ручонках отечественных программистов быдлокодеров
заодно и узнаем когда их админы на работу приходят, бгг
заодно и узнаем когда их админы на работу приходят, бгг
завел ещо один бложык
http://redpmedium.blogspot.com/
буду туда писать всякое (если мне будет не лень) про маргинальный музон, треш, угарсодомию и прочие кровавые фильмы, часто матом
буду туда писать всякое (если мне будет не лень) про маргинальный музон, треш, угар
воскресенье, 14 ноября 2010 г.
эпичный тред
в котором хаскельщику объясняют, что его картина мира мягко говоря несколько неполна, бгг
Но вообще граждане, сумевшие таки осилить haskell, несколько умнее среднестатистического гражданина, так что в конце признаются что были неправы
А вот например с существами, которых хватило только наphp python - спорить совершенно невозможно - они просто не понимают а чо такова - щас все портируем быстренько и в chroot запустим
Склоняюсь к мысли что петонщиков нужно сразу молча пинать коваными сапогами до потери сознания напримери доступ в svn отобрать пока asm не выучат
Но вообще граждане, сумевшие таки осилить haskell, несколько умнее среднестатистического гражданина, так что в конце признаются что были неправы
А вот например с существами, которых хватило только на
Склоняюсь к мысли что петонщиков нужно сразу молча пинать коваными сапогами до потери сознания например
суббота, 13 ноября 2010 г.
wiaservc.dll RPC interfaces
Still Image Devices Service
stirpc 8C7A6DE0-788D-11D0-9EDF-444553540000 version 2.0
0x10 methods
stirpc 8C7A6DE0-788D-11D0-9EDF-444553540000 version 2.0
0x10 methods
- R_StiApiGetVersion
- R_StiApiEnableHwNotifications
- R_StiApiGetHwNotificationState
- R_StiApiLaunchApplication
- R_StiApiOpenDevice
- R_StiApiSubscribe
- R_StiApiGetLastNotificationData
- R_StiApiUnSubscribe
- R_StiApiCloseDevice
- R_StiApiLockDevice
- R_StiApiUnlockDevice
- R_WiaGetEventDataAsync
- OpenClientConnection
- CloseClientConnection
- RegisterUnregisterForEventNotification
- WiaGetRuntimetEventDataAsync
umrdp.dll RPC interfaces
Terminal Server Device Redirector Service
IRpcPrintDrv C80066A8-7579-44FC-B9B2-8466930791B0 version 1.0
1 method
TermsrvRemoteDevice 7212A04B-B463-402E-9649-2BA477394676 version 1.0
6 methods
IRpcPrintDrv C80066A8-7579-44FC-B9B2-8466930791B0 version 1.0
1 method
- RpcPrintDrvGetInfo
TermsrvRemoteDevice 7212A04B-B463-402E-9649-2BA477394676 version 1.0
6 methods
- RpcPing
- RpcOpenDevice
- RpcCloseDevice
- RpcGetSessionId
- RpcGetInterfaceGuids
- RpcGetClientDeviceId
IKEEXT.DLL RPC interfaces
IKE extension (еще бы я знал кто это и какое отношение имеет к икее)
IkeRpcIKE A398E520-D59A-4BDD-AA7A-3C1E0303A511 version 1.0
8 methods
Висит на следующих endpoints:
IkeRpcIKE A398E520-D59A-4BDD-AA7A-3C1E0303A511 version 1.0
8 methods
- IkeRpcIkeGetStatistics
- IkeRpcIkeSACreateEnumHandle
- IkeRpcIkeSAEnum
- IkeRpcIkeSADestroyEnumHandle
- IkeRpcIkeSADeleteById
- IkeRpcIkeSAGetById
- IkeRpcIkeSaDbGetSecurityInfo
- IkeRpcIkeSaDbSetSecurityInfo
Висит на следующих endpoints:
- named pipe PIPE\atsvc
- named pipe PIPE\srvsvc
- ALPC Port IUserProfile2
- ALPC Port senssvc
- ALPC Port SECLOGON
пятница, 12 ноября 2010 г.
еще не все гении подохли
четверг, 11 ноября 2010 г.
wlanext.exe RPC interfaces
Windows Wireless LAN 802.11 Extensibility Framework
регистрируется в epmapper с annotation IhvExtRpcServer
ihvhandlers 98E96949-BC59-47F1-92D1-8C25B46F85C7 version 1.0
0xF methods
регистрируется в epmapper с annotation IhvExtRpcServer
ihvhandlers 98E96949-BC59-47F1-92D1-8C25B46F85C7 version 1.0
0xF methods
- RpcDot11ExtIhvInitService
- RpcDot11ExtIhvDeinitService
- RpcDot11ExtIhvInitAdapter
- RpcDot11ExtIhvDeinitAdapter
- RpcDot11ExtIhvProcessSessionChange
- RpcDot11ExtIhvIsUIRequestPending
- RpcDot11ExtIhvPerformCapabilityMatch
- RpcDot11ExtIhvValidateProfile
- RpcDot11ExtIhvPerformPreAssociate
- RpcDot11ExtIhvAdapterReset
- RpcDot11ExtIhvCreateDiscoveryProfiles
- RpcDot11ExtIhvProcessUIResponse
- RpcDot11ExtIhvQueryUIRequest
- RpcDot11ExtIhvOnexIndicateResult
- RpcDot11ExtIhvControl
wlanmsm.dll RPC interfaces
Windows Wireless LAN 802.11 MSM DLL
регистрируется в epmapper с annotation IhvExtRpcServer
ihvmsmapi C3F42C6E-D4CC-4E5A-938B-9C5E8A5D8C2E version 1.0
0xC methods
регистрируется в epmapper с annotation IhvExtRpcServer
ihvmsmapi C3F42C6E-D4CC-4E5A-938B-9C5E8A5D8C2E version 1.0
0xC methods
- RpcDot11ExtRegisterIhvProcess
- RpcDot11ExtPreAssociateCompletion
- RpcDot11ExtPostAssociateCompletion
- RpcDot11ExtSendUIRequest
- RpcDot11ExtSendNotification
- RpcDot11ExtGetProfileCustomUserData
- RpcDot11ExtSetProfileCustomUserData
- RpcDot11ExtNotifyChangeState
- RpcDot11ExtSetCurrentProfile
- RpcDot11ExtStartOneX
- RpcDot11ExtStopOneX
- RpcDot11ExtProcessSecurityPacket
среда, 10 ноября 2010 г.
bthserv.dll RPC interfaces
Bluetooth Support Service
BthServRPCService 2ACB9D68-B434-4B3E-B966-E06B4B3A84CB version 1.0
0x15 methods
BthServRPCService 2ACB9D68-B434-4B3E-B966-E06B4B3A84CB version 1.0
0x15 methods
- BthServOpen
- BthServClose
- BthServRegisterAuthenticationEvent
- BthServDeregisterAuthenticationEvent
- BthServGetAuthRequest
- BthServGetDeviceInfo
- BthServSetDeviceName
- BthServGetDeviceList
- BthServActivateService
- BthServUpdateService
- BthServGetSdpRecord
- BthServSetSdpRecord
- BthServSetSdpRecordWithInfo
- BthServRemoveSdpRecord
- BthServEnableDiscovery
- BthServUninstallDevice
- BthServEirGetRecords
- BthServEirSetRecord
- BthServEirUpdateRecord
- BthServEirRemoveRecord
- BthServTestRegisterAuthenticationEvent
vaultsvc.dll RPC interfaces
Credential Manager Service
IVault BB8B98E8-84DD-45E7-9F34-C3FB6155EEED version 1.0
0x18 methods:
IVault BB8B98E8-84DD-45E7-9F34-C3FB6155EEED version 1.0
0x18 methods:
- VltCreateItemType
- VltDeleteItemType
- VltEnumerateItemTypes
- VltAddItem
- VltFindItems
- VltEnumerateItems
- VltGetItem
- VltRemoveItem
- VltCopyItem
- VltMoveItem
- VltGetItemType
- VltOpenVault
- VltCloseVault
- VltLockVault
- VltUnlockVault
- VltConfirmVaultAccess
- VltGetInformation
- VltSetInformation
- VltCreateVault
- VltCopyVault
- VltDeleteVault
- VltLoadVaults
- VltUnloadVaults
- VltEnumerateVaults
- named pipe PIPE\protected_storage
- named pipe pipe\lsass
- ALPC Port lsapolicylookup
- ALPC Port securityevent
- ALPC Port audit
- ALPC Port protected_storage
- ALPC Port LSARPC_ENDPOINT
- ALPC Port lsasspirpc
- ALPC Port samss lpc
- ALPC Port Vault
суббота, 6 ноября 2010 г.
vista sp2 & windows7 RPC interfaces
как самые прозорливые могли давно догадаться, многочисленные предыдущие простыни публиковались не просто так, а как запчасти к некоей более полной картине ужасного и страшного мира
И вообще обновление данного списочка будет зависеть от вашего поведениянапример не менее 666 комментов и количества выпитого автором поить лучше всего Chivas Brothers Strathisla
вы все равно свиньи неблагодарные я вам ничего не должен например.
Далее на основе этих списков была запущена другая тулза (не менее непубличная), которая пыталась найти модуль, ответственный за регистрацию каждого из ранее найденных rpc интерфейсов. Поскольку она наверняка дико глючити регулярно слушает радио радонеж, то модули нашлись далеко не все.
Далее был написан на perl crawler, который пытался через google найти описание найденных rpc интерфейсов - это было совершенно бесполезно, потому что кроме французов с http://www.hsc.fr/ressources/articles/win_net_srv/index.html эта тема похоже больше никем в этих ваших инторнетах не освещалась
Соотв-но для сборки всего вышеперечисленного был написан еще один perl script, которым уже и был сгенерирован
Disclaimer
Есс-но все нижеописанное не является абсолютно полным и исчерпывающим списком всех возможных RPC интерфейсов windows. Соотв-но автор категорически не желает нести ответственность за допущенные неточности, ковырять неописанные интерфейсы, а также исправлять найденные ошибки и проч. и проч.И вообще обновление данного списочка будет зависеть от вашего поведения
Как эти данные были получены
Были взяты 2 свежепоставленные версии windows, а именно- vista ultimate sp2 32bit
- windows7 home premium 32bit
Далее на основе этих списков была запущена другая тулза (не менее непубличная), которая пыталась найти модуль, ответственный за регистрацию каждого из ранее найденных rpc интерфейсов. Поскольку она наверняка дико глючит
Далее был написан на perl crawler, который пытался через google найти описание найденных rpc интерфейсов - это было совершенно бесполезно, потому что кроме французов с http://www.hsc.fr/ressources/articles/win_net_srv/index.html эта тема похоже больше никем в этих ваших инторнетах не освещалась
Соотв-но для сборки всего вышеперечисленного был написан еще один perl script, которым уже и был сгенерирован
список
sysntfy.dll RPC interfaces
sysntfy.dll Windows Notifications Dynamic Link Library
Висит на следующих endpoints:
0xf methods:
Висит на следующих endpoints:
- named pipe PIPE\atsvc
- named pipe PIPE\srvsvc
- named pipe \PIPE\protected_storage
- named pipe pipe\lsass
- named pipe \pipe\trkwks
- ALPC Port LSMApi
- ALPC Port protected_storage
- ALPC Port audit
- ALPC Port samss lpc
- ALPC Port securityevent
- ALPC Port IUserProfile2
- ALPC Port senssvc
- ALPC Port SECLOGON
- ALPC Port trkwks
0xf methods:
- s_OnInitialConnection
- s_OnCreateSession
- s_OnStartScreenSaverAsDefaultUser
- s_OnStopScreenSaverAsDefaultUser
- s_OnLogon
- s_OnLock
- s_OnUnlock
- s_OnStartScreenSaverAsUser
- s_OnStopScreenSaverAsUser
- s_OnDisconnect
- s_OnReconnect
- s_OnLogoff
- s_OnTerminateSession
- s_OnStartShell
- s_OnEndShell
BFE.DLL RPC interfaces
BFE.DLL - Base Filtering Engine
BfeRpcBFE DD490425-5325-4565-B774-7E27D6C09C24 version 1.0
0x8e methods:
BfeRpcBFE DD490425-5325-4565-B774-7E27D6C09C24 version 1.0
0x8e methods:
- BfeRpcGetNextNotificationBatch
- BfeRpcEngineOpen
- BfeRpcEngineClose
- BfeRpcEngineGetOption
- BfeRpcEngineSetOption
- BfeRpcEngineGetSecurityInfo
- BfeRpcEngineSetSecurityInfo
- BfeRpcSessionCreateEnumHandle
- BfeRpcCalloutEnum
- BfeRpcSessionDestroyEnumHandle
- BfeRpcTransactionBegin
- BfeRpcTransactionCommit
- BfeRpcTransactionAbort
- BfeRpcProviderAdd
- BfeRpcProviderDeleteByKey
- BfeRpcProviderGetByKey
- BfeRpcProviderCreateEnumHandle
- BfeRpcCalloutEnum
- BfeRpcProviderDestroyEnumHandle
- BfeRpcProviderGetSecurityInfoByKey
- BfeRpcProviderSetSecurityInfoByKey
- BfeRpcProviderSubscribeChanges
- BfeRpcProviderUnsubscribeChanges
- BfeRpcProviderSubscriptionsGet
- BfeRpcProviderContextAdd
- BfeRpcProviderContextDeleteById
- BfeRpcProviderContextDeleteByKey
- BfeRpcProviderContextGetById
- BfeRpcProviderContextGetByKey
- BfeRpcProviderContextCreateEnumHandle
- BfeRpcCalloutEnum
- BfeRpcProviderContextDestroyEnumHandle
- BfeRpcProviderContextGetSecurityInfoByKey
- BfeRpcProviderContextSetSecurityInfoByKey
- BfeRpcProviderContextSubscribeChanges
- BfeRpcProviderContextUnsubscribeChanges
- BfeRpcProviderContextSubscriptionsGet
- BfeRpcSubLayerAdd
- BfeRpcSubLayerDeleteByKey
- BfeRpcSubLayerGetByKey
- BfeRpcSubLayerCreateEnumHandle
- BfeRpcCalloutEnum
- BfeRpcSubLayerDestroyEnumHandle
- BfeRpcSubLayerGetSecurityInfoByKey
- BfeRpcSubLayerSetSecurityInfoByKey
- BfeRpcSubLayerSubscribeChanges
- BfeRpcSubLayerUnsubscribeChanges
- BfeRpcSubLayerSubscriptionsGet
- BfeRpcLayerGetById
- BfeRpcLayerGetByKey
- BfeRpcLayerCreateEnumHandle
- BfeRpcCalloutEnum
- BfeRpcLayerDestroyEnumHandle
- BfeRpcLayerGetSecurityInfoByKey
- BfeRpcLayerSetSecurityInfoByKey
- BfeRpcCalloutAdd
- BfeRpcCalloutDeleteById
- BfeRpcCalloutDeleteByKey
- BfeRpcCalloutGetById
- BfeRpcCalloutGetByKey
- BfeRpcCalloutCreateEnumHandle
- BfeRpcCalloutEnum
- BfeRpcCalloutDestroyEnumHandle
- BfeRpcCalloutGetSecurityInfoByKey
- BfeRpcCalloutSetSecurityInfoByKey
- BfeRpcCalloutSubscribeChanges
- BfeRpcCalloutUnsubscribeChanges
- BfeRpcCalloutSubscriptionsGet
- BfeRpcFilterAdd
- BfeRpcFilterDeleteById
- BfeRpcFilterDeleteByKey
- BfeRpcFilterGetById
- BfeRpcFilterGetByKey
- BfeRpcFilterCreateEnumHandle
- BfeRpcCalloutEnum
- BfeRpcFilterDestroyEnumHandle
- BfeRpcFilterGetSecurityInfoByKey
- BfeRpcFilterSetSecurityInfoByKey
- BfeRpcFilterSubscribeChanges
- BfeRpcFilterUnsubscribeChanges
- BfeRpcFilterSubscriptionsGet
- BfeRpcBfeIPsecOffloadDone
- BfeRpcBfeIPsecDosFWUsed
- BfeRpcBfeIPsecGetStatistics
- BfeRpcBfeIPsecSaContextCreate
- BfeRpcBfeIPsecSaContextDeleteById
- BfeRpcBfeIPsecSaContextGetById
- BfeRpcBfeIPsecSaContextGetOrSetSpi
- BfeRpcBfeIPsecSaContextAddInbound
- BfeRpcBfeIPsecSaContextAddOutbound
- BfeRpcBfeIPsecSaContextUpdate
- BfeRpcBfeIPsecSaContextExpire
- BfeRpcBfeIPsecSaContextCreateEnumHandle
- BfeRpcCalloutEnum
- BfeRpcBfeIPsecSaContextDestroyEnumHandle
- BfeRpcBfeIPsecSaCreateEnumHandle
- BfeRpcCalloutEnum
- BfeRpcBfeIPsecSaDestroyEnumHandle
- BfeRpcBfeIPsecSaDbGetSecurityInfo
- BfeRpcBfeIPsecSaDbSetSecurityInfo
- BfeRpcBfeIPsecDospGetStatistics
- BfeRpcBfeIPsecDospStateCreateEnumHandle
- BfeRpcCalloutEnum
- BfeRpcBfeIPsecDospStateDestroyEnumHandle
- BfeRpcBfeIPsecDospGetSecurityInfo
- BfeRpcBfeIPsecDospSetSecurityInfo
- BfeRpcNetEventCreateEnumHandle
- BfeRpcCalloutEnum
- BfeRpcNetEventDestroyEnumHandle
- BfeRpcNetEventsGetSecurityInfo
- BfeRpcNetEventsSetSecurityInfo
- BfeRpcNetEventSubscribe
- BfeRpcNetEventUnsubscribe
- BfeRpcNetEventSubscriptionsGet
- BfeRpcNetEventsLost
- BfeRpcClassify
- BfeRpcAddLayerReplica
- BfeRpcDeleteLayerReplica
- BfeRpcSecureSocketAdd
- BfeRpcSecureSocketDeleteByKey
- BfeRpcBfeIPsecTunnelAdd
- BfeRpcBfeIPsecTunnelAddConditions
- BfeRpcSecureSocketDeleteByKey
- BfeRpcBfeIPsecSaInitiateAsync
- BfeRpcOpenToken
- BfeRpcCloseToken
- BfeRpcAleExplicitCredentialsQuery
- BfeRpcAleEndpointGetById
- BfeRpcAleEndpointCreateEnumHandle
- BfeRpcCalloutEnum
- BfeRpcNetEventDestroyEnumHandle
- BfeRpcAleEndpointGetSecurityInfo
- BfeRpcAleEndpointSetSecurityInfo
- BfeRpcAleGetPortStatus
- BfeRpcIsUserAuthConfigured
- BfeRpcKeyModuleAdd
- BfeRpcKeyModuleDeleteByKey
- BfeRpcKeyModuleUpdateAcquire
- BfeRpcBfeIPsecDriverInitiateAcquire
- BfeRpcBfeIPsecDriverExpire
- BfeRpcBfeIPsecDriverProcessClearTextResponse
- BfeRpcBfeProcessNameResolutionEvent
sysmain.dll RPC interfaces
sysmain.dll - Superfetch Service Host
Висит на следующих endpoints:
1 method:
Висит на следующих endpoints:
- named pipe pipe\trkwks
- ALPC Port trkwks
1 method:
- PfRpcServerExecuteCommand
umpo.dll RPC interfaces
umpo.dll - User-mode Power Service
Имеет место быть в windows7 на следующих endpoints:
0x1c methods:
Имеет место быть в windows7 на следующих endpoints:
- ALPC Port umpo
- ALPC Port plugplay
- ALPC Port actkernel
0x1c methods:
- UmpoRpcReadFromSystemPowerKey
- UmpoRpcReadFromUserPowerKey
- UmpoRpcReadACValue
- UmpoRpcReadDCValue
- UmpoRpcWriteToSystemPowerKey
- UmpoRpcWriteToUserPowerKey
- UmpoRpcApplyPowerRequestOverride
- UmpoRpcApplyPowerSettings
- UmpoRpcSetActiveScheme
- UmpoRpcGetActiveScheme
- UmpoRpcRestoreDefaultScheme
- UmpoRpcRestoreDefaultSchemesAll
- UmpoRpcDuplicateScheme
- UmpoRpcDeleteScheme
- UmpoRpcImportScheme
- UmpoRpcReplaceDefaultPowerSchemes
- UmpoRpcSettingRegisterNotification
- UmpoRpcSettingUnregisterNotification
- UmpoRpcLegacyEventRegisterNotification
- UmpoRpcEnumerate
- UmpoRpcReadSecurityDescriptor
- UmpoRpcWriteSecurityDescriptor
- UmpoRpcSettingAccessCheck
- UmpoRpcCreateSetting
- UmpoRpcCreatePossibleSetting
- UmpoRpcRemoveSetting
- UmpoRpcSetAlsBrightnessOffset
- UmpoRpcGetPlatformRole
emdmgmt.dll RPC interfaces
emdmgmt.dll - ReadyBoost Service
Имеет место в vista sp2 на следующих endpoints:
1 method
Имеет место в vista sp2 на следующих endpoints:
- named pipe pipe\trkwks
- ALPC Port trkwks
1 method
- EcRpcServerExecuteCommand
appinfo.dll RPC interfaces
appinfo.dll - Application Information Service
IAisAxISInfo 58E604E8-9ADB-4D2E-A464-3B0683FB1480 version 1.0
1 method
RAiGetTokenForAxIS
Имеет место быть только в windows7 на следующих endpoins:
Под vista sp2 имеет 3 метода:
IAisCOMInfo 5F54CE7D-5B79-4175-8584-CB65313A0E98 1.0
1 method
1 method
IAisAxISInfo 58E604E8-9ADB-4D2E-A464-3B0683FB1480 version 1.0
1 method
RAiGetTokenForAxIS
Имеет место быть только в windows7 на следующих endpoins:
- ALPC Port senssvc
- ALPC Port IUserProfile2
- named pipe \PIPE\atsvc
- named pipe PIPE\srvsvc
Под vista sp2 имеет 3 метода:
- RAiLaunchAdminProcess
- RAiProcessRunOnce
- RAiOverrideDesktopPromptPolicy
- RAiLaunchAdminProcess
- RAiProcessRunOnce
- RAiLogonWithSmartCardCreds
- RAiOverrideDesktopPromptPolicy
- ALPC Port senssvc
- ALPC Port IUserProfile2
- ALPC Port SECLOGON
- named pipe PIPE\atsvc
- named pipe PIPE\srvsvc
IAisCOMInfo 5F54CE7D-5B79-4175-8584-CB65313A0E98 1.0
1 method
- RAiGetTokenForCOM
1 method
- RAiGetTokenForMSI
nrpsrv.dll RPC interfaces
nrpsrv.dll - Name Resolution Proxy (NRP) RPC interface
Имеет место быть под windows7 на следующих endpoints:
2 methods:
Имеет место быть под windows7 на следующих endpoints:
- ALPC Port dhcpcsvc6
- ALPC Port dhcpcsvc
- ALPC Port eventlog
- ALPC Port Audiosrv
- ALPC Port AudioClientRpc
- named pipe \pipe\eventlogr
2 methods:
- RpcNrpGetAddrInfo
- RpcNrpGetNameInfo
pcasvc.dll RPC interfaces
pcasvc.dll - Program Compatibility Assistant Service
PcaSvc 0767A036-0D22-48AA-BA69-B619480F38CB version 1.0
8 methods:
PcaSvc 0767A036-0D22-48AA-BA69-B619480F38CB version 1.0
8 methods:
- RAiNotifyLaunchProcess
- RAiTagUpdateProcess
- RAiTagDeprecatedComponentProcess
- RAiTagUndetectedInstallerProcess
- RAiNotifyUserCallbackExceptionProcess
- RAiListTrackedApplications
- RAiMonitorControlPanelApplet
- RAiNotifyFailedUninstall
memory management in windows
сроду бы не поверил что на хабре опубликуют чо-нть полезное, но и на старуху бывает порнуха бывает оказывается и такое
раз
два
три
С верификацией написанного есть проблема - например самые свежие из доступных сорцов windows - WRK - как всем известно есть куски w2k3, а из более новых версий windows насколько я знаю в инет не попадало ничего. Так что проверить как оно там на самом деле - весьма утомительное дело на несколько недель в отладчике и дизассемблере
Но в качестве гипотезы - вполне годные статьи
раз
два
три
С верификацией написанного есть проблема - например самые свежие из доступных сорцов windows - WRK - как всем известно есть куски w2k3, а из более новых версий windows насколько я знаю в инет не попадало ничего. Так что проверить как оно там на самом деле - весьма утомительное дело на несколько недель в отладчике и дизассемблере
Но в качестве гипотезы - вполне годные статьи
пятница, 5 ноября 2010 г.
ubpm.dll RPC interfaces
ubpm.dll - Unified Background Process Manager DLL
Все описанные интерфейсы имеют место только в windows7 и висят на следующих endpoints:
ubpmtaskhostchannel 22716894-FD8E-4462-9783-09E6D9531F16 version 1.0
4 methods:
0xf methods:
Все описанные интерфейсы имеют место только в windows7 и висят на следующих endpoints:
- ALPC port ubpmrpc
- ALPC port ntsvcs
ubpmtaskhostchannel 22716894-FD8E-4462-9783-09E6D9531F16 version 1.0
4 methods:
- s_UbpmRpcOpenTaskHostChannel
- s_UbpmRpcCloseTaskHostChannel
- s_UbpmRpcTaskHostSendResponseReceiveCommand
- s_UbpmRpcTaskHostReportTaskStatus
0xf methods:
- s_UbpmRpcOpenRootHandle
- s_UbpmRpcCloseRootHandle
- s_UbpmRpcRegisterTriggerProvider
- s_UbpmRpcOpenTriggerProvider
- s_UbpmRpcGenerateTrigger
- s_UbpmRpcGenerateNotification
- s_UbpmRpcUnregisterTriggerProvider
- s_UbpmRpcCloseProviderHandle
- s_UbpmRpcRegisterTriggerConsumer
- s_UbpmRpcUnregisterTriggerConsumer
- s_UbpmRpcCloseConsumerHandle
- s_UbpmRpcOpenTriggerConsumer
- s_UbpmRpcControlTriggerConsumer
- s_UbpmRpcQueryTriggerConsumerStatus
- s_UbpmRpcConfigureTriggerConsumer
winlogon.exe RPC interfaces
Все описанные интерфейсы висят на автогенеренном ALPC port с префиксом WMsgKRpc
ISecureDesktop 12E65DD8-887F-41EF-91BF-8D816C42C2E7 version 1.0
5 methods:
WMsgAPIs 76F226C3-EC14-4325-8A99-6A46348418AF version 1.0
Кроме упомянутого выше имеет место на named pipe InitShutdown (в vista) и ALPC port WindowsShutdown
4 methods:
WMsgKAPIs 76F226C3-EC14-4325-8A99-6A46348418AE version 1.0
Кроме упомянутого выше имеет место на named pipe InitShutdown (в vista) и ALPC port WindowsShutdown
2 methods:
ISecureDesktop 12E65DD8-887F-41EF-91BF-8D816C42C2E7 version 1.0
5 methods:
- WlSecureDesktoprPromptingRequest
- WlSecureDesktoprConfirmationRequest
- WlSecureDesktoprCredmanBackupRequest
- WlSecureDesktoprCredmanRestoreRequest
- WlSecureDesktoprSimulateSAS
WMsgAPIs 76F226C3-EC14-4325-8A99-6A46348418AF version 1.0
Кроме упомянутого выше имеет место на named pipe InitShutdown (в vista) и ALPC port WindowsShutdown
4 methods:
- I_WMsgSendMessage
- I_WMsgSendPSPMessage
- I_WMsgSendNotifyMessage
- I_WMsgSendReconnectionUpdateMessage
WMsgKAPIs 76F226C3-EC14-4325-8A99-6A46348418AE version 1.0
Кроме упомянутого выше имеет место на named pipe InitShutdown (в vista) и ALPC port WindowsShutdown
2 methods:
- I_WMsgkSendMessage
- I_WMsgSendPSPMessage
четверг, 4 ноября 2010 г.
Masterminds of Programming - uml
а вот давеча читаю снова subj - главу про шарлатанскую технологию UML:
аферы собс-но
Граждане дико жгут по моему. Кто такие эти мифические жывотные - methodologists ?
The language is too complex.We need to change that. Eighty percent of all applications can be designed with less than 20% of UML. In my company we have defined a pure subset of UML to become the(c) Ivar Jacobson, один из авторовЪEssential Unified Modeling Language.We also use a very different way of describing UML that is much more attractive to ordinary users. Traditional UML is designed for methodologists or tool vendors.
I would love to restructure UML as a set of domain-specific languages (DSLs). I would like to do that similar to the way were designed the Unified Process in my company.A DSL is an aspect of a modeling language (of which UML is an example). You create your modeling language as a composition of many such DSLs (aspects) in a way similar to how you compose a software system from many cross-cutting concerns.While I claim that the language was not designed for users but for methodologists and for tool vendors, I claim it was not even good for the latter groups.The semantics of UML are poorly defined. UML—in particular, UML 2.0—has included so many constructs from so many different methodological camps that it became impossible to define its semantics clearly. Like many other languages, UML became, as John Backus said about Ada, “fat and flabby.”
The focus was on concrete syntax (icons) and to some extent on static semantics, but we left the operational semantics undefined. I expected that we would get this critique since standard language design practice at that time was to use techniques like denotational semantics. We didn’t. We just wrote page after page that we knew were very hard to understand.
Граждане дико жгут по моему. Кто такие эти мифические жывотные - methodologists ?
среда, 3 ноября 2010 г.
MpSvc.dll RPC interfaces
запчасть от Windows Defender
Висит на автогенеренном ALPC port с префиксом IMpService
IMpService C503F532-443A-4C69-8300-CCD1FBDB3839 version 1.0
0x30 methods:
Висит на автогенеренном ALPC port с префиксом IMpService
IMpService C503F532-443A-4C69-8300-CCD1FBDB3839 version 1.0
0x30 methods:
- ServerMpEnableFeature
- ServerMpDisableFeature
- ServerMpFeatureQueryStatus
- ServerMpEventOpen
- ServerMpEventClose
- ServerMpEventQueryNotification
- ServerMpOnDemandStartScan
- ServerMpOnDemandQueryNotification
- ServerMpOnDemandQueryScanResult
- ServerMpOnDemandCancelScan
- ServerMpOnDemandPauseScan
- ServerMpOnDemandResumeScan
- ServerMpOnDemandPersistScan
- ServerMpOnDemandOpenScan
- ServerMpOnDemandCloseScan
- ServerMpOnDemandThreatOpen
- ServerMpOnDemandThreatEnum
- ServerMpOnDemandThreatClose
- ServerMpScanOpenHistory
- ServerMpScanEnumerateHistory
- ServerMpScanCloseHistory
- ServerMpScanDeleteHistory
- ServerMpScanCleanOpen
- ServerMpScanCleanClose
- ServerMpScanCleanSetAction
- ServerMpScanCleanPrecheck
- ServerMpScanCleanPrecheckNotification
- ServerMpScanCleanThreats
- ServerMpScanCleanThreatsNotification
- ServerMpScanCleanQueryInfo
- ServerMpQuarantineEnumOpen
- ServerMpQuarantineEnumerate
- ServerMpQuarantineEnumClose
- ServerMpQuarantineQueryInfo
- ServerMpQuarantineRestoreThreat - вот этот метод кажется мне особенно многообещающим :-)
- ServerMpQuarantineDeleteThreat
- ServerMpQueryEngineVersion
- ServerMpUpdateEngineSignature
- ServerMpRollbackEngineSignature
- ServerMpScanGenerateReport
- ServerMpThreatStaticInfo
- ServerMpQuerySystemInfo
- ServerMpRpcConfigSetValue
- ServerMpRpcConfigDelValue
- ServerMpRpcElevationHandleOpen
- ServerMpRpcElevationHandleAttach
- ServerMpRpcElevationHandleClose
- ServerMpRpcElevateCleanHandle
вторник, 2 ноября 2010 г.
понедельник, 1 ноября 2010 г.
vista ws2_32.dll self-checking
Нашел тут под вистой sp2 32bit дико угарный кусок кода в ws2_32.dll - в ф-ции CheckForHookersOrChainers (вызываемой из WSAStartup):
Собственно все понятно - проверка на угон IAT, если имя или адрес, полученный через GetProcAddress не совпали - возвращаем -1 и WSAStartup в свою очередь вернет
Угар в том что если пропатчить IAT после вызова WSAStartup - ничего больше не проверится
Ну и традиционно этот массив ?apfns@@3PAPAXA (бгг) не экспортируется, так что юзер лишен воможности запустить проверку IAT в любое другое время
mov eax, offset off_4B0F5510 ; указатель на таблицу имен
exported functions
xor esi, esi
loc_4B0DC7A2:
push dword ptr [eax] ; lpProcName
push ?gDllHandle@@3PAUHINSTANCE__@@A ; hModule
call ds:__imp__GetProcAddress@8
test eax, eax
jz loc_4B0DA7A1
cmp eax, ?apfns@@3PAPAXA[esi] ; указатель на таблицу адресов exported functions
jnz loc_4B0DA7A1
inc edi
mov esi, edi
shl esi, 2
lea eax, off_4B0F5510[esi]
cmp dword ptr [eax], 0
jnz short loc_4B0DC7A2
Собственно все понятно - проверка на угон IAT, если имя или адрес, полученный через GetProcAddress не совпали - возвращаем -1 и WSAStartup в свою очередь вернет
10091 (WSASYSNOTREADY)
Угар в том что если пропатчить IAT после вызова WSAStartup - ничего больше не проверится
Ну и традиционно этот массив ?apfns@@3PAPAXA (бгг) не экспортируется, так что юзер лишен воможности запустить проверку IAT в любое другое время
воскресенье, 31 октября 2010 г.
audiodg.exe RPC interfaces
гугл про этот интерфейс не знает вообще ничего, хе-хе
Живет внутри процесса audiodg.exe, имеет место быть только в vista (в windows7 такого уже нет. Или просто хорошо маскируется). Висит на LPC port AudioDeviceGraph
AudioDG DE3B9BC8-BEF7-4578-A0DE-F089048442DB version 1.0
7 methods:
Живет внутри процесса audiodg.exe, имеет место быть только в vista (в windows7 такого уже нет. Или просто хорошо маскируется). Висит на LPC port AudioDeviceGraph
AudioDG DE3B9BC8-BEF7-4578-A0DE-F089048442DB version 1.0
7 methods:
- AudioDGShutdownADG
- AudioDGGetStartupStatus
- AudioDGChallenge
- AudioDGGetEndpointStreamVpo
- AudioDGGetStreamVpoDescription
- AudioDGSetStreamVpoPolicySchemas
- AudioDGCloseStreamVpo
суббота, 30 октября 2010 г.
lsm.exe RPC interfaces
Тут граждане пытаются описать всякие новые RPC интерфейсы, появившиеся в висте, но конкретно этих я там не нашел. Все интерфейсы висят на LPC port LSMApi
TermSrvPrivate 11F25515-C879-400A-989E-B074D5F092FE version 1.0
6 methods:
2 methods:
0x10 methods:
4 methods:
0xa methods:
TermSrvPrivate 11F25515-C879-400A-989E-B074D5F092FE version 1.0
6 methods:
- RpcGetUserToken
- RpcConnectTerminal
- RpcSystemShutdownStarted
- RpcGetRequestForWinlogon
- RpcReportWinlogonReply
- RpcGetReconnectId
2 methods:
- RpcBroadcastSystemMessage
- RpcSendWindowMessage
0x10 methods:
- RpcOpenSession
- RpcCloseSession
- RpcConnect
- RpcDisconnect
- RpcLogoff
- RpcGetUserName
- RpcGetTerminalName
- RpcGetState
- RpcIsSessionDesktopLocked
- RpcShowMessageBox
- RpcGetTimes
- RpcGetSessionCounters
- RpcGetSessionInformation
- RpcSwitchToServicesSession
- RpcRevertFromServicesSession
- RpcGetLoggedOnCount
4 methods:
- RpcWaitForSessionState
- RpcRegisterAsyncNotification
- RpcWaitAsyncNotification
- RpcUnRegisterAsyncNotification
0xa methods:
- RpcOpenEnum
- RpcCloseEnum
- RpcFilterByState
- RpcFilterByCallersName
- RpcEnumAddFilter
- RpcGetEnumResult
- RpcFilterBySessionType
- RpcFilterByLicenseType
- RpcGetSessionIds
- RpcGetEnumResultEx
lsasrv.dll RPC interfaces
ковырялось на vista sp2 32бита. Я знаю что это ацкий баян, но как ни странно там описаны далеко не все методы например lsarpc
Все перечисленные ниже интерфейсы висят на следующих endpoints внутри процесса lsass.exe:
3 methods:
3 methods:
1 method:
0x15 methods:
0x66 methods:
S_LSP_PRIVATE_DATA ACE1C026-8B3F-4711-8918-F345D17F5BFF version 1.0
2 methods:
Все перечисленные ниже интерфейсы висят на следующих endpoints внутри процесса lsass.exe:
- pipe\lsass
- pipe\protected_storage
- LPC port protected_storage
- LPC port audit
- LPC port samss lpc
- LPC port securityevent
3 methods:
- s_SSCryptProtectData
- s_SSCryptUnprotectData
- s_SSCryptUpdateProtectedState
3 methods:
- s_SSRecoverQueryStatus
- s_SSRecoverImportRecoveryKey
- s_SSRecoverPassword
1 method:
- DsRolerGetPrimaryDomainInformation
0x15 methods:
- EfsRpcOpenFileRaw
- EfsRpcReadFileRaw
- EfsRpcWriteFileRaw
- EfsRpcCloseRaw
- EfsRpcEncryptFileSrv
- EfsRpcDecryptFileSrv
- EfsRpcQueryUsersOnFile
- EfsRpcQueryRecoveryAgents
- EfsRpcRemoveUsersFromFile
- EfsRpcAddUsersToFile
- EfsRpcSetFileEncryptionKey
- EfsRpcNotSupported
- EfsRpcFileKeyInfo
- EfsRpcDuplicateEncryptionInfoFile
- EfsUsePinForEncryptedFiles
- EfsRpcAddUsersToFileEx
- EfsRpcFileKeyInfoEx
- EfsRpcGenerateEfsStream
- EfsRpcGetEncryptedFileMetadata
- EfsRpcSetEncryptedFileMetadata
- EfsRpcFlushEfsCache
0x66 methods:
- LsarClose
- LsarDelete
- LsarEnumeratePrivileges
- LsarQuerySecurityObject
- LsarSetSecurityObject
- LsarChangePassword
- LsarOpenPolicyRPC
- LsarQueryInformationPolicy
- LsarSetInformationPolicy
- LsarSetPolicyReplicationHandle
- LsarCreateAccount
- LsarEnumerateAccounts
- LsarCreateTrustedDomain
- LsarEnumerateTrustedDomains
- LsarLookupNames
- LsarLookupSids
- LsarCreateSecret
- LsarOpenAccount
- LsarEnumeratePrivilegesAccount
- LsarAddPrivilegesToAccount
- LsarRemovePrivilegesFromAccount
- LsarGetQuotasForAccount
- EfsSsoOnReconnect_WL
- LsarGetSystemAccessAccount
- LsarSetSystemAccessAccount
- LsarOpenTrustedDomain
- LsarQueryInfoTrustedDomain
- LsarSetInformationTrustedDomain
- LsarOpenSecret
- LsarSetSecret
- LsarQuerySecret
- LsarLookupPrivilegeValue
- LsarLookupPrivilegeName
- LsarLookupPrivilegeDisplayName
- LsarDeleteObject
- LsarEnumerateAccountsWithUserRight
- LsarEnumerateAccountRights
- LsarAddAccountRights
- LsarRemoveAccountRights
- LsarQueryTrustedDomainInfo
- LsarSetTrustedDomainInfo
- LsarDeleteTrustedDomain
- LsarStorePrivateData
- LsarRetrievePrivateData
- LsarOpenPolicy2
- LsarGetUserName
- LsarQueryInformationPolicy2
- LsarSetInformationPolicy2
- LsarQueryTrustedDomainInfoByName
- LsarSetTrustedDomainInfoByName
- LsarEnumerateTrustedDomainsEx
- LsarCreateTrustedDomainEx
- LsarSetPolicyReplicationHandle
- LsarQueryDomainInformationPolicy
- LsarSetDomainInformationPolicy
- LsarOpenTrustedDomainByName
- LsaITestCall
- LsarLookupSids2
- LsarLookupNames2
- LsarCreateTrustedDomainEx2
- CredrWrite
- CredrRead
- CredrEnumerate
- CredrWriteDomainCredentials
- CredrReadDomainCredentials
- CredrDelete
- CredrGetTargetInfo
- CredrProfileLoaded
- LsarLookupNames3
- CredrGetSessionTypes
- LsarRegisterAuditEvent
- LsarGenAuditEvent
- LsarUnregisterAuditEvent
- LsarQueryForestTrustInformation
- LsarSetForestTrustInformation
- CredrRename
- LsarLookupSids3
- LsarLookupNames4
- LsarOpenPolicySce
- LsarAdtRegisterSecurityEventSource
- LsarAdtUnregisterSecurityEventSource
- LsarAdtReportSecurityEvent
- CredrFindBestCredential
- LsarSetAuditPolicy
- LsarQueryAuditPolicy
- LsarEnumerateAuditPolicy
- LsarEnumerateAuditCategories
- LsarEnumerateAuditSubCategories
- LsarLookupAuditCategoryName
- LsarLookupAuditSubCategoryName
- LsarSetAuditSecurity
- LsarQueryAuditSecurity
- CredrReadByTokenHandle
- CredrRestoreCredentials
- CredrBackupCredentials
- LsarManageSidNameMapping
- CredrProfileUnloaded
- LsarAddLanmanConnection
- LsarCancelLanmanConnection
- LsarAddDfsConnection
- LsarCancelDfsConnection
- LsarIsDfsConnectionInUse
S_LSP_PRIVATE_DATA ACE1C026-8B3F-4711-8918-F345D17F5BFF version 1.0
2 methods:
- S_RPC_LspUpdatePrivateData
- S_RPC_LspReadPrivateData
пятница, 29 октября 2010 г.
lsasrv.dll exports
одна из самых загадочных .dll в виндах - документация на нее практически отсутствует
срывая покровы
а вот давеча например читая древнее третье издание Руссиновича и Соломона (книжка 2000 года издания) наткнулся на любопытное описание некой запчасти к IIS (версии 4.0 если мне склероз не изменяет) - драйвер spud.sys, жывущий в ядре и типа ускоряющий работу IIS. И что-то это мне сильно напомнило - например линуксовый TUX. И полез я немедленно в гугл выяснять кто из них был раньше
Список рассылки tux-list на redhate - TUX 1.0 released 30 сентября 2000 года. Пруфлинк
IIS 4.0 вышел в 1998ом году. Пруфлинк
Там впрочем про spud.sys ни слова не сказано, но вот есть например такая ссылка - там файл spud.sys датируется апрелем 1999 года
Чо-то как-то не верится мне что линуксоиды не видели его в действии и не слизали идею
Список рассылки tux-list на redhat
IIS 4.0 вышел в 1998ом году. Пруфлинк
Там впрочем про spud.sys ни слова не сказано, но вот есть например такая ссылка - там файл spud.sys датируется апрелем 1999 года
Чо-то как-то не верится мне что линуксоиды не видели его в действии и не слизали идею
четверг, 28 октября 2010 г.
среда, 27 октября 2010 г.
rpcdump bug
нашел давеча в rpcdump баг - утечку памяти и ресурсов
Граждане не вызывают RpcMgmtEpEltInqDone после RpcMgmtEpEltInqBegin как советует документация.
Так что при запуске в отдельном быстро дохнущем процессе оно незаметно, но если тот же код скопипастить в свой сервис, который дергает опрос rpc интерфейсов периодически, то через некоторое времяпочувствуете легкое недомогание будет заметна утечка памяти
Граждане не вызывают RpcMgmtEpEltInqDone после RpcMgmtEpEltInqBegin как советует документация.
Так что при запуске в отдельном быстро дохнущем процессе оно незаметно, но если тот же код скопипастить в свой сервис, который дергает опрос rpc интерфейсов периодически, то через некоторое время
понедельник, 25 октября 2010 г.
воскресенье, 24 октября 2010 г.
четверг, 21 октября 2010 г.
среда, 20 октября 2010 г.
Kaspersky - fake AV
The website (kasperskyusa.com) was simulating a Windows XP Explorer window and a popup window showing scanning process on the local computer and offering the user a fake antivirus program to installбгг
вторник, 19 октября 2010 г.
12 ways to terminate a process
наслаждайтесь
должен признаться к стыду своему что например 3х из описанных способов я не знал
должен признаться к стыду своему что например 3х из описанных способов я не знал
понедельник, 18 октября 2010 г.
ncalrpc interfaces under vista
а меж тем моя тулза для обнюхивания RPC интерфейсов практически работает и выдает под vista 32бита примерно следующее
Masterminds of Programming
читаю давеча subj - автор forthа Chuck Moore дичайше отжигает (и практически разжигает):
а вы говорите - dwordы в уме ксорить
Дедушка предсказывает конец света:
The operating system is another concept that is curious.Operating systems are dauntingly complex and totally unnecessary. It’s a brilliant thing that Bill Gates has done in selling the world on the notion of operating systems. It’s probably the greatest con game the world has ever seen.
An operating system does absolutely nothing for you. As long as you had something - a subroutine called disk driver,a subroutine called some kind of communication support, in the modern world, it doesn’t do anything else.In fact,Windows spends a lot of time with overlays and disk management all stuff like that which are irrelevant.You’ve got gigabyte disks; you’ve got megabyte RAMs. The world has changed in a way that renders the operating system unnecessary.Дедушка дико крут:
Some 20 years ago I wanted to develop a tool to design VLSI chips. I didn’t have a Forth for my new PC, so I thought I’d try a different approach: machine language. Not assembler language, but actually typing the hex instructions.Учитывая что интервью взято в 2007 году - дедушке в 87ом, когда он вколачивал тонны hex-codes было почти 50 лет между прочим !
I built up the code as I would in Forth, with many simple words that interacted hierarchically. It worked. I used it for 10 years. But it was difficult to maintain and document. Eventually I recoded it in Forth and it became smaller and simpler.
Дедушка предсказывает конец света:
Legacy software is an unappreciated but serious problem.It will only get worse -not only in banking but in aerospace and other technical industries. The problem is the millions of lines of code. Those could be recoded, say in thousands of lines of Forth. There’s no point in machine translation, which would only make the code bigger. But there’s no way that code could be validated. The cost and risk would be horrendous. Legacy code may be the downfall of our civilization.Дедушка проповедует:
Don’t anticipate.Don’t solve a problem that you think might occur in the future. Solve the problem you’ve got. Anticipating is very inefficient. You can anticipate 10 things happening, of which only one will, so you’ve wasted a lot of effort.
Team work - much overrated. The first job of a team is to partition the problem into relatively independent parts. Assign each part to an individual. The team leader is responsible for seeing that the parts come together.Авторам компиляторов тоже досталось:
Sometimes two people can work together. Talking about a problem can clarify it. But too much communication becomes an end in itself. Group thinking does not facilitate creativity. And when several people work together, inevitably one does the work
Compilers are probably the worst code ever written.They are written by someone who has never written a compiler before and will never do so again. Another failing of compiler writers is the compulsion to use every special character on the keyboard. Thus keyboards can never become smaller and simpler. And source code becomes impenetrableГорячий привет авторам APL, бгг
пятница, 15 октября 2010 г.
port & alpc port owners
Я тут уже писал как можно получить список локальных RPC портов.В этом способе нет абсолютно ничего примечательного - через NtOpenDirectoryObject открываем директорию L"\\RPC control" и читаем с помощью NtQueryDirectoryObject пока не вернется STATUS_NO_MORE_ENTRIES.
Но еще хотелось бы иметь PID процесса-владельца этих ресурсов. Чтение доки не особо помогло - например есть такаяофициальная функция nt api ZwQueryInformationPort, которая имеет ровно один более чем бессмысленный classinfo PORT_INFORMATION_CLASS
Пришлось как обычно кряхтя слазить с печи и делать все самому
Но еще хотелось бы иметь PID процесса-владельца этих ресурсов. Чтение доки не особо помогло - например есть такая
Пришлось как обычно кряхтя слазить с печи и делать все самому
четверг, 14 октября 2010 г.
IDA Pro 6.0
пробовал сегодня днем поработать с новой версией IDA - это ужас и тихий кошмар
Все доведенные до автоматизма последовательности нажатий кнопок - не работают больше.
Например чтобы выйти без сохранения базы обычно жмется Alt-X, 2 раз Tab, пробел и Enter. Хрен там - теперь эта знакомая комбинация приводит к вызову Help. Без мыши теперь вообще ничего сделать не получается (по крайней мере старыми проверенными временем комбинациями кнопок). Особенно раздражает поведение gui на нажатие ctrl + tab
Полез смотреть changelog - чо же там настолько ценного появилось чтобы терпеть эти мучения:
антиквариат рулит
Все доведенные до автоматизма последовательности нажатий кнопок - не работают больше.
Например чтобы выйти без сохранения базы обычно жмется Alt-X, 2 раз Tab, пробел и Enter. Хрен там - теперь эта знакомая комбинация приводит к вызову Help. Без мыши теперь вообще ничего сделать не получается (по крайней мере старыми проверенными временем комбинациями кнопок). Особенно раздражает поведение gui на нажатие ctrl + tab
Полез смотреть changelog - чо же там настолько ценного появилось чтобы терпеть эти мучения:
- новый GUI - см. выше
- новые камни - обычному пользователю такие сроду не встретятся (ну кроме arm может быть)
- новые форматы файлов - треш какой-то, давно пора сделать нормальный биндинг к binutils
- вот это дико понравилось -
FLIRT: added parser for Mach-O object files (pmacho)
Примерно часа три работы небось ушло на переточку otool из darwin cctools - Показ в отладчике stack frames, сломанный во всех версиях 5.x - так и не починили. Зато:
debugger: non-integer register values can be displayed as hints
Угарнейшее достижение, угу
вторник, 12 октября 2010 г.
кинохроники
а вот например любите ли вы смотреть всякие старые кинохроники ?
вот тащемта давеча смотрю я в пол-уха world war II in color: USA in war и дико выпадаю в осадок от следующей фразы
вот тащемта давеча смотрю я в пол-уха world war II in color: USA in war и дико выпадаю в осадок от следующей фразы
К концу 1942ого года в армию США было призвано более 3х миллионов человек. Армейские дантисты выдрали у них почти 15 миллионов гнилых зубовНесложные расчеты показывают что это просто ад и содомия какая-то
понедельник, 11 октября 2010 г.
wtf ?
вот например скопировал VBox image с vista 32бита с одной машины на другую - все настройки и версия VBox совершенно одинаковы
На одной машине все отлично работает, а на другой падает в bsod:
FAULTING_IP:
dfsc!DfscFsctrlGetNetUses+4d
8e151dcf f7402000004000 test dword ptr [eax+20h],400000h ; в eax конечно-же 0
ERROR_CODE: (NTSTATUS) 0xc0000005
STACK_TEXT:
80c2ec04 8e15340c 83b255e8 83eeb9a8 00000010 dfsc!DfscFsctrlGetNetUses+0x4d
80c2ec2c 818809c6 83b56c98 00000420 83b255e8 dfsc!DfscFileSystemControl+0xe8
80c2ec44 81a827a3 83c6ed10 83b255e8 83b25658 nt!IofCallDriver+0x63
80c2ec64 81a82f48 83b56c98 83c6ed10 000ea501 nt!IopSynchronousServiceTail+0x1d9
80c2ed00 81a81c2e 83b56c98 83b255e8 00000000 nt!IopXxxControlFile+0x6b7
80c2ed34 81886c7a 00000268 00000000 00000000 nt!NtFsControlFile+0x2a
80c2ed34 77c85e74 00000268 00000000 00000000 nt!KiFastCallEntry+0x12a
03c4fc28 77c84980 72992547 00000268 00000000 ntdll!KiFastSystemCallRet
03c4fc2c 72992547 00000268 00000000 00000000 ntdll!NtFsControlFile+0xc
03c4fc7c 729924a6 00000268 03c4fca8 03c4fca4 ntlanman!CDfsEnumConnectedNode::DfspGetNetUseEntryByIndex+0x65
03c4fc9c 72992414 00000000 00000000 00000268 ntlanman!CDfsEnumConnectedNode::CDfsEnumConnectedNode+0xa4
03c4fcbc 72992364 00000001 00000001 00000000 ntlanman!USE_ENUMNODE::USE_ENUMNODE+0x44
03c4fce4 75c93077 00000001 00000001 00000000 ntlanman!NPOpenEnum+0x2ed
03c4fd28 75c931cb 00000001 00000001 00000000 MPR!MprOpenEnumConnect+0x164
03c4fdac 76aeaba2 00000001 00000001 00000000 MPR!WNetOpenEnumW+0x17a
03c4fde0 76aeab28 00000001 00000001 00000000 SHELL32!CMountPoint::_InitNetDrivesHelper+0x29
03c4fe00 76ae8439 00000000 76e572b8 00000000 SHELL32!CMountPoint::_InitNetDrives+0x58
03c4fe1c 76b784a1 00000000 00000000 00000000 SHELL32!CMountPoint::_IsNetDriveLazyLoadNetDLLs+0x3c
03c4fe48 76b77a8c 00000000 00000000 00000000 SHELL32!CMountPoint::_GetMountPointForDriveLetter+0x1d
03c4fe5c 76b5be34 00000000 00000000 00000000 SHELL32!CMountPoint::GetMountPoint+0x2b
03c4fe70 77bdc2c9 00000000 00000000 00000000 SHELL32!CheckDiskSpaceThreadProc+0xd
WARNING: Stack unwind information not available. Following frames may be wrong.
03c4fef4 7764d0e9 0185f84c 03c4ff40 77c619bb SHLWAPI!Ordinal197+0xe1
03c4ff00 77c619bb 0185f84c 740a2be4 00000000 kernel32!BaseThreadInitThunk+0xe
03c4ff40 77c6198e 77bdc224 0185f84c 00000000 ntdll!__RtlUserThreadStart+0x23
03c4ff58 00000000 77bdc224 0185f84c 00000000 ntdll!_RtlUserThreadStart+0x1b
Никто не сталкивался с такою бедою ?
На одной машине все отлично работает, а на другой падает в bsod:
FAULTING_IP:
dfsc!DfscFsctrlGetNetUses+4d
8e151dcf f7402000004000 test dword ptr [eax+20h],400000h ; в eax конечно-же 0
ERROR_CODE: (NTSTATUS) 0xc0000005
STACK_TEXT:
80c2ec04 8e15340c 83b255e8 83eeb9a8 00000010 dfsc!DfscFsctrlGetNetUses+0x4d
80c2ec2c 818809c6 83b56c98 00000420 83b255e8 dfsc!DfscFileSystemControl+0xe8
80c2ec44 81a827a3 83c6ed10 83b255e8 83b25658 nt!IofCallDriver+0x63
80c2ec64 81a82f48 83b56c98 83c6ed10 000ea501 nt!IopSynchronousServiceTail+0x1d9
80c2ed00 81a81c2e 83b56c98 83b255e8 00000000 nt!IopXxxControlFile+0x6b7
80c2ed34 81886c7a 00000268 00000000 00000000 nt!NtFsControlFile+0x2a
80c2ed34 77c85e74 00000268 00000000 00000000 nt!KiFastCallEntry+0x12a
03c4fc28 77c84980 72992547 00000268 00000000 ntdll!KiFastSystemCallRet
03c4fc2c 72992547 00000268 00000000 00000000 ntdll!NtFsControlFile+0xc
03c4fc7c 729924a6 00000268 03c4fca8 03c4fca4 ntlanman!CDfsEnumConnectedNode::DfspGetNetUseEntryByIndex+0x65
03c4fc9c 72992414 00000000 00000000 00000268 ntlanman!CDfsEnumConnectedNode::CDfsEnumConnectedNode+0xa4
03c4fcbc 72992364 00000001 00000001 00000000 ntlanman!USE_ENUMNODE::USE_ENUMNODE+0x44
03c4fce4 75c93077 00000001 00000001 00000000 ntlanman!NPOpenEnum+0x2ed
03c4fd28 75c931cb 00000001 00000001 00000000 MPR!MprOpenEnumConnect+0x164
03c4fdac 76aeaba2 00000001 00000001 00000000 MPR!WNetOpenEnumW+0x17a
03c4fde0 76aeab28 00000001 00000001 00000000 SHELL32!CMountPoint::_InitNetDrivesHelper+0x29
03c4fe00 76ae8439 00000000 76e572b8 00000000 SHELL32!CMountPoint::_InitNetDrives+0x58
03c4fe1c 76b784a1 00000000 00000000 00000000 SHELL32!CMountPoint::_IsNetDriveLazyLoadNetDLLs+0x3c
03c4fe48 76b77a8c 00000000 00000000 00000000 SHELL32!CMountPoint::_GetMountPointForDriveLetter+0x1d
03c4fe5c 76b5be34 00000000 00000000 00000000 SHELL32!CMountPoint::GetMountPoint+0x2b
03c4fe70 77bdc2c9 00000000 00000000 00000000 SHELL32!CheckDiskSpaceThreadProc+0xd
WARNING: Stack unwind information not available. Following frames may be wrong.
03c4fef4 7764d0e9 0185f84c 03c4ff40 77c619bb SHLWAPI!Ordinal197+0xe1
03c4ff00 77c619bb 0185f84c 740a2be4 00000000 kernel32!BaseThreadInitThunk+0xe
03c4ff40 77c6198e 77bdc224 0185f84c 00000000 ntdll!__RtlUserThreadStart+0x23
03c4ff58 00000000 77bdc224 0185f84c 00000000 ntdll!_RtlUserThreadStart+0x1b
Никто не сталкивался с такою бедою ?
воскресенье, 10 октября 2010 г.
суббота, 9 октября 2010 г.
oracle собирается купить amd
пятница, 8 октября 2010 г.
open source
золотые слова: фриварь культивирует тотальную безответственность разработчика перед потребителем!
Именно так - и еще их клинические навязчивые идеи про эффект тысячи глаз и прочие биологические уродства
Особенно показателен например топик на lor про выход IDA Pro 6.0 - комменты там шедевральны, я ржал как подорванный:
Именно так - и еще их клинические навязчивые идеи про эффект тысячи глаз и прочие биологические уродства
Особенно показателен например топик на lor про выход IDA Pro 6.0 - комменты там шедевральны, я ржал как подорванный:
для отладки есть GDBбгг
rpcss under windows 7
А вот например список rpc интерфейсов, которые регистрирует rpcss.dll под windows7:
Update: под windows7 epmp, localepmp и DbgIdl живут в модуле RpcEpMap.dll
- IActivationKernel {9B8699AE-0E44-47B1-8E7F-86A461D7ECDC}
- ILocalObjectExporter {E60C73E6-88F9-11CF-9AF1-0020AF6E72F4}
- IOXIDResolver {99FCFEC4-5260-101B-BBCB-00AA0021347A}
- ISCM {412F241E-C12A-11CE-ABFF-0020AF6E7A17}
- ISCMActivator {00000136-0000-0000-C000-000000000046}
- IMachineActivatorControl {C6F3EE72-CE7E-11D1-B71E-00C04FC3111A}
- IRemoteActivation {4D9F4AB8-7D1C-11CF-861E-0020AF6E7C57}
- ISystemActivator {000001A0-0000-0000-C000-000000000046}
- IROT {B9E79E60-3D52-11CE-AAA1-00006901293F}
Update: под windows7 epmp, localepmp и DbgIdl живут в модуле RpcEpMap.dll
windbg & rpc
наткнулся тут давеча на очередной высер пыщъха - якобы windbg можно использовать как RPC monitor. Проверить изложенное проще простого:
!load rpcexts
!getendpointinfo
Интересно он вообще проверяет хоть что-нть в своих обширных простынях, описывающих поток нездорового сознания ? Никогда не пытайтесь использовать русскоязычное мычание странных персонажей - всегда нужно сверяться с более правильными источниками
!load rpcexts
!getendpointinfo
Searching for endpoint info ...!listcalls
OpenRPCDebugEndpointInfoEnumeration failed: 1734
RPC_SERVER at 0x15c980Более того - ровно то же самое windbg выдает на vista checked build.
&RpcAddressDictionary(RPC_SIMPLE_DICT) - 0x15c980
Unable to get field cDictSize of type SIMPLE_DICT at 0x15c980
Интересно он вообще проверяет хоть что-нть в своих обширных простынях, описывающих поток нездорового сознания ? Никогда не пытайтесь использовать русскоязычное мычание странных персонажей - всегда нужно сверяться с более правильными источниками
понедельник, 4 октября 2010 г.
RPC servers hijack
Внезапно придумал тут предельно простой и наверняка дико баянистый способ зная UUID RPC интерфейса найти его DispatchTable с адресами функций и сделать с ними всякое.
Для начала давайте внимательно посмотрим на прототип функции RpcServerRegisterIf2
Для начала давайте внимательно посмотрим на прототип функции RpcServerRegisterIf2
ept_lookup
я тут все выходные бухал и гадил в комментах ломал голову над одним простым вопросом - вот например у нас есть GUID RPC интерфейса и мы хотим подключиться по сети к некоей машине, на которой как мы считаем есть этот RPC сервер. Через какой именно механизм мы сможем найти порт/транспорт, куда нужно дико ломиться например ?
Посему выходные былибезнадежно испорчены проведены в отладчике и дизассемблере, зато теперь я в общих чертах знаю ответ но вам не скажу - через загадочный сервис rpcss, который сама MS в целях конспирации называет почему-то "Distributed COM Services" (так в version info rpcss.dll написано, ага)
Итого механизм примерно такой - rpcss.dll слушает named pipe с именем epmapper (рекомендую погуглить - результаты феерические), на котором висит интерфейс Endpoint Mapper
Дальше дело техники и опыта, по крайней мере теперь известно в каком модуле и примерно куда можно ставить грязные хуки и все такое. С другой стороны эту IFObjList извлечь стат. анализом весьма непросто будет
Насколько я понял в той же rpcss.dll живет и другая полезная штука - Running Object Table
Дичайше поражает в механизме RPC практически полное отсутствие документации - например интерфейс Endpoint Mapper якобы описан в некоей книге DCE 1.1: Remote Procedure Call, которую якобы можно скачать нахаляву, но при этом требуют номер телефона и вообще слишком много персональных данных.
Руссинович в своем 5ом издании (в 3ем впрочем тоже) посвятил RPC целых 5 (!) страниц и ровно 2 картинки.А власти скрывают !
Самое угарное что при регистрации этого интерфейса в rpcss перед вызовом стандартной RpcServerRegisterIf2 вызывается некая традиционно недокументированная функция I_RpcSystemFunction001, бгг
Посему выходные были
Итого механизм примерно такой - rpcss.dll слушает named pipe с именем epmapper (рекомендую погуглить - результаты феерические), на котором висит интерфейс Endpoint Mapper
Дальше дело техники и опыта, по крайней мере теперь известно в каком модуле и примерно куда можно ставить грязные хуки и все такое. С другой стороны эту IFObjList извлечь стат. анализом весьма непросто будет
Насколько я понял в той же rpcss.dll живет и другая полезная штука - Running Object Table
Дичайше поражает в механизме RPC практически полное отсутствие документации - например интерфейс Endpoint Mapper якобы описан в некоей книге DCE 1.1: Remote Procedure Call, которую якобы можно скачать нахаляву, но при этом требуют номер телефона и вообще слишком много персональных данных.
Руссинович в своем 5ом издании (в 3ем впрочем тоже) посвятил RPC целых 5 (!) страниц и ровно 2 картинки.
Самое угарное что при регистрации этого интерфейса в rpcss перед вызовом стандартной RpcServerRegisterIf2 вызывается некая традиционно недокументированная функция I_RpcSystemFunction001, бгг
вторник, 28 сентября 2010 г.
msrpc.sys exports
А вот например начиная с vista rpc еще и в ядре живет в драйвере msrpc.sys
Список драйверов на чистой windows 7, имеющих в своем импорте ссылки на msrpc:
Список драйверов на чистой windows 7, имеющих в своем импорте ссылки на msrpc:
- afd.sys
- appid.sys
- fwpkclnt.sys
- ksecdd.sys
- netio.sys
- ntfs.sys
- srvnet.sys
- tcpip.sys
- tunnel.sys
- fwpkclnt.sys
- netio.sys
- tcpip.sys
понедельник, 27 сентября 2010 г.
воскресенье, 26 сентября 2010 г.
и еще про stuxnet
Первую иранскую АЭС заразил компьютерный вирус
Чисто риторический вопрос - что случится раньше - ад замерзнет или Спасатели Вселенной™ хоть раз признаются что они дико обосрались ?
"Лаборатории Касперского" - лидер потребительского рынка в России, странах СНГ и Балтии. За прошедший год "ЛК" стала безусловным лидером в некоторых странах: Иран, ЮАР, Ливия, где она переместилась по консьюмерским продажам на первое местоотсюдова - между прочим датировано 1 сентября 2010.
Чисто риторический вопрос - что случится раньше - ад замерзнет или Спасатели Вселенной™ хоть раз признаются что они дико обосрались ?
RPC enumeration
Поскольку в ответ на критическую заметку про ловлю stuxnet мне кинули предъяву в духе "а ты кто такой и сам ловить RPC интерфейсы не умеешь", то пришлось озаботиться данным вопросом
Гугл сказал мне что технология для rpc interfaces enumeration уже 9 лет как известна - rpctools
Используются при этом три вещи:
Процесс можно автоматизировать даже, я думаю - написать к тому же perlу xs модуль для выгребания имен портов из \RPC Control (через ф-ции NtOpenDirectoryObject & NtQueryDirectoryObject) и вызывать ifids.exe для всех из них. Можно также запросить в каких процессах эти порты открыты (Process Explorer так умеет делать например)
Возвращаясь к исходному вопросу - какой онтевирус умеет проверять зарегистрированные в системе RPC интерфейсы ?
Гугл сказал мне что технология для rpc interfaces enumeration уже 9 лет как известна - rpctools
Используются при этом три вещи:
- список зарегистрированных в системе rpc ports, который можно посмотреть например в WinObj в директории \RPC Control
- совершенно официальная функция RpcMgmtInqIfIds из RPCRT4.dll
- пара не менее официальных функций RpcMgmtEpEltInqBegin & RpcMgmtEpEltInqNext
Процесс можно автоматизировать даже, я думаю - написать к тому же perlу xs модуль для выгребания имен портов из \RPC Control (через ф-ции NtOpenDirectoryObject & NtQueryDirectoryObject) и вызывать ifids.exe для всех из них. Можно также запросить в каких процессах эти порты открыты (Process Explorer так умеет делать например)
Возвращаясь к исходному вопросу - какой онтевирус умеет проверять зарегистрированные в системе RPC интерфейсы ?
суббота, 25 сентября 2010 г.
stuxnet
тут производители т.н. онтевирусов с выпученными глазами закатили истерику про stuxnet - типа караул, цыбервойна покупайте наших слонов и прочий обычный в подобных случаях маркетинговый бред
Тем временем по прочтении довольно подробного описания можно сделать следующий вывод - несмотря на кучу 0-days и векторов распространения палится присутствие этого поделия крайне примитивными дедовскими методами десятилетней давности- достаточно совершенно банально просканить содержимое памяти всех процессов и сравнить с содержимым файлов с диска (и про древние трюки с угоном IAT & EAT еще не забыть) + посмотреть наличие нотификаторов в kernel mode - например в IopFsNotifyChangeQueueHead & PspCreateProcessNotifyRoutine
А еще было бы недурно посмотреть какие RPC интерфейсы зарегистрированы в системе и в каких процессах, но по моему ни один av такое не умеет. Да чо там, я тоже не умею
Выводы -непечатно матом делайте сами
Тем временем по прочтении довольно подробного описания можно сделать следующий вывод - несмотря на кучу 0-days и векторов распространения палится присутствие этого поделия крайне примитивными дедовскими методами десятилетней давности- достаточно совершенно банально просканить содержимое памяти всех процессов и сравнить с содержимым файлов с диска (и про древние трюки с угоном IAT & EAT еще не забыть) + посмотреть наличие нотификаторов в kernel mode - например в IopFsNotifyChangeQueueHead & PspCreateProcessNotifyRoutine
А еще было бы недурно посмотреть какие RPC интерфейсы зарегистрированы в системе и в каких процессах, но по моему ни один av такое не умеет. Да чо там, я тоже не умею
Выводы -
среда, 22 сентября 2010 г.
dlopen notifiy
а вот скожите мне - правда ли в linux никак не можно поставить штатными средствами нотификатор на событие загрузки/выгрузки программой модуля ? Я тут покурил давеча в стотыщпервый раз сорцы ld-linux.so - ад и содомия, риальне, причем за последние десять лет все стало еще страшнее пользоваться этим невозможно категорически
И эти люди еще смеют поливать всячески самую лучшую в мире операционную систему !
И эти люди еще смеют поливать всячески самую лучшую в мире операционную систему !
суббота, 18 сентября 2010 г.
race condition attacks
пришлось мне тут на старости лет изучать создание оголтело многопоточных программ и после изнуряющего чтения разнообразных книжек возник у меня крайне глупый вопрос - а существуют в природе какие-нть инструменты (полагаю типа fuzzers, только перебирающие комбинации из временных задержек), которые умели бы делать вид находить subj ?
Вот например частный случай таких атак - double fetching
Гугл также говорит что бывают всякие разные случаи и их чуть более чем дофига, что характерно
Кто-нть уже автоматизировал способы нахождения такого рода атак ? Может даже книжка какая есть с описаниями и простынями формул чтобы стать дико умными кидать понты например ?
Вот например частный случай таких атак - double fetching
Гугл также говорит что бывают всякие разные случаи и их чуть более чем дофига, что характерно
Кто-нть уже автоматизировал способы нахождения такого рода атак ? Может даже книжка какая есть с описаниями и простынями формул чтобы стать дико умным
среда, 15 сентября 2010 г.
aslr
дико угарная технология - с одной стороны мы помещаем ntdll.dll в память по псевдослучайным адресам (на самом деле их 256 штук всего, так что анекдот про миллиард кетайцев, вводящих пароль на сервере пентагона - это грустная реальность), а с другой
- адрес ntdll.dll одинаков во всех процессах. Ибо ядро при старте зачитывает некоторое количество экспортируемых из ntdll функций и периодически вызывает их просто по указателю
- если например в результате 256ой попытки эксплойт наконец получил управление - то можно получить TEB, из него PEB и дальше пройтись по списку PEB.Ldr.InLoadOrderModuleList например - там все указатели лежат в открытом виде (даже RtlEncodePointer не используется, в чем может убедиться любой желающий, продизассемблировав например функцию ntdll LdrpUpdateOrderLinks). Код уместится байт в 60 примерно
воскресенье, 12 сентября 2010 г.
ndis!_NDIS_IF_PROVIDER_BLOCK
бонус-трек к жалким описаниям структур ndis
Начиная с висты в ndis появилась пара функций NdisIfRegisterProvider и NdisIfDeregisterProvider
WinDbg традиционно не умеет показывать какие провайдеры были зарегистрированы в системе, так что запускаем дизассемблер например
Начиная с висты в ndis появилась пара функций NdisIfRegisterProvider и NdisIfDeregisterProvider
WinDbg традиционно не умеет показывать какие провайдеры были зарегистрированы в системе, так что запускаем дизассемблер например
суббота, 11 сентября 2010 г.
многопоточность в linux
поимел тут следующую содержательную беседу с весьма мною уважаемым человеком, который уже лет 12 (если не больше) занимается server-side программированием под всякие разные unix:
Надо много подумать
> на серверсайде тредов вообще быть не должнообоснуй. я серьезно спрашиваю
> треды - легкие процессы, живущие в одном процессе в его хипе и стеке, за ними ос вообще не следит как за процессами по таблице процессов. отлаживать такое говно невозможно, как и наращивать.за счет этого как раз и достигается профит - они юзают одну и ту же память
> промышленное использование тредов на серверсайде есть только у:
mysql, какое это говно - знают все.
java апликухи типа томкатов или веб сфер, но там жаве везет, т.к. по протоколу http 1.1 рано или поздно коннект отвалится и тред уничтожается, иначе падение неминуемо.
треды - срество для дебилов, которые не могут простой манагер памяти сделать в шареной памяти. взять ipc реализации серверсайда - это оракл, постгрес, информикс и т.д. и т.п. - абсолютно стабильные серверные решения.
вечером опишу почему треды на серверсайде противопоказаны, опишу почему те, кто их юзает на серверсайде - идиоты ленивые, которые привыкли с кучей работать через нью делит, а на менеджер памяти простенький мозгов не хватает.
треды с мьютексами на то и легкие процессы, чтобы запускаться на пару сотых секунды и пропадать. у меня к примеру в серверном фреймворке вообще нет
операций new он же alloc, т.к. при старте отхавал гигов десять шареной памяти,
и конкурентный доступ через семафоры. на весь фреймворк хватает одного массива семафоров с количеством в нем 9 штук. и всех делов
вообще все нормальные серверные решения сводятся к очень ограниченному объему:
надо быстро сделать говна кусок и веб - apache + mod_php,
так пхпистов развелось за 10 лет дох*я и готовы работать за еду.
надо что-то мощное и на нагрузках - c++ + libs + ipcs.
надо базы данных и есть бабло - оракл, лучшая платная реляционная дб.
бабла нету - постгрес, лучшая бесплатная.
все остальные жавы, питоны, отмиращий перл, руби, и прочие байтмашины
и говнотехнологии типа xml с еб*нутыми xslt и расширениями - оцтой и говно.
95% серверного инструментария и технологий можно смело на помойку унести.Дальше были простыни цыфр и мата
они созданы для раздувания интернет и вообще айти пузыря.
Надо много подумать
NDIS object types
смотрел я давеча примерчик network\ndis\filter из wdk7, и потратил довольно большое количество времени на отыскание всяких констант вроде NDIS_OBJECT_TYPE_DEVICE_OBJECT_ATTRIBUTES
Выяснилось что их определения лежат в файле inc\api\ntddndis.h, так что перепощу их здесь (мало ли - может у кого wdk нету например)
Выяснилось что их определения лежат в файле inc\api\ntddndis.h, так что перепощу их здесь (мало ли - может у кого wdk нету например)
пятница, 10 сентября 2010 г.
gcc atomic built-ins
с немалым интересом обнаружил давеча, что библиотека pthreads не имеет поддержки атомарных операций 21век на дворе есличо
гугл сказал что они имеются в наличии в gcc - и таки не обманул. Опыты показали что gcc настолько умен, что если результат функции не используется, то например вызов
Их правда не так чтобы особо много - с семейством Interlocked функций под windows не сравнить, но работает, дадаже удивительно
Казалось бы все хорошо, но вот тут сказано, что появилась эта возможность начиная с gcc версии 4.4.0, который был выпущен аж в апреле 2009 года ! Я не буду злорадствовать как линуксоиды писали свои гениальные многопоточные программы до 2009 года, но это просто - ...
И вот все у них так - дегенеративная совершенно os, отставшая от windows лет этак на 15
гугл сказал что они имеются в наличии в gcc - и таки не обманул. Опыты показали что gcc настолько умен, что если результат функции не используется, то например вызов
__sync_fetch_and_add(&some_var, 1)
и вовсе превращается в lock inc [some_var]
Их правда не так чтобы особо много - с семейством Interlocked функций под windows не сравнить, но работает, да
Казалось бы все хорошо, но вот тут сказано, что появилась эта возможность начиная с gcc версии 4.4.0, который был выпущен аж в апреле 2009 года ! Я не буду злорадствовать как линуксоиды писали свои гениальные многопоточные программы до 2009 года, но это просто - ...
И вот все у них так - дегенеративная совершенно os, отставшая от windows лет этак на 15
четверг, 9 сентября 2010 г.
ntdll official hooks
Не так давно я выкладывал ссылки на catalog of NTDLL kernel mode to user mode callbacks
В ntdll.dll есть и некоторое количество экспортируемых функций, позволяющих user mode программам ставить всякие разные хуки и callbacks. И некоторые из этих функций даже документированы !
Соотв-но я сугубо для себя запишу тут некоторые из них. Память алкоголика - вещь загадочная, так что список наверняка не полон, а большую часть я просто не знаю например
В ntdll.dll есть и некоторое количество экспортируемых функций, позволяющих user mode программам ставить всякие разные хуки и callbacks. И некоторые из этих функций даже документированы !
Соотв-но я сугубо для себя запишу тут некоторые из них. Память алкоголика - вещь загадочная, так что список наверняка не полон, а большую часть я просто не знаю например