Посоветуйте дизассемблер длин для х86

Тема в разделе "WASM.SOURCES & 2LZ", создана пользователем M0rg0t, 5 сен 2020.

  1. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.574
    Собственно, сабж. Посоветуйте какой-то годный и несложный дизасм длин. Желательно размером поменьше (в идеале - инклуд в проект, или хотя бы 1 дллка).

    Смотрел zydis, его многие хвалят (в т.ч. HoShiMin ), но как по мне, он огромен - еще и тащит какую-то свою либу с типами и прочим. Другие крупные проекты тоже не особо - мне не нужен ARM или какой-то AVX , просто обычный интел 386.

    Еще видел упоминания какого-то дизассемблера от Indy_ , но не пойму о чем речь, в проектах Инди юзается какой-то другой (не его) дизасм на масме.
     
    GRAFik нравится это.
  2. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    https://github.com/TsudaKageyu/minhook/tree/master/src/hde

    А вообще, в Zydis'e можно отключить всё лишнее (поддержку AVX, форматирование инструкций и т.д.) и будет компактный дизасм - всё настраивается флажками в CMake.
     
    GRAFik и M0rg0t нравится это.
  3. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.574
    HoShiMin, спасибо, этот хорошо выглядит; Minhook юзал немного, хорошая либа. Еще вашу либу не тестил (HookLib которая); там тоже вроде надо качать весь Zydis?
     
  4. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    Да, но тоже можно отключить лишнее - от зайдиса требуется лишь узнать длину и RIP-относительная ли инструкция.
     
  5. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.574
    HoShiMin, не собирается у меня HookLib. Делаю как - git clone --recursive, открываю солюшен; дальше меняю toolset на vc140 (15 студия). И куча ошибок.
    Код (Text):
    1. \hooklib.c(76): error C2061: syntax error: identifier 'CLIENT_ID'
    Zydis тоже не собирается, пишет
    Код (Text):
    1. RC : fatal error RC1106: invalid option: -ologo
    Может есть релиз версия дллки и либ файла, для юзермода, потестить? Или надо собирать 2019 студией?
     
  6. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    Странно, CLIENT_ID ведь объявлен в winternl.h...
    От версии студии тоже зависеть не должно: ничего специфичного для 17й или 19й там нет.
     
  7. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.574
    У меня такого нет, вот файл c:\Program Files (x86)\Windows Kits\8.1\Include\um\winternl.h , в нем нет структуры (или что это) CLIENT_ID. Этот сайт тоже про такое не знает https://www.magnumdb.com/search?q=CLIENT_ID
    --- Сообщение объединено, 6 сен 2020 ---
    HoShiMin, а вот в 2019 студии (SDK 10.0...) уже это объявлено.
    --- Сообщение объединено, 6 сен 2020 ---
    Короче разобрался; надо библиотеку билдить с помощью 10.0 windows kit'a, а Zydis собирать сугубо cmake , т.к.через студию он глючит.
     
  8. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    M0rg0t,

    Используй ксед, зачем тебе левый глючный самопал. Ксед табличный быстрый диз вендора(intel). Либы для патча это унылое говно, при патче необходимо пересобирать код в буфер, они это не делают.
    --- Сообщение объединено, 6 сен 2020 ---
    Я тоже искал https://exelab.ru/f/?action=vthread&forum=3&topic=24393&page=0

    Ничего лучше кседа нет и быть не может в принципе, тк это диз вендора.
     
    M0rg0t нравится это.
  9. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.241
    Что делать?
     
  10. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Rel,

    От начала создавать граф и билдить в буфер, с места патча ветвление в буфер. Иначе никак.
     
  11. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.241
    Ну ты имеешь ввиду, что там в первых 5-10 байтах функции может быть джамп или колл?
     
  12. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Rel,

    Может быть ветвление на изменённый код. Поэтому нужно целиком пересобирать процедуру, она будет вся в буфере. Примитивная древняя тема.

    Если помнишь по этой причине не удалось пропатчить твой семпл, когда автоматика пересобирала налету твой com-кодес. Нельзя было переписать из за размера инструкции.
     
  13. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.241
    А, понятно. Ну мне кажется, это весьма редкая ситуация, вероятностью возникновения которой ну в принципе можно и пренебречь.
     
  14. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Rel,

    А если будут условные конструкции в начале ?

    Тогда и вовсе патч не прокатит. Это общим путём решается конструктором(ребилдом всей процедуры), а не колхозится тупо копированием начала, причём есчо и асинхронным наверно.
    --- Сообщение объединено, 6 сен 2020 ---
    Rel,

    https://wasm.in/threads/protektor-dlja-net-pe.33289/#post-410022

    - твоя тема.

    Не понимаю зачем скрывать акк, это делает невозможным поиск. Толку никакого от ограничения доступа, лишь трудности при поиске тем.
     
  15. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.241
    Я уже писал тебе об этом, я так сделал, чтобы мне всякие мамкины кулхацкеры не спамили в личку с предложениями нелепой работы.
    --- Сообщение объединено, 6 сен 2020 ---
    Ну какая по твоему вероятность, что первые пять байт функции будут иметь условные переходы? Или на них буду переходы из тела самой функции?
     
  16. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Rel,

    Случайным образом выбранный семпл не удалось решить из за конструкции типо xor r,r/ret/new_proc твоя тема ссылка выше. Вот ты сам себе и ответил какая вероятность.

    И вообще вероятность ошибки должна быть исключена на этапе разработки.
     
  17. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.241
    Ну в идеальном мире да, но у тебя самого как бы тоже был ни один проект, который на костылях работал.
     
  18. RETN

    RETN Member

    Публикаций:
    4
    Регистрация:
    4 апр 2020
    Сообщения:
    74
    Для сплайсов меня такой устраивает дизасм длин, толи он был от Ms'Rem то ли от 24A, подправил там чуть, годно и пашет отлично, размер минимальный Си хидер:
     

    Вложения:

    • disassm.7z
      Размер файла:
      1,4 КБ
      Просмотров:
      268
    Последнее редактирование модератором: 7 сен 2020
  19. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    В соседней теме вернули 2007й и WinXP, а у тебя хедер под стать: мало того, что невозможно понять, что там происходит, так он ещё и соберётся только в 32х-битной сборке и подойдёт только для 32х-битного кода.
    Идеально для XP!

    P.S.: Sleep(1)-то зачем?
     
    Rel нравится это.
  20. RETN

    RETN Member

    Публикаций:
    4
    Регистрация:
    4 апр 2020
    Сообщения:
    74
    HoShiMin,
    Во первых:
    ТС надо было x86, читай топ внематочно.
    Зачем слип там - угадай))
    В третьих - при чем тут система, какая хрен разница какая винда, интел маны просто читай....
    Лучше чем на клаву бездумно жать -0 помоги статьи писать типа того: http://ufolabs44qi3pr77.onion/search/12235/
    и этих:
    https://wasm.in/search/27982071/
    https://wasm.in/search/27982090/
     
    Последнее редактирование модератором: 7 сен 2020