понедельник, 26 сентября 2011 г.

w8 NTDLL kernel mode to user mode callbacks

а вот например я уже постил всякое на эту тему
в w8 таких ф-ций теперь 13 штук:
  • LdrInitializeThunk
  • RtlUserThreadStart
  • KiUserExceptionDispatcher
  • KiUserApcDispatcher
  • KiUserCallbackDispatcher
  • LdrHotPatchRoutine
  • KiRaiseUserExceptionDispatcher
  • ExpInterlockedPopEntrySListEnd
  • ExpInterlockedPopEntrySListFault
  • ExpInterlockedPopEntrySListResume
  • EtwpNotificationThread
  • RtlpWnfNotificationThread
  • LdrSystemDllInitBlock - не ф-ция
Соотв-но в 64битной версии w8 их уже 19 штук:
  • LdrInitializeThunk
  • RtlUserThreadStart
  • KiUserExceptionDispatcher
  • KiUserApcDispatcher
  • KiUserCallbackDispatcher
  • LdrHotPatchRoutine
  • KiRaiseUserExceptionDispatcher
  • RtlpExecuteUmsThread
  • RtlpUmsThreadYield
  • RtlpUmsExecuteYieldThreadEnd
  • ExpInterlockedPopEntrySListEnd
  • ExpInterlockedPopEntrySListFault
  • ExpInterlockedPopEntrySListResume
  • ExpInterlockedPopEntrySListEnd16
  • ExpInterlockedPopEntrySListFault16
  • ExpInterlockedPopEntrySListResume16
  • EtwpNotificationThread
  • RtlpWnfNotificationThread
  • LdrSystemDllInitBlock - не ф-ция

VfMandatoryThunks

продолжая тему
таблица одинакова в vista, w7 & w8

w8 VfXdvThunks

а вот например в ядре w8 driver verifier состоит нынче аж из четырех таблиц:
  1. VfXdvThunks
  2. VfPoolThunks
  3. VfMandatoryThunks
  4. VfRegularThunks
Соотв-но VfXdvThunks содержит в себе следующие ф-ции (303 штуки !):

w8 shim handlers

по сравнению с windows 7 добавилось еще несколько ф-ций:
  • SE_InitializeEngine
  • SE_ShimDllLoaded
  • SE_InstallBeforeInit
  • SE_InstallAfterInit
  • SE_DllLoaded
  • SE_DllUnloaded
  • SE_LdrEntryRemoved
  • SE_ProcessDying
  • SE_LdrResolveDllName
  • SE_GetProcAddressForCaller

пятница, 23 сентября 2011 г.

wincheck rc4 for windows 8

Скачать
32bit only, патамушта я так и не понял как в 64битной версии разрешить загрузку неподписанных драйверов
Изменений не особо много:
  • добавлен манифест, требующий запуска от имени администратора
  • добавлена опция -npo для показа владельцев named pipes RPC интерфейсов
  • и самое главное - оно вполне устойчиво работает на windows 8 developer preview
Под windows 8 не работают следующие вещи (из тех что я знаю):
  • опция -ndis. Там довольно много нужно дописывать - я лучше дождусь хотя бы beta версию w8
  • не показываются WMI regentries. Аналогично я подожду более другую версию w8
  • не показываются shim handlers
  • пара RPC интерфейсов из taskhost.exe осталась неопознанной
  • и еще наверняка over 9000 багов, бгг

четверг, 22 сентября 2011 г.

"bugreport"

вот например нам пишут:
Закачал архив на рабочий стол, затем по привычке отправил в QuickUnpacker на динамическую распаковку. На загрузке какого то дройвера все повисло нахрен, экран пару раз выкл-вкл и Outpost выдал какое то предупреждение. Я ему сказал: ну завали его, бггг. После чего произошло вуаля с выплывом окна о сбое в крит процессе. по истечении времени ребута не произошло как и всего остального. Вообще пошли адовы галюны. Пришлось ребутиться на горячую. Все ярлыки на раб столе перепутались. Я недоволен.
 Напомнило бессмертное
П: Что-то в кабине разболтано.
Р: Что-то в кабине подтянуто.

вторник, 20 сентября 2011 г.

DeviceSetupManager.dll RPC Interfaces

Device Setup Manager. Судя по названию - крайне перспективный модуль, бгг
420BCA2F-A0E8-45F4-A8FF-906745E8876C version 1.0
3 methods:
  • DsmRpcOpenDevice
  • DsmRpcCloseDevice
  • DsmRpcGetDeviceNotification
F19C345C-5E00-4CB4-B1D1-EFF9EA31B166 version 1.0
8 methods:
  • DsmRpcInstallDevice
  • DsmRpcUninstallDevice
  • DsmRpcRemoveDevice
  • DsmRpcForceRefreshDevice
  • DsmRpcRunJob
  • DsmRpcScanForAutoConfigure
  • DsmRpcGetServiceInfo
  • DsmRpcQueueJobTest
3D27921D-9A28-483F-A749-A48FDE7D0C5F version 1.0
6 methods:
  • DsmRpcRefreshAllDevices
  • DsmRpcRefreshDevice
  • DsmRpcSetInstallBehavior
  • DsmRpcGetInstallBehavior
  • DsmRpcNonAdminRemoveDevice
  • DsmRpcWaitServiceReady
Имеют место быть на всяких разных endpoints, например:
  • \\PIPE\atsvc
  • \\PIPE\browser
  • \\PIPE\srvsvc
  • ALPC port DeviceSetupManager
  • ALPC port IUserProfile2
  • и так далее

bisrv.dll RPC Interfaces

Broker Infrastructure Service
2D98A740-581D-41B9-AA0D-A88B9D5CE938 version 1.0
14 methods:
  • RBiSrvAssociateActivationProxy
  • RBiSrvAssociateApplicationExtensionClass
  • RBiSrvCreateEvent
  • RBiSrvDeleteEvent
  • RBiSrvDisassociateWorkItem
  • RBiSrvEnumerateBrokeredEvents
  • RBiSrvEnumerateUserSessions
  • RBiSrvEnumerateWorkItems
  • RBiSrvQueryBrokeredEvent
  • RBiSrvQuerySystemStateBroadcastChannels
  • RBiSrvQueryWorkItem
  • RBiSrvQueryUserSession
  • RBiSrvSignalEvent
  • RBiSrvSignalMultipleEvents
8BFC3BE1-6DEF-4E2D-AF74-7C47CD0ADE4A version 1.0
4 methods:
  • RBiSrvChangeApplicationState
  • RBiSrvNotifyNewSession
  • RBiSrvNotifyEndSession
  • RBiSrvUpdateLockScreenApplications
1B37CA91-76B1-4F5E-A3C7-2ABFC61F2BB0 version 1.0
9 methods:
  • RBiRtSrvAssociateWorkItem
  • RBiRtSrvCreateEvent
  • RBiRtSrvCreateStatusStateName
  • RBiRtSrvDeleteEvent
  • RBiRtSrvDisassociateWorkItem
  • RBiRtSrvEnumerateWorkItems
  • RBiRtSrvGetWorkItemProperties
  • RBiRtSrvRegisterWorkItem
  • RBiRtSrvSignalEvent
C605F9FB-F0A3-4E2A-A073-73560F8D9E3E version 1.0
1 method:
  • RBiSrvSignalEvent

понедельник, 19 сентября 2011 г.

w8 64bit TEB & PEB

dt _TEB

w8 64bit _KTHREAD & _ETHREAD

dt _KTHREAD

w8 64bit _KPROCESS & _EPROCESS

dt _KPROCESS

w8 64bit _KINTERRUPT

Вторая часть марлезонского балета - теперь банановый 64 бита
dt _KINTERRUPT

w8 _KINTERRUPT

dt _KINTERRUPT

w8 _KPROCESS & _EPROCESS

dt _KPROCESS

суббота, 17 сентября 2011 г.

я так и думал

многие описания таких экспериментов в учебниках неполны и неточны. Если вы попробуете поставить иной опыт «по книжке», то у вас ничего не получится. Судя по всему, авторы учебников переписывали описания из других учебников, и опущенные или неверные детали кочуют из книжки в книжки столетиями. Поколения лаборантов передают друг другу изустно, как фольклор, «секреты»: вот в этом опыте надо раствор смешать заранее и поставить в шкафчик на сутки, а вот в этом, наоборот, надо смешивать перед самой демонстрацией. Где-то надо растворы чуть подогреть, где-то нет, где-то ещё что-то: все эти алхимические премудрости и рецепты. Что интересно, лекторы обычно этих секретов не знают (им не положено «пробирки мыть перед лекцией»!): это достояние именно старых заслуженных лаборантов
отсюда
В it по крайней мере с помощью отладчика и дизасма всегда можно доморощенных касперских гуру вывести на чистую воду, бгг

пятница, 16 сентября 2011 г.

httpprxm.dll RPC Interfaces

Proxy Manager
Registering in epmapper with annotation "Proxy Manager client server endpoint"
C36BE077-E14B-4FE9-8ABC-E856EF4F048B version 1.0
6 methods:
  • RpcSrvProxyMgrClientRegisterForEventNotification
  • RpcSrvProxyMgrClientGetNotification
  • RpcSrvProxyMgrClientUnregisterEventNotification
  • RpcSrvProxyMgrClientGetProxyForUrl
  • RpcSrvProxyMgrClientGetProxyCredentials
  • RpcSrvProxyMgrClientGetAllProxiesForUrl
Registering in epmapper with annotation "Proxy Manager provider server endpoint"
2E6035B2-E8F1-41A7-A044-656B439C4C34 version 1.0
6 methods:
  • ProxyMgrProviderRegisterForEventNotification
  • ProxyMgrProviderUnregisterEventNotification
  • ProxyMgrProviderGetNotification
  • ProxyMgrGetProxyEventInformation
  • ProxyMgrSetProxyConfiguration
  • ProxyMgrSetProxyCredentials

adhsvc.dll RPC interface

AD Harvest Sites and Subnets Service
C49A5A70-8A7F-4E70-BA16-1E8F1F193EF1 version 1.0
7 methods:
  • AdhEngineOpen
  • AdhEngineClose
  • AdhStatusEventSubscribe
  • AdhStatusEventSubscriptionGetLastEvent
  • AdhStatusEventUnsubscribe
  • AdhGetConfig
  • AdhGetEvidenceCollectorResult

das.dll RPC interfaces

Device Association Service
850CEE52-3038-4277-B9B4-E05DB8B2C35C version 1.0
0xC methods:
  • DASCreateAssociationContext
  • DASEnumAssociationCeremonies
  • DASBeginAssociationCeremony
  • DASReadCeremonyData
  • DASWriteCeremonyData
  • DASEndAssociationCeremony
  • DASCloseAssociationContext
  • DASCreateAssociationContextFromOOBData
  • DASRemoveAssociation
  • DASCreateChallengeContext
  • DASChallengeDevicePresence
  • DASCloseChallengeContext
BD84CD86-9825-4376-813D-334C543F89B1  version 1.0
4 methods:
  • RpcDevQueryCreate
  • RpcDevQueryClose
  • RpcDevQueryGetResult
  • RpcDevPropertySet
В w8 висит на множестве endpoints - например
  • \\PIPE\\atsvc
  • \\PIPE\\browser
  • \\PIPE\\srvsvc
  • ALPC port DeviceSetupManager
  •  ALPC port IUserProfile2
  • ALPC port senssvc

ncbservice.dll RPC interface

Network Connection Broker
880FD55E-43B9-11E0-B1A8-CF4EDFD72085 version 1.0
4 methods:
  • KapiRegisterProvider
  • KapiDeregisterProvider
  • KapiUpdateKaSample
  • KapiReceiveKaUpdateRequest
В w8 висит на множестве endpoints - например
  • \\PIPE\\atsvc
  • \\PIPE\\browser
  • \\PIPE\\srvsvc
  • ALPC port DeviceSetupManager
  • ALPC port IUserProfile2
и так далее - мне лень все перечислять

w8 NDIS structs

в продолжение

w8 _KTHREAD & _ETHREAD

dt _KTHREAD

w8 PEB & TEB

для w7 тут
dt _PEB

w8 _KUSER_SHARED_DATA

для w7 тут
dt _KUSER_SHARED_DATA

четверг, 15 сентября 2011 г.

мы не обосрались

читаю тут всякое и ржу в голос:
System Watcher анализирует не только поведение программ, но и работу системных сервисов. Например, мы теперь смотрим кто создаёт, меняет и запускает такие сервисы. «Под колпаком» теперь даже сервис печати
надо полагать они наконец-то осилили перехват AddPrintProvidor, бгг
Там много такого же угарного для тех кто понимает, антипафосный фильтр обязателен как обычно

Неиллюзорно поражён

wincheck после добавления некоторых таблиц работает под w8 32bit без особых обточек напильником военного образца ! Хотя там поменялось весьма много чего и скомпилена w8 вся если зрение меня не обманывает с помощью vs2010
Не работают следующие вещи (в синяк при этом не падает, бгг):
  • проверка ObTypes (наверняка потому что изменилась структура _OBJECT_TYPE точно такой же как w7)
  • достаются кривые ClassGuid для PnP нотификаторов - формат точно такой же как в w7
  • проверка TDI
  • NDIS весь
  • некоторые проверяльщики всяких структур в юзер-модных прогах. Наверняка форматы структур тоже поменялись
Осталось понять как заставить w8 64бита грузить неподписанные дрова например

Update: аааааааааааааааааааааааааааааааааааа !!!!!!!!! у них теперь BSOD вот с таким :( смайликом, бгг

Update2: нам тут не верят что подобный порт возможен за один день и требуют всяческих доказательств. Извольте:

w8 W32pServiceTable 64bit

W32pServiceLimit равен 0x3c3

w8 KiServiceTable 64bit

KiServiceLimit равен 0x1A9

поставил windows 8 developers preview

в virtual box 4.1.0
О плохом
  • интерфейс непривычный наглухо. Особенно убило поведение кнопки start
  • занимает 11 гигов
  • VBox guest addon ставиться отказался, так что весь обмен с машиной через внешние файловые обменники типа ifolder
  • при установке спрашивает LiveID. Хорошо что у меня есть подписка на msdn - иначе оно не взлетело бы
О хорошем
  • far 64бита работает
  • windbg не первой свежести тоже. даже символы качает !
  • установлена какая-то альфа visual studio 2011
Слил все что нужно - завтра продолжу ковырять новую игрушку, бгг

среда, 14 сентября 2011 г.

w8 VfRegularThunks

в дополнение к

w8 FltpFilterVerifierThunks

в дополнение к

w8 apisetschema.dll

стала значительно толще:
API-ms-win-advapi32-auth-l1-1-0advapi32.dll
API-ms-win-advapi32-eventingcontroller-l1-1-0advapi32.dll
API-ms-win-advapi32-eventlog-l1-1-0advapi32.dll
API-ms-win-advapi32-msi-l1-1-0advapi32.dll
API-ms-win-advapi32-ntmarta-l1-1-0advapi32.dll
API-ms-win-advapi32-registry-l1-1-0advapi32.dll
API-ms-win-advapi32-safer-l1-1-0advapi32.dll
API-ms-win-advapi32-shutdown-l1-1-0advapi32.dll
API-ms-win-appmodel-identity-l1-1-0kernel32.dll
API-ms-win-appmodel-runtime-l1-1-0kernel32.dll
API-ms-win-appmodel-state-l1-1-0kernel32.dll
API-ms-win-authz-claimpolicies-l1-1-0authz.dll
API-ms-win-authz-remote-l1-1-0logoncli.dll
API-ms-win-biometrics-winbio-l1-1-0winbio.dll
API-ms-win-branding-winbrand-l1-1-0winbrand.dll
API-ms-win-cmd-util-l1-1-0fsutilext.dll
API-ms-win-cng-rng-l1-1-0bcryptprimitives.dll
API-ms-win-com-clbcatq-l1-1-0clbcatq.dll
API-ms-win-com-ole32-l1-1-0ole32.dll
API-ms-win-com-psmregister-l1-1-0advapi32.dll
API-ms-win-com-psmregisterclient-l1-1-0twinapi.dll
API-ms-win-core-apiquery-l1-1-0ntdll.dll
API-ms-win-core-appcompat-l1-1-0kernelbase.dll
API-ms-win-core-appinit-l1-1-0kernel32.dllkernelbase.dll
API-ms-win-core-bem-l1-1-0kernelbase.dll
API-ms-win-core-bicltapi-l1-1-0bi.dll
API-ms-win-core-biplmapi-l1-1-0bgmhost.dll
API-ms-win-core-com-l1-1-0combase.dll
API-ms-win-core-com-private-l1-1-0combase.dll
API-ms-win-core-comm-l1-1-0kernelbase.dll
API-ms-win-core-console-l1-1-0kernelbase.dll
API-ms-win-core-console-l2-1-0kernelbase.dll
API-ms-win-core-crt-l1-1-0ntdll.dll
API-ms-win-core-crt-l2-1-0kernelbase.dll
API-ms-win-core-datetime-l1-1-0kernelbase.dll
API-ms-win-core-datetime-l1-1-1kernelbase.dll
API-ms-win-core-debug-l1-1-0kernelbase.dll
API-ms-win-core-debug-l1-1-1kernelbase.dll
API-ms-win-core-delayload-l1-1-0kernel32.dllkernelbase.dll
API-ms-win-core-delayload-l1-1-1kernel32.dllkernelbase.dll
API-ms-win-core-errorhandling-l1-1-0kernelbase.dll
API-ms-win-core-fibers-l1-1-0kernelbase.dll
API-ms-win-core-fibers-l1-1-1kernelbase.dll
API-ms-win-core-file-l1-1-0kernelbase.dll
API-ms-win-core-file-l1-1-1kernelbase.dll
API-ms-win-core-file-l2-1-0kernelbase.dll
API-ms-win-core-handle-l1-1-0kernelbase.dll
API-ms-win-core-heap-l1-1-0kernelbase.dll
API-ms-win-core-interlocked-l1-1-0kernelbase.dll
API-ms-win-core-io-l1-1-0kernel32.dllkernelbase.dll
API-ms-win-core-io-l1-1-1kernel32.dllkernelbase.dll
API-ms-win-core-job-l1-1-0kernelbase.dll
API-ms-win-core-libraryloader-l1-1-0kernelbase.dll
API-ms-win-core-libraryloader-l1-1-1kernelbase.dll
API-ms-win-core-localization-l1-1-0kernelbase.dll
API-ms-win-core-localization-l1-1-1kernelbase.dll
API-ms-win-core-localregistry-l1-1-0kernelbase.dll
API-ms-win-core-localregistry-l1-1-1kernelbase.dll
API-ms-win-core-memory-l1-1-0kernelbase.dll
API-ms-win-core-memory-l1-1-1kernelbase.dll
API-ms-win-core-misc-l1-1-0kernelbase.dll
API-ms-win-core-misc-l1-1-1kernelbase.dll
API-ms-win-core-multipleproviderrouter-l1-1-0mpr.dll
API-ms-win-core-namedpipe-l1-1-0kernelbase.dll
API-ms-win-core-namespace-l1-1-0kernelbase.dll
API-ms-win-core-path-l1-1-0kernelbase.dll
API-ms-win-core-processenvironment-l1-1-0kernelbase.dll
API-ms-win-core-processsecurity-l1-1-0kernel32.dllkernelbase.dll
API-ms-win-core-processthreads-l1-1-0kernel32.dllkernelbase.dll
API-ms-win-core-processthreads-l1-1-1kernel32.dllkernelbase.dll
API-ms-win-core-processtopology-l1-1-0kernelbase.dll
API-ms-win-core-profile-l1-1-0kernelbase.dll
API-ms-win-core-psapi-l1-1-0kernelbase.dll
API-ms-win-core-psapiansi-l1-1-0kernelbase.dll
API-ms-win-core-psm-app-l1-1-0advapi32.dll
API-ms-win-core-psm-info-l1-1-0appsruprov.dll
API-ms-win-core-psm-plm-l1-1-0bgmhost.dll
API-ms-win-core-realtime-l1-1-0kernelbase.dll
API-ms-win-core-registry-l1-1-0kernelbase.dll
API-ms-win-core-registryuserspecific-l1-1-0kernelbase.dll
API-ms-win-core-rtlsupport-l1-1-0ntdll.dll
API-ms-win-core-sidebyside-l1-1-0kernelbase.dll
API-ms-win-core-string-l1-1-0kernelbase.dll
API-ms-win-core-string-l2-1-0kernelbase.dll
API-ms-win-core-stringansi-l1-1-0kernelbase.dll
API-ms-win-core-stringloader-l1-1-0kernel32.dllkernelbase.dll
API-ms-win-core-synch-l1-1-0kernelbase.dll
API-ms-win-core-synch-l1-1-1kernelbase.dll
API-ms-win-core-sysinfo-l1-1-0kernelbase.dll
API-ms-win-core-sysinfo-l1-1-1kernelbase.dll
API-ms-win-core-systemtopology-l1-1-0kernelbase.dll
API-ms-win-core-threadpool-l1-1-0kernelbase.dll
API-ms-win-core-threadpool-l1-1-1kernelbase.dll
API-ms-win-core-url-l1-1-0kernelbase.dll
API-ms-win-core-util-l1-1-0kernel32.dllkernelbase.dll
API-ms-win-core-version-l1-1-0kernelbase.dll
API-ms-win-core-versionansi-l1-1-0kernelbase.dll
API-ms-win-core-windowserrorreporting-l1-1-0kernelbase.dll
API-ms-win-core-winrt-error-l1-1-0combase.dll
API-ms-win-core-winrt-errorprivate-l1-1-0combase.dll
API-ms-win-core-winrt-l1-1-0combase.dll
API-ms-win-core-winrt-registration-l1-1-0combase.dll
API-ms-win-core-winrt-roparameterizediid-l1-1-0combase.dll
API-ms-win-core-winrt-string-l1-1-0combase.dll
API-ms-win-core-wow64-l1-1-0kernelbase.dll
API-ms-win-core-xstate-l1-1-0ntdll.dll
API-ms-win-devices-config-l1-1-0cfgmgr32.dll
API-ms-win-devices-query-l1-1-0cfgmgr32.dll
API-ms-win-devices-swdevice-l1-1-0cfgmgr32.dll
API-ms-win-domainjoin-netjoin-l1-1-0netjoin.dll
API-ms-win-dx-d3dkmt-l1-1-0gdi32.dll
API-ms-win-eventing-classicprovider-l1-1-0kernelbase.dll
API-ms-win-eventing-classicprovideransi-l1-1-0kernelbase.dll
API-ms-win-eventing-consumer-l1-1-0kernelbase.dll
API-ms-win-eventing-controller-l1-1-0kernelbase.dll
API-ms-win-eventing-provider-l1-1-0kernelbase.dll
API-ms-win-firewallapi-webproxy-l1-1-0firewallapi.dll
API-ms-win-fsutilext-ifsutil-l1-1-0fsutilext.dll
API-ms-win-fsutilext-ulib-l1-1-0fsutilext.dll
API-ms-win-gdi-dc-create-l1-1-0gdi32.dll
API-ms-win-gdi-dc-l1-1-0gdi32.dll
API-ms-win-gdi-devcaps-l1-1-0gdi32.dll
API-ms-win-gdi-draw-l1-1-0gdi32.dll
API-ms-win-gdi-font-l1-1-0gdi32.dll
API-ms-win-gdi-metafile-l1-1-0gdi32.dll
API-ms-win-gdi-path-l1-1-0gdi32.dll
API-ms-win-gdi-render-l1-1-0gdi32.dll
API-ms-win-gdi-rgn-l1-1-0gdi32.dll
API-ms-win-gdi-wcs-l1-1-0gdi32.dll
API-ms-win-gpapi-grouppolicy-l1-1-0gpapi.dll
API-ms-win-gui-ntuser-l1-1-0user32.dll
API-ms-win-http-time-l1-1-0kernelbase.dll
API-ms-win-kernel32-appcompat-l1-1-0kernel32.dll
API-ms-win-kernel32-datetime-l1-1-0kernel32.dll
API-ms-win-kernel32-errorhandling-l1-1-0kernel32.dll
API-ms-win-kernel32-file-l1-1-0kernel32.dll
API-ms-win-kernel32-package-l1-1-0kernel32.dll
API-ms-win-kernel32-registry-l1-1-0kernel32.dll
API-ms-win-kernel32-sidebyside-l1-1-0kernel32.dll
API-ms-win-kernel32-windowserrorreporting-l1-1-0kernel32.dll
API-ms-win-kernelbase-processthread-l1-1-0kernel32.dll
API-ms-win-legacy-advapi32-l1-1-0advapi32.dll
API-ms-win-legacy-kernel32-l1-1-0kernel32.dll
API-ms-win-legacy-shlwapi-l1-1-0kernelbase.dll
API-ms-win-mm-joystick-l1-1-0winmmbase.dll
API-ms-win-mm-mci-l1-1-0winmm.dll
API-ms-win-mm-misc-l1-1-0winmmbase.dll
API-ms-win-mm-misc-l2-1-0winmm.dll
API-ms-win-mm-mme-l1-1-0winmmbase.dll
API-ms-win-mm-msacm-l1-1-0msacm32.dll
API-ms-win-mm-pehelper-l1-1-0mf.dll
API-ms-win-mm-playsound-l1-1-0winmm.dll
API-ms-win-mm-time-l1-1-0kernel32.dll
API-ms-win-mm-wmdrmsdk-l1-1-0wmdrmsdk.dll
API-ms-win-mpr-multipleproviderrouter-l1-1-0mprext.dll
API-ms-win-mrmcorer-resmanager-l1-1-0mrmcorer.dll
API-ms-win-msiltcfg-msi-l1-1-0msiltcfg.dll
API-ms-win-networking-winipsec-l1-1-0winipsec.dll
API-ms-win-ntdsa-activedirectoryserver-l1-1-0ntdsa.dll
API-ms-win-ntdsapi-activedirectoryclient-l1-1-0ntdsapi.dll
API-ms-win-ntuser-dc-access-l1-1-0user32.dll
API-ms-win-ntuser-gui-l1-1-0user32.dll
API-ms-win-ntuser-rectangle-l1-1-0user32.dll
API-ms-win-ntuser-sysparams-l1-1-0user32.dll
API-ms-win-obsolete-kernel32-l1-1-0kernel32.dll
API-ms-win-obsolete-kernelbase-l1-1-0kernelbase.dll
API-ms-win-obsolete-localization-l1-1-0kernelbase.dll
API-ms-win-obsolete-psapi-l1-1-0kernelbase.dll
API-ms-win-obsolete-shlwapi-l1-1-0kernelbase.dll
API-ms-win-ole32-oleautomation-l1-1-0ole32.dll
API-ms-win-printer-winspool-l1-1-0winspool.drv
API-ms-win-profile-profsvc-l1-1-0profsvcext.dll
API-ms-win-profile-userenv-l1-1-0profext.dll
API-ms-win-ro-typeresolution-l1-1-0wintypes.dll
API-ms-win-rometadata-dispenser-l1-1-0rometadata.dll
API-ms-win-samsrv-accountstore-l1-1-0samsrv.dll
API-ms-win-secur32-translatename-l1-1-0secur32.dll
API-ms-win-security-activedirectoryclient-l1-1-0kernelbase.dll
API-ms-win-security-appcontainer-l1-1-0kernelbase.dll
API-ms-win-security-audit-l1-1-0sechost.dll
API-ms-win-security-base-l1-1-0kernelbase.dll
API-ms-win-security-credentials-l1-1-0sechost.dll
API-ms-win-security-credentials-l2-1-0sechost.dll
API-ms-win-security-credui-l1-1-0credui.dll
API-ms-win-security-cryptui-l1-1-0cryptui.dll
API-ms-win-security-grouppolicy-l1-1-0kernelbase.dll
API-ms-win-security-lsalookup-l1-1-0sechost.dll
API-ms-win-security-lsapolicy-l1-1-0sechost.dll
API-ms-win-security-sddl-l1-1-0sechost.dll
API-ms-win-security-sddlparsecond-l1-1-0sechost.dll
API-ms-win-security-vaultcli-l1-1-0vaultcli.dll
API-ms-win-service-core-l1-1-0sechost.dll
API-ms-win-service-core-l1-1-1sechost.dll
API-ms-win-service-management-l1-1-0sechost.dll
API-ms-win-service-management-l2-1-0sechost.dll
API-ms-win-service-winsvc-l1-1-0sechost.dll
API-ms-win-session-userinit-l1-1-0userinitext.dll
API-ms-win-session-wininit-l1-1-0wininitext.dll
API-ms-win-session-winsta-l1-1-0winsta.dll
API-ms-win-session-wtsapi32-l1-1-0wtsapi32.dll
API-ms-win-setupapi-cfgmgr32local-l1-1-0setupapi.dll
API-ms-win-setupapi-cfgmgr32remote-l1-1-0setupapi.dll
API-ms-win-setupapi-classinstallers-l1-1-0setupapi.dll
API-ms-win-setupapi-logging-l1-1-0setupapi.dll
API-ms-win-shcore-comhelpers-l1-1-0shcore.dll
API-ms-win-shcore-obsolete-l1-1-0shcore.dll
API-ms-win-shcore-registry-l1-1-0shcore.dll
API-ms-win-shcore-stream-l1-1-0shcore.dll
API-ms-win-shcore-sysinfo-l1-1-0shcore.dll
API-ms-win-shcore-thread-l1-1-0shcore.dll
API-ms-win-shcore-unicodeansi-l1-1-0shcore.dll
API-ms-win-shell-shell32-l1-1-0shell32.dll
API-ms-win-shell-shlwapi-l1-1-0shlwapi.dll
API-ms-win-sxs-oleautomation-l1-1-0sxs.dll
API-ms-win-umpoext-umpo-l1-1-0umpoext.dll
API-ms-win-user32-string-l1-1-0user32.dll
API-ms-win-wevtapi-eventlog-l1-1-0wevtapi.dll
API-ms-win-winsock-gui-l1-1-0user32.dll
API-ms-win-wlan-grouppolicy-l1-1-0wlgpclnt.dll
API-ms-win-wlan-onexui-l1-1-0onexui.dll
API-ms-win-wlan-scard-l1-1-0winscard.dll

w8 KiServiceTable

KiServiceLimit равен 0x1A9

w8 W32pServiceTable

скачал например давеча
Буду спамить теперь оттуда всяким
Вот для начала W32pServiceTable из win32k.sys (если чо W32pServiceLimit равен 0x3c1):

вторник, 13 сентября 2011 г.

Delphi XE2

я неиллюзорно поражен - они таки добавили поддержку 64 бит ! Если мне не изменяет прогрессирующий склероз - таковая появилась в visual studio 2005
Ценник впрочем негуманный наглухо

Отличный пример того как можно просрать абсолютно все полимеры по моему (вспоминает далекий 1997 год, выпивает не чокаясь, закусывает)

Update: судя по описанию С++ Builder 64бита до сих пор не умеет. У меня нет слов передать данное технологическое отставание...

The Architecture of Open Source Applications

начал давеча зачем-то читать subj. Эта штука посильнее Фауста Гёте детского юмористического журнала ксакеп будет - рыдаю над каждой главой практически
Про audacity:
With a small team of developers, we do not have the resources to do, for example, the in-depth analysis of security loopholes that teams working on Firefox and Thunderbird do. However, we do not want Audacity to provide a route to bypass a firewall, so we have a rule not to have TCP/IP connections to or from Audacity at all
Занес эту чудо-программу в свой обширный список прог, которые нельзя использовать ни при каких обстоятельствах, бгг

Или вот про bash еще чудесное:
One historical problem with the shell, as Tom Duff said in his paper about rc, the Plan9 shell, is that nobody really knows what the Bourne shell grammar is
И вот все у них так (c)

В главе про hadoop DFS (написанная кстати суконнейшим языком) глаз дичайше режет следующая фраза:
So even if all replicas of a block are corrupt, the policy allows the user to retrieve its data from the corrupt replicas
Круто, непонятно только зачем клиенту поврежденные данные и может ли он узнать о том, что они повреждены например

С интересом продолжаю чтение, бгг

воскресенье, 11 сентября 2011 г.

поставил Intel C++ Сompozer XE 2011

с целью проведения всяческих бесчеловечных опытов. icl.exe пишет например
Intel(R) C++ Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 12.0.0.104 Build 20101006
Затем пересобрал на нем свою тестилку скорости хешей (на основе fehashmac) для 64бит:
  • на vs2008 со стандартными ключами оптимизации
  • на icl.exe со стандартными ключами оптимизации
  • на icl.exe с оптимизациями, выкрученными на максимум - например были указаны генерация кода sse4.1, global optimization & interprocedural optimization
Результаты дико угарные. Размеры .exe:
  • vs2008 - 317952 байт
  • intel - 471040 байт. Просмотр кода показывает что были тупо развернуты все циклы с константыми счетчиками циклов
  • intel opt - 472576 байт
Прирост производительности (запускалось все на corei7, цифры даны в мегабайтах в секунду)

четверг, 8 сентября 2011 г.

wincheck rc4

скачать
Changelog:
  • добавил поддержку xp with no SP (например на ней нет ф-ции RtlEncodePointer и другая W32pServiceTable)
  • добавил проверку некоторых таблиц функций в win32k.sys
  • добавил в udis86 инструкции lzcnt, movntsd & movntss
  • пофиксил кое-какие баги, в том числе найденные PVS Studio. Критичных впрочем не нашлось кажется ни единого

вторник, 6 сентября 2011 г.

ищем gapfnMessageCall

вот тут например Indy утверждает что
Поиск этих массивов столь сложен, что без построения и анализа графа фактически не возможен
Я думаю он несколько преувеличивает размер бедствия

Например можно найти gapfnMessageCall из тела ф-ции NtUserMessageCall - там всего одна такая примерно инструкция:

call    ds:_gapfnMessageCall[eax*4]


Граф понадобится на vista & w7 - построить цепочки переходов в этой ф-ции по jz/jb/jmp

Соотв-но таблица gapfnScSendMessage на тех 32битных windows, что я сегодня посмотрел, находится всегда непосредственно перед массивом gapfnMessageCall (исключением является w2k3 без sp). Размер обеих таблиц
  • под xp/w2k3 0x38 указателей
  • под w2k 0x35 указателей
  • под vista 0x3d указателей
  • под w7 0x40 указателей
  • под w8 0x44 указателей
Остается еще один вопрос - как найти неэкспортируемую ф-цию NtUserMessageCall. Например из DriverEntry достать как аргументы к KeAddSystemServiceTable W32pServiceTable & W32pServiceLimit и по значению W32pServiceLimit в hard-coded словаре извлечь индекс NtUserMessageCall

P.S.: самая Ъ версия windows несомненно pure xp (без SP вообще). У нее в W32pServiceTable ровно 666 ф-ций, бгг

пережил нашествие с хабра

какая-то альтернативно-одаренная личность дала на говнохабре сцылку на мой старый псто
Результаты дичайше радуют
  • 0 комментов
  • с sf 0 скачиваний
  • в том псто есть ссылка на более другой псто про то, что ecl в сущности как любой практически open-source - говно - у него 0 просмотров
Тупые, ленивые и нелюбопытные жывотные, чо. Успешные Стартаперы™, бгг

понедельник, 5 сентября 2011 г.

serious business

Klocwork всего три дня спустя прислал письмо на предмет пощупать их мега-продуктЪ:
Our min. configuration/price € 24.000 per year and it will include:
 - UP to 20 fixed user licenses (or 4 floating licenses) Single Language-Klocwork insight
 -1 fixed build license (server)
 -unlimited LOC (lines of code)
 -Maintenance & support for 12 month

All prices depends on the following choices :
 - Insight or Insight Pro license
 - fixed or floating license
 - single language  or all languages (C,C++,Java)

Ильфак в сравнении с занимается чистой благотворительностью по моему

пятница, 2 сентября 2011 г.

прогнал сорцы wincheck

на PVS Studio
Нашло 2253 possible errors
Начну с плохих новостей
  • оно работает дико медленно - на 2.5 метрах ~13 минут
  • находит в основном всякий треш типа вот такого:
  • Dangerous magic number 4 used: UCHAR Tag[4]
    Дико опасная ошибка, да. Я заметил что оно вообще всегда делает стойку на константы 4 и 32
  • On 64-bit platform, structure size can be reduced from 48 to 40 bytes by rearranging the fields according to their sizes in decreasing order.
    Ну круто, чо. А как делать rearranging the fields то ? Хоть бы варианты какие предлагала
  • И самое угарное - большинство таких структур находятся например в ntdll.h, бгг
  • отчего-то вот такой вполне легальный кусок кода sizeof(PBYTE) * _countof(m_index_table) считается
    It is odd that a sizeof() operator is multiplied by sizeof()
  • также раздражает что if ( memcmp(hash, old_hash, HASH_SIZE) ) считается как
    The 'memcmp' function returns 0 if corresponding buffers are equal. Consider examining the condition for mistakes
    ну и чо - проверил я хэши и если не совпали - мне нужно предпринять какие-то действия например
Хорошие новости
  • нашла одно присваивание в if. Даже странно что visual studio ни слова не сказала
  • нашлась пара printf с меньшим числом аргументов, чем указано в format string. 
  • один printf соотв-но с большим числом аргументов, чем указано в format string.

    четверг, 1 сентября 2011 г.

    bug in fehashmac

    нашел давеча
    Например поскольку длина у него хранится в битах то вместо

     memcpy (hashval, state->out, state->hashbitlen
    <<3);

    должно быть

      memcpy (hashval, state->out, state->hashbitlen>>3);


    Никогда не доверяй open-source, бгг

    Update: автор библиотеки не страдает кровавым энтерпрайзом головного мозга - после непродолжительной переписки он не стал грузить меня необходимостью "поиска узких мест", "докупанием железа на сервере ", "недовольством Заказчика" и просто выпустил новую версию, бгг