Перейти к содержанию

Рекомендуемые сообщения

Привет MasterGH, да я и так стараюсь как могу, пока плохо получается искать ломать кодированные, шифрованные значения, но буду стараться.

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 79
  • Создана
  • Последний ответ

Топ авторов темы

Привет garik66, я же говорил что у меня эти скрипты давно есть,

Привет Baracuda, я же написал:

 

Я знаю, что и ты и LIRW уже написали такие скрипты, но пусть будет на выбор:

И во-вторых, чтобы мне взломать опыт, мне нужно его получить, а чтобы начать получать опыт - мне нужно выжить (и ещё изучить интерфейс игры и управление), так что мне всё равно придётся взламывать почти всё.

 

1. Не думаю, что опыт и очки умения закодированы, когда другие значения не закодированы.

Нет MasterGH, опыт там точно закодирован.

Ссылка на комментарий
Поделиться на другие сайты

Да действительно опыт закодирован xor, написал скрипт но он добавляет очень много опыта порядком 6000000, а при деактивации игра вылетает, где-то ошибочку сделал.

Сейчас подумаем как поправить. 

Ссылка на комментарий
Поделиться на другие сайты

написал скрипт но он добавляет очень много опыта порядком 6000000

Значит, не правильно используешь константу, пересмотри мои два видео.

Там нужно примерно так.

1. Загружаем в регистр константу (с помощью которой разрабы XORируют значение). Пункт 1. не нужен, если константа не меняется.

2. В адресе зашифрованного значения раскодируем это значение с помощью регистра (или константы).

3. Прибавляем сколько нам нужно.

4. Кодируем назад.

Ссылка на комментарий
Поделиться на другие сайты

Ну, да там шифрование. Вот скрипт на млн. опыта

 

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}
Ссылка на комментарий
Поделиться на другие сайты

Ну, да там шифрование. Вот скрипт на млн. опыта Показать

 

Спасибо! Я не как не мог понять как с этим шифрованием скрипт писать.

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)
Изменено пользователем Dison
Ссылка на комментарий
Поделиться на другие сайты

В свете обсуждения  здесь, переделал скрипты (отсюда.).

Исправления:

GodMod:

1. Для такелажа (жёлтая полоска) и экипажа (зелёная полоска) записываются максимальные значения.

2. Для корпуса (красная полоска), т.к. максимального значения не нашёл, оставил прежним.

OneHitKill:

1. Для такелажа (жёлтая полоска) и экипажа (зелёная полоска) записывается 0 сразу, после включения скрипта, соответственно вражеский корабль не уплывает и ни кто не стреляет, так что спокойно подплываем к кораблю.

2. Для корпуса (красная полоска) 0 с одного выстрела.

Сannon:

1. Подправил скрипт скорострельности, теперь скрипт используют именно игровые значения.

Скрипты для версии игры 1.01

 

Вот скрипт на млн. опыта

Отлично. можно дальше не ломать.

[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) 
Изменено пользователем garik66
Ссылка на комментарий
Поделиться на другие сайты

Dison,

Твой скрипт для версии 1.1 если не против я поправил твой скрипт и для версии 1.3

Я не против. Кстати, с помощь дизассемблерования и парсера на Lua можно попробовать сделать универсальным скрипт для разных патчей к играм, т.е. чтобы скрипт автоматически генерировался.

Ну, а очки улучшения или как их там по аналогичной схеме. Ищешь только 1 байт. Бряк на запись. По инструкции поднимаешься, хорошо так, на строчек 30 вверх до xor-вания. По аналогии можешь сделать инъекцию кода в инструкцию как из скрипта в 38 посте. Я делать не буду, думаю, сам справишься, ну или кто-нибудь, кто уже скачал игру поможет.

Ссылка на комментарий
Поделиться на другие сайты

Вот скрипт на млн. опыта

Заметил очепятку, если на млн., то нужно 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) 

Ссылка на комментарий
Поделиться на другие сайты

Я попробывал для очков улучшения написать скрипт но что-то моего знания не хватает.

делал по аналогии но нечего не происходит, одним словом вылет из игры мгновенно...

Ссылка на комментарий
Поделиться на другие сайты

но что-то моего знания не хватает.

Я же тебе говорил, посмотри мои два видео, там довольно подробно и прочитай комментарии в скриптах.

Ссылка на комментарий
Поделиться на другие сайты

Хотя сейчас подправил и получилось при активации скрипта очков становится 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)

Проверив скрипт оказалось что это экранное значение, при отключении скрипта очки сбрасываются...

Я же тебе говорил, посмотри мои два видео, там довольно подробно и прочитай комментарии в скриптах.

Я смотрел одно твое видео про героев ну что-то так и не врубился как-то все быстро не успеваю вникнуть.

Смотрел раз 5

Изменено пользователем NullAlex
Ссылка на комментарий
Поделиться на другие сайты

Вот скрипт на добавление 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) 
Изменено пользователем garik66
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Dison, просьба - переделай скрипт и на версию 1,3 пожалуйста и прочитай комментарии в скрипте, может тогда будет более понятно, где ошибался.

 

Спасибо 

garik66

Сейчас переделаю

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Сейчас переделаю

Тебе тоже спасибо.

А для ленивых, вот таблица с 4 опциями  для игры версии 1.01

ravenscry_v1.CT

Изменено пользователем garik66
Ссылка на комментарий
Поделиться на другие сайты

Модифицировал скрипт Гарика добавил Аоб Скан для версии игры 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

Изменено пользователем NullAlex
Ссылка на комментарий
Поделиться на другие сайты

Давайте вместе разберем, лично мои попытки обойти шифрование не дало ожидаемого результата.

 

 

Вот нашел значение уровня игрока оно тоже шифрованное здесь немного схема дешифровки отличается, как здесь быть.

Мне уже просто стало интересно познать дешифрование

 

Вот адрес уровня игрока

 

 "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
Изменено пользователем 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"

 

Какие у тебя трудности?

 

Копипасти отладочный код, значения регистров, свой скрипт АА, который не работает сюды на форум... будем разбираться  :)

Ссылка на комментарий
Поделиться на другие сайты

Давайте вместе разберем,

У меня версия v. 1.1. Другую качать не хочется. А как ты с одной версии, на другую версию находишь адреса?

Ссылка на комментарий
Поделиться на другие сайты

post-10550-0-96260700-1427817578_thumb.p

 

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) 
Изменено пользователем Dison
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.