eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+3 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Обсуждение статей —› [ freeExec ] Распаковка и регистрация Net Vampire 4
Посл.ответ Сообщение


Ранг: 533.8 (!)
Статус: Администратор
Создатель CRACKL@B

Создано: 22 ноября 2010 00:12 New!
Цитата · Личное сообщение · #1

Ранг: 14.4 (новичок)
Статус: Участник

Создано: 27 августа 2014 16:01 New!
Цитата · Личное сообщение · #2

Распаковал эту прогу, но у меня возникла проблема с GetVersion, которую аспр подменяет своим переходником.
Вот такой у аспра код.
Code:
  1. push ebp
  2. mov ebp,esp
  3. call kernel32!GetVersion
  4. pop ebp
  5. retn 00004

Перед вызовом этой функции в стек кладется EAX. То есть такой код.
Code:
  1. PUSH EAX
  2. CALL xxxx

И после выполнения этого вызова, из стека выкидывается параметр, который туда перед вызовом кладется. Так как у переходника аспра Retn 4 команда. А после восстановления этого вызова на реальный вызов GetVersion стек не очищается, так как у GetVersion на выходе Retn просто. Она не очищает стек, я после вызова добавил Add ESP,4 команду, для выравнивания стека, дальше все заработало.

Вот почему такая проблема со стеком, что GetVersion сама не очищает стек ?


Статус: Пришелец

Создано: 27 августа 2014 16:19 New!
Цитата #3

Во-первых, не факт что это GetVersion. То, что он вызывается, еще не означает, что именно эту функцию здесь эмулируют. Может просто эмулируется некая бесполезная функция, у которой нет возвращаемого значения.
Во-вторых, GetVersion нет входных параметров. Поэтому он и не очищает стек.

| Сообщение посчитали полезным: Admintools


Ранг: 14.4 (новичок)
Статус: Участник

Создано: 27 августа 2014 16:45 · Поправил: kola1357 New!
Цитата · Личное сообщение · #4

А действительно возвращаемое значение в EAX после вызова GetVersion нигде не используется и через пару команд просто затирается.
Code:
  1. push eax
  2. call xxxx (GetVersion)
  3. mov edx,ebx
  4. and dl,0fe
  5. mov eax,esi

Ранг: 12.0 (новичок)
Статус: Участник

Создано: 5 декабря 2014 19:51 New!
Цитата · Личное сообщение · #5

В программе ошибка защиты?
На днях распаковал сию програмулину. Решив пойти дальше и зарегистрировать ее, сам не сразу заметил как сделал это. Оказывается, если распротэкченной программе задать любое имя длинной от 4 до 6 символов, то пункт меню регистрации магическим образом исчезает, а надпись про 30-дневный триал заменяется на registered to |. Не могу даже представить как так надо извратиться, чтоб защитный механизм работал подобным образом.
 eXeL@B —› Обсуждение статей —› [ freeExec ] Распаковка и регистрация Net Vampire 4

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS