WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Защита от отладки, хехе

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Защита от отладки, хехе
Heromantor опубликован 01-10-2001 15:54 MSK   Click Here to See the Profile for Heromantor   Click Here to Email Heromantor  
Какие есть способы сабжа? Вот напрмер читал я ридми.ткст от FrogIce, все понятно, за исключением одного ГЫГЫ, какой-бы int я не ставил у меня прога вылетает с чем-то вроде того: Unhandled exception ..., и че? Как захандлить инт? В досе все ясно было INT21h 25h/35h или записать свой хандлер в vector table а в WIN как быть? Хочу сделать обработчик int3 свой =], сделать енто без написания VXD я как понимаю низя :(. В ощем есть какие доки, по этому делу, как писать int handler для protected mode?
server_mouse опубликован 01-10-2001 20:33 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
Что-бы перехватить прерывание нужно иметь 0-й уровень привелегий. Читаешь IDTR и прописываешь свой адрес по нужному смещению.
А вот как получить Ring0 -- др. вопрос. Если в 9х, то можно прям из апликейшин, а вот ежели хочешь универсальности, то юзай WDM (VxD в 95 и NT IMHO разные).
Но VxD/VDM всегда можно вырубить\подменить. Нужно туда какой-нибудь важный код заталкивать.
В 9х для защиты можно юзать старый как 486 проц трюк с конвееризацией+буферизация (там CLI работает). Ну когда jmp проскакивает не туда.

Но нынче такой способ поможет только при пошаговой отладке. А если ломать, то я как правило ставлю из софтайса брекпоинты на API да на память. Но как известно SoftIce в памяти можно обнаружить. Есть у него и какие-то там стандартные прерывания, что-б легче отлаживать было. ;)

Вообще лучший способ против взлома -- сложный код. Кто ломал поймёт. Передаёт прога нехилые данные через стек, а SS установлен у тебя как раз на CS и хрен его разберёшь, чего оттуда запускается, а чего просто данные. Да ещё меняешь там чего-то через BP... Ну и так далее.....

Чего-то я разошёлся... :)

Heromantor опубликован 01-10-2001 23:40 MSK     Click Here to See the Profile for Heromantor  Click Here to Email Heromantor     
Защита от взлома очень интересная весчь, вроде она есть, а вроде и нет ни хрена :))), Я вот спросил потому-что знаю что ASProtect скажем бряки коцает(во хам :)), а как хрен знает как похоже drы поганит как-то, vxd-то нет никакой :), отлов отладчика через скажем MeltICE или по int 41h всем давно известны, помогает банальный патч айса. Это глупый вопрос и решается 15 минутами. Где-йто читал по определению exceptions айса, типа у него свой exception handler и т.д. а как сделать хз, + У меня возникает exception кода я пытаюсь прочитать IDT, ну в смысле не когда читаю а когда пытаюсь скопировать OffsetHigh,OffsetLow в нормальный 32 битный офсет, хотя вроде права стоят на RE?
P.S> И как я установлю SS на CS? Яж не на асме пишу все это :(,
server_mouse опубликован 02-10-2001 10:17 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
>У меня возникает exception кода я пытаюсь
>прочитать IDT, ну в смысле не когда читаю а
>когда пытаюсь скопировать >OffsetHigh,OffsetLow в нормальный 32 битный
>офсет, хотя вроде права стоят на RE?

1. У твоей задачи точно Ring0?
2. Что за OffsetHigh,OffsetLow? Нужно ES:EAX например, т.е. 16:32.
3. cli -- самая любимая команда. (вторая самая любимая - hlt) :)
4. RE -- это случаем не Read&Execute ?

> И как я установлю SS на CS? Яж не на асме пишу все это :(,

Да, не лёгкая работа *%№№№## у бегемота. ;)
C -- асемблер высокого уровня. К тому же всегда можно сделать
asm{....}
Я не даю руководства к действию. Это действительно сложно. Сам я подобные вещи делал только для дос и только однажды.

Heromantor опубликован 02-10-2001 15:19 MSK     Click Here to See the Profile for Heromantor  Click Here to Email Heromantor     
А че чтоб читать IDT нужен Ring0? Уменя SIDT работает нормально в структуру
typedef struct _IDT
{
WORD idtLimit;
IDTGATE* idtGate;
} IDT;
Копируется и все ОК! Как я понял idtGate указывает на
typedef struct _IDTGATE
{
WORD gateOffsetLow;
WORD gateSelector;
WORD gateFlags;
WORD gateOffsetHigh;
} IDTGATE;
RE - это Read&Execute :)))

А вродеж низя писать в сегмент кода? Или я не прав?

server_mouse опубликован 03-10-2001 11:18 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
>А че чтоб читать IDT нужен Ring0?
Что бы сделать SIDT -- точно не надо. Да и читать IDT вроде можно.
НО! SIDT возвращает тебе ФИЗИЧЕСКИЙ адрес IDT. А ты если не ошибаюсь пытаешся читать с него с включённым страничным механизмом. Не трудно представить себе чо из этого получается... Или я не прав?
server_mouse опубликован 03-10-2001 11:22 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
>А вродеж низя писать в сегмент кода? Или я не прав?

Прав. Но то что для тебя код, для других DATA. Что тебе стоит загрузить ES например нужным дескриптором? Если ты конечно Ring0 ;)

Heromantor опубликован 03-10-2001 20:13 MSK     Click Here to See the Profile for Heromantor  Click Here to Email Heromantor     
Так вот и проблема в том что нихочу я писать VXD да еще для 9х и НТ. Все надо обделать из 3-го кольца а там делать вообще ничего низя. ЖОПА этот Win
server_mouse опубликован 04-10-2001 09:53 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
Ну сделай тогда хотя бы геморойной отладку под 9х. А NT-... ну и фиг с ней. Пусть ломают.
;)
Heromantor опубликован 04-10-2001 15:20 MSK     Click Here to See the Profile for Heromantor  Click Here to Email Heromantor     
Все я понял, на хрен защиту всю.....
Защита на огр. срок, в жопу ничего не стоит :(, дилеры не хотят чтоб были ограничения кроме триала по дате. В ощем thx server. Защита - суксь

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.