ПрограммыКак оставить прогу в памяти в виндах?

Обсуждение разных ОС и программ
Ответить
ZipShura+

Как оставить прогу в памяти в виндах?

Сообщение ZipShura+ » 25.01.2001 13:31

У меня проблема след:
написал прогу (exe-модуль), которая выполняет некие функции под 0-кольцом (через IDT). В этой проге я переадресую на себя некоторые API-функциии.
Вопрос !!!! Как сделать так, чтобы прога не выгружалась из памяти при завершении. (Что-нибудь типа доса - выйте и не освобождать память), а то придумыать всякие циклы, чтобы она постоянно крутилась не катит. Можь есть что-ндь типа CloseProcess без освобождения памяти?



Jameson
Постоялец
Сообщения: 158
Зарегистрирован: 28.06.2000 1:01
Откуда: Irkutsk, Russia
Контактная информация:

Сообщение Jameson » 27.01.2001 6:39

А ты не давай ее завершать! И встречный вопрос - как ты перехватываешь функции API? не сообщения, а функции.. Кстати, что пишешь?

ZipShura+

Сообщение ZipShura+ » 27.01.2001 14:48

Функции API я перехватываю просто: в свою прогу включаю такую-же функцию API (например MessageBoxA), нахожу ее местоположение по offset MessageBoxA и пишу в тот адрес jmp offset Myprog. В куске Myprog ищу что нужно, затем выполняю команды API функции, которые забил своим джампом, и делаю jmp на следующую команду функции API.
Это теория. На практике пока глючит. Перехватываются функции вызываемые только самой моей прогой, чужие проги делают ошибку защиты. Думаю что это из-за того что кусок Myprog не обладает приоритетом 0 после jmp.
Попробую вставлятьь в API функцию не jmp, а int и выполнять myprog через него. Если не прокатит и это буду писать vxd с таким-же механизмом - тут уж должно пройти точно.

А как не завершать программу? Делать бесконечное ожидание какого-нибудь события? Но это не сильно отличается от зацикливания.

А пишу (т.е. пытаюсь) динамический кракер для нестандатртно упакованных прог, которые не удается распаковать (например TheBat! последних версий).

Jameson
Постоялец
Сообщения: 158
Зарегистрирован: 28.06.2000 1:01
Откуда: Irkutsk, Russia
Контактная информация:

Сообщение Jameson » 29.01.2001 7:24

Так, ведь импортировать можно через номер или через имя.. И странный у тебя код вызова, вроде есть команда call.. А соглашения о вызовах правильные?

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость