Обход проверок целостности файла

Тема в разделе "WASM.RESEARCH", создана пользователем evggrig, 22 окт 2010.

  1. evggrig

    evggrig New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2010
    Сообщения:
    12
    Недавно возникла необходимость поковырять одну программку на предмет ее русификации, поскольку автор русского интерфейса не предусмотрел. Оказалось, что кроме UPX (который легко снимается) автор навесил, на программу что-то еще поскольку распакованный и русифицированный файл работать отказывается (подозреваю, что каким-то образом проверяется целостность файла) Можно ли бороться с этими его происками?
    Да, речь идет об Ad Muncher - утилита для удаления всплывающих окон и баннерной рекламы.
    Скачать ее можно по ссылке с сайта разработчика
    http://www.admuncher.com/beta.pl/32209/3802389834/52832507/B-32209.exe

    Заранее спасибо за ответ.
    Это мое первое сообщение наэтом форуме. Заранее прошу прощения если запостил его не туда.
     
  2. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    evggrig
    Один из простейших вариантов, если файлик открывается с помощью CreateFile перехватить эту функцию и подсунуть оригинальный файлик.
     
  3. Kaimi

    Kaimi Андрей

    Публикаций:
    0
    Регистрация:
    15 апр 2010
    Сообщения:
    120
    Скачал, отредактировал названия у нескольких кнопок. Все запускается.
     
  4. evggrig

    evggrig New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2010
    Сообщения:
    12
    В Olly файлик зависает на 26%... Видимо тоже стоит какаято бяка.
    У меня после любых изменений экзешник превращается в инсталлятор...
     
  5. Kaimi

    Kaimi Андрей

    Публикаций:
    0
    Регистрация:
    15 апр 2010
    Сообщения:
    120
    У меня он превращается в инсталлятор только если изменить имя файла
     
  6. evggrig

    evggrig New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2010
    Сообщения:
    12
    Меня смутили многочисленные проверки в коде

    ADLER32 :: 000A910E :: 004A9B0E
    The reference is above.
    BASE64 table :: 00016217 :: 00416C17
    Referenced at 0046981D
    Referenced at 0046984C
    Referenced at 0046986F
    Referenced at 00488452
    Referenced at 0048F8DC
    Referenced at 00492A90
    List of primes [long] :: 00015DAE :: 004167AE
    Referenced at 004704CE
    Referenced at 0049A229
    Referenced at 004AF2BB
    MD4 :: 000ABBD3 :: 004AC5D3
    The reference is above.
    MD5 :: 0009EC90 :: 0049F690
    The reference is above.
    RC5/6 [24 rounds] :: 0004FFBB :: 004509BB
    Referenced at 00496745
    SHA1/RIPEMD-160 [Init] :: 0006238D :: 00462D8D
    The reference is above.
    ZLIB deflate [word] :: 000579A2 :: 004583A2
    The reference is above.
    {Big number} :: 00001123 :: 00401B23
    Referenced at 00494B1E
     
  7. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    evggrig
    это как так?
     
  8. evggrig

    evggrig New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2010
    Сообщения:
    12
    При переименовании файла он становится инсталлятором :) Видимо в экзешник зашит код инсталлятора. Зачем - понять сложно, но это факт.
     
  9. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    punxer
    Наверно меняет расширение с .exe на .msi ))))
     
  10. evggrig

    evggrig New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2010
    Сообщения:
    12
    Все вожусь с русификацией. При попытке правки ресурсов, которые вшиты непосредственно в код программы, таки стоит проверка целостности... Выкидывает сразу на оффсайт, а там Ad Muncher has detected that its files have been modified and has immediately closed itself for your safety. This modification is most likely the result of a virus infection.

    Вот такие пироги :dntknw:
     
  11. gazlan

    gazlan Member

    Публикаций:
    0
    Регистрация:
    22 май 2005
    Сообщения:
    414
    Похоже, что SHA1 задействовано. Странным образом, даже CRC32 не увидел. А вообще набито всякой фигней. Нужно конкретно пропатчить 1 байт (лучше всего в явно неиспользуемом месте, но на который среагирует защита) и поставить там хардверный брэйк на чтение - посмотреть кто и зачем его проверяет.
    Пройдитесь IDA по ссылкам на хэш-функции - что именно действительно используется. Поищите вызовы CreateFile - возможно, проверяется дисковая копия.
     
  12. evggrig

    evggrig New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2010
    Сообщения:
    12
    Кстати, для предыдущей версии был создан патч (тут http://rghost.ru/3184161), который кроме вечного триала программы снимает эту пресловутую проверку целостности...

    Сравнил исполняемый файл до и после патча... Отличия в аттаче.
    Нельзя ли сотворить нечто подобное и для текущей версии?
     
  13. gazlan

    gazlan Member

    Публикаций:
    0
    Регистрация:
    22 май 2005
    Сообщения:
    414
    "CmpDisasm" - что за дурная идея?
    Найдите различающиеся блоки (по первому ofs) и посмотрите в _IDA_ что было и что стало. Это, вероятно, наведет вас на какие-то мысли для собственного патча. Смотреть надо цельный код в контексте, а не эти "охвостья".
     
  14. evggrig

    evggrig New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2010
    Сообщения:
    12
    Я больше локализатор чем программист :) Потому и не пониаю многих элементарных штук.
     
  15. gazlan

    gazlan Member

    Публикаций:
    0
    Регистрация:
    22 май 2005
    Сообщения:
    414
    Изменил, на пробу, один диалог. Никакого эффекта. Ткните - что вам не удалось поменять и как понять, что именно после этого не работает. А то у меня на этой сотне бессмысленных вкладок глаза разбегаются. Эта программа в самом деле стоит того, чтобы ей заниматься?
    BTW, первое что я делаю, скачав какой-то "warez" - выбрасываю нафиг все русификаторы.
     
  16. evggrig

    evggrig New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2010
    Сообщения:
    12
    Я имел в виду текст, который правится непосредственно в коде программы На скрине эти кнопки выделены красным. Очевидно, что разработчики таким образом борются скорее со взломом проограммы, чем с русификацией, но тем не мение... При попытке замены текста на этих кнопках и срабатывает проверка... Кстати потом можно будеть поковырять ее и на предмет вечного триала :)
     
  17. gazlan

    gazlan Member

    Публикаций:
    0
    Регистрация:
    22 май 2005
    Сообщения:
    414
    Набито всякой хренью, с ходу не удалость найти. Попробую выкроить время в выходные, пока засек только это: <эташ>. Но не удалось поймать саму проверку.
     
  18. evggrig

    evggrig New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2010
    Сообщения:
    12
    Тем временем бетку зафиналили. http://www.admuncher.com/cgi-bin/download.pl/AM-Install.exe На первый взгляд защита не поменялась.
     
  19. evggrig

    evggrig New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2010
    Сообщения:
    12
    Смогли найти время на изучение?:)
     
  20. gazlan

    gazlan Member

    Публикаций:
    0
    Регистрация:
    22 май 2005
    Сообщения:
    414
    Снес бетку и поставил финал по вашей ссылке. Наскоро потыкал в отладчик - не готов поручиться, не проверял, но, кажется, в исходном файле нужные области зашифрованы и дешифруются динамически.
    Пришлось поставить Syser, т.к. ничего пригодного под рукой не оказалось. Исправил Logs на Gods :)
    Вот три последовательных адреса с черновика: 47BA9A, 471827, 460BF5 - по второму и третьему в дизассемблере мусор, дальше просто не смотрел. К сожалению, под отладчиком уходит в крэш, хотя без него выбрасывает на сайт. Надо смотреть разницу в прогоне оригинала и пропатченного варианта - пока некогда. Проверка идет в памяти, но поймать место вызова (а не запредельные системные адреса) не успел. Если будете заниматься, то надо сразу определиться, какие регионы захватывает VirtualProtect - вероятно, они и представляют для нас интерес.