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

Проблема Со Взломом Вьетконг 2


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

Здравтвуйте геймхакеры. У меня проблема с игрой Вьетконг 2. Раньше я спрашивал у вас, но опять нужна ваша помощь. Не могу взломать патроны. Тип 4 байта, известное значение, ищу, после 3 отсеивания, адресов 0. Как подсказал Xipho неизвестное значение, я нашёл адрес, но когда делаю скрипт, у меня оружие перезаряжается. Патронов аж тысяча. Как сделать чтобы патронов было столько чтобы оружие не перезаряжалось. Долго думал как сделать, но не смог. Помогите.

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

Подробнее опиши. Какой тип патронов нашел, правильный вообще адрес ? Еще в структуре посмотри может рядом есть максимальное значение.

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

Я нашёл адрес патронов тип флоат или байт, неизвестное значение. На адресе поставил заморозку, патроны не кончались. Если тип байт то там значение было где то 200 и больше, а флоат пример16535665.

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

Оно не может быть "байт или флоат", адрес реального значения может быть только один и только одного типа, если находится несколько - это или идентичные значения или экранные. Игровой код работает всегда с одним адресом.

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

В данной игре значение патрон зашифровано и его нужно искать как "неизвестное значение".

Скрипт на бесконечные патроны (не уменьшаются):


[ENABLE]
"game.dll"+12F140:
nop
nop
[DISABLE]
"game.dll"+12F140:
mov [esi],eax

Чтобы задать патронам определенное число, нужно разобраться в методе шифрования или же сократить кол-во патрон в обоиме до красивого (99 напрмер), посмотреть текущее значение адреса с патронами и использовать его в скрипте

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

Примерно так.


[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem:
mov eax,(int)99

originalcode:
mov [esi],eax


exit:
jmp returnhere

"game.dll"+12F140:
nop
returnhere:

[DISABLE]
"game.dll"+12F140:
mov [esi],eax
dealloc(newmem)

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

Вот мои инструкции

01387AC3 - 8B 0C 3E - mov ecx,[esi+edi]

01436628 - 8B 0F - mov ecx,[edi]

014366B0 - 8B 0F - mov ecx,[edi]

0142CD61 - 8B 56 30 - mov edx,[esi+30]

01431FD0 - 8B 0C 32 - mov ecx,[edx+esi]

01431FF9 - 8B 0F - mov ecx,[edi]

013DEFB0 - 89 06 - mov [esi],eax

Простите скриншотом не смог.

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

Не факт, что у него код будет находиться по тем же смещениям.

Ramil, ты инструкцию нашёл - поставь на неё брейкпоинт и посмотри, что в регистрах. В одном будет указатель на твои текущие патроны, в другом - новое значение патронов, т.е. как будто ты уже пострелял.

Надо будет в тот регистр, где хранится новое значение патронов, записать (int)99, судя по скриптам выше.

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

Лучше перечитай мое сообщение выше еще раз.

(int)99 не годиться, т.к. в игре будет отображаться как "-12345" (12345 как пример), а после диактивации скрипта, патронов в обоиме будет 0. Работает, но не красиво же. Разве что, можно сделать еще скрипт на экранное значение патронов и активировать их вместе.

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

Не знаю но у меня получилось как подсказал ZOCKIR. Скрипт у меня получился такой.

[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)

newmem:
mov eax,(int)99
originalcode:
mov [esi],eax
mov [esi+04],edx
jmp returnhere

"game.dll"+12EFB0:
jmp newmem
returnhere:

[DISABLE]
"game.dll"+12EFB0:
mov [esi],eax
mov [esi+04],edx
dealloc(newmem)
//Alt: db 89 06 89 56 04

Патронов стало -1654 примерно, но перезарядки нет. Хорошо, но как сделать 99, может я не правильно делаю.

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

Посмотри, что игра делает с регистром eax выше твоей инструкции. Раз говорят, что там значение шифрованное - вот и выясни, как оно шифруется.

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

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

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

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