· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Начальное значение регистров

Посл.отвђт Сообщенiе


Дата: Май 19, 2004 17:46:10

из спортивного интереса написал прогу, которая выводит начальное значение регистров (т.е. значение на EP). Вот что получилось:
  EAX = 0x00000000
  EBX = 0x7FFDF000
  ECX = 0x00010101
  EDX = 0xFFFFFFFF
  ESI = 0x0011F458
  EDI = 0xFFFFFFFF
  EBP = 0x0012FFF0
  ESP = 0x0012FFC4
  EFL = 0x00000246

кто нибудь знает, есть ли стандарт начальных состояний?
помнится, под досом такое было.
понял только что EBX указывает на PEB (или как его там), вообщем на сегмент fs:
интересные значения принимают ECX и ESI, только вот что это?
также интересно, почему так сильно отличаются ESP и EBP?

кстати, если загрузить прогу в Olly, то начальные значения такие:
  EAX = 0x00000000
  EBX = 0x7FFDF000
  ECX = 0x00010101
  EDX = 0xFFFFFFFF
  ESI = 0x00000000 (!)
  EDI = 0x00000000 (!)
  EBP = 0x0012FFF0
  ESP = 0x0012FFC4
  EFL = 0x00000246

т.е. значения ESI и EDI можно использовать, как антиотладочный прием... наверное...


Дата: Май 19, 2004 18:06:53

http://sbvc.net/articles/4.html - только это про win9x :(


Дата: Май 19, 2004 18:33:14

Ты не можешь рассчитывать ни на какие значения. Этого тебе никто гарантировать не может. Да, скажем EBX показывает на PEB, но будет ли это так всегда - да упаси тебя полагаться на это!


Дата: Май 19, 2004 18:35:52

max,
может какой-нить кривой plugin юзаеште!?


Дата: Май 19, 2004 18:49:11

Нет. Сходный топик был на exetools. Я из любопытства поглядел. Олли действительно меняет значения регистров. Другое дело, что сама тема - это вилами по воде. Никакой практической ценности.


Дата: Май 19, 2004 19:40:24

тогда объясните мне, что делает аспротект, что он не ловится брейкпоинтом на [esp-4]?
я так понимаю, что он кладет регистры на стек (типа pushad), а потом просто забивает на них болт, не восстанавливая стек перед прыжком на EP.
но тогда какие начальные значения регистров он передает программе на EP?

че я собственно и задумался о начальных значениях...


Дата: Май 19, 2004 20:41:05

не восстанавливая стек перед прыжком на EP

Ну и что это будет? GPF?

что он не ловится брейкпоинтом на [esp-4]

Ты хочешь сказать, что bpm не срабатывает вообще никогда? Прости, не верю. В telock у мя вываливалось через раз на ложных popad.


Дата: Май 19, 2004 21:35:44

Почему GPF? Ничего, AFAIK, страшного не будет. ExitProcess потом вернёт всё на место. Другое дело, если не восстанавливать стек в треде, можно сильно потом пожалеть :-)


Дата: Май 19, 2004 22:22:48

да, последние asprы не восстанавливают reg;
стек восстановливается на уровне первого PUSHAD


Дата: Май 20, 2004 14:31:42

je_
а что значит "на уровне первого PUSHAD"?
т.е. на OEP стек выглядит так, как будто сделали PUSHAD и при этом в качестве начальных значений регистров передается ерунда.
я правильно понял?


Дата: Май 20, 2004 16:16:37

после первого PUSHAD > esp = esp-20; ok?


Дата: Май 23, 2004 01:39:36

по поводу push'а - он действительно не нужен и ASPack/ASProtect дают его затирать без нарушения работоспособности упакованного приложения, а вот антивирусы уже такой файл не распакуют и стало быть достаточно упаковать любой троян ASPack'ом, изменить всего один байт и... другую сигнатуру av'ерам выбрать не судьба была ;)

не понял на счет [esp-4]. это в каком месте программы? если сразу на старте, - то оно и не должно срабатывать, т.к. первый call извлекает адрес возврата, добавляет к нему адын и топчет назад, а bpx контролирует всего 1 байт,
поэтому надо дать bpx на [esp-4]+1, да и то лучше не bpx, а bpm X - так оно надежнее будет ;)


Дата: Май 23, 2004 01:48:18

Имелось ввиду что если запомнить значение esp на старте и далее чуть позже, например после бряка на GetProcAddress, поставить bpm esp-4 то за АСПротекченная прога всплывет в Айсе прямо перед OEP и так было, раньше, потом перестало срабатывать и стали ловить на bpm esp-24

зы: но надёжнее в 9x поставить bpr ;-)


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.060