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

Discussion in 'WASM.RESEARCH' started by Rel, Feb 18, 2022.

  1. f13nd

    f13nd Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 22, 2009
    Messages:
    2,020
    vb, два клика мышью и такое на экране.
    изображение_2022-02-26_144037.png
    Дотнет сначала dnspy'ем открыл, потому что почему бы нет.
     
  2. Indy_

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,788
    f13nd,

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

    f13nd Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 22, 2009
    Messages:
    2,020
    Да по ситуации, бряком на ShowWindow или ReadConsoleA, или еще на что-нибудь, смотря что там. Процесс творческий, местами даже интересный. Даже если бы и существовало универсальное решение, это превратилось бы в пустое рутинное дрочево.
     
    Artem_N and Indy_ like this.
  4. Rel

    Rel Well-Known Member

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

    Thetrik UA6527P

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

    f13nd Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 22, 2009
    Messages:
    2,020
    В курсе.
     
  7. Indy_

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,788
    f13nd,

    А это решишь ?

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

    Attached Files:

    • eset.7z
      File size:
      61.5 KB
      Views:
      179
  8. galenkane

    galenkane Active Member

    Blog Posts:
    0
    Joined:
    Jan 13, 2017
    Messages:
    317
    интересно когда индий свой инструмент выложит руками потискать на больших прогах
     
  9. Indy_

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,788
    f13nd,

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

    Attached Files:

    • lic.7z
      File size:
      29.7 KB
      Views:
      173
  10. f13nd

    f13nd Well-Known Member

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

    Attached Files:

    Indy_ likes this.
  11. Indy_

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,788
    f13nd,

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

    f13nd Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 22, 2009
    Messages:
    2,020
    А без мыши? А в жидком азоте? Все, хватит.
     
  13. Indy_

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,788
    f13nd,

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

    f13nd Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 22, 2009
    Messages:
    2,020
    Кому интересно? Мамкиным заливателям вареза? Протекторы это дрочево.
     
  15. Indy_

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,788
    f13nd,

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

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

    scr.png

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

    Attached Files:

    • c9.7z
      File size:
      198 KB
      Views:
      162
  16. ormoulu

    ormoulu Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 24, 2011
    Messages:
    1,206
    Инде, а как ваш софт в динамике строки с паролями находит? Другу надо :blush:
     
  17. Indy_

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,788
    ormoulu,

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

    ormoulu Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 24, 2011
    Messages:
    1,206
    Как-то и мысли не было, что там поиск, хотя...

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

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,788
    Тут нашёл много семплов.

    ormoulu,

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

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

    1.png

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

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

    scr.png

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

    scr.png

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

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

    Attached Files:

    • arm.7z
      File size:
      481.5 KB
      Views:
      188
    • exec.7z
      File size:
      87.1 KB
      Views:
      181
    • pec.7z
      File size:
      433.9 KB
      Views:
      185
  20. ormoulu

    ormoulu Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 24, 2011
    Messages:
    1,206
    Вручную?

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

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