Недавно добавленные исходники

•  TDictionary Custom Sort  3 227

•  Fast Watermark Sources  2 993

•  3D Designer  4 751

•  Sik Screen Capture  3 260

•  Patch Maker  3 469

•  Айболит (remote control)  3 530

•  ListBox Drag & Drop  2 907

•  Доска для игры Реверси  80 799

•  Графические эффекты  3 844

•  Рисование по маске  3 172

•  Перетаскивание изображений  2 544

•  Canvas Drawing  2 674

•  Рисование Луны  2 501

•  Поворот изображения  2 094

•  Рисование стержней  2 121

•  Paint on Shape  1 526

•  Генератор кроссвордов  2 183

•  Головоломка Paletto  1 731

•  Теорема Монжа об окружностях  2 159

•  Пазл Numbrix  1 649

•  Заборы и коммивояжеры  2 017

•  Игра HIP  1 262

•  Игра Go (Го)  1 201

•  Симулятор лифта  1 426

•  Программа укладки плитки  1 179

•  Генератор лабиринта  1 512

•  Проверка числового ввода  1 297

•  HEX View  1 466

•  Физический маятник  1 322

•  Задача коммивояжера  1 357

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Исследование SnagIt32 v4.0.1



Оформил: DeeCo
Автор: http://www.cracklab.narod.ru

Как всегда :) попалась ко мне в руки эта программка, которая очень даже мудрым образом снимает скриншоты и текст любой сложности с экрана, Но и даже может сгенерировать по вашим манипуляциям целый видеофильм, типа "Как я пытался пьяным нажать на Пуск", и всё это сохранить в авишник или gif.
Короче программа бесспорно нужная и приятная сердцу.
Но (как всегда) возникло одно НО:
программа шароварная и постоянно выскакивают напоминания о незарегистрированности. Эти напоминания очень смахивают на обычные Окна. Для начала я попытался стандартными методами, но ничего не смог найти, тогда я вспомнил, что когда хочешь сделать окно видимым (enabled) то надо юзать АПИшную функцию EnableWindow.
Так вот, я ставлю в айсе бряк на эту самую функцию: bpx EnableWindow do "p ret" выхожу из айса и запускаю программу и почти сразу оказываюсь тут:
:0043FF94 FF15F8EF4700            call USER32.EnableWindow
:0043FF9A C745E401000000          mov [ebp-1C], 00000001
посмотрим немного выше в поисках какого-нибудь условного перехода, который уведёт нас далеко от текущей позиции (поближе к ret из функции) И я нашёл такой переход немного выше:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0043FF4D(C)
|
:0043FF59 837DEC00                cmp dword ptr [ebp-14], 00000000 ;перед этим чего-то проверили
:0043FF5D 7508                    jne 0043FF67 ;если мы анрегистред - то прыгаем
:0043FF5F 83C8FF                  or eax, FFFFFFFF
:0043FF62 E9EC000000              jmp 00440053 ;иначе прыгаем на выход из функции и никакого напоминания не показываем

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0043FF5D(C)
|
:0043FF67 8BCE                    mov ecx, esi
:0043FF69 E81AFFFFFF              call 0043FE88
:0043FF6E 8BF8                    mov edi, eax
:0043FF70 897DE0                  mov dword ptr [ebp-20], edi
:0043FF73 E8480D0000              call 00440CC0
:0043FF78 57                      push edi
:0043FF79 E8E5070000              call 00440763
:0043FF7E 8365E400                and dword ptr [ebp-1C], 00000000
:0043FF82 85FF                    test edi, edi
:0043FF84 741B                    je 0043FFA1
:0043FF86 57                      push edi

* Reference To: USER32.IsWindowEnabled, Ord:0168h ;проверяют активно ли главное окно
                                  |
:0043FF87 FF15D0EF4700            Call dword ptr [0047EFD0]
:0043FF8D 85C0                    test eax, eax
:0043FF8F 7410                    je 0043FFA1 ;если нет то прыгаем....
:0043FF91 6A00                    push 00000000
:0043FF93 57                      push edi

* Reference To: USER32.EnableWindow, Ord:00B2h ;...иначе - делаем его неактивным
                                  |
:0043FF94 FF15F8EF4700            Call dword ptr [0047EFF8]
:0043FF9A C745E401000000          mov [ebp-1C], 00000001
Как оказалось напоминание показывается не функцией enablewindow, а чем-то другим, а enablewindow назначалась главному окну, которое должно было бы стать disabled, когда появится окно напоминания!!! Но нам повезло, и место проверки "А нужно ли напоминание" оказалось рядом, а именно по адресу:
:0043FF5D 7508                    jne 0043FF67
тут нужно, чтобы мы никогда не прыгали, т.е. поменяем команду jne 0043FF67 на jne 0043FF5F. Можете проверить - при старте никакого напоминания нет! Ура.
Теперь я могу не отвлекаться на то, чтобы каждый раз закрывать окно с напоминаниями!

Ну а для тех, у кого нифига не получилось, как всегда готовый крак:
-------вырезать тут-----------
SnagIt32 v [4.0.1] CRACK by vallkor//PTDS

it'll remove all nag screens!!! 
snagit32.exe
0003F35E: 08 00
------вырезать тут------------

ВсЁ!

исследовал и наваял туториал:
vallkor //PTDS (vallkor@chat.ru)








Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте