eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› sysenter
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 10 февраля 2012 00:23 New!
Цитата · Личное сообщение · #1

господа, а существует ли какая нибудь документация или маны по использовани sysenter?
Поделитесь пжл а то не нагуглил практически ничего


Ранг: 105.6 (ветеран)
Статус: Участник

Создано: 10 февраля 2012 00:38 New!
Цитата · Личное сообщение · #2

tiranosaur, насколько я знаю - это системное прерывание, переводящие поток из юзермода в режим ядра. Документации ты нигде не найдёшь, тут тебе поможет только ревёрс ntdll.
А зачем именно его использовать?

Ранг: 434.4 (мудрец)
Статус: Участник

Создано: 10 февраля 2012 00:39 New!
Цитата · Личное сообщение · #3

http://www.securitylab.ru/analytics/241543.php

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 10 февраля 2012 00:52 New!
Цитата · Личное сообщение · #4

tihiy_grom это видел. там int2e в примере(


Ранг: 105.6 (ветеран)
Статус: Участник

Создано: 10 февраля 2012 01:14 New!
Цитата · Личное сообщение · #5

tiranosaur, IDA вам в руки
Изучите сами на примере того же самого ZwTerminateProcess.
Количество параметров известно. Чего же ещё желать?
ах да там нету sysenter скажите вы?
там какой-то call dword ptr ds:[edx]
в рантайме зайдите в этот call и увидите ваш sysenter(при условии что вы используете что-нить выше xp(по крайней мере у меня на хрюхе sysenter))


Ранг: 646.0 (!)
Статус: Участник
ALIEN Hack Team

Создано: 10 февраля 2012 01:19 · Поправил: ARCHANGEL New!
Цитата · Личное сообщение · #6

Dart Sergius пишет:
Документации ты нигде не найдёшь

Маны от Интела --> Volume 2B - Instruction Set reference <-- содержит 4 страницы про эту инструкцию.

по крайней мере у меня на хрюхе sysenter
Да, нововведение было в ХР, у более старых - int 2e.

| Сообщение посчитали полезным: tiranosaur



Ранг: 105.6 (ветеран)
Статус: Участник

Создано: 10 февраля 2012 01:25 New!
Цитата · Личное сообщение · #7

ARCHANGEL пишет:
Маны от Интела

сори не знал=)

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 10 февраля 2012 01:30 New!
Цитата · Личное сообщение · #8

ARCHANGEL ты не архангел ты БОГ!!!!!!!!!!!! cпс

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 10 февраля 2012 01:31 New!
Цитата · Личное сообщение · #9

Dart Sergius ))) ты думаешь я не знаю как ее найти?


Ранг: 105.6 (ветеран)
Статус: Участник

Создано: 10 февраля 2012 01:56 New!
Цитата · Личное сообщение · #10

tiranosaur да мало ли, тут всякие проходят.


Ранг: 381.2 (мудрец)
Статус: Участник
_Вечный_Студент_

Создано: 10 февраля 2012 01:57 New!
Цитата · Личное сообщение · #11

Поделитесь пжл а то не нагуглил практически ничего

Так-таки НИЧЕГО?
А у меня нагуглил штук 200 ссылок... Страный у тебя гугл...
Вот, к примеру, все разжевано:
http://siyobik.info/main/reference/instruction/SYSENTER

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 10 февраля 2012 13:36 · Поправил: tiranosaur New!
Цитата · Личное сообщение · #12

блин не получается((( Господа а где ошибка подскажите

proc ReadProcessMemory@SYSENTER

push 0
push 4
push buffer ; буфер
push DWORD[address] ; BaseAddress,
push DWORD [gameProcess] ;ProcessHandle,
push lab ;точка возврата
mov eax, 0bah ;NtReadVirtualMemory


mov edx,esp
SYSENTER
lab:
ret
endp

привы получены хендл тоже. короче если вместо call ReadProcessMemory@SYSENTER использую invoke ReadProcessMemory(параметры) все норм. Возвращается на метку lab. также работает если вызываю вместо
mov edx,esp
SYSENTER
invoke KiFastSystemCall. почему? хотя это вроде одно и то же

Ранг: 37.1 (посетитель)
Статус: Участник

Создано: 10 февраля 2012 19:17 New!
Цитата · Личное сообщение · #13

Что именно не работает? Вроде как должно ведь.

Ранг: 56.1 (постоянный)
Статус: Участник

Создано: 10 февраля 2012 20:00 New!
Цитата · Личное сообщение · #14

читай мануал ещё раз. Ну и сорцы ядра. В частности, sysexit выкидывает на KiFastSystemCallRet. И вообще топик идиотский. Зачем вообще вдруг понадобилось использовать сисентер?


Ранг: 240.2 (наставник)
Статус: Участник

Создано: 10 февраля 2012 20:33 New!
Цитата · Личное сообщение · #15

Чаще всего используют такие техники vx серы

Ранг: 56.1 (постоянный)
Статус: Участник

Создано: 10 февраля 2012 21:24 New!
Цитата · Личное сообщение · #16

vx-еры такие вопросы не задают

| Сообщение посчитали полезным: _ruzmaz_


Ранг: 14.7 (новичок)
Статус: Участник

Создано: 10 февраля 2012 21:25 · Поправил: tiranosaur New!
Цитата · Личное сообщение · #17

vptrlx а зачем мне sysexit eсли адрес возврата я указал.Все когда то были идиотами и задавали дурацкие вапросы.
Зачем вообще вдруг понадобилось использовать сисентер? шифруюсь)))
Promix_17выкидывает туда куда нужно но в буфере приема ничего нету. меняю mov edx,esp
SYSENTER на call KiFastSystemCall и все пашет. читает что нужно.
А кто такие vx серы?


Ранг: 646.0 (!)
Статус: Участник
ALIEN Hack Team

Создано: 10 февраля 2012 21:38 New!
Цитата · Личное сообщение · #18

vptrlx пишет:
И вообще топик идиотский

Скорее - чисто в образовательных целях.

tiranosaur пишет:
А кто такие vx серы?

Вирусописатели.

а зачем мне sysexit eсли адрес возврата я указал

Вы с vptrlx говорите про разные вещи. Он пытается вам объяснить, как юзать вашу инструкцию из ринг0, вы же, видимо, хотите эмульнуть какую-то Native API, чтоб... не знаю, зачем оно вам надо. Но хотите sysenter юзать в ринг3. Но задачка абсолютно несложная, киньте скомпиленный ехе, который у вас не работает, чтоб люди могли посмотреть, что не так.

Ранг: 56.1 (постоянный)
Статус: Участник

Создано: 10 февраля 2012 21:43 · Поправил: vptrlx New!
Цитата · Личное сообщение · #19

вообще самый действенный способ посмотреть на работу своего кода -- это трассировка нормального вызова ReadProcessMemory и сравнение с приведённым кодом.
внимательно вчитываться всем всё равно лень.

//скорее всего баги в сдвигах стека

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 11 февраля 2012 00:32 New!
Цитата · Личное сообщение · #20

vptrlxблин ну не настолько же я тупой( я оттрасировал. вот код компилятор фасм.


format PE GUI 4.0
include '%fasminc%\win32a.inc'
include '%fasminc%\macro\if.inc'

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;; .code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

section '.code' code readable writeable executable
processID dd ?
gameProcess dd ?
MessageText db "Запусти сначала игру", 0
MessageCaption db "Wrong", 0
ProcessName db 'winmine.exe', 0
Priv db "SeDebugPrivilege",0

buffer dd ?
address dd 01003E21h,0


entry $
call EnableDebugPrivilege
call FindProcess
cmp [processID],0
.if eax=00000000h
invoke MessageBox, NULL, MessageText, MessageCaption, MB_OK
invoke ExitProcess,eax
.endif
invoke OpenProcess, PROCESS_ALL_ACCESS, 0, [processID]
mov [gameProcess],eax
call ReadProcessMemory@
invoke ExitProcess,0

;================== inject code ==========================================
proc ReadProcessMemory@



mov eax, 0bah
push 0
push 4
push buffer
push DWORD[address]
push DWORD [gameProcess]
push lab



invoke KiFastSystemCall ; так пашет


;mov edx,esp ; а вот так нет
;SYSENTER ;


lab:
ret
endp
;======================= EnableDebugPrivilege =========================
proc EnableDebugPrivilege
push ebp
mov ebp, esp
sub esp, 24h
invoke OpenProcessToken, -1, 28h, esp
test eax, eax
jz @F
lea eax, [esp+8]
invoke LookupPrivilegeValue, 0, Priv, eax
test eax, eax
jz @F
mov dword [esp+14h], 1
mov eax, [esp+8]
mov [esp+18h], eax
mov eax, [esp+0Ch]
mov [esp+1Ch], eax
mov dword [esp+20h], 2
lea eax, [esp+10h]
push eax
lea eax, [esp+18h]
push eax
push 10h
lea eax, [esp+20h]
push eax
push 0
mov eax, [esp+14h]
push eax
call [AdjustTokenPrivileges]
@@:
leave
ret
endp
;============================ FindProcess ==================================
proc FindProcess
push ebp
mov ebp, esp
sub esp, 13Ch
push esi
mov dword [ebp-13Ch], 128h
invoke CreateToolhelp32Snapshot, 2, 0
mov esi, eax
cmp eax, -1
jz @F
lea eax, [ebp-13Ch]
invoke Process32First, esi, eax
test eax, eax
jz @F
bb:
lea eax, [ebp-118h]
invoke lstrcmpi, eax, ProcessName
test eax, eax
jz pFound
lea eax, [ebp-13Ch]
invoke Process32Next, esi, eax
test eax, eax
jz @F
jmp bb
@@:
pop esi
leave
ret
pFound:
mov eax, [ebp-308]
mov [processID],eax
jmp @B
endp

;============================ search =======================================

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;; .idata ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
section '.idata' import data readable

library kernel32, 'kernel32.dll', advapi32, 'advapi32.dll', user32, 'user32.dll',ntdll, 'ntdll.dll'

include '%fasminc%\api\kernel32.inc'
include '%fasminc%\api\advapi32.inc'
include '%fasminc%\api\user32.inc'
include '%fasminc%\ntdll.inc'

ARCHANGELы же, видимо, хотите эмульнуть какую-то Native API, чтоб... не знаю, зачем оно вам надо. Но хотите sysenter юзать в ринг3. Но задачка абсолютно несложная

подскажи пжл путь к этой задачке


Ранг: 646.0 (!)
Статус: Участник
ALIEN Hack Team

Создано: 11 февраля 2012 00:48 New!
Цитата · Личное сообщение · #21

tiranosaur
ехе скомпиленный выложите. Бинарь, PE-файл.

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 11 февраля 2012 02:18 New!
Цитата · Личное сообщение · #22

вот

{ Атач доступен только для участников форума } - Текстовый документ.exe

Ранг: 14.7 (новичок)
Статус: Участник

Создано: 11 февраля 2012 02:21 · Поправил: tiranosaur New!
Цитата · Личное сообщение · #23

а вот нерабочий. для чтения используется сапер

{ Атач доступен только для участников форума } - Текстовый документ.exe

Ранг: 215.3 (наставник)
Статус: Участник

Создано: 11 февраля 2012 02:55 New!
Цитата · Личное сообщение · #24

Бинари пока не смотрел.
По исходникам - код не эквивалентный:

Code:
  1. invoke KiFastSystemCall ; так пашет
  2.  
  3. ;mov edx,esp ; а вот так нет
  4. ;SYSENTER ;


KiFastSystemCall выглядит примерно так:
Code:
  1. MOV EDX, ESP
  2. SYSENTER
  3. RETN

В стеке на момент вызова SYSENTER при этом будет:
ESP ---> <адрес возврата, занесённый call KiFastSystemCall> <адрес возврата, занесённый тобой, push lab> <...>

А при твоём коде без вызова KiFastSystemCall, получается:
ESP ---> <адрес возврата, занесённый тобой, push lab> <...>

Стэк в разном состоянии, поэтому и не работает ничего.
Попробуй ещё один push lab добавить.

| Сообщение посчитали полезным: tiranosaur


Ранг: 14.7 (новичок)
Статус: Участник

Создано: 11 февраля 2012 12:45 · Поправил: tiranosaur New!
Цитата · Личное сообщение · #25

cppasm пасибо чувак. проверил стек еще раз. все пашет


Ранг: 481.4 (мудрец)
Статус: Участник
Тот самый :)

Создано: 13 февраля 2012 14:16 · Поправил: Hexxx New!
Цитата · Личное сообщение · #26

Ага, на x86 будет работать, только лососнете тунца на wow64

Ранг: 56.1 (постоянный)
Статус: Участник

Создано: 13 февраля 2012 15:16 · Поправил: vptrlx New!
Цитата · Личное сообщение · #27

Hexxx пишет:
Ага, на x86 будет работать, только лососнете тунца на wow64

и на амиге, скорее всего, обломится. мне кажется, не надо парашютисту вместо парашюта санки выдавать.

add: то есть, 1) вообще нефиг самому sysenter юзать и 2) разводить софистику на эту тему можно бесконечно.


Ранг: 315.6 (мудрец)
Статус: Участник
born to be evil

Создано: 14 февраля 2012 00:54 New!
Цитата · Личное сообщение · #28

vptrlx
топикстартер творит чисто какую-то ботву под вин32, или нифига не понимает "радости" таких вызовов. ничего более

| Сообщение посчитали полезным: plutos



Ранг: 481.4 (мудрец)
Статус: Участник
Тот самый :)

Создано: 14 февраля 2012 10:39 New!
Цитата · Личное сообщение · #29

vptrlx пишет:
и на амиге, скорее всего, обломится

(палец вниз)
Угу, только x64 виндов уже где-то половина, и вероятность запуска на такой винде уже гораздо выше, чем запуск на амиге. Но вообще-то это был совет ТС, чтобы он думал наперед, а не хреначил sysenter, если не хочет иметь проблем с переходом на x64.

Ранг: 56.1 (постоянный)
Статус: Участник

Создано: 14 февраля 2012 11:45 New!
Цитата · Личное сообщение · #30

Hexxx пишет:
совет ТС, чтобы он думал наперед, а не хреначил sysenter, если не хочет иметь проблем с переходом на x64.


похожий совет был ещё выше:
vptrlx пишет:
Зачем вообще вдруг понадобилось использовать сисентер?


а проблемы будут даже и без перехода на x64. Например, в разных версиях номера сервисов разные.
. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› sysenter

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS