Сейчас на форуме: asfa (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Интенсивный курс обучения крекингу или из грязи в князи |
Посл.ответ | Сообщение |
|
Создано: 18 декабря 2009 11:55 · Поправил: A-tomic · Личное сообщение · #1 Уважаемые знатоки, помогите разобраться в проблемме пожалуйста. Итак, имеется учетная программа, написанная под заказ разработчиками, с которыми давно утеряна связь для фирмы, которая давно прекратила деятельность. Нехорошие программисты кроме привязки к серийнику винчестера (о которой владельцу было известно и которая благополучно уже пропатчена одним хорошим человеком) тайно сделали ограничение по периоду работоспособности на два года и один месяц от даты билда (сервер не запускается если системная дата больше 02.12.09, клиент не дает записать документ с датой большей 02.12.09 - выскакивает месседжбокс (мол за рамками периода)). Более полное описание проги можно посмотреть После ковыряния в олли и курения мануалов по ней пока есть два варианта развития событий: [Первый вариант] 1. Ставлю системную дату больше пороговой (02.11.09) 2. Запускаю прогу полд олькой, смотрю строку где вываливается (А) и перехожу к строке (В), которая вызвала (А) 3. По очередности запускаю прогу под олькой с брекпоинтом на (В) при системной дате больше, а потом меньше пороговой 4. Нахожу место, откуда перекидывает к (А) 5. Затираю нопами нужные адреса 6. Если работает под олькой, затираю ноликами в хекс редакторе и сохраняю [/Первый вариант] [Второй вариант] Прога сравнивает системную дату с константой (дата 02.11.2007). Если найти в олли эту константу (наверное количество секунд от р.х или как там в ассемблере) или как выглядит вызов процедуры, получающую системную дату то дело практически сделано. Верно? Если да то просветите плиз как это найти или сделайте плиз програмку: на форме только поле ввода даты и кнопка ОК. При нажатии на ОК в месседжбоксе вываливается введенная дата, в следующем месседжбоксе вываливается системная дата, прога закрывается, а я уже думаю разберусь сам. [/Второй вариант] Если я написал полный бред - наставте на путь истинный плиз. ![]() |
|
Создано: 18 декабря 2009 13:15 · Личное сообщение · #2 |
|
Создано: 18 декабря 2009 13:26 · Личное сообщение · #3 |
|
Создано: 18 декабря 2009 13:33 · Поправил: Isaev · Личное сообщение · #4 A-tomic пишет: Если работает под олькой, затираю ноликами в хекс редакторе и сохраняю патчить можно и в Olly A-tomic пишет: как выглядит вызов процедуры, получающую системную дату например GetSystemTime, GetLocalTime или "API break plugin" поставь для Olly A-tomic пишет: Если я написал полный бред для начала, как вариант пойдёт ![]() ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 18 декабря 2009 13:49 · Поправил: A-tomic · Личное сообщение · #5 |
|
Создано: 18 декабря 2009 21:05 · Поправил: A-tomic · Личное сообщение · #6 Немного вырос над собой, уже что-то понимаю. Движение по второму варианту (GetSystemTime) пока зашло в тупик. Взялся за клиент: ловлю вызов месседжбокса и двигаюсь по вызовам назад с тем чтобы найти чтото вроде CMP EAX, EBX (сравнение) с последующими переходами либо по одному адресу либо по иному, вычислив "правильный" переход меняя системную дату подменю "неправильный" на него. API break plugin очень помогает ![]() В правильном направлении мыслю? Курю мануал дальше... Если у кого нибуть возникнет желание помочь - вот исходный материал, за него вроде бы взялся один форумчанин, но я не уверен не забросил ли он его. ![]() |
|
Создано: 20 декабря 2009 15:16 · Личное сообщение · #7 |
|
Создано: 20 декабря 2009 16:14 · Личное сообщение · #8 |
|
Создано: 26 января 2010 22:58 · Личное сообщение · #9 |
|
Создано: 27 января 2010 18:05 · Личное сообщение · #10 |
![]() |
eXeL@B —› Вопросы новичков —› Интенсивный курс обучения крекингу или из грязи в князи |