Sam777e писал(а):Вариант, но, возможно, он грозит разными неудобствами и т.п.; и будет хуже, чем в исходной ситуации.
Привожу просто как 1-ую пришедшую в голову идею.
Пишем обертку для iexplore.exe, даем ей это имя, ... короче, подменяем iexplore.exe. В обертке отслеживаем "купи про версию.ru" - если оно, так тихо закрываемся, а если другое - то зовем подлинный [ переименованный ] iexplore.exe и, опять же [ с некоторой временнОй задержкой ] тихо закрываемся.
Хакер писал(а):Ключевой вопрос: причём тут VB6?
TrueTrue писал(а):Вот никогда не понимал, зачем вопросом отвечать на вопрос?
Ключевой вопрос: причём тут VB6?
правим определённый байтик
Есть программа, бесплатная,
а хочет написать свою программу именно на VB6!
правим определённый байтик
А вот при чём батник?! Разве автор что-то говорил о батнике?
Хакер писал(а):причём тут VB6?
Sam777e писал(а):Пишем обертку для iexplore.exe
alex77755 писал(а):Не батник!
Внимательней надо читать!
Mikle писал(а):Это вполне по силам VB6:
Хакер писал(а): Приложение открывает браузер скорее всего не через запуск iexplore.exe, а через вызов ShellExecute
TrueTrue писал(а):Хочу попробовать отловить запрос, который я так понимаю она посылает Windows, что-то типа: start "C:\Program Files\Internet Explorer\iexplore.exe" http://купи про версию.ru/" и убивать его на корню.
Хакер писал(а):А если NAG-адрес изменится? Переделывать обработчик?
Mikle писал(а):мне такой вариант очень не нравится, но если делать вариант только для себя и только для сейчас
Mikle писал(а):На счёт блокнота, в котором можно "выбрать в меню пункт Правка→Заменить" - если в той проге строки хранятся в явном виде, то да, это - лучший способ.
Mikle писал(а):просто я, как обычно, непосредственно ответил на вопрос:
Хакер писал(а):Mikle писал(а):На счёт блокнота, в котором можно "выбрать в меню пункт Правка→Заменить" - если в той проге строки хранятся в явном виде, то да, это - лучший способ.
Ты не понял. Я не предлагаю менять строку с адресом. Я предлагаю заNOPить вызов API-функции. Блокнот и замена были упомянуты всего лишь в рамках приведения аналогии.Mikle писал(а):просто я, как обычно, непосредственно ответил на вопрос:
Обрати внимание, что это совершенно не вопрос. Предложение утвердительное. В нём ничего не спрашивает. В нём автор высказывает своё пожелание: перехватить и убить на корню.
Перехватывать — не видно никакого смысла. Убить на корню — занопить. Для того, чтобы заnopить, нужен инструмент, который позволяет это сделать (их миллион). Вопрос: причём тут VB6 был и остаётся вполне законным. Автор хочет на VB6 написать отладчик/дизассемблер/хекс-редактор? Или патчер, который правит exe-файл сразу? Или программу, которая в реальном времени патчит нужный процесс? Или обёртку над iexplore? Или ошибся разделом? Или один из ста вариантов, до которых я не догадался?
TrueTrue писал(а):Возможно ли на VB6? Если Да, то как?!
Зачем писать тучу ненужной инфы и убеждать кого-то в своих великих познаниях?!
Если не возможно, достаточно просто написать: "Нет - нельзя!" или "Это сложно." или в данном, случае: " Это сложно, есть более простое решение..." И просто в кратце, по человечески намекнуть, куда копать.
Хакер писал(а):Перехватывать — не видно никакого смысла. Убить на корню — занопить. Для того, чтобы заnopить, нужен инструмент, который позволяет это сделать (их миллион). Вопрос: причём тут VB6 был и остаётся вполне законным. Автор хочет на VB6 написать отладчик/дизассемблер/хекс-редактор? Или патчер, который правит exe-файл сразу? Или программу, которая в реальном времени патчит нужный процесс? Или обёртку над iexplore? Или ошибся разделом? Или один из ста вариантов, до которых я не догадался?
Хакер писал(а):А тебе что важнее:шашечки или ехатьперехватить или прервать?
Действительно не понятно при чем тут VB6? Такое легче сделать в любом отладчике/дизассемблере в пару кликов. Можно конечно написать патчер на ВБ, но это что из пушки по воробьям. Другое дело, если бы тебе нужно было написать программу которая будет это делать для группы программ или аналогичные действия для чего действительно нужна программа.А так и тему засорили, и я толком ничего не понял из Вашего обсуждения, кроме самого первого поста... Спасибо.
Хакер писал(а):Если я расскажу тебе о способе, при котором не нужно перехватывать, а можно сразу убить на корню — ты будешь доволен такому способу?
Хм... Вы забылись, господин Гуру, что тут не все профессора. Я увлекаюсь VB, а не взломами и дебагерами, но вот вместо Ваших "пустых" слов, для меня было бы значительно полезнее, получить конкретную инфо! Я ещё и спасибо сказал быКривоус Анатолий писал(а):Действительно не понятно при чем тут VB6? Такое легче сделать в любом отладчике/дизассемблере в пару кликов. Можно конечно написать патчер на ВБ, но это что из пушки по воробьям. Другое дело, если бы тебе нужно было написать программу которая будет это делать для группы программ или аналогии.А так и тему засорили, и я толком ничего не понял из Вашего обсуждения, кроме самого первого поста... Спасибо.
Хакер писал(а):Ок. Теперь следующий вопрос.
Для того, чтобы убить на корню этот запрос, нужно модифицировать некие байты в памяти процесса.
- Можно модифицировать их непосредственно в памяти этого процесса. Это придётся делать каждый раз после запуска твоей нехорошей программы.
- Можно воспользоваться тем фактом, что эти байтики попадают туда из EXE-файла каждый раз при старте программы, и модифицировать их прямо в exe-файле. Это придётся сделать один раз и навсегда.
У тебя есть предрассудки против второго способа или он тоже тебя устроит?
TrueTrue писал(а):Меня устроит и второй вариант, но мне всё же очень хотелось бы узнать и про первый.
or al,01 ; 0C01
retn 4 ; C20400
Хакер писал(а):TrueTrue писал(а):Меня устроит и второй вариант, но мне всё же очень хотелось бы узнать и про первый.
Для первого способа, изменять байты памяти чужого процесса можно одной из многочисленных утилит, уже давно написанных для этого, или же ты можешь написать свою аналогичную утилиту на VB6. Для этого тебе потребуется найти нужный процесс среди запущенных, получить его хендл с правом записи в его память и перезаписать нужные байтики нужными значениями при помощи функци WriteProcessMemory.
Для второго способа, изменять байты в файле можно одной их многочисленных утилит, уже давно написанных для этого, или же ты можешь написать свою аналогичную утилиту на VB6. Для этого тебе придётся открыть файл, например с помощью Open filename$ For Binary as #1, модифицировать нужные байты, например с помощью Put #1, x, y (и закрыть файл).
Гораздо большую проблему представляет собой задача узнать:
- По каким адресам/смещениям находятся нужные байты.
- Какими значениями их перезаписать
Перейдём к обсуждению этой поблемы, или что-то непонятно с перезаписью памяти / перезаписью файла?
TrueTrue писал(а):как найти нужные байты в памяти и в файле.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27