Ассемблер для Windows


Фрагмент кода осуществляющего в частности задержку



Рисунок 4.6.4. Фрагмент кода, осуществляющего, в частности, задержку.

Я сразу взял несколько больше кода, захватив и несколько верхних строк. По сути дела, перед нами вся процедура задержки. Нет смысла пытаться понять, что означает та или иная команда call, хотя легко сообразить, что, например, call 00413E84 убирает строку с экрана.

Для того чтобы решить проблему задержки, достаточно "выключить" этот фрагмент из программы. Проще всего это можно сделать, поставив в начало команды pop ebx / ret, используя такой редактор, как HIEW. В результате задержка исчезает.

Перейдем теперь ко второй проблеме — ограничение на количество запусков. Уже из самого вида окна ясно, что оно формируется в самой программе. Следовательно, опять можно попытаться найти текст, который изображается на экране, в самой программе.

:00443326 8ВС0 mov eax, eax :00443328 53 push ebx :00443329 8BD8 mov ebx, eax :0044332B 803DEC56440001 cmp byte ptr [004456EC], 01 :00443332 7546 jne 0044337A :00443334 A124564400 mov eax, dword ptr [00445624] :00443339 E84E2CFEFF call 00425F8C :0044333E A1D8564400 mov eax, dword ptr [004456D8] :00443343 E87816FEFF call 004249CO :00443348 FF05F0564400 inc dword ptr [004456F0] :0044334E C605EC56440000 mov byte ptr [004456EC], 00 :00443355 833DF05644000F cmp dword ptr [004456FO], 0000000F :0044335C 7E1C jle 0044337A :0044335E 6AOO push 00000000 :00443360 668BODB0334400 mov cx, word ptr [004433B0] :00443367 B202 mov dl, 02

* Possible StringData Ref from Code Obj ->"This Software Has Been Used Over" | :00443369 B8BC334400 mov eax, 004433BC :0044336E E8BDAEFEFF call 0042E230 :00443373 8BC3 mov eax, ebx :00443375 E84214FEFF call 004247BC

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:00443332(C), :0044335C(C) :0044337A 33D2 xor edx, edx :0044337C 8B83F4010000 mov eax, dword ptr [ebx+000001F4] :00443382 E8A52DFFFF call 0043612C :00443387 33D2 xor edx, edx :00443389 8B83F8010000 mov eax, dword ptr [ebx+000001F8] :0044338F E8982DFFFF call 0043612C :00443394 33D2 xor edx, edx :00443396 8B83FC010000 mov eax, dword ptr [ebx+000001FC] :0044339C E88B2DFFFF call 0043612C :004433A1 33D2 xor edx, edx :004433A3 8B8314020000 mov eax, dword ptr [ebx+00000214] :004433A9 E87E2DFFFF call 0043612C :004433AE 5B pop ebx :004433AF C3 ret



Содержание раздела