Недавно возникла необходимость поковырять одну программку на предмет ее русификации, поскольку автор русского интерфейса не предусмотрел. Оказалось, что кроме UPX (который легко снимается) автор навесил, на программу что-то еще поскольку распакованный и русифицированный файл работать отказывается (подозреваю, что каким-то образом проверяется целостность файла) Можно ли бороться с этими его происками? Да, речь идет об Ad Muncher - утилита для удаления всплывающих окон и баннерной рекламы. Скачать ее можно по ссылке с сайта разработчика http://www.admuncher.com/beta.pl/32209/3802389834/52832507/B-32209.exe Заранее спасибо за ответ. Это мое первое сообщение наэтом форуме. Заранее прошу прощения если запостил его не туда.
evggrig Один из простейших вариантов, если файлик открывается с помощью CreateFile перехватить эту функцию и подсунуть оригинальный файлик.
В Olly файлик зависает на 26%... Видимо тоже стоит какаято бяка. У меня после любых изменений экзешник превращается в инсталлятор...
Меня смутили многочисленные проверки в коде 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
При переименовании файла он становится инсталлятором Видимо в экзешник зашит код инсталлятора. Зачем - понять сложно, но это факт.
Все вожусь с русификацией. При попытке правки ресурсов, которые вшиты непосредственно в код программы, таки стоит проверка целостности... Выкидывает сразу на оффсайт, а там 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. Вот такие пироги
Похоже, что SHA1 задействовано. Странным образом, даже CRC32 не увидел. А вообще набито всякой фигней. Нужно конкретно пропатчить 1 байт (лучше всего в явно неиспользуемом месте, но на который среагирует защита) и поставить там хардверный брэйк на чтение - посмотреть кто и зачем его проверяет. Пройдитесь IDA по ссылкам на хэш-функции - что именно действительно используется. Поищите вызовы CreateFile - возможно, проверяется дисковая копия.
Кстати, для предыдущей версии был создан патч (тут http://rghost.ru/3184161), который кроме вечного триала программы снимает эту пресловутую проверку целостности... Сравнил исполняемый файл до и после патча... Отличия в аттаче. Нельзя ли сотворить нечто подобное и для текущей версии?
"CmpDisasm" - что за дурная идея? Найдите различающиеся блоки (по первому ofs) и посмотрите в _IDA_ что было и что стало. Это, вероятно, наведет вас на какие-то мысли для собственного патча. Смотреть надо цельный код в контексте, а не эти "охвостья".
Изменил, на пробу, один диалог. Никакого эффекта. Ткните - что вам не удалось поменять и как понять, что именно после этого не работает. А то у меня на этой сотне бессмысленных вкладок глаза разбегаются. Эта программа в самом деле стоит того, чтобы ей заниматься? BTW, первое что я делаю, скачав какой-то "warez" - выбрасываю нафиг все русификаторы.
Я имел в виду текст, который правится непосредственно в коде программы На скрине эти кнопки выделены красным. Очевидно, что разработчики таким образом борются скорее со взломом проограммы, чем с русификацией, но тем не мение... При попытке замены текста на этих кнопках и срабатывает проверка... Кстати потом можно будеть поковырять ее и на предмет вечного триала
Набито всякой хренью, с ходу не удалость найти. Попробую выкроить время в выходные, пока засек только это: <эташ>. Но не удалось поймать саму проверку.
Тем временем бетку зафиналили. http://www.admuncher.com/cgi-bin/download.pl/AM-Install.exe На первый взгляд защита не поменялась.
Снес бетку и поставил финал по вашей ссылке. Наскоро потыкал в отладчик - не готов поручиться, не проверял, но, кажется, в исходном файле нужные области зашифрованы и дешифруются динамически. Пришлось поставить Syser, т.к. ничего пригодного под рукой не оказалось. Исправил Logs на Gods Вот три последовательных адреса с черновика: 47BA9A, 471827, 460BF5 - по второму и третьему в дизассемблере мусор, дальше просто не смотрел. К сожалению, под отладчиком уходит в крэш, хотя без него выбрасывает на сайт. Надо смотреть разницу в прогоне оригинала и пропатченного варианта - пока некогда. Проверка идет в памяти, но поймать место вызова (а не запредельные системные адреса) не успел. Если будете заниматься, то надо сразу определиться, какие регионы захватывает VirtualProtect - вероятно, они и представляют для нас интерес.