Сейчас на форуме: tyns777, bezumchik (+6 невидимых)

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

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

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

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




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

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

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



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

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

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



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

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

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




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

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

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




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

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

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

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

-----
Stuck to the plan, always think that we would stand up, never ran.


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


Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

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

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

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



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

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

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



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

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

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




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

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

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




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

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

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

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

-----
Give me a HANDLE and I will move the Earth.




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

Создано: 10 февраля 2012 13:36 · Поправил: tiranosaur
· Личное сообщение · #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 (посетитель), 11thx
Активность: 0.030
Статус: Участник

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

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



Ранг: 56.1 (постоянный), 9thx
Активность: 0.040
Статус: Участник

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

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




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

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

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



Ранг: 56.1 (постоянный), 9thx
Активность: 0.040
Статус: Участник

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

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

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

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

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

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




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

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

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

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

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

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

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

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 56.1 (постоянный), 9thx
Активность: 0.040
Статус: Участник

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

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

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



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

Создано: 11 февраля 2012 00:32
· Личное сообщение · #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. Но задачка абсолютно несложная

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




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

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

-----
Stuck to the plan, always think that we would stand up, never ran.




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

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

вот

1ac8_10.02.2012_EXELAB.rU.tgz - Текстовый документ.exe



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

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

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

5dab_10.02.2012_EXELAB.rU.tgz - Текстовый документ.exe



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 11 февраля 2012 02:55
· Личное сообщение · #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 (новичок)
Активность: 0.030
Статус: Участник

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

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



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

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

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

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 56.1 (постоянный), 9thx
Активность: 0.040
Статус: Участник

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

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

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

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




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

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

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

-----
От многой мудрости много скорби, и умножающий знание умножает печаль


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

Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

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

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

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

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 56.1 (постоянный), 9thx
Активность: 0.040
Статус: Участник

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

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


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


а проблемы будут даже и без перехода на x64. Например, в разных версиях номера сервисов разные.


. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› sysenter
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати