дизассемблер и хакинг в одной программе

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by xverizex, 24 Nov 2019.

  1. xverizex

    xverizex New Member

    Joined:
    3 Jul 2017
    Messages:
    7
    Likes Received:
    0
    Reputations:
    2
    Всем привет. Я развиваю одну программу. Это дизассемблер. Пока я писал дизассемблер я придумал одну вещь. В общем я ещё развиваю функционал такой, можно встроить свои команды в середину кода, другие команды сместятся и указатели у этих команд тоже сместятся. Можно например взять готовую программу, выбрать функцию в этой программе и встроить свой код в начало этой функции. Увеличиться размер секции кода и создастся новый файл, в котором будет выполняться уже код. Я пишу под линукс. Пока что работаю с elf форматом. Но потом хочу добавить ещё и windows формат и java. Я хотел бы узнать, может у вас есть какие нибудь идеи насчёт софта, ну что можно добавить в дизассемблер?
    Вот снимок с экрана, на нём видно вывод сначала обычного кода, а потом изменённого, и эта программа работает также, как если бы её написали с нуля.
    [​IMG]
     
  2. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    627
    Likes Received:
    6,676
    Reputations:
    15
    Релоки еще не забудь что надо пересчитывать. Если изменится размер секции-надо и ресурсы перепаковывать. В общем там немношько придется повозиться с PE форматом по крайней мере.
    Эльфов не знаю пока, не разбирал эльфов.

    В сущности "что можно добавить" - так это сделать аналог IDA :) Отслеживать неочевидные переходы. Что будет если я прыгну jmp eax где eax - середина текущей инструкции ? Как это дизассемблировать ? :)

    Все зависит от задачи. Добавить можно много чего, только желательно-бы знать конечную цель.
     
  3. xverizex

    xverizex New Member

    Joined:
    3 Jul 2017
    Messages:
    7
    Likes Received:
    0
    Reputations:
    2
    О я даже и не подумал что так код можно зашифровать. Но я уже придумал как это можно дизассемблировать.

    Я пока с pe не работал, там ресурсы тоже в секциях находятся? Если да, то не проблема. Хотя я не видел как используются ресурсы, но наверняка с помощью указателей на ресурс.

    Я также думал что в этой моей же программе будет генератор шеллкодов. То есть пишешь на асме код, и он генерирует для си шеллкод. Пока что в планах была реализация для intel и mips.

    Я изучаю исходники dnsmasq с версией где есть уязвимость. Так в инете написано. Мой роутер использует эту программу. Я хочу найти её в исходном коде, но пока не получается, неделю изучал, теперь понял где принимаются данные, теперь надо понять что в этом коде не так. Потом надо посмотреть в дизасме как выглядит код этой программы и найти где будет применятся шеллкод, посмотреть ( а блин, в дизасме же не доступен стек ), хотя может можно и без стека сделать. Такие трудные задачи. Но со временем думаю справлюсь.
     
  4. #colorblind

    #colorblind Elder - Старейшина

    Joined:
    31 Jan 2014
    Messages:
    603
    Likes Received:
    222
    Reputations:
    36
    Пиздец, товарищи
     
  5. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    627
    Likes Received:
    6,676
    Reputations:
    15
    Чо ? В учебных целях точно пригодится, а там глядишь пригодится чтобы нашлепать дизассемблер длин.

    А когда у тебя есть дизассемблер длин - можно красиво ставить хуки.

    А когда ты можешь красиво ставить хуки, раздвигать секции, генерить мусор и что-то ассемблировать - ты можешь написать как минимум
    неплохой упаковщик... с функцией виртуализации (кхм) + полезными авторскими дополнениями без которых пользователь жить не может и пошло оно поехало.

    Ну а если заняться запихиванием инструкций в граф, балансировкой дерева, отслеживанием скачек по коду, скриптовым языком и прочими вкусностями - тогда уже
    можно начинать наконец-то жить полноценной половой жизнью, выбрать себе красивый ник и начинать выебываться :)
    ==================
    С чего-то же надо начинать. Свой ламповый дизасм - неплохое начало.
     
Loading...