Расчехляйте свои визоры!

Тема в разделе "WASM.RESEARCH", создана пользователем Rel, 18 фев 2022.

  1. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Все инструменты кроме визоров примитивны, как те же "отладчики юзер мод".
     
  2. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Спрошу здесь, чтобы не создавать тему.

    Востанавливается ли гипотетически исходный код C++ программы, если асмовский файл прогнанный через IDA 6.8 (Windows вариант программы) в метках ассемблерного кода показывает их "имена".
    "Гипотетически" - т.к. есть предыдущие исходники слитой программы с "мета информацией" и возможность их сборки как под Windows так и под Linux и возможно как то использовать для озвученного вопроса.

    P.S. Утёкшие исходники Opera Presto 12.15 нормaльно собираются под Linux, но они менее функциональны от exe версии программы 12.18 под Windows отсюда и такой странный вопрос выше по возможности совмещения сделанного в варианте 12.18 под Windows (на сайте Opera можно её взять) от 12.15 (собираемых исходников) и под Linux.
    --- Сообщение объединено, 5 мар 2022 ---
    Тема обсуждения использования Opera 12.18 на сайте уже в 27-ой части http://forum.ru-board.com/topic.cgi?forum=5&topic=50403&start=0

    P.S. Хочется иметь предсказуемый браузер с возможностью каких то его изменений для дополнения контролируемой дополнительной функциональностью и легко собираемый с поддержкой хорошей совместимостью со стандартами i-net и возможностью контроля его "стрессоустойчивости" в среде использования в i-net.
    --- Сообщение объединено, 5 мар 2022 ---
    Opera Presto к тому же собирается в один исполняемый файл под Linux с парой-тройкой дополнительных so библиотек.
     
    Последнее редактирование: 5 мар 2022
  3. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Да, и нет.
    Сразу скажу, что инструментов для полностью автоматического восстановления исходного кода я не знаю. Это по большей части ручная работа.
    Со 100% идентичностью исходник восстановить невозможно, если этот исходник сам не был машинно сгенерен.
    Можно восстановить исходник до 100% идентичности скомпиленного бинарника, при условии что не применяются какие-нибудь подписи, шифрование, обфускация. Тут есть нюанс что по мере приближения к 100% оригинала трудозатраты по восстановлению возрастают геометрически.
    В абсолютном большинстве практических задач цели восстановить до 100% не стоит. Выдергивается, как правило, какой-то алгоритм, функциональость, апи.

    В вышеописанной ситуации - мое личное мнение - восстановление исходников до идентичности не нужно, даже вредно. Иначе можно уйти в некрофилию, как один местный любитель XP.
    Нужно на основе имеющегося кода развивать собственный браузер в опенсорсе (да я в курсе что код проприетарный, думаю эта проблема решаема если официально ничего не регистрировать и не хранить на ресурсах гугла, M$ и иже с ними). Как раз в этом случае вся необходимая функциональность при желании выдергивается и добавляется.
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Друзья, го третий раунд! В этот раз вас ждет мистер "навесной протектор" и мистер "полноценный антидамп" (или как там было). Заранее прошу сильно ногами не пинать, сами понимаете я высокоуровневый магл и в этих ваших лоу-левелах не особо шарю, просто интересно было попробовать такую штуку сделать и посмотреть за сколько милисекунд ее спецы разберут и сломают. Дополнительный плюсик в респект, если это можно решить автоматикой, а не в ручную примитивными "отладчиками юзер мод". Шифрование данных пейлоуда там тоже номинальное и дополнительной обфускации тоже никакой нет, чтобы особо спецов не напрягать и можно было бы решить, так как я предполагаю это должно решаться (но это не отменяет "наивных программистских ошибок цэшного мышления", так что альтернативные пути решения тоже приветствуются). Ну и да, тестил на десятке и семерке, так что сорян, если на хр не заведется, и, наверняка, где то мог упустить какой-то баг, так что пишите, если какой косяк, может походу дела пофикшу.
     

    Вложения:

    • antidump.zip
      Размер файла:
      3,2 КБ
      Просмотров:
      920
  5. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Закономерный финал: своя поделка выкинута нахрен и начался спешиал олимпикс по прикручиванию навесных протов. Прот расшифровывает по одной инструкции и упираясь в дорожку из int3 обработчиком исключений чистит и вываливает следующую инструкцию. Весь крекмис на экране, дальше можно эту детскую хеш-функцию выписать и сбрутить слово из трех букв, хеш которого окажется 0xFABA414. Но тупо не хочу.
    изображение_2022-03-06_191643.png
     
  6. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Эх... не удастся, видимо, менеджеру побарыжить говнопротом на ниме и что-нибудь себе позволить... :)
     
  7. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Так ты же сам хотел чего-то другого во втором раунде, жаловался, что мало что поменялось. И ты опять не доволен, странные вы - спецы, не угодишь вам.

    Ну можно было бы пропатчить jne в заксоренном кодесе (или в открытом). Автоматикой решал или с помощью примитивный "отладчиков юзермод"? Вангую, что просто занопил кодец, который int3 для предыдущей инструкции возвращает.
     
  8. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Я не жаловался. Было сказано, что теперь будет еще больше такого-то гавна и больше вот этого гавна, а его там не особо больше было.
    Может и можно пропатчить, вообще не смотрел это. Плевать.
    Это не вангование, а капитанствование. Вообще первой мыслью было вот это недоразумение заабузить:
    Код (Text):
    1. 0060F84C  30 30 36 30 66 38 33 63 20 38 39 65 35 20 20 20  0060f83c 89e5
    2. 0060F85C  20 20 20 20 20 20 20 20 20 6D 6F 76 20 20 20 20           mov
    3. 0060F86C  20 65 62 70 2C 65 73 70 0A 00 00 00 17 11 77 00   ebp,esp......w.
    Код (Text):
    1. 0060F84C  30 30 36 30 66 38 33 63 20 35 33 20 20 20 20 20  0060f83c 53  
    2. 0060F85C  20 20 20 20 20 20 20 20 20 70 75 73 68 20 20 20           push
    3. 0060F86C  20 65 62 78 0A 00 E5 76 00 00 00 00 19 11 77 00   ebx..åv......w.
    За каким-то смыслом прот то ли ассемблирует код ($134D, esp+0x20), то ли дизассемблирует. Но лень было изучать как это в ексодии делается.
     
    Последнее редактирование модератором: 7 мар 2022
  9. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Там дизассемблер используется из dbgeng, чтобы длину инструкции получить, если я правильно понял, о чем ты, щас нет под рукой компа, чтобы посмотреть указанное смещение.

    Вообще, мне, конечно, не очень нравится решение брутить хеш, даже зная, что хеш предельно простой и быстро считается, это не красиво. По поводу автоматизации я думал, что можно разобраться в функции дешифрования и проэмулировать ее вызов для всей секции текста (остальные секции не шифрованные), благо для той же IDA и x86 уже были проекты, которые позволяли такое делать (хотя я не делал сам). То есть даже реверсить алгоритм по большему счету не надо, ну да ладно.
     
    Последнее редактирование модератором: 7 мар 2022
    M0rg0t нравится это.
  10. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Крелк просил передать кому-то файл, зачем-то здесь. Пароль: vx
    https://dropmefiles.com/HAIhP

    Еле нашел что именно там надо было смотреть (Dy.exe), не понял что там надо ломать. Данную штуку наблюдал в 0x402000:
    Код (Text):
    1.     invoke AllocConsole
    2.     invoke SetConsoleTitle, addr $App
    3.     invoke GetStdHandle, STD_OUTPUT_HANDLE
    4.     mov ebx,eax
    5.     invoke ZwQueryVirtualMemory, NtCurrentProcess, Check, MemoryBasicInformation, addr Mm, sizeof(MEMORY_BASIC_INFORMATION), NULL
    6.     invoke RtlpPeHeaderHash, Mm.BaseAddress, Mm.RegionSize
    7.     xor eax,edx
    8.     mov edx,eax
    9.     invoke udw2str, Edx, addr Buffer
    10.     invoke WriteConsole, Ebx, addr $M1, lengthof $M1, addr N, 0
    11.     invoke WriteConsole, Ebx, addr Buffer, lengthof $M1, addr N, 0
    помещается по одной инструкции с джампом за ней и исполняется. В принципе все то же самое, и если бы было чего чинить, починилось бы без особого труда.
     
  11. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Он в бане штоль отбывает?
     
  12. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
     
  13. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Шифруется от аверов и ментов, наверное.