Ломаем G-Police Автор..: Adamus Перевод: NightCat//TEAM-53 Привет всем! Сегодня займёмся отучением от диска игры "G-Police". Использовать будем W32dsm и HEX-редактор. За дело! 1.Делаем инсталляцию игры, копируем все файлф с диска в папку, в которую проинсталлили игрушку. Вынимаем диск и запускаем игру. Появляется сообщение: 'Please insert G-Police CD'. 2.Делаем копию файла и дизассемблируем его. 3.Топаем в 'String Data References', ищем там наше сообщение и кликаем по нему два раза. Вываливаемся вот тут: * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:0046B043(C), :0046B087(U) | :0046B018 85DB test ebx, ebx <= если ebx=ebx=1, то прыгаем к плохому сообщению, иначе к хорошему. :0046B01A 0F8569000000 jne 0046B089 <= наш джамп * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0046B080(U) | :0046B020 89F0 mov eax, esi :0046B022 E8A97FFAFF call 00412FD0 :0046B027 6A15 push 00000015 * Possible StringData Ref from Data Obj ->"G-Police" | :0046B029 68F2D04F00 push 004FD0F2 * Possible StringData Ref from Data Obj ->"Please Insert G-Police CD" | :0046B02E 68FBD04F00 push 004FD0FB <= то, что нужно :0046B033 A134255300 mov eax, dword ptr [00532534] :0046B038 50 push eax * Reference To: USER32.MessageBoxA, Ord:0012h | :0046B039 2EFF15F4834F00 Call dword ptr cs:[004F83F4] :0046B040 83F802 cmp eax, 00000002 :0046B043 72D3 jb 0046B018 :0046B045 773B ja 0046B082 Анализируемкод и приходим к выводу, что прыжок не выполняется, если флаг нуля будет равен 1. Так что записиываем оффсет джампа jne 0046B089 (0006A41A) и закрываем W32dаsm. Открываем HEX-редактор и топаев на наш оффсет. А там уже меняем 0F8569000000 на 0F8469000000, сохраняем и закрываем редактор. 4.Запускам игру и она уже не требует оригинального диска. My e-mail: danse_macabre@wp.pl