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

Nexus: The Jupiter Incident [Какая кодировка использована?]


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

Добрый день.

Ранее имел небольшой опыт работы с CE. Начал играть в старую игру и захотелось Трейнер запилить, ибо без него не комильфо.
Столкнулся с проблемой при взломе очков ресурсов(для кастомизации кораблей), тк поиск 4байт данных давал адреса выводимых на экран ресурсов, т.е. фактически же я не мог изменить значение. Сейчас нашел на PG  таблицу со значениями ресурсов в другой кодировке. То есть, теперь мне всего то надо ввести в поиске много цифр, найти адрес, изменить значение, заменив его такой же длинной цепочкой цифр. Но меня интересует вопрос, в какой кодировке 6 = 3835058836 ?
Вот список с PG:

"Resource point values, just get it to one of them through changing equipment and do a 4 byte search for the number to the right of the - . Hope this helps someone.

24 - 403811406
23 - 317719183
22 - 2447483524
21 - 3519008929
20 - 3538703778
19 - 850526883
18 - 836929440
17 - 4059985037
16 - 1945007238
15 - 3167703575
14 - 3202152220
13 - 3767942457
12 - 3766893626
11 - 2627556155
10 - 2682246712
9 - 3230939157
8 - 1137982750
7 - 1742076575
6 - 3835058836
5 - 1263753905
4 - 1766948786
3 - 1204247219
2 - 3319103408
1 - 1262615197
0 - 1242716822

- т.е. смотрите в игре кол-во ресурсов и в Cheat Engine ставите 4 bytes, и ищете кодированное значение из правого столбца. Бывает один или несколько адресов, их и менять... "

+

Тут чувик посчитал еще значений, как он это сделал? :

"Способ работает. Добавлю немного от себя:
340 - 4243744738
170 - 321063128
96 - 1165305014
52 - 88225474
40 - 3966642814
34 - 2829732048
30 - 2844770892
28 - 3137506410
27 - 734872427
p.s. хотел по порядку таблицу составить, но не выдержал и набил до 340:) "

 

 

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

И еще вопрос. Тут на CheatHappens нашел трейнер под Nexus. Каким образом они реализовали 4, 5, 6, 7 ?
Помогите, пожалуйста.

Вот список:

Options
-------------------------------

Numpad 1: Heal Ship
Numpad 2: Destroy Ship
Numpad 3: Repair Systems
Numpad 4: Unlimited Weapons
Numpad 5: Unlimited Squadrons
Numpad 6: Unlock Squadrons
Numpad 7: Squadrons Cost No Resources

 

Notes
-------------------------------

Numpad 1: Heal Ship - use carefully! Double click on a ship to lock it to the center of the
screen and then mouse over the ship carefully then press this key to affect it.

 

Numpad 2: Destroy Ship - use carefully! Double click on a ship to lock it to the center of the
screen and then mouse over the ship carefully then press this key to affect it.

 

Numpad 3: Repair Systems - press and all ships systems will repair.

 

Numpad 4: Unlimited Weapons - when you are customizing or configuring ships, toggle this on
and you have 99 of each to install. It will also display many weapons and items
that were not visible before.

 

Numpad 5: Unlimited Squadrons - when you are customizing or configuring ships, toggle this on
and you have 99 of each ship to add to your ship.

 

Numpad 6: Unlock Squadrons - when you are customizing or configuring ships, toggle this on
and many squadron types are listed that were not visible before.

 

Numpad 7: Squadrons Cost No Resources - when you are customizing or configuring ships, toggle this on
and when you buy a squadron it will cost no resources.

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

10 час назад, Force сказал:

Каким образом они реализовали 4, 5, 6, 7 ?

Через заморозку или всегда поставляется нужное значение.

 

12 часа назад, Force сказал:

Но меня интересует вопрос, в какой кодировке 6 = 3835058836 ?

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

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

35 минуты назад, 2zolo2 сказал:

Через заморозку или всегда поставляется нужное значение.

Numpad 4: It will also display many weapons and items that were not visible before. - имеется ввиду, что на экране кастомизации становятся доступны все виды оружия, которые были недоступны ранее, тк давались позднее, по мере сюжета.  Как они сделали ее доступной?

 

Numpad 5: Unlimited Squadrons - when you are customizing or configuring ships, toggle this on and you have 99 of each ship to add to your ship. - модуль(расходник) типа "Спейстех Лазер"х99, а в игре их очень много и я не понимаю, как они нашли каждый, тк в игре(как я понял) каждая оружка это отдельная структура.


Numpad 6: Unlock Squadrons - when you are customizing or configuring ships, toggle this on and many squadron types are listed that were not visible before. - то же самое, что и Numpad 4, только тут "шлюпки/десант/истребители" открываются.

 

Numpad 7: Squadrons Cost No Resources - when you are customizing or configuring ships, toggle this on and when you buy a squadron it will cost no resources. - "шлюпки/десант/истребители" не расходуют ресурсы ангара в корабле. Ex: ангар = 16, шлюпки(3штука) = 3-6, а ставишь хоть 50 отрядов таких.

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

Еще я никак(хоть убей) не могу найти статичный адрес, чтобы от него по смещению добраться до "очков ресурсов" на установку модулей. Я сегодня 5 уровней прошел, а потом смещение и ячейки адреса стали цикличными, либо я чет напутал, либо в игре защита такая. Но самое интересное, что я ничего в игре не перезапускал, а спустя час-два, в CE все адреса Указателей  "поменялись". Во время просмотра структуры от ее начала, при открытии Pointer -> 001DE523 все последующие ячейки структуры(этого указателя) были "???" "??" "???????". Это защита такая или я дурак?

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

9 часов назад, Force сказал:

имеется ввиду, что на экране кастомизации становятся доступны все виды оружия, которые были недоступны ранее, тк давались позднее, по мере сюжета.  Как они сделали ее доступной?

9 часов назад, Force сказал:

то же самое, что и Numpad 4, только тут "шлюпки/десант/истребители" открываются.

нашли структуру оружия, корабле в ней значение которое отвечает за доступность оружия,корабле, обычно это поиск по 0,1 

                        

9 часов назад, Force сказал:

- "шлюпки/десант/истребители" не расходуют ресурсы ангара в корабле. Ex: ангар = 16, шлюпки(3штука) = 3-6, а ставишь хоть 50 отрядов таких.

заморозку или всегда поставляется нужное значение.

 

9 часов назад, Force сказал:

модуль(расходник) типа "Спейстех Лазер"х99, а в игре их очень много и я не понимаю, как они нашли каждый, тк в игре(как я понял) каждая оружка это отдельная структура.

 

обычно так, и они размещены вместе

 

Статический адрес лучше искать на одном уровне, так легче будет, меньше мусора убирать предется.

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

2 минуты назад, 2zolo2 сказал:

Статический адрес лучше искать на одном уровне, так легче будет, меньше мусора убирать предется.

Это как понять?

 

3 минуты назад, 2zolo2 сказал:

нашли структуру оружия, кора[CENSORED] в ней значение которое отвечает за доступность оружия, кора[CENSORED], обычно это поиск по 0,1 

То есть, я могу найти структуру кора[CENSORED], и там потыкать все нули и единицы для пробы?

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

В 01.03.2017в16:02, Force сказал:

в какой кодировке 6 = 3835058836 ?

Интересно было бы разобраться. Нашёл функцию преобразования числа 3835058836 в 6 (или любого другого). У меня это call Nexus_DX9.exe+5D3E0. На входе 2 параметра, первое не понял что, второе - наше число в зашифрованном виде. Функция здоровая. Есть там и умножение, и xor.. Как работает не разобрался. Но! 3835058836 = 6, а вот 6 != 3835058836 :( т.е. там явно не простой xor. Если чего пойму, напишу. И кстати, функция работает только с экранным значением. Чтобы изменить реальное нужно как и писалось в первом сообщении найти в памяти это 3835058836 и поменять на другое.

Скрытый текст

int __cdecl ResourceDecrypt(int a1, int a2)
{
  int v2; // ST2C_4@1
  int v3; // ST28_4@1
  int v4; // ST24_4@1
  int v5; // ST20_4@1
  int v6; // ST1C_4@1

  v2 = *(_DWORD *)(a1 + 20);
  v3 = *(_DWORD *)(a1 + 40);
  v4 = *(_DWORD *)(a1 + 44);
  v5 = *(_DWORD *)(a1 + 48);
  v6 = *(_DWORD *)(a1 + 52);
  return v2 & (*(_DWORD *)(a1 + 32)
             * (*(_DWORD *)(a1 + 36) + (~v2 & (a2 ^ ~v2 & (v6 * (v5 + (v2 & a2)) ^ v4 * (v3 + (v2 & a2)) ^ v2 & a2)))) ^ *(_DWORD *)(a1 + 24) * (*(_DWORD *)(a1 + 28) + (~v2 & (a2 ^ ~v2 & (v6 * (v5 + (v2 & a2)) ^ v4 * (v3 + (v2 & a2)) ^ v2 & a2)))) ^ ~v2 & (a2 ^ ~v2 & (v6 * (v5 + (v2 & a2)) ^ v4 * (v3 + (v2 & a2)) ^ v2 & a2))) ^ a2 ^ ~v2 & (v6 * (v5 + (v2 & a2)) ^ v4 * (v3 + (v2 & a2)) ^ v2 & a2);
}

 

Первый параметр функции вроде бы такая структура. Меняются ли числа пока не смотрел.

Скрытый текст

.data:008793F0 dword_8793F0    dd 67231341h            ; DATA XREF: sub_4D8640o
.data:008793F4                 dd 184h
.data:008793F8                 dd 1
.data:008793FC                 dd 0Ch
.data:00879400                 dd 0
.data:00879404                 dd 5CAC5AC5h
.data:00879408                 dd 2CDC45B0h
.data:0087940C                 dd 4AB154F2h
.data:00879410                 dd 0BE3EEABEh
.data:00879414                 dd 668B2E4Ah
.data:00879418                 dd 0FBCEEC69h
.data:0087941C                 dd 3880A21Dh
.data:00879420                 dd 840BB20Dh
.data:00879424                 dd 169115Fh

 

 

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

1 час назад, aliast сказал:

Чтобы изменить реальное нужно как и писалось в первом сообщении найти в памяти это 3835058836 и поменять на другое.

Честно говоря, я с этим не стал заморачиваться, а просто занопил инструкцию вычитания ресурсов при установке модулей в слот, а при продаже(возврат в магазин) ресурсы наоборот добавляет. За добавление отвечает оригинальный код, даже изменять не надо. С ресурсами очков работает 4 команды, как я понял. 1 - экран; 2 - прыгает по адресам кораблей, в зависимости от того, который редактируем; 3/4 - снижение/увеличение очков. Кароче занопил и на перепродаже на любом корабле кайфуешь. Я не проверял алгоритм шифрования, даже xor не пытался найти. Решил, что вернусь к этому, если замечу еще шифрование в других значениях, которые не смогу найти.

Я сейчас занят экраном кастомизации, а именно "вместимость" ангара для шлюпок. Нашел в Nexus - The Jupiter Incident Remastered\universe\tactics  файлик tacticstypes.ini

Там характеристики всех кораблей лежат. Carrier  - это вместимость. Нашел все значения чрз string, собираю структуру чтобы глянуть че там.
Можете что-то посоветовать, чтобы найти значение вместимости чрз строку Carrier в адресе? В нете я туториалов не нашел на русском.

 

Это алгоритм шифрования вы скинули? Я просто в коде пока не силен.

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

8 часов назад, Force сказал:

То есть, я могу найти структуру кора[CENSORED], и там потыкать все нули и единицы для пробы?

ну да, но высок, нарваться на ошибку или вылет игры

 

8 часов назад, Force сказал:
8 часов назад, 2zolo2 сказал:

Статический адрес лучше искать на одном уровне, так легче будет, меньше мусора убирать предется.

Это как понять?

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

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

1 час назад, 2zolo2 сказал:

ну да, но высок, нарваться на ошибку или вылет игры

Я не могу найти цельную структуру корабла(( если ищу по string основываясь на названии корабла из файла конфигурации игры, то он будто кусочничает, все обрывисто и беспорядочно, а большая часть данных написана в HEX. Не знаю, как найти полную структуру, от А до Я. Уже 4й день бьюсь с этой игрой и ассемблером.

 

1 час назад, 2zolo2 сказал:

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

Вот тут я вас не понял. Под уровнями я имел ввиду смещения от начала структуры, таких 5 было найдено, до тех пор пока в цикл не попал. Что значит искать на одном уровне? Можно видео?

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

Наконец, основываясь на данных из конфига игры, нашел первое статическое значение, о как я счастлив, как я рад!
Нашел щит, оказалось всего 2 смещения. 3 поинтера в итоге на него указывают, не знаю нормально ли это, но они периодически нулями становятся, а один из них точно хранит значение щита. И еще тут трабла с ними, я значение не могу менять чрз главное окно CE. Там почему то значение пишет в виде Hex'а, но если переводить будет другое число, а если просто открыть указатель(ЛКМх2)(там где смещение настраиваем), то сверху указан АДРЕС = МОЕ ЗНАЧЕНИЕ ЩИТА. Все ровно.
Спасибо за помощь ребятки. Завтра продолжу кастомизацию копать.

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

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

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

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