> Я немного не то имел в виду...Я разрабатываю систему защиты > проги > и конечно же хотел бы, чтоб SoftIce не сильно помог в её > исследовании..... > Поэтому мне и надо, чтоб Сайс не реагировал на API моего > модуля защиты.. Совсем спрятаться от сайса - это вряд ли. Большинство систем защит, о которых я слышал или выводят из строя сайс или не запускаются сами.
Вот некоторые методы: сам сайс использует стандартные (для нумеги) интерфесы чтоб общаться с symbol loader-ом и др. - их можно найти и сказать, что мол с долбагером работать не буду. Можно перехватить прерывания или исключения. Одни из любимых народом int 3 и (не помню номер) illegal instruction. Причем люди не просто их перехватывают, а завязываются на них и без них работать не хотят. Можно портачить DR7 и сбрасывать флаг T прямо в дескрипторах pcr-ах.
Если о брыкпойнтах, то большинство софтайсовских брыкпойнтов (по bpx или по F9 - в основном сам только ими и пользуюсь) - это действительно int3, а bpm - DR0-3
Народ!
Как вызывать Win32 API так чтоб на них не реагировал SoftIce;
чтоб bpx APiName не приводил к останову.
И вообще как SoftIce работает при bpx APiName?
Куда он ставит int 3 или может через DR0-4 регистры работает?
Заранее спасибо....
[Win32] Борьба с SoftIce-ом + тогда уж и с FrogIceом31.01.03 12:45 Автор: Cyril <sc> Статус: Member
> Народ! > Как вызывать Win32 API так чтоб на них не реагировал > SoftIce; > чтоб bpx APiName не приводил к останову. > И вообще как SoftIce работает при bpx APiName? > Куда он ставит int 3 или может через DR0-4 регистры > работает? > Заранее спасибо.... не получится насколько мне известно
все процедуры из ntdll перехватывает
[Win32] Борьба с SoftIce-ом30.01.03 15:29 Автор: amirul <Serge> Статус: The Elderman
> Народ! > Как вызывать Win32 API так чтоб на них не реагировал > SoftIce; API никак (собственно для того сайс и предназначен), но сайс можно настроить, чтоб не реагировал. Смотри условные брыкпойнты (bpx addr if cond).
> чтоб bpx APiName не приводил к останову. > И вообще как SoftIce работает при bpx APiName? при bpx - ставится int3, при bpm[b,w,d] - используются DR
Если BP ставится ниже 2 Гиг - работает только в контексте процесса в котором поставлен (смотри команду ADDR), если выше - во всех контекстах
> Куда он ставит int 3 или может через DR0-4 регистры Сделай:
? APIName
и увидишь куда.
> работает? > Заранее спасибо.... В общем успехов - но в хелпе к сайсу все достаточно хорошо описано
[Win32] Борьба с SoftIce-ом30.01.03 21:29 Автор: Sidor Статус: Незарегистрированный пользователь
Я немного не то имел в виду...Я разрабатываю систему защиты проги
и конечно же хотел бы, чтоб SoftIce не сильно помог в её исследовании.....
Поэтому мне и надо, чтоб Сайс не реагировал на API моего модуля защиты..
ESP=0...ESP=OLD_ESP31.01.03 11:34 Автор: Chingachguk <Chingachguk> Статус: Member
mov [SaveESP],esp
mov esp,0
; {Критичный код, который нельзя давать трейсить}
mov esp,[SaveESP]
Отладчик затыкается на том, что int 3 требует стека, а его нету ;)
Еще есть, кажется, какое-то апи у сайса (у его vxd-шки ?). Те если его зовешь и он ответил, то стоп, не работаем.
Про Х.. с винтом: есть также и обратные вещи: какой-то Frizen (Frozen ?) Sice - утилита для сайса, чтобы он не ощущался слишком подозрительными защитами ;)
int 3 вообще не трогает стек 3-го кольца31.01.03 12:41 Автор: amirul <Serge> Статус: The Elderman
> Отладчик затыкается на том, что int 3 требует стека, а его > нету ;) Проц по исключению (коим и int 3 является) перекидывается в 0-е кольцо и уже потом выкладывает все на стек (нулевого кольца). А менять стек нулевого кольца - себе дороже. Придет прерывание, скажем DMA (или еще вероятнее - таймера) - и все :-))). В защищенном режиме этот прикол не прокатит. Кроме того при пошаговой отладке (F8 или ^T) используется не int 3, а флаг T в eflags, есть еще куча нюансов - мороки будет много :-)
Верно, с SoftIce'ом не работает.01.02.03 17:54 Автор: Chingachguk <Chingachguk> Статус: Member
> Проц по исключению (коим и int 3 является) перекидывается в > 0-е кольцо и уже потом выкладывает все на стек (нулевого > кольца). А менять стек нулевого кольца - себе дороже.
Скорее всего. В коде между обнулением ESP и восстановлением легко ставятся бряки и др - проверил.
Гы, даже не "скрее всего" а английским по белому написано в IA Software Developer's Manual-е (даже с картинками :-))) )01.02.03 19:01 Автор: amirul <Serge> Статус: The Elderman
> Я немного не то имел в виду...Я разрабатываю систему защиты > проги > и конечно же хотел бы, чтоб SoftIce не сильно помог в её > исследовании..... > Поэтому мне и надо, чтоб Сайс не реагировал на API моего > модуля защиты.. Совсем спрятаться от сайса - это вряд ли. Большинство систем защит, о которых я слышал или выводят из строя сайс или не запускаются сами.
Вот некоторые методы: сам сайс использует стандартные (для нумеги) интерфесы чтоб общаться с symbol loader-ом и др. - их можно найти и сказать, что мол с долбагером работать не буду. Можно перехватить прерывания или исключения. Одни из любимых народом int 3 и (не помню номер) illegal instruction. Причем люди не просто их перехватывают, а завязываются на них и без них работать не хотят. Можно портачить DR7 и сбрасывать флаг T прямо в дескрипторах pcr-ах.
Если о брыкпойнтах, то большинство софтайсовских брыкпойнтов (по bpx или по F9 - в основном сам только ими и пользуюсь) - это действительно int3, а bpm - DR0-3