Перехват Апи функций сплайсингом

Тема в разделе "WASM.WIN32", создана пользователем Lex2029, 20 ноя 2007.

  1. Lex2029

    Lex2029 New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2007
    Сообщения:
    199
    Всем привет!
    Как написано, я должен записать в первые несколько байт процедуры, длинный переход. Так вот, как мне его записать? Если я записываю сам код, jmp @label, то у меня записывается короткий переход. и соответственно ничего не работает. Как записать длинный переход? Пробовал FFh,25h, тоже куда-то не туда он прыгает :dntknw:
     
  2. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Адрес ес-но правильно вычислен?

    P.S. Прекращайте засорять форум!
     
  3. Lex2029

    Lex2029 New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2007
    Сообщения:
    199
    Адрес начала оригинальной функции вычислил правильно. На отладчике видно. Но вот что туда записать нужно, чтоб сделать прыжок на мою функцию, я так и не понял :dntknw:

    PS: В смысле не засорять? Вы про то, что я по каждому вопросу, отдельную тему создаю? Мне кажется так наоборот гараздо лучше, другим людям будет гараздо проще найти ответы, и им не придется создавать новые темы. Каждому вопросу своя тема :)
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Lex2029
    У тебя справочник опкодов есть? Он есть в пакете с масмом например. Посмотри jmp far.
     
  5. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    я обычно пишу mov eax, adrr; jmp eax т.е.
    Код (Text):
    1. db B8
    2. dd addr
    3. db FF, E0
     
  6. Lex2029

    Lex2029 New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2007
    Сообщения:
    199
    Что-то я не очень понял, как с этой таблицей опкодов работать...
    Вот есть про фар прыжок
    EA cd JMP ptr16:16 Jump far, absolute, address given in operand
    EA cp JMP ptr16:32 Jump far, absolute, address given in operand
    FF /5 JMP m16:16 Jump far, absolute indirect, address given in m16:16
    FF /5 JMP m16:32 Jump far, absolute indirect, address given in m16:32

    Что это значит?

    И еще nobodyzzz, расскажи что это у тебя написано? :)
     
  7. apple

    apple Виктор

    Публикаций:
    0
    Регистрация:
    26 апр 2005
    Сообщения:
    907
    Адрес:
    Russia
    http://rsdn.ru/article/baseserv/IntercetionAPI.xml
     
  8. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Так не лучше другим по простой причине: все Ваши вопросы спрашивались уже ни один и ни два раза.
     
  9. apple

    apple Виктор

    Публикаций:
    0
    Регистрация:
    26 апр 2005
    Сообщения:
    907
    Адрес:
    Russia
    Давайте сделаем FAQ.
     
  10. Lex2029

    Lex2029 New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2007
    Сообщения:
    199
    Я ничего не понимаю! В каждом примере, совершенно разные коды команды jmp

    mov eax, adrr; jmp eax т.е. - это мне вообще не понятно.
    опкоды масма, там тоже куча всего, и ничего толкового.
    Пример с рсдн, там 0х68
    Когда я ставлю в своей программе jmp, то отладчик показывает FF25

    Как тут понять?
     
  11. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Lex2029
    Почитай статьи на этом сайте о заклинании кода, много чего проясниться.
     
  12. Lex2029

    Lex2029 New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2007
    Сообщения:
    199
    в смысле заклинании кода?
    Я тут уже все что нашел про перехват апи перечитал.
    Скажите просто,какие байты у jmp? И (именно И, а не или) Где это можно узнать :)
     
  13. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Lex2029
    Ну вот же:http://wasm.ru/publist.php?list=11
    Там ниже про заклинание.
     
  14. Lex2029

    Lex2029 New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2007
    Сообщения:
    199
    Блин :) Клево :))) Так интересно читается, спасибо.

    И кстати, записал команду
    FF и адрес процедуры моей.
    Отладчик пишет: Jump Far 00104005, число правильное, я сейчас делаю не для удаленного процесса, а просто для своего. Но вот, на этом шаге программа виснет.
     
  15. Lex2029

    Lex2029 New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2007
    Сообщения:
    199
    Мда... Проблема была в том, что Jump addres, не работает!
    А вот push addres ret - работает!

    Вот и все что я хотел узнать :)

    Прочитая мой первый пост, ответ для тех, у кого такие же проблемы:
    Используйте конструкцию push адрес ret, вместо первых 6-и быйт оригинального обработчика!
     
  16. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Lex2029
    Чего? Всегда работало, а теперь вдруг нет?
     
  17. Lex2029

    Lex2029 New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2007
    Сообщения:
    199
    Ну я пробовал штуки 4 разных машинных кода jump. Брал в основном из источников, которые вы давали. И всегда в отладчике эти коды превращались, то в Far Jump, и прыгали хз куда, то в near, и и т.п.
    А сейчас, адрес прыжка я не менял, просто поставил push/ret и сразу заработала вся программа, которая давольно много чего делает :)
     
  18. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Новое постановление вышло.
     
  19. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    проблема скорее всего в том, что ты некорректно вычисляешь адрес и, соответственно, машинный код
     
  20. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    Мдаааа...
    Парни, пипец нам тогда... раз уж jmp работать перестал... надеюсь это не заразно :)
    Так что берегите ret как зеницу ока :)