Исследование 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'ами. Вроде все...
|