Утилиты для создания автоматического патча на NSIS

Один из пользователей NSIS создал проект VPatch, который позволяет на NSIS написать автоматический патчер (после покажу пример, а может даже парочку). Но устанавливается он как-то криво, консольные утилиты, которыми генерятся данные для будущего патча устанавливаются абы куда, а не в какой-нибудь %PATH%-каталог, что безумно бесит. Поправил. У меня все утилиты устанавливаются в %WINDIR%.

Утилиты отдельно (RAR-архив), 468Кб
Установщик (NSIS, EXE), 666Кб
Родной пример использования VPatch (7ZIP), 475Кб
Исходник моего инсталлятора

Совсем простой CrackMe, и как его сломать.

Преамбула

Попросили показать самый простой пример по реверсингу. Ну ладно, сделал простейшую программу, окно где надо ввести пароль:

Ввели правильно, получаем окно одобрямса:

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

Если нажать Cancel — программа просто завершится.

Сам CrackMe сделан на базе прошлого примера окна типа InputBox (копия), не стал даже с закрытием «пароля» «звездочками» заморачиваться, говорю же, очень простой CrackMe, естественно, без всякой упаковки и навесных защит.

Вообще, пароль можно подсмотреть, открыв экзешник, например, в просмотровщике Far Manager по F3:

Прямо как в некоторых старых DOS-программах, где защита от копирования была скорее защитой от дурака, или в форках некоторых приставочных игр под DOS, где таким же образом можно было получить код от уровня.

Но мы пойдем другим путем, как завещал великий Ленин! Хотя способ будет не сильно далеким от «подсмотра», чтоб было слегка посложнее и интереснее — не будем пользоваться отладчиком, а воспользуемся дизассемблированием. В отладчике вместо одного шага (простого подсмотра пароля) будет полтора, а так все же веселее.

И задача, естественно, модифицировать программу так, чтобы подходил любой пароль.

Читать далее

Ссылки

1. Исходник CrackMe
2. Бинарный файл
3. Чтоб два раза не вставать: Разница между инструкциями test и cmp Копия в PDF

Фразочка

Оригинальным способом политолог Глеб Павловский помянул политика Бориса Немцова.

Assembler: Окно типа InputBox в MASM32

Преамбула

Попросили сделать на ассемблере (MASM) что-то типа окна InputBox, которое было когда-то в Visual Basic 6.0. Кстати да, удобная фича для мелких запросов к юзеру, без всякого лишнего моделирования форм. Выглядело примерно так:

Да, товарищи (даже те, которые нам совсем не товарищи), это окошко чистая выдумка создателей VB, и в диком виде подобная функция нигде более не встречается.

Т.е. в WinAPI ее нет и не ищите!

Окно InputBox в MASM32

Но реализовать можно:




Исходник

Сама функция InputBox перенесена любовно в InputBox.inc, так что можно просто воткнуть и использовать. Сделано изначально было все примерно по тем же материалам Iczelion’а (копия), я лишь немного причесал и по полочкам разложил, особо ничего не меняя. Потому расписывать детально не буду. Суть можно понять из вышеозначенных материалов и комментариев, хоть и на буржуйском, в исходниках.

Мопед изначально не мой, но ездит. Нашел на Stackoverflow, слегка переделал.

Исходник на GitHub
Скомпилированная версия

По мотивам

Источник вдохновения