Как убить таймер?

Тема в разделе "WASM.RESEARCH", создана пользователем 123dragon, 7 июл 2005.

Статус темы:
Закрыта.
  1. 123dragon

    123dragon New Member

    Публикаций:
    0
    Регистрация:
    12 янв 2005
    Сообщения:
    46
    Адрес:
    Russia
    Ребята, подскажите пожайлуста как можно убить счетчик таймера в программе.

    Вот костяк программы:
    Код (Text):
    1. 00411D79  MOV     EAX, DWORD PTR DS:[515E0C]
    2. 00411D7E  TEST    EAX, EAX
    3. 00411D80  JE      SHORT fxbox.00411D8B
    4. 00411D82  PUSH    EAX                              ; /TimerID = 0
    5. 00411D83  PUSH    0                                ; |hWnd = NULL
    6. 00411D85  CALL    NEAR DWORD PTR DS:[<&USER32.Kill>; \KillTimer
    7. 00411D8B  MOV     EDX, DWORD PTR DS:[45BDE4]
    8. 00411D91  PUSH    fxbox.00411B60                   ; /Timerproc = fxbox.00411B60
    9. 00411D96  PUSH    EDX                              ; |Timeout = 800. ms
    10. 00411D97  PUSH    0                                ; |TimerID = 0
    11. 00411D99  PUSH    0                                ; |hWnd = NULL
    12. 00411D9B  CALL    NEAR DWORD PTR DS:[<&USER32.SetT>; \SetTimer




    Менял:

    00411D80 je 00411d8b на jne и jmp - не помогло.

    00411D8B mov edx,dword ptr ds:[45bde4] на mov edx,0 - закрывается программа

    Нопил вызовы процедуры KillTimer и SetTimer - закрывается программа



    Подскажите что можно зделать И если можно опишите прощедуру работы таймера, читал KillTimer и SetTimer, так и не понял как его можно остановить.
     
  2. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    123dragon

    понятно, если прога шатится, значит прога делает подсчёт контрольной суммы своего кода. По правилам, API SetTimer должна вернуть в eax код успешности вызова функции, тебе в данном случае его надо будет если нопами делать установить в eax самостоятельно. Другой вариант, найти код, который сверяет контрольную сумму по данному участку кода и поправить его как надо. Вариант три, горячий патч, после запуска программы, в том случае, если проверяется контрольная сумма самого exe-шника непосредственно в дисковом файле а не в памяти, если 3-е не так, то выполнить 2-е. Вот и всё :)
     
  3. Funbit

    Funbit Member

    Публикаций:
    0
    Регистрация:
    13 апр 2003
    Сообщения:
    92
    Адрес:
    Russia
    123dragon

    с jne/jmp и не должно помочь,



    mov edx, 0 - на байт короче, ты это учёл ?



    и 4 пуша перед вызовом SetTimer ты нопил ?



    А чтобы удалить существующий, нужно знать его id, который возвращает функция SetTimer. Передав этот id в функцию KillTimer ты его и уничтожишь.
     
  4. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    123dragon

    да , и для начала почитай MSDN, должно помоч :))
     
  5. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine


    значит проверки контрольной суммы нет

    но таким образом ты обходишь только kill timer, а settimer не обходишь





    длина команд разная и сбою программы





    стек разрушается, если ты не нопил push'ы



    товарищ Funbit всё верно сказал

    я бы процедуру таймера переписал

    00411B60

    RET 10h ; тут не уверен,но вроде 4*4 =16->коррекция 4 push

    да и всё



    или 00411D79 закодил jmp на после SetTimer
     
  6. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    123dragon



    Что PUSH'и при этом коцать тоже надо, не забыл? А то при нарушении очередности покладывания/снятия со стека оно нередко примерно так и валится.





    Поробуй mov edx,АХРЕНЕТЬ_КАК_МНОГО (пары миллиардов миллисекунд, пожалуй, будет достаточно).

    Если проверка контрольной суммы - тогда BPM и давить ее, падлу!Но я бы прежде всего поковырял, что творится в процедуре, вызываемой по таймеру (конкретно - где там тикает западлянский счетчик).



    И вообще, почему этот банальный вопрос все еще у кого-то стоИт? Вроде в соответствующих главах "Теоретических основ..." я подобный вопрос и так уже разжевал до состояния невыносимой пошлости.
     
  7. Kola

    Kola New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2004
    Сообщения:
    69
    не TVTool ли это? :)
     
  8. 123dragon

    123dragon New Member

    Публикаций:
    0
    Регистрация:
    12 янв 2005
    Сообщения:
    46
    Адрес:
    Russia


    нет, это FXBOX, но там ограничения вроде такие же.

    С NOP`ами не прокатило,00411D79 закодил jmp на после SetTimer тоже,00411B60 RET 10h тоже.

    НО ВСЁ РАВНО ВСЕМ СПАСИБО!!! Все что хотел - узнал.

    Программа взломана WarrioR`ом (топ Cracklab).

    Тему закрываю
     
Статус темы:
Закрыта.