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

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

  1. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    vb, два клика мышью и такое на экране.
    изображение_2022-02-26_144037.png
    Дотнет сначала dnspy'ем открыл, потому что почему бы нет.
     
  2. Indy_

    Indy_ Well-Known Member

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

    А если строки динамик, как тогда быть ?
    Или например модуль немного изменён, так что декомпилер не пройдёт ?
     
  3. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Да по ситуации, бряком на ShowWindow или ReadConsoleA, или еще на что-нибудь, смотря что там. Процесс творческий, местами даже интересный. Даже если бы и существовало универсальное решение, это превратилось бы в пустое рутинное дрочево.
     
    Artem_N и Indy_ нравится это.
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Нет, конечно, это же крекми, подразумевается, что крекми можно решить адекватным решением. Я изначально предполагал, что вы найдете нужный JMPF и пропатчите его NOP'ом (специально сделал просто очевидный NOP в ВМ, хотя ВМ само собой могла бы и без него обойтись). f13nd в первом раунде сделал то, что другие не смогли о чем я не подумал, а именно пропатчил хендлер инструкции JMPF инвертировав условие. Это сработало потому, что машина стековая, поэтому JMPF при вычисления хеша просто пропустился (хеш вообще не вычислялся), а второй JMPF (при проверке хеша) инвертировал условие. Во втором раунде я в прологе псевдо-кода вставил проверку семантики JMPF (помимо других минорных изменений, типа отсутствия свитча), то есть, что он не был пропатчен. Понятно, что это тоже можно было бы обойти патчем со счетчиком, но это такой веселый стаб, который должен был хотя бы улыбнуть. В итоге f13nd уже патчил псевдо-код, то есть решал так, как я изначально предполагал.
    --- Сообщение объединено, 26 фев 2022 ---
    Не, ну особо упоротые реверсеры могли бы и сбрутить хеш, там он по-сути 24-битный и довольно быстро должен вычисляться даже внутри ВМ.
     
  5. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    VB6 и 5 по дефолту компилят в натив так-то. Разницы нет что к примеру С что VB. Можно выставить компиляцию в P-код стековой машины, но это заметно замедляет программу. Байткод там состоит из одно или двухбайтового кода операции и операндов, передающихся в стеке. В стеке также возвращается результат. Можно даже заюзать виртуальную машину отдельно для своих нужд.
     
    VBOrion нравится это.
  6. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    В курсе.
     
  7. Indy_

    Indy_ Well-Known Member

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

    А это решишь ?

    У меня меньше минуты ушло :)
     

    Вложения:

    • eset.7z
      Размер файла:
      61,5 КБ
      Просмотров:
      145
  8. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    301
    интересно когда индий свой инструмент выложит руками потискать на больших прогах
     
  9. Indy_

    Indy_ Well-Known Member

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

    Вот есчо вроде обфускация. Попытаешься декомпилить ?
     

    Вложения:

    • lic.7z
      Размер файла:
      29,7 КБ
      Просмотров:
      139
  10. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Несколько дольше. С алфавитом из 0..9,a..z,A..Z получилось 1572480 вариантов. Это значит, что я 726180 раз могу подать заявку в антивирусники. А потом нарастить словарь другими печатными символами и задолбать их окончательно.
    --- Сообщение объединено, 27 фев 2022 ---
    А че нет-то, если да. С ходу нашел. Глазами. Вот эта длинная параша "result=..." проверка кея. Можно было бы разобраться, но лень, result=true сделал.
    изображение_2022-02-27_041010.png
     

    Вложения:

    • test.zip
      Размер файла:
      3,2 МБ
      Просмотров:
      160
    Indy_ нравится это.
  11. Indy_

    Indy_ Well-Known Member

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

    Я в динамике нашёл выше пасс crap. А если крэкми протектором накрыть, раскрутишь ?
     
  12. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    А без мыши? А в жидком азоте? Все, хватит.
     
  13. Indy_

    Indy_ Well-Known Member

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

    Выше все семплы без какой либо защиты, как раз интересно то где защита имеется.
     
  14. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Кому интересно? Мамкиным заливателям вареза? Протекторы это дрочево.
     
  15. Indy_

    Indy_ Well-Known Member

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

    Норм семплы трудно найти, кучу перебрал одна фигня. Они даже не смотрят на то что компилят, у большинства из тех что нэйтив строки открыты.

    Вот этот глянул, стандарт:

    scr.png

    Декомпиль пройдёт ?
     

    Вложения:

    • c9.7z
      Размер файла:
      198 КБ
      Просмотров:
      132
  16. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Инде, а как ваш софт в динамике строки с паролями находит? Другу надо :blush:
     
  17. Indy_

    Indy_ Well-Known Member

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

    Он не ищет строки, с чего ты решил что там поиск ?
     
  18. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Как-то и мысли не было, что там поиск, хотя...

    Попытаюсь перефразировать: как ваш софт определяет строку пароля.
     
  19. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Тут нашёл много семплов.

    ormoulu,

    Смотри пример.

    Строится кодовая карта и далее выводятся ветвления, которых в карте нет:

    1.png

    Далее если окружение посмотреть, то иногда можно найти пароли:

    2.png
    --- Сообщение объединено, 28 фев 2022 ---
    execrypt

    scr.png

    - первое с конца ветвление, следующее за сравнением 2-х регистров.
    --- Сообщение объединено, 28 фев 2022 ---
    pecompat

    scr.png

    f13nd,
    > Протекторы это дрочево.

    Вручную может быть :)
     

    Вложения:

    • arm.7z
      Размер файла:
      481,5 КБ
      Просмотров:
      162
    • exec.7z
      Размер файла:
      87,1 КБ
      Просмотров:
      155
    • pec.7z
      Размер файла:
      433,9 КБ
      Просмотров:
      153
  20. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Вручную?

    А можно ещё поинтересоваться, что есть в данном контексте кодовая карта? Просто в общепринятом это довольно высокоуровневая вещь.

    Подозреваю что нечто вроде динамического покрытия (dynamic code coverage), верно?