Сейчас на форуме: tyns777 (+5 невидимых)

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


Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

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

Обсуждение статьи Распаковка и регистрация Net Vampire 4

-----
Всем не угодишь




Ранг: 14.4 (новичок), 8thx
Активность: 0.050
Статус: Участник

Создано: 27 августа 2014 16:01
· Личное сообщение · #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 сама не очищает стек ?



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 27 августа 2014 16:19
· Личное сообщение · #3

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

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

Ранг: 14.4 (новичок), 8thx
Активность: 0.050
Статус: Участник

Создано: 27 августа 2014 16:45 · Поправил: kola1357
· Личное сообщение · #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 (новичок)
Активность: 0.020
Статус: Участник

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

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


 eXeL@B —› Обсуждение статей —› [ freeExec ] Распаковка и регистрация Net Vampire 4
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати