суббота, 9 октября 2010 г.

oracle собирается купить amd

пруфлинк
надо было интелу вместо покупки mcafee (вместе с бездарным графоманом пыщхом) тоже какую-нть базу данных прикупить, бгг

пятница, 8 октября 2010 г.

open source

золотые слова: фриварь культивирует тотальную безответственность разработчика перед потребителем!
Именно так - и еще их клинические навязчивые идеи про эффект тысячи глаз и прочие биологические уродства
Особенно показателен например топик на lor про выход IDA Pro 6.0 - комменты там шедевральны, я ржал как подорванный:
для отладки есть GDB
бгг

rpcss under windows 7

А вот например список rpc интерфейсов, которые регистрирует rpcss.dll под windows7:
  • 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}
А epmp {e1af8308-5d1f-11c9-91a4-08002b14a0fa} и localepmp {0b0a6584-9e0f-11cf-a3cf-00805f68cb1b} там и нету. Начинаю испытывать легкое беспокойство

Update: под windows7 epmp, localepmp и DbgIdl живут в модуле RpcEpMap.dll

windbg & rpc

наткнулся тут давеча на очередной высер пыщъха - якобы windbg можно использовать как RPC monitor. Проверить изложенное проще простого:
!load rpcexts
!getendpointinfo
Searching for endpoint info ...
OpenRPCDebugEndpointInfoEnumeration failed: 1734
!listcalls
RPC_SERVER at 0x15c980
&RpcAddressDictionary(RPC_SIMPLE_DICT) - 0x15c980
Unable to get field cDictSize of type SIMPLE_DICT at 0x15c980
Более того - ровно то же самое windbg выдает на vista checked build.
Интересно он вообще проверяет хоть что-нть в своих обширных простынях, описывающих поток нездорового сознания ? Никогда не пытайтесь использовать русскоязычное мычание странных персонажей - всегда нужно сверяться с более правильными источниками

понедельник, 4 октября 2010 г.

hal.dll exports

xp sp2 & xp sp3 и vista sp1 & vista sp2 совершенно идентичны

RPC servers hijack

Внезапно придумал тут предельно простой и наверняка дико баянистый способ зная UUID RPC интерфейса найти его DispatchTable с адресами функций и сделать с ними всякое.
Для начала давайте внимательно посмотрим на прототип функции 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, бгг