|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.08.2009, 13:31 | #1 |
Пользователь
Регистрация: 18.12.2007
Сообщений: 40
|
Там, где кончается триал
Товарищи, вот есть у меня демо-программа с триальной dll.
И есть два куска листингов трассировки, полученных Olly при почти одинаковых условиях: разница только та, что программа выполнялась сначала при живом триале (24 дня), а потом, - при просроченном (искусственно, переносом даты на месяц вперед). В длл-ке присутвует некая функция GetInterface, внутри которой программа выкидывает окно сообщения - либо количество дней до конца, либо - "Trial expired". После загрузки dll делаем бряк, переходим на просмотр той самой dll, а потом в ней ставим останов на начало GetInterface. Теперь от бряка начинаю трассировать с записью лога, имея в виду получить те самые листинги, считая, что к бряку оба раза приходим одинаково. Ну, или почти одинаково... Конечно же, до того самого окошка трассировка не добежала, - полные логи - по 60 мб... Но где-то они начнут разбегаться? Эти листниги начинаю сравнивать на предмет узнать, где же она "сходит с ума"? Вот начальные фрагменты - приаттачены. Я отметил отличия. Маленькая разница начинается на строке 143... Кто посмотрит - скажите, что она означает? БОЛЬШАЯ разница - на строке 173. Здесь я припух.. Для меня ниоткуда не следует, что в одном случае - Код:
Код:
Но тут конкретный EIP. А отсюда программа шустро бежит в разные стороны... Объясните, если возможно, как это получается? ЗЫ Интересно, что Олька показывает код начала процедуры 01С10000 по разному, то "JMP SHORT 01C10003", то "JMP SHORT 01C10004", - столько, сколько раз загрузишь. А при ручной трассировке тоже чудеса. EIP, на которые ссылается этот JMP, часто просто нет в окне... Последний раз редактировалось Tihon; 20.08.2009 в 13:54. |
20.08.2009, 14:49 | #2 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Код:
Ставь memory-on-write бряк @01C10000 и смотри кто и откуда туда пишет. Разное содержимое регистров @7C8092C7 - видимо результат вызова предыдущей функции (CALL kernel32.7C8092C0 какая-то, ctrl+A нажми, если в olly, а то имён нет, нифига не понятно) И это... Прикрой ольку чем-нибудь, HideOD например.
пыщь
Последний раз редактировалось JTG; 20.08.2009 в 14:59. |
20.08.2009, 16:48 | #3 |
Пользователь
Регистрация: 25.05.2008
Сообщений: 27
|
Код:
Код:
Предлагаю пропустить программу через PEiD, а потом уже будем думать. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вечный триал косперского. | uberchel | Софт | 0 | 11.08.2009 02:44 |
Помогите плз в программе надо найти чей номер телю кончается на 10 и посчитать их | Бубальгум | Помощь студентам | 0 | 05.05.2009 16:12 |
Иконка в системном трее (там, где часики) | Македонский | Win Api | 6 | 22.12.2008 18:03 |
КАК поместить ИКОНКУ программы в правый нижний угол панели(там где пуск)??? | micaell | Общие вопросы Delphi | 5 | 21.02.2007 19:58 |