|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Ноя 10, 2003 11:55:38 · Поправил: Gloomy < Внедрение своего кода в программу - создание глобальных переменных > Взялся ломать переводчик Promt XT. Он уже вломанный, но криво взломанный - после 14 дней с момента установки перестает работать. Если откатить системное время на тот день, когда он был установлен, то все пучком. Долго ковырял функцию проверки даты - проблема в том что там очень много кода, один ЕХЕшник весит мегабайт, да еще библиотек целая куча. Плюс к этому еще и неявный вызов функций и вызов этих функций из библиотек. В общем забросил я это дело и написал простенький загрузчик, который берет дату одного из файлов, переводит системное время, запускает программу и возвращает время обратно. Но сейчас возникла маниакальная идея внедрить этот загрузчик непосредственно в сам ЕХЕшник. Как это делать знаю, но возникла проблема: мне нужно объявить две глобальные переменные для хранения времени файла и хранения системного времени. Как это реализовать? Как объявлять строковые константы и загружать их в функции тоже знаю, а вот как создать глобальные переменные? Заранее большое спасибо! |
|
|
Дата: Ноя 10, 2003 12:22:11 Думаю тут поможет API Hook - после загрузки впроцесса пропатчить в таблице импорта GetLocalTime (ну или че оно там юзает чтоб время читать?) на свою заглушку и возвращать всегда то что надо. |
|
|
Дата: Ноя 10, 2003 12:24:16 Не понял вопроса. Существует несколько вариантов: первый в свободное место уже существующик секций и править точку входа. второй добавить ещё одну секцию. третий писать в последнюю секцию и править размеры. И если использовать там какие либо переменные, то то что ты туда запишешь в начале то так оно и останется до скончания времён... во как загнул Ж). Если переменную изменишь то при следющем старте программы она снова сброситься в старое значение. И что значит глобальные переменные??? 1280337212__ |
|
|
Дата: Ноя 10, 2003 13:29:39 Dr.Golova В смысле надо перехватывать вызов функции от нужного процесса и передавать свои параметры? Здорово придумано, только там библиотек слишком много и непонятно откуда вызывается функция. Сам ЕХЕ-шник функцию не вызывает, хотя она есть в импортах. Пробовал установить бряк на вызов функции GetLocalTime, но после запуска утоп в море "левых" вызовов :( sl0n Глобальные переменные - это переменные видиые в любом месте кода а не только в конкретной функции. Я хочу создать глобальную переменную которая будет хранить текущее время. |
|
|
Дата: Ноя 10, 2003 13:40:00 > непонятно откуда вызывается функция А ты перебери все модули процесса и пропатчи в каждом, или сразу кернел32 патчить =) |
|
|
Дата: Ноя 10, 2003 13:41:34 Так хрена тут сложного ??? Возьми к примеру их захренячь в свободное место PE заголовка. И делов-то и видно отовсюду. Но я что-то всё равно не могу понять насчёт глобальных переменных, сколько пишу вирусы все мои переменные видны всегда и отовсюду. Ты же будешь обращаться к байту, ворду или дворду по определённому смещению и если он есть в памяти значит он есть ... и виден отовсюду. Локальные и глобальные переменные это фигня из HLL. Место выделенное в стэке. |
|
|
Дата: Ноя 10, 2003 21:04:50 Спасибо больше за помощь и советы, программу доканал :) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.054 |