Почалося все з того що прочитав на форумі топік forum.hackzona.ru/forum-f35/aca-iaaaoiia-eee-iaiai-t22104.html про бази даних мегафона та інших стільникових операторів які можна взяти з сайту names-book.net/baza_dannyh_megafon.html. Скачав собі це диво. Запускаю програму, а вона вимагає відправити смс для реєстрації і ввести отриманий код. Ми росіяни ми не платимо. Головоломка що або я не вмів, але чомусь подумав що все буде просто. Прочитав статтю про аналогічний злом на одному з сайтів. Скачав собі софт, яким власне і має всі взламываться. Скачав W32Dasm v9.0b і BIEW v5.3.2 з сайту biocyborg.narod.ru/soft/crs.htm. Запускаю W32Dasm, відкриваю в ньому phone-a.exe і починаю шукати рядок «Введено правильний реєстраційний ключ!» — це повідомлення виводиться на екран при натисканні кнопки «Реєстрація» у вікні з помилкою. На моє щастя прога не була стиснута ні одним запаковщиком (наприклад UPX) і я легко знайшов цю рядок.

[Початок вирізки]
* Referenced by a (U)nconditional or ©onditional Jump at Address:
|:004CA6D8©
|
:004CA792 6A00 push 00000000
:004CA794 668B0D08A84C00 mov cx, word ptr [004CA808]
:004CA79B B201 mov dl, 01

* Possible StringData Ref from Code Obj ->«Введений невірний реєстраційний „
->“ключ!»
|
:004CA79D B844A84C00 mov eax, 004CA844
:004CA7A2 E89DA1F6FF call 00434944
:004CA7A7 EB15 jmp 004CA7BE
[Кінець вирізки]

Виходить, що цей шматок коду ми стрибаємо з адреси 004CA6D8 про що говорить рядок “* Referenced by a (U)nconditional or ©onditional Jump at Address:
|:004CA6D8©”. Далі шукаємо цей перехід. Бачимо що за адресою 004CA6D8 є умовний перехід у вигляді jne.

[Початок вирізки]
:004CA6D3 E898A3F3FF call 00404A70
:004CA6D8 0F85B4000000 jne 004CA792
:004CA6DE 8D55F4 lea edx, dword ptr [ebp-0C]
[Кінець вирізки]

Власне кажучи нам потрібно щоб цього переходу не було, стати про злом програм я прочитав що можна замінити будь-оператор асемблера порожнім оператором nop HEX код 90. Відкрив phone-a.exe вже HEX-редактором BIEW нащел це місце і замінив 0F85B4000000 на 90. Зберігся і почав запускати прогу. Прога не заробила а видала повідомлення «Access violation address» при натисканні на кнопку «Реєстрація». Тоді я вирішив піти іншим шляхом і замінив команду jne аналогічною командою je, тобто замінив 0F85B4000000 на 0F84B4000000. Запускаю програму і знову з’являється сумнозвісний «Access violation address», натискаю «Ок» програма продовжує працювати. Натискаю кнопку «Реєстрація» і про чудо програма пише що реєстрація успішно пройдена. При запуску програми створюється файл Аутентифікації.dat в якому зберігається інформація про те, що програми зареєстрована, зрозумів це видаленням оного )). Залишилося виправити нещасливу помилку при запуску проги той самий злощасний «Access violation address» довго не думав, просто видалив прогу і відновив її з резервної копії. І ура!!! все запрацювало!!!