как найти таймер

Тема в разделе "WASM.RESEARCH", создана пользователем rodger, 20 янв 2009.

  1. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    Доброго времени суток господа. Появилась необходимость сделать портативной одну программу портативной. Сама по себе она портативна, привязок к реестру или к другим файлам (в значительном количестве) не обнаружены. Программа вообще не упакована (!!!), ОллиДбг, открывает и дизасемблеры открывают, все видно. Написана программа на 7 Делфе. Натравил на нее DeDe, получил часть исходного кода и ресурсов. Заморочка в том что что во время работы DeDe падает, Олли- Дбг, постоянно налетает на исключения, и не может запустить программу, если использовать shift+f8, после нескольких шагов падает программа с надписью Terminate. Я ее чуток модифицировал, а она как работала так и работает, т.е. как мне кажется контрольных сум от собственного тела она не считает. Программа начинает автоматически закрываться после 5 (на глаз) секунд работы.
    Я думаю это таймер ( может даже не с фиксированным спусковым механизмом, а через ГСЧ например в промежтки от 3 до 6 секунд). Главный вопрос как найти и демонтировать или выставить на огромное число например 10 000 секунд.
     
  2. Ev0lwaves

    Ev0lwaves New Member

    Публикаций:
    0
    Регистрация:
    26 дек 2008
    Сообщения:
    125
    Ищи RDTSC и GetTickCount
     
  3. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    Ок гляну. Я подумал интерсно было бы програмнть данную программу через апи шпион, а потом посмотреть в конец лог файла, какие функции программа вызывает перед капитуляцией. Может посоветуете толковый апи шпион. Я использовал раньше керберос.
    Пробовал microsoft debug tool, но сильно мудренная штука+консольный интерфейс.
     
  4. Ev0lwaves

    Ev0lwaves New Member

    Публикаций:
    0
    Регистрация:
    26 дек 2008
    Сообщения:
    125
    Process Monitor от SysInternals
     
  5. a1tus

    a1tus New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2009
    Сообщения:
    22
    1)В OllyDbg можно игнорировать все исключения и нормально отлаживать:
    Alt+O -> Exceptions и добавляете диапазон игнорируемых исключений от 0 до FFFFFFFF

    2) Если начинает вылетать после модификации, то либо криво патчили, либо как раз-таки имеется проверка crc. Просто уже в процессе работы, а не при запуске.

    3) SetTimer
    4)WinAPIOverride
     
  6. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    Такая софтина у меня есть. Гляну только ведет ли она лог.
     
  7. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    Спасибо за советы. Я модифицирую программу самым простым способом, просто забиваю все подозрительные функции НОП-ами. Если говорить а контрольной сумме то я ее поищу, как я уже гооврил програама не криптованая не пакованая, и все стринги и функции видны как на ладони.
     
  8. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Посмотри, не приходит ли какому из окон программы предсметрное сообщение WM_TIMER.
     
  9. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    Реально с установкой исключений в Олли ее можно дебажить, с Апи шпионом дело пока идет туго, он лог файл сохранять не успевает. Если кому интересно поковыряйте пока эту штуку. Прикрепляю большенство нужных файлов, которых достаточно для работы.
     
  10. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    еще файл
     
  11. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    3-й файл
     
  12. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    последний файл
     
  13. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    Интересно получается, вчера прикрепил файлы к сообщениям и отправил, трафик ушел у файлы не отображаются на форуме. Вначале я вчера подумал возможно их предварительно модераторы просмотривают а потом открывают к ни доступ а сейчас не знаю что думать. Ковырял я подопытную программу, изувечил я ее в нескольких местах и начала работать и не пропадать, единственная досада, теперь выскакивают виндошные сообщения о отм что программа пытается получить доступ к к чужим адресам памяти. Пытался выловить эти адреса отладчиком но они чужие соответсвенно не ловятся. А сообщения естественно надоедают ибо выскакивают через каждые 5 секунд, без разници совершаеш рабоаеш с программой или она просто висит на рабочем столе. Опять искать таймер? И где теперь бряк ставить?
     
  14. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    Я выложил уже файлы на Депозит http://depositfiles.com/ru/files/5g8v5uzy4
    Весит этот архив 5,1 метра. Если у есть желание поковырять, качайте и модифицируйте, программа толковая, все необходимые файлы я потом выложу. Могу дать подсказку ковырять нужно в том куске где он пытается загрузить программа setup.exe (betup.exe в моем изувеченном варианте.
     
  15. um0v

    um0v New Member

    Публикаций:
    0
    Регистрация:
    10 окт 2008
    Сообщения:
    32
  16. Diakon

    Diakon New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2008
    Сообщения:
    27
    Если, интересно в чем дело, то процедура по адресу 00404A6C - лишняя )). Просто находишь места вызова - их 2 и забиваешь нопами. Или правишь процедуру прыгая сразу на ret
     
  17. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    Работает стабильно, но когда я начал проводить расчеты она останавливается на 6% и выдает ошибку чтения по адресу 000000. Дело в том что сам програмный продукт весит около 80 мб, а я выложил только самую нужную часть. Я пытался отследить изменения который вы произвели, взял слил дизасемблерый листинг в текстовый файл (получился файлик на 500 кб), и взял notepad++, там есть функция сравнения только внятных результатов я от нее не получил. Можете сказать где пофиксили программу.
     
  18. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    Еще как интересно, сейчас же займусь модификацией и тестированиям. Благодарю.
     
  19. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    Проверил действительно процедура подозрительная, очень много сравнений и циклов.
    Вызывается она как минимум с одного места (в ОллиДбг написано local call from а дальше адрес, я его забил нопами), где искать второй вызов этой функции не знаю. Пробовал сразу забить по адресу 00404a6c переход на конец процедуры (retn), сделал jmp 00404b3f.
    Все равно расчеты не проводит и после этого долго выдает виндошный application error.
    Если вам не сложно на депозит или на репиду залейте профиксенный файл.
     
  20. rodger

    rodger New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2007
    Сообщения:
    363
    Пардон изучал не тот файл который был в общем доступе а тот который выложил Umov.
    Когда поковырял исходный файл то там реально вызывается сомнительная процедура с двух адресов 00404b49 , 006074c7., я эти адреса занопал но программа все равно не считает корректно задания. Попытаюсь прикрепить БД к сообщению, аесли не получится то залью на депозит.