Реверсинг. Задай вопрос - получи ответ

Discussion in 'Реверсинг' started by 0x0c0de, 2 Sep 2007.

  1. neviens

    neviens Member

    Joined:
    9 Oct 2013
    Messages:
    82
    Likes Received:
    28
    Reputations:
    3
    Там примерно такое:
    substr(md5(SN + swapSalt("d44fb0960aa0-a5e6-4a30-250f-6d2df50a")));
    , где
    swapSalt("d44fb0960aa0-a5e6-4a30-250f-6d2df50a") == "6d2df50a-250f-4a30-a5e6-d44fb0960aa0"
    , но md5 всёравно не совпадает.
    Есть возможность залить обратно и запустить пропатченный (sprint() -> printf()) файл?
    Тогда можно было бы посмотреть, именно какая строка хешируется.
     
  2. AbakBarama

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

    Joined:
    25 Sep 2010
    Messages:
    349
    Likes Received:
    298
    Reputations:
    51
    Это потому, что товарищ в серийнике лишнюю тройку написал. А алгоритм - да, такой. В соли фрагменты строки идут в обратном порядке.
     
  3. userlogoff

    userlogoff New Member

    Joined:
    10 Dec 2015
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Wow, сейчас только заметил. Точно, тройка там одна лишняя.
     
  4. userlogoff

    userlogoff New Member

    Joined:
    10 Dec 2015
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Вообщем, ребят, спасибо всем помогавшим! Генератор радует людей (http://jsfiddle.net/p0rsche/tqz3eqru/)
    Вопрос вдогонку - посоветуйте чтиво по IDA хорошее, ну и в целом по реверсу. Гугль, конечно, много всего знает, но мусора там полно.
     
  5. Jup1ter_

    Jup1ter_ New Member

    Joined:
    27 Nov 2015
    Messages:
    19
    Likes Received:
    4
    Reputations:
    6
    http://rghost.ru/6xsWgx9cj
    http://rghost.ru/8B8GskQvg
     
  6. tekton

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

    Joined:
    2 Jun 2008
    Messages:
    73
    Likes Received:
    3
    Reputations:
    0
    Приветствую всех.
    Такой вопрос.
    Хочу разобраться как работает такое.
    Например есть программа, она использует файлы лежащие в псевдоархиве.
    Задача такая.
    Отловить когда программа подгрузит псевдоархив, распакует файл в память и сбросить его на диск.
    Дождаться когда распакует следующий файл и опять сбросить его на диск.
    И при этом сохранить структуру папок.
    Подскажите алгоритм действий и API которые в этом процессе участвуют.

    P.S. Можно конечно ковырять сам псевдоархив, искать структуру (а если её и нет) как и что... но нужно именно из программы распаковать.
     
    #1066 tekton, 23 Dec 2015
    Last edited: 23 Dec 2015
  7. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    CreateFileMapping, CreateFile, ReadFile, WriteFile
     
    _________________________
    binarymaster likes this.
  8. neviens

    neviens Member

    Joined:
    9 Oct 2013
    Messages:
    82
    Likes Received:
    28
    Reputations:
    3
    Придётся ассемблер изучать, IDA моторолу не декомпилирует.
    Что такое "режим выработки имитовсатвки"?

    Прошивка грузится в IDA начиная с соответствующего начального адреса,
    также и дамп ОЗУ (ROM start address + RAM start address). Эти адреса надо
    сначала найти. Есть 2 способа:
    1. Разобрать схему дешифрации адреса.
    2. Грузить в ИДА в разные адреса, пока не получается правильный код и данные.

    Как искать Гост в коде, я уже писал в предыдущей странице.
    Для 68K сдвиг на 11 влево будет смотреться примерно так:
    Code:
    moveq  #$B,d1
    rol.l  d1,d0
    или, если компилятор придумал пооптимизировать что-то там, так:
    Code:
    moveq  #$15,d1
    ror.l  d1,d0
    Перед поиском весь код надо декомпилировать, естественно.
     
  9. neviens

    neviens Member

    Joined:
    9 Oct 2013
    Messages:
    82
    Likes Received:
    28
    Reputations:
    3
    Это он и есть.
    Очевидно исходный код на C написали универсальным и годным для процессоров без rol тоже.
    Code:
    (i << rolbits) | (i >> (sizeof(int) * 8 - rolbits))
    Там дальше должно быть что-то типа
    Code:
    moveq #$15,d2
    lsr.l d2,d3
    or.l d3,d0
    1. Разобрать, значит на плате с процессором по дорожкам проследить,
    каким образом формируется адресное пространство системы.
    2. Загрузить для начала код с нулевого адреса, а данные с 0х100000, например,
    и смотреть, находит ли ИДА ссылки. Если красным выделены,
    значит первое приближение неправильное. Находим младшие и старшие
    неправильные ссылки и в следующий раз грузим уже в эту область.
    С годами это уже делается подсознательно, и это труднее объяснить, чем сделать.
     
  10. neviens

    neviens Member

    Joined:
    9 Oct 2013
    Messages:
    82
    Likes Received:
    28
    Reputations:
    3
    Нет.
     
  11. zkodey

    zkodey New Member

    Joined:
    15 Feb 2016
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    может кто подскажет решение
    имеется 2 *.sli файла оригинал и измененный, в HEX редакторе нахожу отличия, а как перевести в более читаемый вид, чтоб отыскать нужное мне значение?
    заранее спасибо
     
  12. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
  13. toog

    toog New Member

    Joined:
    25 Feb 2016
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Исследую уязвимость ворда cve-2014-1761. Сгенерировал metasploit'ом вредоносный rtf-файл, при открытии которого отрабатывает полезная нагрузка, предоставляющая серверу доступ к командной строке компа, на котором был открыт файл. В чем проблема. Пытаюсь запустить под отладчиком. Хочу посмотреть где и что переполняет и т.п. Сама полезная нагрузка не так интересна, как непосредственно эксплуатация уязвимости (переполнение). Суть в том, что эксплойт отрабатывает только тогда, когда запускаешь сам rtf файл (при открытии из ворда, ничего не происходит). То есть открыть отладчиком winword.exe, а уже потом из него открыть rtf файл нельзя. Соответственно я не знаю, каким образом подключиться к процессу, до начала переполнения. Есть идеи?
     
  14. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Указать в отладчике путь к файлу как аргумент для запуска winword.exe
     
    _________________________
    toog likes this.
  15. Kroster

    Kroster New Member

    Joined:
    1 Feb 2016
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Ну в общем такое дело , нашел софт и решил сменить название заголовка и убрать копирайт . Но Т*ахаюсь уже целый день и в винхексе и в ольке. Ничего понять не могу . Вроде и софт на делфи но обфурсификация кода кажется присутствует .
    В общем кому не сложно помогите новичку.
    Вот линк https://yadi.sk/d/1n3BGvwspbqDW
    Если кто сможет просто оставить само название и снести копирайт . что-бы ни скайпов лишних не было просто чистый софт.
     
  16. p4tr3g

    p4tr3g New Member

    Joined:
    25 Nov 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Уважаемые форумчане, будьте любезны подсказать реально ли снять с dll защиту Themida:
    Exeinfo PE: - Themida & WinLicense 2.0 - 2.1 - struct (Hide from PE scanners II-V);
    RDG Packer Detector: (Possible) Themida + Secure Engine (Heuristic Detection).
    Сама либа: https://yadi.sk/d/5jXlPQkOqFLuW
    Взял StrongOD, PhantOM и ODbgScript. скрипты Themida - Winlicense Ultra Unpacker'ы (пробовал разные) говорят:
    EntryPoint is 0 = PE Header was selfmodded!
    Enable the option AdvEnumModule in your StrongOD Plugin and restart!
    На ВМ XP x32 по совету скрипта AdvEnumModule включаю - то же самое. На своей Win 7 x64 я ScyllaHide использую с настройками под Themida и реакция скрипта аналогична.
    Можно (нужно ли?) ли как-то восстановить EP в ней?
    Помогите, пожалуйста.
     
  17. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
    KIR@PRO and p4tr3g like this.
  18. p4tr3g

    p4tr3g New Member

    Joined:
    25 Nov 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Как распаковывается разобрался. Как найти VM OEP? Я так понимаю это первый шаг для девиртуализации.
    Direct VM OEP Address not found! - But is in use! -Rebuild Manually Push & JUMP Values!
    Как я понял vm oep найти тут не так просто. Там первый джамп на такое вот дело:
    PUSH EBP
    MOV EBP,ESP
    CMP DWORD PTR SS:[EBP+0xC],0x1
    JNZ SHORT main.61794BB7
    CALL main.617978E8
    Т.е. Oreans UnVirtualizer не помогает мне тут (или не знаю как).
    Можете что-нибудь посоветовать?
     
  19. MailMarket

    MailMarket New Member

    Joined:
    27 Nov 2015
    Messages:
    3
    Likes Received:
    0
    Reputations:
    6
    Подскажите где почитать про SEH
     
  20. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    _________________________