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

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

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

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

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



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

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

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




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

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

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

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

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




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

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

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




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

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

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

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

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




Ранг: 8.2 (гость), 1thx
Активность: 0.040.03
Статус: Участник

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

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





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

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

IOCTL_

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

-----
vx


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

Ранг: 8.2 (гость), 1thx
Активность: 0.040.03
Статус: Участник

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

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

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



Ранг: 18.9 (новичок), 4thx
Активность: 0.030.05
Статус: Участник

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

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

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



Ранг: 173.8 (ветеран), 208thx
Активность: 0.120.36
Статус: Участник

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

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

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

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

Ранг: 3.4 (гость), 3thx
Активность: 0=0
Статус: Участник

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

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

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


Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

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

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

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

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

-----
2 оттенка серого


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


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

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

f13nd

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

А есчо одновременно с этим появился вопрос в комерс васма про отличие вин от вайна. Походу он и есть автор запроса

-----
vx



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


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