SergBrNord Опубликовано 24 апреля, 2017 Поделиться Опубликовано 24 апреля, 2017 Всем привет! Столкнулся с интересной проблемой. Есть такая старенькая игрушка "Гарри Поттер и Философский камень" =) Пытался сломать значение бобов в этой игрушке и получил в итоге: INJECT,Core.dll,ОШИБКА: Не удалось найти уникальный массив байт. Опробованный код "8B 08 89 0A C2 08 00" Насколько я понимаю, CE требуется уникальный массив байт, он же AoB. Пытался добавить вручную байт, получилось что-то вроде этого: aobscanmodule(INJECT,Core.dll,"8B 54 24 04 8B 08 89 0A C2 08 00") // should be unique Всё равно отказывается работать. Как таки получить уникальный массив байт? Весь текст скрипта полностью: Скрытый текст { Game : game.exe Version: Date : 2017-04-24 Author : SergBrNord This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(INJECT,Core.dll,ОШИБКА: Не удалось найти уникальный массив байт. Опробованный код "8B 08 89 0A C2 08 00") // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: mov ecx,[eax] mov [edx],ecx ret 0008 jmp return INJECT+6380DA8: jmp newmem nop nop return: registersymbol(INJECT) [DISABLE] //code from here till the end of the code will be used to disable the cheat INJECT+6380DA8: db 8B 08 89 0A C2 08 00 unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Core.dll"+6CF40 "Core.dll"+6CF24: 8B 54 24 04 - mov edx,[esp+04] "Core.dll"+6CF28: 8B 08 - mov ecx,[eax] "Core.dll"+6CF2A: 89 0A - mov [edx],ecx "Core.dll"+6CF2C: C2 08 00 - ret 0008 "Core.dll"+6CF2F: 90 - nop "Core.dll"+6CF30: 8B 49 34 - mov ecx,[ecx+34] "Core.dll"+6CF33: 83 F9 01 - cmp ecx,01 "Core.dll"+6CF36: 75 0F - jne Core.dll+6CF47 "Core.dll"+6CF38: 8B 44 24 08 - mov eax,[esp+08] "Core.dll"+6CF3C: 8B 54 24 04 - mov edx,[esp+04] // ---------- INJECTING HERE ---------- "Core.dll"+6CF40: 8B 08 - mov ecx,[eax] "Core.dll"+6CF42: 89 0A - mov [edx],ecx "Core.dll"+6CF44: C2 08 00 - ret 0008 // ---------- DONE INJECTING ---------- "Core.dll"+6CF47: 85 C9 - test ecx,ecx "Core.dll"+6CF49: 7E 0E - jle Core.dll+6CF59 "Core.dll"+6CF4B: 56 - push esi "Core.dll"+6CF4C: 8B 74 24 0C - mov esi,[esp+0C] "Core.dll"+6CF50: 57 - push edi "Core.dll"+6CF51: 8B 7C 24 0C - mov edi,[esp+0C] "Core.dll"+6CF55: F3 A5 - repe movsd "Core.dll"+6CF57: 5F - pop edi "Core.dll"+6CF58: 5E - pop esi "Core.dll"+6CF59: C2 08 00 - ret 0008 } Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 24 апреля, 2017 Поделиться Опубликовано 24 апреля, 2017 12 минуты назад, SergBrNord сказал: Всем привет! AA Maker скрипт или ручками. Советую набить руку в этом деле ибо не всегда получится использовать каждый байт. Пример твоего AOB ("8B 54 24 XX 8B 08 89 XX XX XX XX") что то типа такого. Почему стоит набить руку и писать в подобном виде? Потому что есть игры в которых возможно часть кода поменяется. Пример xor eax,FFFFFFFF ("QW ER TY UI OP") а потом бац xor eax,FFFFFFF1 ("QW ER TY UI GG") Надеюсь ясно \/ Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 24 апреля, 2017 Автор Поделиться Опубликовано 24 апреля, 2017 (изменено) 8 минут назад, what228 сказал: AA Maker скрипт или ручками. Советую набить руку в этом деле ибо не всегда получится использовать каждый байт. Пример твоего AOB ("8B 54 24 XX 8B 08 89 XX XX XX XX") что то типа такого. Почему стоит набить руку и писать в подобном виде? Потому что есть игры в которых возможно часть кода поменяется. Пример xor eax,FFFFFFFF ("QW ER TY UI OP") а потом бац xor eax,FFFFFFF1 ("QW ER TY UI GG") Надеюсь ясно \/ Достаточно явно написано. Но мне нужно пояснение. Я сейчас читаю параллельно статью Ридиана с форума CE. У него есть такой пример: Я предполагал, что убираются одинаковые группы байт. Но глянул чуть подробнее — а там совсем не одинаковые группы байт. Т.е. идёт замена непосредственно адресов, которые используются в коде. Но у меня такого нет. Изменено 24 апреля, 2017 пользователем SergBrNord Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 24 апреля, 2017 Поделиться Опубликовано 24 апреля, 2017 37 минуты назад, SergBrNord сказал: Всё равно отказывается работать. Как таки получить уникальный массив байт? В ручную. Скопируй примерное количество байт - штук 20 к примеру и выбрав в СЕ в поиске "Массив байт" проверить их... Не забыв кубик поставить - копируемая при записи. Я просто что заметил - если СЕ не находит рядом в районе + - 20 байт от нужного места нужный сигнатуры, а не находит он из за повтора байт (где то ещо подобное есть) то он выдаёт подобную ошибку. Вот после как найдешь нужные байты в поиске массива - погляди между ними разницу. Вот эта разница и будет отличием уникальных байт. Я не так давно для Gta sa +150 байт выше брал ну такие совпадения были. И разница была между ними только в джампе в 1 байте. В одном месте прыжок был + 3 а в другом уже более.. Вот это и была разница в сигнатуре. Не окажись этого джампа - пришлось бы больше байт брать и сверять уже. Надо найти в общем разницу совпадающими сигнатурами. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 24 апреля, 2017 Поделиться Опубликовано 24 апреля, 2017 (изменено) 12 минуты назад, SergBrNord сказал: Достаточно явно написано. Убираются части которые могут смениться оставляет он такие вещи как mov \ movsx \ sub и eax \ ecx \ ebp и word ptr Но легче проверить через поиск в CE и там уже убирать не нужные части ( повторяющиеся ) и оставлять лишь уникальные по отношению к другим найденным. Изменено 24 апреля, 2017 пользователем what228 Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 24 апреля, 2017 Автор Поделиться Опубликовано 24 апреля, 2017 10 минуту назад, LIRW сказал: В ручную. Скопируй примерное количество байт - штук 20 к примеру и выбрав в СЕ в поиске "Массив байт" проверить их... Не забыв кубик поставить - копируемая при записи. Я просто что заметил - если СЕ не находит рядом в районе + - 20 байт от нужного места нужный сигнатуры, а не находит он из за повтора байт (где то ещо подобное есть) то он выдаёт подобную ошибку. Вот после как найдешь нужные байты в поиске массива - погляди между ними разницу. Вот эта разница и будет отличием уникальных байт. Попробовал поиском по массиву - 0 результатов, хотя AoB Scan выдаёт цифру в 4 совпадения. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 24 апреля, 2017 Поделиться Опубликовано 24 апреля, 2017 4 минуты назад, SergBrNord сказал: Попробовал поиском по массиву - 0 результатов, хотя AoB Scan выдаёт цифру в 4 совпадения. Вот и посмотри эти 4 совпадения и код рядом. В чем то да они отличаются.. Не много по выше к примеру какие то байты другие. Это видеть самому надо - я тут уже не помогу. Чем то, да отличаются они... Как и дописал выше о GTA я вот +150 байт брал выше.... Ну просто код был одинаковый и отличие было вот +150 только в джампе. Погляди что там рядом и гляди найдешь отличие... Но делаешь ты на СЕ видать - то тебе и плагин в принципе пойдет выше описанный. Выдели там байт 50 и сгенерировав паттрен с плагине - попробуй его в массиве на уникальность. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 24 апреля, 2017 Поделиться Опубликовано 24 апреля, 2017 51 минуту назад, SergBrNord сказал: Как таки получить уникальный массив байт? Сегодня уже примерно такой же вопрос задавали, чтобы мне не дублировать свой ответ, вот ссылка на него. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 24 апреля, 2017 Поделиться Опубликовано 24 апреля, 2017 1 минуту назад, Garik66 сказал: Сегодня уже примерно такой же вопрос задавали Игорь если взглянуть на код в отладчике - то судя по нему в игре нет определенного модуля на сканирование. А этот плагин бестолковый на таких играх - не работает он на подобных юнити движках. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 24 апреля, 2017 Поделиться Опубликовано 24 апреля, 2017 Только что, LIRW сказал: Игорь если взглянуть на код в отладчике - то судя по нему в игре нет определенного модуля на сканирование. А этот плагин бестолковый на таких играх - не работает он на подобных юнити движках. А может ты полностью прочтёшь сообщение. и в ссылках тоже. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 24 апреля, 2017 Поделиться Опубликовано 24 апреля, 2017 2 минуты назад, Garik66 сказал: А может ты полностью прочтёшь сообщение. и в ссылках тоже. Читал я... Про байты думаю он и сам знает какие брать... Не даром он скрин показал с пропусками... А более там кроме плагина и нет не чего в той теме... Да ну и ладно - не будем спамить.. А я просто уже привык к юнити - постоянно на нем только и делал в последнее время трейнеры. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 24 апреля, 2017 Поделиться Опубликовано 24 апреля, 2017 1 час назад, LIRW сказал: А более там кроме плагина и нет не чего в той теме... Нужно читать внимательно, а не бегло, если уж пишешь в теме. Про плагин там практически ничего, так как плагин не работал на Моде для Дьябло, а все сигны я делал вручную и объяснил как. 5 часов назад, Garik66 сказал: Нужно брать только байты опкодов (типа MOV, ADD и т.д.) все остальные байты заменять XX. И проверять после замены XX на уникальность сигнатуру, если не уникальная - удлиняешь дальше. Собственно идея такая - с написанием патчей для игр в основном меняются адреса, но также могут поменяться и регистры тоже, смотри мою ссылку на сообщение в пред.посте, а вот опкоды, т.е. логика кода скорее всего не поменяются (ну если это не основательные изменения в игре). Вот из-за этого та моя старая табличка оказалась такой долго живущей. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 апреля, 2017 Поделиться Опубликовано 25 апреля, 2017 12 часа назад, SergBrNord сказал: Есть такая старенькая игрушка "Гарри Поттер и Философский камень" =) Качнул версию -- Релиз группы: R.G.Creative -- Автор репака: K0RW1N 12 часа назад, SergBrNord сказал: Как таки получить уникальный массив байт? Плагин или вручную. 11 час назад, LIRW сказал: А этот плагин бестолковый на таких играх - не работает он на подобных юнити движках. Вроде сработал, вот он что дал: Скрытый текст { Game : HP.exe Version: 1.0 Date : 04-25-17 Author : Garik66 This script does blah blah blah Make by aamaker Lua plagin :) Link - http://forum.gamehacklab.ru/index.php?/files/file/329-ce-plugin-aa-maker/ } [ENABLE] aobscanmodule(Primer,Core.FRegistryObjectInfo::FRegistryObjectInfo+69899,8bxx89xxc2xxxx85xx7exxxx8bxxxxxxxx8bxxxxxxf3xxxxxxc2xxxxxxxxxxxx8bxxxxxx85xx74xx8bxxxxxx8bxxxx33xx8bxx3bxxxx0f94xx8bxxc2xxxx8bxxxxxxxx33xx33xx8bxx3bxxxx0f94xx8bxxc2xxxxxxxxxxxxxxxxxxxxxxxxxxxx8bxxxxxx8bxxxxxx6a) alloc(newmem,$1000) label(code) label(return) registersymbol(Primer) newmem: code: mov ecx,[eax] mov [edx],ecx ret 0008 jmp return Primer: jmp newmem nop nop return: [DISABLE] Primer: db 8B 08 89 0A C2 08 00 unregistersymbol(Primer) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Core.FRegistryObjectInfo::FRegistryObjectInfo+68FED Core.FRegistryObjectInfo::FRegistryObjectInfo+68FD7: 8B 5D 08 - mov ebx,[ebp+08] Core.FRegistryObjectInfo::FRegistryObjectInfo+68FDA: 0FAF C3 - imul eax,ebx Core.FRegistryObjectInfo::FRegistryObjectInfo+68FDD: 8B 56 48 - mov edx,[esi+48] Core.FRegistryObjectInfo::FRegistryObjectInfo+68FE0: 03 C2 - add eax,edx Core.FRegistryObjectInfo::FRegistryObjectInfo+68FE2: 3B F9 - cmp edi,ecx Core.FRegistryObjectInfo::FRegistryObjectInfo+68FE4: 74 03 - je 1016C690 Core.FRegistryObjectInfo::FRegistryObjectInfo+68FE6: 8D 0C 38 - lea ecx,[eax+edi] Core.FRegistryObjectInfo::FRegistryObjectInfo+68FE9: 8B 16 - mov edx,[esi] Core.FRegistryObjectInfo::FRegistryObjectInfo+68FEB: 51 - push ecx Core.FRegistryObjectInfo::FRegistryObjectInfo+68FEC: 8B 4D 10 - mov ecx,[ebp+10] // ---------- INJECTING HERE ---------- Core.FRegistryObjectInfo::FRegistryObjectInfo+68FEF: 03 C1 - add eax,ecx Core.FRegistryObjectInfo::FRegistryObjectInfo+68FF1: 8B CE - mov ecx,esi // ---------- DONE INJECTING ---------- Core.FRegistryObjectInfo::FRegistryObjectInfo+68FF3: 50 - push eax Core.FRegistryObjectInfo::FRegistryObjectInfo+68FF4: FF 52 70 - call dword ptr [edx+70] Core.FRegistryObjectInfo::FRegistryObjectInfo+68FF7: 85 C0 - test eax,eax Core.FRegistryObjectInfo::FRegistryObjectInfo+68FF9: 74 18 - je 1016C6BA Core.FRegistryObjectInfo::FRegistryObjectInfo+68FFB: 33 C0 - xor eax,eax Core.FRegistryObjectInfo::FRegistryObjectInfo+68FFD: 8B 4D F4 - mov ecx,[ebp-0C] Core.FRegistryObjectInfo::FRegistryObjectInfo+69000: 64 89 0D 00000000 - mov fs:[00000000],ecx Core.FRegistryObjectInfo::FRegistryObjectInfo+69007: 5F - pop edi Core.FRegistryObjectInfo::FRegistryObjectInfo+69008: 5E - pop esi Core.FRegistryObjectInfo::FRegistryObjectInfo+69009: 5B - pop ebx } SergBrNord, потесть, полученную сигну. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 25 апреля, 2017 Автор Поделиться Опубликовано 25 апреля, 2017 1 час назад, Garik66 сказал: Качнул версию -- Релиз группы: R.G.Creative -- Автор репака: K0RW1N Плагин или вручную. Вроде сработал, вот он что дал: Показать содержимое { Game : HP.exe Version: 1.0 Date : 04-25-17 Author : Garik66 This script does blah blah blah Make by aamaker Lua plagin :) Link - http://forum.gamehacklab.ru/index.php?/files/file/329-ce-plugin-aa-maker/ } [ENABLE] aobscanmodule(Primer,Core.FRegistryObjectInfo::FRegistryObjectInfo+69899,8bxx89xxc2xxxx85xx7exxxx8bxxxxxxxx8bxxxxxxf3xxxxxxc2xxxxxxxxxxxx8bxxxxxx85xx74xx8bxxxxxx8bxxxx33xx8bxx3bxxxx0f94xx8bxxc2xxxx8bxxxxxxxx33xx33xx8bxx3bxxxx0f94xx8bxxc2xxxxxxxxxxxxxxxxxxxxxxxxxxxx8bxxxxxx8bxxxxxx6a) alloc(newmem,$1000) label(code) label(return) registersymbol(Primer) newmem: code: mov ecx,[eax] mov [edx],ecx ret 0008 jmp return Primer: jmp newmem nop nop return: [DISABLE] Primer: db 8B 08 89 0A C2 08 00 unregistersymbol(Primer) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Core.FRegistryObjectInfo::FRegistryObjectInfo+68FED Core.FRegistryObjectInfo::FRegistryObjectInfo+68FD7: 8B 5D 08 - mov ebx,[ebp+08] Core.FRegistryObjectInfo::FRegistryObjectInfo+68FDA: 0FAF C3 - imul eax,ebx Core.FRegistryObjectInfo::FRegistryObjectInfo+68FDD: 8B 56 48 - mov edx,[esi+48] Core.FRegistryObjectInfo::FRegistryObjectInfo+68FE0: 03 C2 - add eax,edx Core.FRegistryObjectInfo::FRegistryObjectInfo+68FE2: 3B F9 - cmp edi,ecx Core.FRegistryObjectInfo::FRegistryObjectInfo+68FE4: 74 03 - je 1016C690 Core.FRegistryObjectInfo::FRegistryObjectInfo+68FE6: 8D 0C 38 - lea ecx,[eax+edi] Core.FRegistryObjectInfo::FRegistryObjectInfo+68FE9: 8B 16 - mov edx,[esi] Core.FRegistryObjectInfo::FRegistryObjectInfo+68FEB: 51 - push ecx Core.FRegistryObjectInfo::FRegistryObjectInfo+68FEC: 8B 4D 10 - mov ecx,[ebp+10] // ---------- INJECTING HERE ---------- Core.FRegistryObjectInfo::FRegistryObjectInfo+68FEF: 03 C1 - add eax,ecx Core.FRegistryObjectInfo::FRegistryObjectInfo+68FF1: 8B CE - mov ecx,esi // ---------- DONE INJECTING ---------- Core.FRegistryObjectInfo::FRegistryObjectInfo+68FF3: 50 - push eax Core.FRegistryObjectInfo::FRegistryObjectInfo+68FF4: FF 52 70 - call dword ptr [edx+70] Core.FRegistryObjectInfo::FRegistryObjectInfo+68FF7: 85 C0 - test eax,eax Core.FRegistryObjectInfo::FRegistryObjectInfo+68FF9: 74 18 - je 1016C6BA Core.FRegistryObjectInfo::FRegistryObjectInfo+68FFB: 33 C0 - xor eax,eax Core.FRegistryObjectInfo::FRegistryObjectInfo+68FFD: 8B 4D F4 - mov ecx,[ebp-0C] Core.FRegistryObjectInfo::FRegistryObjectInfo+69000: 64 89 0D 00000000 - mov fs:[00000000],ecx Core.FRegistryObjectInfo::FRegistryObjectInfo+69007: 5F - pop edi Core.FRegistryObjectInfo::FRegistryObjectInfo+69008: 5E - pop esi Core.FRegistryObjectInfo::FRegistryObjectInfo+69009: 5B - pop ebx } SergBrNord, потесть, полученную сигну. У меня полная антология от R.G.Recoding, но сигнатура подошла как родная. А вот что я получил (делал ручками): Скрытый текст { Game : game.exe Version: 1.0 Date : 2017-04-24 Author : SergBrNord } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(BEANS,Core.dll,8B XX 89 XX C2 XX XX 85 XX 7E 0E 56 8B XX XX XX 57 8B XX XX XX F3 A5 5F 5E C2 XX XX 90 90 90 90 8B XX XX XX 85 XX 74 16 8B XX XX XX 8B XX 56 33 XX 8B XX 3B XX 5E 0F 94 C1 8B XX C2 XX XX 8B XX XX XX 56 33 XX 33 XX 8B XX 3B XX 5E 0F 94 C1 8B XX C2 XX XX 90 90 90 90 90 90 90 90 90 90 90 90 8B XX XX XX 8B XX XX XX 6A 04 52 8B XX FF XX XX C2 XX XX) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: cmp [eax+10], 65 //101 jne code cmp [flag], 0 jne code mov [eax], C8 //200 mov [flag], 1 code: mov ecx,[eax] mov [edx],ecx ret 0008 jmp return flag: db 0 BEANS+6380DA8: jmp newmem nop nop return: registersymbol(BEANS) [DISABLE] //code from here till the end of the code will be used to disable the cheat BEANS+6380DA8: db 8B 08 89 0A C2 08 00 unregistersymbol(BEANS) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Core.dll"+6CF40 "Core.dll"+6CF24: 8B 54 24 04 - mov edx,[esp+04] "Core.dll"+6CF28: 8B 08 - mov ecx,[eax] "Core.dll"+6CF2A: 89 0A - mov [edx],ecx "Core.dll"+6CF2C: C2 08 00 - ret 0008 "Core.dll"+6CF2F: 90 - nop "Core.dll"+6CF30: 8B 49 34 - mov ecx,[ecx+34] "Core.dll"+6CF33: 83 F9 01 - cmp ecx,01 "Core.dll"+6CF36: 75 0F - jne Core.dll+6CF47 "Core.dll"+6CF38: 8B 44 24 08 - mov eax,[esp+08] "Core.dll"+6CF3C: 8B 54 24 04 - mov edx,[esp+04] // ---------- INJECTING HERE ---------- "Core.dll"+6CF40: 8B 08 - mov ecx,[eax] "Core.dll"+6CF42: 89 0A - mov [edx],ecx "Core.dll"+6CF44: C2 08 00 - ret 0008 // ---------- DONE INJECTING ---------- "Core.dll"+6CF47: 85 C9 - test ecx,ecx "Core.dll"+6CF49: 7E 0E - jle Core.dll+6CF59 "Core.dll"+6CF4B: 56 - push esi "Core.dll"+6CF4C: 8B 74 24 0C - mov esi,[esp+0C] "Core.dll"+6CF50: 57 - push edi "Core.dll"+6CF51: 8B 7C 24 0C - mov edi,[esp+0C] "Core.dll"+6CF55: F3 A5 - repe movsd "Core.dll"+6CF57: 5F - pop edi "Core.dll"+6CF58: 5E - pop esi "Core.dll"+6CF59: C2 08 00 - ret 0008 } Что интересно, после доработки сигнатуры, место в коде находится точно, но переход не прописывается никак. Вот как это выглядит: Скрытый текст Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 25 апреля, 2017 Поделиться Опубликовано 25 апреля, 2017 Потому что ("BEANS+6380DA8") означает прыжок на "6380DA8" байт после чего идет инъекция в том месте. Тебе нужно удалить ("+6380DA8"). 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 25 апреля, 2017 Автор Поделиться Опубликовано 25 апреля, 2017 2 минуты назад, what228 сказал: Потому что ("BEANS+6380DA8") означает прыжок на "6380DA8" байт после чего идет инъекция в том месте. Тебе нужно удалить ("+6380DA8"). Уже дошло. НЯП, нужно удалить в двух местах: Скрытый текст BEANS: jmp newmem nop nop return: registersymbol(BEANS) [DISABLE] //code from here till the end of the code will be used to disable the cheat BEANS: db 8B 08 89 0A C2 08 00 Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 25 апреля, 2017 Поделиться Опубликовано 25 апреля, 2017 (изменено) 3 минуты назад, SergBrNord сказал: Уже дошло. НЯП, нужно удалить в двух местах: Да в двух т.к. при отключении нужно тоже восстановить байты и там тоже делается прыжок ( Ну это так для понятия ). Изменено 25 апреля, 2017 пользователем what228 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 апреля, 2017 Поделиться Опубликовано 25 апреля, 2017 24 минуты назад, SergBrNord сказал: BEANS+6380DA8: // далековато же ты прыгал jmp newmem [DISABLE] BEANS+6380DA8: db 8B 08 89 0A C2 08 00 // и портил игровой код Игра, после отключения скрипта - не вылетала? Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 29 апреля, 2017 Автор Поделиться Опубликовано 29 апреля, 2017 (изменено) В 25.04.2017в13:17, Garik66 сказал: Игра, после отключения скрипта - не вылетала? Нет. 0 реакции, побегал, поиграл – без проблем. P.S. Это привет от CE остался. Изменено 29 апреля, 2017 пользователем SergBrNord Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения