Submarina Опубликовано 30 марта, 2015 Автор Поделиться Опубликовано 30 марта, 2015 Привет MasterGH, да я и так стараюсь как могу, пока плохо получается искать ломать кодированные, шифрованные значения, но буду стараться. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 В 30.03.2015 в 02:59, Baracuda сказал: Привет garik66, я же говорил что у меня эти скрипты давно есть,Привет Baracuda, я же написал: В 30.03.2015 в 00:45, garik66 сказал: Я знаю, что и ты и LIRW уже написали такие скрипты, но пусть будет на выбор:И во-вторых, чтобы мне взломать опыт, мне нужно его получить, а чтобы начать получать опыт - мне нужно выжить (и ещё изучить интерфейс игры и управление), так что мне всё равно придётся взламывать почти всё. В 30.03.2015 в 04:18, MasterGH сказал: 1. Не думаю, что опыт и очки умения закодированы, когда другие значения не закодированы.Нет MasterGH, опыт там точно закодирован. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 (изменено) В любом случаи скрипт есть - и там просто его подправить под себя и всё. Изменено 30 марта, 2015 пользователем LIRW Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 Да действительно опыт закодирован xor, написал скрипт но он добавляет очень много опыта порядком 6000000, а при деактивации игра вылетает, где-то ошибочку сделал.Сейчас подумаем как поправить. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 В 30.03.2015 в 07:36, Dison сказал: написал скрипт но он добавляет очень много опыта порядком 6000000Значит, не правильно используешь константу, пересмотри мои два видео.Там нужно примерно так.1. Загружаем в регистр константу (с помощью которой разрабы XORируют значение). Пункт 1. не нужен, если константа не меняется.2. В адресе зашифрованного значения раскодируем это значение с помощью регистра (или константы).3. Прибавляем сколько нам нужно.4. Кодируем назад. Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 Пацаны я с вами игра скачивается скиньте мне в личку адрес ввиде аобскана на ХР. Чтоб не искать самому пол дня. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 Ну, да там шифрование. Вот скрипт на млн. опыта Показать контент 1. Ищем 4 байта целое, правило поиска "Точное значение"2. Находим "экранный адрес"3. Ставим на "экранный адрес" бряк на запись4. Выходим на код, который можно увидеть под спойлером выше.5. В пошаговой отладке прогоняем и видим что да как.6. Пишем скрипт Вот и все.{ Game : ravenscry.exe Version: Date : 2015-03-30 Author : MasterGH 1000000 EXP}[ENABLE]aobscanmodule(INJECT,ravenscry.exe,89 86 C4 10 00 00) // should be uniquealloc(newmem,$1000)label(code)label(return)newmem:code: mov eax,#100000 add eax,[esi+000010D0] // добавочное значение xor eax,5A63CD29 //константа mov [edx+04],eax mov [esi+000010C4],eax jmp returnINJECT: jmp code nopreturn:registersymbol(INJECT)[DISABLE]//code from here till the end of the code will be used to disable the cheatINJECT: db 89 86 C4 10 00 00unregistersymbol(INJECT)dealloc(newmem){// ORIGINAL CODE - INJECTION POINT: "ravenscry.exe"+53DAD9"ravenscry.exe"+53DAB2: 89 86 C8 10 00 00 - mov [esi+000010C8],eax"ravenscry.exe"+53DAB8: 8B 97 5C 0C 00 00 - mov edx,[edi+00000C5C]"ravenscry.exe"+53DABE: 8B 42 04 - mov eax,[edx+04]"ravenscry.exe"+53DAC1: 35 29 CD 63 5A - xor eax,5A63CD29"ravenscry.exe"+53DAC6: 2B 86 D0 10 00 00 - sub eax,[esi+000010D0]"ravenscry.exe"+53DACC: 8B CD - mov ecx,ebp"ravenscry.exe"+53DACE: 0F 98 C1 - sets cl"ravenscry.exe"+53DAD1: BB 64 00 00 00 - mov ebx,00000064"ravenscry.exe"+53DAD6: 49 - dec ecx"ravenscry.exe"+53DAD7: 23 C1 - and eax,ecx// ---------- INJECTING HERE ----------"ravenscry.exe"+53DAD9: 89 86 C4 10 00 00 - mov [esi+000010C4],eax// ---------- DONE INJECTING ----------"ravenscry.exe"+53DADF: EB 1C - jmp ravenscry.exe+53DAFD"ravenscry.exe"+53DAE1: C7 86 CC 10 00 00 FF FF FF FF - mov [esi+000010CC],FFFFFFFF"ravenscry.exe"+53DAEB: 89 AE D0 10 00 00 - mov [esi+000010D0],ebp"ravenscry.exe"+53DAF1: 89 AE C8 10 00 00 - mov [esi+000010C8],ebp"ravenscry.exe"+53DAF7: 89 AE C4 10 00 00 - mov [esi+000010C4],ebp"ravenscry.exe"+53DAFD: 8B 16 - mov edx,[esi]"ravenscry.exe"+53DAFF: 8B 82 14 01 00 00 - mov eax,[edx+00000114]"ravenscry.exe"+53DB05: 68 70 05 00 00 - push 00000570"ravenscry.exe"+53DB0A: 8B CE - mov ecx,esi"ravenscry.exe"+53DB0C: FF D0 - call eax} Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 (изменено) В 30.03.2015 в 14:04, MasterGH сказал: Ну, да там шифрование. Вот скрипт на млн. опыта Показать Спасибо! Я не как не мог понять как с этим шифрованием скрипт писать.MasterGHТвой скрипт для версии 1.1 если не против я поправил твой скрипт и для версии 1.3 Показать контент [ENABLE]aobscanmodule(Experience,RavensCry.exe,89 86 18 11 00 00) // should be uniquealloc(newmem,$1000)registersymbol(Experience)label(return)newmem:mov eax,#1000000add eax,[esi+00001124] // добавочное значениеxor eax,5A63CD29 //константаmov [edx+04],eaxmov [esi+00001118],eaxjmp returnExperience:jmp newmemnopreturn:[DISABLE]Experience:db 89 86 18 11 00 00unregistersymbol(Experience)dealloc(newmem) Изменено 30 марта, 2015 пользователем Dison Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 (изменено) В свете обсуждения здесь, переделал скрипты (отсюда.).Исправления:GodMod:1. Для такелажа (жёлтая полоска) и экипажа (зелёная полоска) записываются максимальные значения.2. Для корпуса (красная полоска), т.к. максимального значения не нашёл, оставил прежним.OneHitKill:1. Для такелажа (жёлтая полоска) и экипажа (зелёная полоска) записывается 0 сразу, после включения скрипта, соответственно вражеский корабль не уплывает и ни кто не стреляет, так что спокойно подплываем к кораблю.2. Для корпуса (красная полоска) 0 с одного выстрела.Сannon:1. Подправил скрипт скорострельности, теперь скрипт используют именно игровые значения.Скрипты для версии игры 1.01 Показать контент Показать контент В 30.03.2015 в 14:04, MasterGH сказал: Вот скрипт на млн. опытаОтлично. можно дальше не ломать.[ENABLE]alloc(newMem, 64)alloc(newMem1, 64)alloc(newMem2, 64)label(returnHere)label(returnHere1)label(returnHere2)label(OK1)label(OK2)newMem:cmp edx,0 // У врага 0jne @f // Если наш, то не записываем новое значение жизни (xmm2)mov [esi+000002DC],0 // Если враг, то обнуляем ему жизнь.@@:jmp returnHerenewMem1:cmp ebx,0jne @ffild dword ptr [eax+18]fstp dword ptr [eax+14]jmp OK1@@:mov [eax+14],0OK1:movss xmm0,[eax+14]jmp returnHere1newMem2:cmp ebx,0jne @ffild dword ptr [ecx+000002B0]fstp dword ptr [ecx+000002B4]jmp OK2@@:mov dword ptr [ecx+000002B4],(float)0OK2:fld dword ptr [ecx+000002B4]jmp returnHere2ravenscry.exe+4CEA21:jmp newMemdb 90 90 90returnHere:ravenscry.exe+57FFF5:jmp newMem1returnHere1:ravenscry.exe+57F060:jmp newMem2nopreturnHere2:[DISABLE]ravenscry.exe+4CEA21:movss [esi+000002DC],xmm2 // Корпус (красная полоска)ravenscry.exe+57FFF5:movss xmm0,[eax+14] // Экипаж (зелёная полоска)ravenscry.exe+57F060:fld dword ptr [ecx+000002B4] // Такелаж (жёлтая полоска)dealloc(newMem)dealloc(newMem1)dealloc(newMem2) [ENABLE]alloc(newMem3, 64)alloc(newMem4, 64)label(returnHere3)label(returnHere4)newMem3:sub [ecx+2C],0jmp ravenscry.exe+2D621Ajmp returnHere3newMem4:fld [ecx+00000328] // Левыйfstp [ecx+0000032c] // бортfld [ecx+00000348] // Правыйfstp [ecx+0000034c] // бортmovss xmm0,[ecx+eax*8+0000031C]jmp returnHere4ravenscry.exe+2D620C:jmp newMem3returnHere3:ravenscry.exe+4C333C:jmp newMem4db 90 90 90 90returnHere4:[DISABLE]ravenscry.exe+2D620C: // Снарядыsub [ecx+2C],eaxjmp ravenscry.exe+2D621Aravenscry.exe+4C333C:movss xmm0,[ecx+eax*8+0000031C] // Скорострельностьdealloc(newMem3)dealloc(newMem4) Изменено 31 марта, 2015 пользователем garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 Dison, В 30.03.2015 в 14:15, Dison сказал: Твой скрипт для версии 1.1 если не против я поправил твой скрипт и для версии 1.3Я не против. Кстати, с помощь дизассемблерования и парсера на Lua можно попробовать сделать универсальным скрипт для разных патчей к играм, т.е. чтобы скрипт автоматически генерировался.Ну, а очки улучшения или как их там по аналогичной схеме. Ищешь только 1 байт. Бряк на запись. По инструкции поднимаешься, хорошо так, на строчек 30 вверх до xor-вания. По аналогии можешь сделать инъекцию кода в инструкцию как из скрипта в 38 посте. Я делать не буду, думаю, сам справишься, ну или кто-нибудь, кто уже скачал игру поможет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 В 30.03.2015 в 14:04, MasterGH сказал: Вот скрипт на млн. опытаЗаметил очепятку, если на млн., то нужно 0 дописать сюда:mov eax,#100000 // сюдаЭто для новичков, а то потом будут искать: "Говорили же мильон..... "MasterGH, тоже позволил себе, подправить твой скрипт (в таблице СЕ не красиво смотрится очень большая цифра при включённом скрипте, не похожая на 100000.) Показать контент [ENABLE]aobscanmodule(INJECT,ravenscry.exe,89 86 C4 10 00 00) // should be uniquealloc(newmem,$1000)label(code)label(return)label(flag)label(OK)newmem:code: cmp byte ptr [flag],1 // один раз jne OK mov eax,#100000 // добавочное значение add eax,[esi+000010D0] xor eax,5A63CD29 // константа mov [edx+04],eax mov byte ptr [flag],0OK: mov [esi+000010C4],eax jmp returnflag: db 1INJECT: jmp code nopreturn:registersymbol(INJECT)[DISABLE]//code from here till the end of the code will be used to disable the cheatINJECT: db 89 86 C4 10 00 00unregistersymbol(INJECT)dealloc(newmem) Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 Я попробывал для очков улучшения написать скрипт но что-то моего знания не хватает.делал по аналогии но нечего не происходит, одним словом вылет из игры мгновенно... Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 В 30.03.2015 в 16:00, Dison сказал: но что-то моего знания не хватает.Я же тебе говорил, посмотри мои два видео, там довольно подробно и прочитай комментарии в скриптах. Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 (изменено) Хотя сейчас подправил и получилось при активации скрипта очков становится 27102 Показать контент [ENABLE]aobscanmodule(InfiniteSkillPoints,RavensCry.exe,89 AB 70 07 00 00) // should be uniquealloc(newmem,$1000)registersymbol(InfiniteSkillPoints)label(return)newmem:mov ebp,#999add esi,[ebx+00000818]xor ebp,00006A39mov [ebx+00000590],ebpmov [ebx+00000770],ebpjmp returnInfiniteSkillPoints:jmp newmemnopreturn:[DISABLE]InfiniteSkillPoints:db 89 AB 70 07 00 00unregistersymbol(InfiniteSkillPoints)dealloc(newmem)Проверив скрипт оказалось что это экранное значение, при отключении скрипта очки сбрасываются... В 30.03.2015 в 16:04, garik66 сказал: Я же тебе говорил, посмотри мои два видео, там довольно подробно и прочитай комментарии в скриптах. Я смотрел одно твое видео про героев ну что-то так и не врубился как-то все быстро не успеваю вникнуть.Смотрел раз 5 Изменено 31 марта, 2015 пользователем NullAlex Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 (изменено) Показать контент Вот скрипт на добавление 10 скилпоинтов (нужно больше поменяйте, или включите скрипт и войдите на закладку умений несколько раз).Dison, просьба - переделай скрипт и на версию 1,3 пожалуйста и прочитай комментарии в скрипте, может тогда будет более понятно, где ошибался.[ENABLE]alloc(newMem, 64)label(returnHere)newMem:xor [ecx+12],6a39 // Расшифровываем кол-во скил-поинтов, 6a39 - константаadd [ecx+12],#10 // Прибавляем 10xor [ecx+12],6a39 // И опять зашифровываем.movsx ebp,word ptr [ecx+12]lea edi,[ebx+00000590]jmp returnHereravenscry.exe+4FD883:jmp newMemdb 90 90 90 90 90returnHere:[DISABLE]ravenscry.exe+4FD883:movsx ebp,word ptr [ecx+12]//В [ecx+12] лежат количество скил-поинтов.lea edi,[ebx+00000590]dealloc(newMem) Изменено 30 марта, 2015 пользователем garik66 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 В 30.03.2015 в 16:59, garik66 сказал: Dison, просьба - переделай скрипт и на версию 1,3 пожалуйста и прочитай комментарии в скрипте, может тогда будет более понятно, где ошибался. Спасибо garik66Сейчас переделаю 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 (изменено) В 30.03.2015 в 17:09, Dison сказал: Сейчас переделаюТебе тоже спасибо.А для ленивых, вот таблица с 4 опциями для игры версии 1.01ravenscry_v1.CT Изменено 31 марта, 2015 пользователем garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 30 марта, 2015 Поделиться Опубликовано 30 марта, 2015 (изменено) Модифицировал скрипт Гарика добавил Аоб Скан для версии игры 1.3 Показать контент [ENABLE]aobscanmodule(InfSkillPoints,RavensCry.exe,0F BF 69 12 8D BB 90 05 00 00) // should be uniquealloc(newmem,$64)registersymbol(InfSkillPoints)label(return)newmem:xor [ecx+12],6a39 // Расшифровываем кол-во скил-поинтов, 6a39 - константаadd [ecx+12],#99 // Прибавляем 99xor [ecx+12],6a39movsx ebp,word ptr [ecx+12]lea edi,[ebx+00000590]jmp returnInfSkillPoints:jmp newmemnopnopnopnopnopreturn:[DISABLE]InfSkillPoints:db 0F BF 69 12 8D BB 90 05 00 00unregistersymbol(InfSkillPoints)dealloc(newmem) Вот нашел значение уровня игрока оно тоже шифрованное здесь немного схема дешифровки отличается как здесь быть.Мне уже просто стало интересно познать дешифрованиеВот адрес уровня игрока "RavensCry.exe"+544895На всякий случай сигна39 86 20 11 00 00 74 3B 8B 17 8B 82 94 02 00 00 8B CF FF D0 Изменено 31 марта, 2015 пользователем NullAlex Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 31 марта, 2015 Поделиться Опубликовано 31 марта, 2015 В 30.03.2015 в 17:11, garik66 сказал: Тебе тоже спасибо.А для ленивых, вот таблица с 4 опциями Хотя бы таблицу бы почистил, 15 тыс. строк на 2 мб. Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 31 марта, 2015 Поделиться Опубликовано 31 марта, 2015 (изменено) Давайте вместе разберем, лично мои попытки обойти шифрование не дало ожидаемого результата. Вот нашел значение уровня игрока оно тоже шифрованное здесь немного схема дешифровки отличается, как здесь быть.Мне уже просто стало интересно познать дешифрование Вот адрес уровня игрока "RavensCry.exe"+544895 На всякий случай сигна Версия игры - 1.339 86 20 11 00 00 74 3B 8B 17 8B 82 94 02 00 00 8B CF FF D0 Изменено 31 марта, 2015 пользователем Dison Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 31 марта, 2015 Поделиться Опубликовано 31 марта, 2015 В 31.03.2015 в 04:10, MasterGH сказал: Хотя бы таблицу бы почистил, 15 тыс. строк на 2 мб.Не заметил, наверное объединилась с таблицей, которую давал LIRW.Перезалил. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 31 марта, 2015 Поделиться Опубликовано 31 марта, 2015 В 31.03.2015 в 13:51, Dison сказал: Мне уже просто стало интересно познать дешифрованиеУ тебя есть данные: Адрес уровня игрока "RavensCry.exe"+544895Сигна Версия игры - 1.3 "39 86 20 11 00 00 74 3B 8B 17 8B 82 94 02 00 00 8B CF FF D0" Какие у тебя трудности? Копипасти отладочный код, значения регистров, свой скрипт АА, который не работает сюды на форум... будем разбираться Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 31 марта, 2015 Поделиться Опубликовано 31 марта, 2015 В 31.03.2015 в 13:51, Dison сказал: Давайте вместе разберем,У меня версия v. 1.1. Другую качать не хочется. А как ты с одной версии, на другую версию находишь адреса? Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 31 марта, 2015 Поделиться Опубликовано 31 марта, 2015 (изменено) Показать контент Показать контент aobscanmodule(AddLevel,RavensCry.exe,39 86 20 11 00 00) // should be uniquealloc(newmem,$1000)registersymbol(AddLevel)label(return)newmem:mov [esi+00001120],#99add eax,[esi+00001124]xor ebp,ebp mov [edx+04],eax cmp [esi+00001120],eax jmp returnAddLevel: jmp newmem nopreturn:[DISABLE]AddLevel: db 39 86 20 11 00 00unregistersymbol(AddLevel)dealloc(newmem) Изменено 31 марта, 2015 пользователем Dison Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 31 марта, 2015 Поделиться Опубликовано 31 марта, 2015 Dison, xor ebp,ebp это не шифрование, а обнуление регистра. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения