Учусь, а не получается - что делать?

eXeL@B DVD

Материал из Справочник исследователя программ

Перейти к: навигация, поиск

Вот уже неделю читаю все статьи подряд, все пробую и пробую, но ничего не получается. Что делать? Охото уже ХОТЬ ЧТО-ТО ВЗЛОМАТЬ.

Тут проблема либо в том, что вы пытаетесь взломать сложную для вашего уровня программу, либо читаете не те статьи =), либо ваше время еще не пришло =) В любом случае не стоит расстраиваться. Пробуйте исследовать crackme, задавайте вопросы в форумах, спрашивайте у более опытных людей и наберитесь терпения.

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


Уже неделю изучаю ассемблер, но никак не могу понять для чего служит команда test. Часто в программах вижу test eax, eax или test al, al.

Команда test ЧАЩЕ ВСЕГО используется для сравнения значения регистра с 0. Записывается так : test eax, eax . Тут может быть не eax а любой другой регистр, но чаще всего eax. Если eax равен 0, то устанавливается флаг нуля (флаг Z), т.е. он становится равным 1.

Знаете ли вы ассемблерную инструкцию AND ??? Она(AND) производит побитовую конъюнкцию приёмника и источника и устанавливает флаги, например флаг нуля. Инструкция TEST отличается от AND только тем, что после установки флагов значение приёмника восстанавливается.

Следующий код может заменить

test src, dest

для 16 и 32 битных регистров:

push src
and src, dest
pop src