Z0mbie
Top Device Online [10]
Октябрь 2000
Вашему вниманию представляется очередной способ перехода в ring0, правда только под win98. Но он может быть легко переделан в win9X.
Идея заключается в следующем. На каждую нить (thread) есть хитрая структура, называемая TCB (Thread Control Block). Эта структура содержит много всякой интересной информации, например набор регистров, и в частности, CS:EIP. А под win9X, TCB, само собой, можно пропатчить.
Как найти TCB? Четвердым двордом TCB имеет удобную сигнатуру: 'THCB'. Но искать всякий отстой в памяти уже, честно говоря, надоело, поэтому под win98 можно сделать так:
Далее скажем, что пропатчить CS:EIP у текущей нити из нее же -- дело непростое, так что создадим для этого новую нить.
Далее, приостановим текущую нить, чтобы выполнилась нить созданная:
И вот, мы уже побывали в нуле. Что же происходило в новой нити?
Как видим, простая замена CS:EIP на свои собственные. А вот так выглядит процедура, на которую попадает управление в нуле:
Ну, собственно, это все. А вы чего ждали?