Исследование CDBF for Windows v1.0.
Автор: Porshe
Просьба не судить строго, т.к. это мой первый tutorial. * Reference to: extctrls.TTimer.SetEnabled(TTimer;System.Boolean); | 00486631 E88640FBFF call 0043A6BC 00486636 EB0A jmp 00486642 00486638 A128A94900 mov eax, dword ptr [$49A928]Посмотрим что находится по адресу 0043A6BC (это уже придется смотреть в W32Dasm, DeDe можно закрыть): :0043A6BC 3A5034 cmp dl, byte ptr [eax+34] :0043A6BF 7408 je 0043A6C9 :0043A6C1 885034 mov byte ptr [eax+34], dl :0043A6C4 E867FFFFFF call 0043A630Теперь идем по 0043A630 и чуть ниже видим интересные вызовы API: KillTimer и SetTimer
* Reference To: user32.KillTimer, Ord:0000h
|
:0043A64D E86EBBFCFF Call 004061C0
:0043A652 8B7324 mov esi, dword ptr [ebx+24]
:0043A655 85F6 test esi, esi
:0043A657 7440 je 0043A699
:0043A659 807B3400 cmp byte ptr [ebx+34], 00
:0043A65D 743A je 0043A699
:0043A65F 66837B2E00 cmp word ptr [ebx+2E], 0000
:0043A664 7433 je 0043A699
:0043A666 6A00 push 00000000
:0043A668 56 push esi
:0043A669 6A01 push 00000001
:0043A66B 8B4328 mov eax, dword ptr [ebx+28]
:0043A66E 50 push eax
* Reference To: user32.SetTimer, Ord:0000h
|
:0043A66F E8BCBCFCFF Call 00406330
Можно было бы заменить последний JE по адресу 0043А664 на JMP - все работает - 10 min limit исчез. А теперь экспортируйте любую базу в другой формат. Ууу, какая красивая и вечная шкала процесса сохранения :). Значит SetTimer нужен другим функциям проги, тогда будем искать где же идет вызов установки 10 min limit.Ставим в вашем любимом Debug'epe breakpoint на KillTimer и смотрим когда же произойдет установка 500000 мс. У меня это было после второго вызова. Идем дo RET, потом второй RET и после его исполнения мы появимся под call'ом (:0043A6EB E840FFFFFF call 0043A630 ) который установил счетчик. Осталось только найти этот Call в файле и забить его nop'ами. Вроде все...
|