Предлагается такая "головоломка" выяснить какие внешние данные (те актуальные не только для текущего процесса) Могут быть получены без использование системных вызовов (int 2e, syscall etc). В конференции мы надыбали вот чего: Очевидно что можно просканить свою память, интересно что же из нее можно достать. -Переменные окружения -Параметры командной строки (хотя они по сути только для нашего процесса) -Список модулей с путями -Буфер обмена -Список окон (если приложение гуй) -Всякие вкусности из ПЕБ -Сайд эффекты генерации исключений - хукнуть KiUserApcDispatcher и ждать Активные участники only IceT FrееМаn spa
spa Это не единственное место куда поток возвращается, тогда до кучи: o KiUserApcDispatcher o KiUserCallbackDispatcher o KiRaiseUserExceptionDispatcher o KiFastSystemCallRet o Из Int2e/остальные шлюзы и NtContinue/NtSetContextThread управление возвращается на произвольный адрес. Хотя не понятна задача, доступна вся память процесса(стек и пр.), кроме контекстов потоков.
Clerk это "головоломка" тут не только результат важен, но хитроумность ) а за ответ спасибо, хорошее дополнение
Код (Text): /* * Object types * * NOTE: Changing this table means changing hard-coded arrays that depend * on the index number (in security.c and in debug.c) */ #define TYPE_FREE 0 // must be zero! #define TYPE_WINDOW 1 // in order of use for C code lookups #define TYPE_MENU 2 #define TYPE_CURSOR 3 #define TYPE_SETWINDOWPOS 4 #define TYPE_HOOK 5 #define TYPE_CLIPDATA 6 // clipboard data #define TYPE_CALLPROC 7 #define TYPE_ACCELTABLE 8 #define TYPE_DDEACCESS 9 #define TYPE_DDECONV 10 #define TYPE_DDEXACT 11 // DDE transaction tracking info. #define TYPE_MONITOR 12 #define TYPE_KBDLAYOUT 13 // Keyboard Layout handle (HKL) object. #define TYPE_KBDFILE 14 // Keyboard Layout file object. #define TYPE_WINEVENTHOOK 15 // WinEvent hook (EVENTHOOK) #define TYPE_TIMER 16 #define TYPE_INPUTCONTEXT 17 // Input Context info structure #define TYPE_CTYPES 18 // Count of TYPEs; Must be LAST + 1 #define TYPE_GENERIC 255 // used for generic handle validation
если сепшн диспечер вызывает сисколов, то можно направеть их в нужное нам русло. хотя можно это считать тогда косвенным вызовом сискола у себя в потоке. за загадку, спа, спс
хм.. как-нибудь спрвоцировать другой процесс вызвать syscall.. х.з. как. через гую можно попытаься что-нибудь выудить...