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

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


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

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

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

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

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

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

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

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

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

))) только я прогу пишу для себя. а под другие системы создать версии для них. кстати сисентер довольно забавная штукенция. особенно для инжекта. и проверить на какой винде и какие номера системных вызовов, а также какое прерывание используется, проблем не составит. я по-моему даже готовый код где-то видел.
Господа кодеры посоветуйте простенький метод IPC.
задача какая? внедряю код в процесс, не длл а код. код переносимый, проверял. мне нужно наладить простенький канал передачи строк между 2мя процессами. какой метод из всяких мьютексов пайпой самый простой в реализации( в инжектируемом коде)


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

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

Самый быстрый - разделяемая память+событие.

Добавлено
А по сложности - практически одинаково. Ну если только совсем какие-то экзотические способы не будете применять.

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

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

tiranosaur пишет:
самый простой в реализации( в инжектируемом коде)


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

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

tiranosaur пишет:
а также какое прерывание используется, проблем не составит

wow64 не использует прерывания. Это эмулятор. Он посылает нафиг тех, кто не дергает ntdll.dll, а пытается напрямую апи ядра вызывать.

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

Создано: 24 ноября 2018 00:31 · Поправил: IOCTL_ New!
Цитата · Личное сообщение · #6

Интересная темка. Только я вот что-то так и не понял, как пересесть с int 2E на SYSENTER...
Вот, например, рабочий код int 2E для хрюши. Как его на SYSENTER правильно переделать?
Code:
  1. mov eax,43h
  2. push HelloWorld
  3. lea edx, [esp]
  4. int 2Eh

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

Создано: 24 ноября 2018 07:49 · Поправил: difexacaw New!
Цитата · Личное сообщение · #7

IOCTL_

А что именно не понятно ?
Из за иного механизма возврата аргументы смещаются на стеке. Так реализовано, потому что при прерывании сохраняется его адрес(trap), а при sysenter источник вызова не известен. Поэтому и возврат происходит на фикс. адрес(из ядра, стаб который выполняет переход по рет), а адрес возврата передаётся через стек. Отсюда и смещение.

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


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

Создано: 24 ноября 2018 18:32 · Поправил: IOCTL_ New!
Цитата · Личное сообщение · #8

difexacaw
Всё ясно, спасибо!

Добавлено:
А вообще, что очень приятно, на этом форуме подход совершенно иной, чем на многих других форумах, на которых: запостил код, написал "памагите!" и тебе выдали рабочий вариант кода или ткнули носом в какую-то строчку, написав, мол, "должно быть вот так" без каких-либо пояснений. А здесь всё по-другому. Здесь учат думать. Спасибо!

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

Создано: 19 декабря 2018 21:53 · Поправил: Ate New!
Цитата · Личное сообщение · #9

Подскажите по аргументам syscall в х64 приложении
Из той информации что я нашел, они должны передаваться через регистры
Code:
  1. RDI 1 аргумент
  2. RSI 2  аргумент
  3. RDX 3  аргумент
  4. RCX 4  аргумент
  5. R8  5  аргумент
  6. R9  6 аргумент

остальные через стек.
Но когда смотрю в отладчике, то первыми используются rdx и rcx
Я не то накопал, или как? Мб ссылки по теме есть интересные?

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

Создано: 20 декабря 2018 13:01 New!
Цитата · Личное сообщение · #10

Ate пишет:
используются rdx и rcx

Если не ошибаюсь, то на Win64 юзаются как раз RCX, RDX, r8, r9, а если аргументов больше четырех остальные уходят в стек.

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


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

Создано: 20 декабря 2018 15:50 New!
Цитата · Личное сообщение · #11

https://docs.microsoft.com/en-us/cpp/build/x64-software-conventions?view=vs-2017
Секция Register volatility and preservation. Первые четыре аргумента идут через RCX, RDX, r8, r9

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



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

Создано: 20 декабря 2018 16:15 New!
Цитата · Личное сообщение · #12

VOLKOFF пишет:
Если не ошибаюсь, то на Win64 юзаются как раз RCX, RDX, r8, r9, а если аргументов больше четырех остальные уходят в стек.

subword пишет:
Первые четыре аргумента идут через RCX, RDX, r8, r9

Пассажир похоже имел в виду сисколл в линухе --> Link <--, верней накопал на линух, а в отладчике смотрит в винде. Как-то так.

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


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

Создано: 20 декабря 2018 18:08 · Поправил: difexacaw New!
Цитата · Личное сообщение · #13

f13nd

Это всё вайн голову морочит, он не понимает какая конвенция используется, а в гугле конечно же забанили. Наверно начал сам вайн разбирать, а там тоже сискалы линя. Это же что нужно вдуть что бы так напутать

А есчо одновременно с этим появился вопрос в комерс васма про отличие вин от вайна. Походу он и есть автор запроса
<< . 1 . 2 .
 eXeL@B —› Вопросы новичков —› sysenter

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

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