Imperialism 2 Инструменты: Hiew, W32Dasm, Soft-Ice <-- не обязательно Готовы? Поехали! Инсталлим игру и, когда всё закончилось, бэк-апин файл imperialism II.exe (.bak & .w32). Запускаем, выбираем "Start new game" или "Tutorial". Появляется сообщение: "Please place Imperialism II cd.." Всегда одно и то же предложение. =) Итак, это жестокоее внутриигровое сообщение, которое использует GetDriveTypeA, чтобы проверить доступ к диску. Загуружаем Imperialism II.w32 в W32Dasm... Ждём... ведь файл целых 4 мегабайта. Затем используем поиск, чтобы найти "getdrivetypea". Пропускаем 1-й и второй случай, нам нужен 3-й: * Reference To: KERNEL32.GetDriveTypeA, Ord:00DFh <-- Многие игры это используют | :006761CC FF15D8817600 Call dword ptr [007681D8] :006761D2 33C9 xor ecx, ecx :006761D4 83F805 cmp eax, 00000005 <-- проверка cd, 05 = cd :006761D7 0F94C1 sete cl :006761DA 84C9 test cl, cl :006761DC 0F84D1000000 je 006762B3 :006761E2 8D4C2410 lea ecx, dword ptr [esp+10] :006761E6 E84BDA0200 call 006A3C36 :006761EB 8B1D80F57400 mov ebx, dword ptr [0074F580] :006761F1 6A01 push 00000001 :006761F3 C744243400000000 mov [esp+34], 00000000 :006761FB FFD6 call esi :006761FD 80C341 add bl, 41 :00676200 6A01 push 00000001 :00676202 53 push ebx :00676203 8D4C241C lea ecx, dword ptr [esp+1C] :00676207 8BF8 mov edi, eax :00676209 E829780200 call 0069DA37 Possible StringData Ref from Data Obj ->":\" Я покапался тут немного и выяснилось, Что это не тот кусок куда, который нам нужен. Я чуть проскроллил вверх и остановился вот тут: * Possible StringData Ref from Data Obj ->"0160" | :00676181 68BCF57400 push 0074F5BC :00676186 50 push eax :00676187 E8D4870000 call 0067E960 :0067618C 83C408 add esp, 00000008 :0067618F F7D8 neg eax :00676191 1BC0 sbb eax, eax :00676193 F7D8 neg eax :00676195 84C0 test al, al <-- проверка cd :00676197 0F844B020000 je 006763E8 <-- ДА! Тогда прыгаем :0067619D A180F57400 mov eax, dword ptr [0074F580] * Reference To: KERNEL32.SetErrorMode, Ord:0213h <--Этот тож часто используется... | :006761A2 8B35E8817600 mov esi, dword ptr [007681E8] * Reference To: KERNEL32.GetVolumeInformationA, Ord:014Fh <-- ...да и это. | :006761A8 8B2DEC817600 mov ebp, dword ptr [007681EC] :006761AE 83F8FF cmp eax, FFFFFFFF :006761B1 0F8406010000 je 006762BD :006761B7 8B0DB8F57400 mov ecx, dword ptr [0074F5B8] :006761BD 8D542418 lea edx, dword ptr [esp+18] :006761C1 0441 add al, 41 :006761C3 894C2418 mov dword ptr [esp+18], ecx :006761C7 52 push edx :006761C8 8844241C mov byte ptr [esp+1C], al Взлом этой игры не будет проблемой. Просто меняем "je 006763E8" --> "jne 006763E8" и всё. Было довольно легко, да? =) Так оно на самом деле и есть. Крэкинг довольно простое дело, главное найти нужное месте для взлома, а вот это уже сложнее. =) Greetz: Friends, tKC, Pedro of Laxity и всем крэкерам на Земле (или Луне или еще где) -C_DKnight- c_dknight@iobox.com Перевод: NightCat teamft@gmail.com