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

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

Всем доброго времени суток. Решил поиграть в Bionic Commando, ну и соответственно попробовать поковыряться в ней для своей же выгоды.
Начал с самого первого уровня, кроме пистолета ничего нет. В кармане 48 патронов. Думаю, ну сделаю бесконечные патроны. 

Узнал, что они хранятся в типе Float, нашел правильный адрес, изменил значение, заморозил — работает. Затем узнал какая все таки инструкция отвечает за отнятие патронов, занопил ее и получил краш. Пытался писать скрипт — краш. 

 

Я так понимаю, это дело рук разработчиков. Ну или у меня руки кривые :D
Никто не сталкивался с подобным? 

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

10 минуту назад, Dejavu сказал:

Я так понимаю, это дело рук разработчиков. Ну или у меня руки кривые :D

А что гадать, выложите свой скрипт (желательно с Логами), посмотрим Вы ошибаетесь.

Ну а если скрипт правильный, то направим дальше - на путь истинный.;)

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

19 минуту назад, Garik66 сказал:

А что гадать, выложите свой скрипт (желательно с Логами), посмотрим Вы ошибаетесь.

Ну а если скрипт правильный, то направим дальше - на путь истинный.;)

А тут даже дело не в скрипте,  от обычного нопа( ставлю с помощью СЕ, а не вручную) крашится. 

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

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

[ENABLE]
aobscanmodule(INJECT,bionic_commando.exe,89 0E 8B 50 04 89 56 04 83 78) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov [esi],ecx
  mov edx,[eax+04]
  jmp return

INJECT:
  jmp code
return:
registersymbol(INJECT)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
INJECT:
  db 89 0E 8B 50 04

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "bionic_commando.exe"+47762F

"bionic_commando.exe"+477611: 83 78 04 00           -  cmp dword ptr [eax+04],00
"bionic_commando.exe"+477615: 75 08                 -  jne bionic_commando.exe+47761F
"bionic_commando.exe"+477617: 80 4F 06 02           -  or byte ptr [edi+06],02
"bionic_commando.exe"+47761B: 33 FF                 -  xor edi,edi
"bionic_commando.exe"+47761D: EB 02                 -  jmp bionic_commando.exe+477621
"bionic_commando.exe"+47761F: 8B F8                 -  mov edi,eax
"bionic_commando.exe"+477621: 85 FF                 -  test edi,edi
"bionic_commando.exe"+477623: 0F 85 A3 00 00 00     -  jne bionic_commando.exe+4776CC
"bionic_commando.exe"+477629: 8B 44 24 24           -  mov eax,[esp+24]
"bionic_commando.exe"+47762D: 8B 08                 -  mov ecx,[eax]
// ---------- INJECTING HERE ----------
"bionic_commando.exe"+47762F: 89 0E                 -  mov [esi],ecx
"bionic_commando.exe"+477631: 8B 50 04              -  mov edx,[eax+04]
// ---------- DONE INJECTING  ----------
"bionic_commando.exe"+477634: 89 56 04              -  mov [esi+04],edx
"bionic_commando.exe"+477637: 83 78 04 04           -  cmp dword ptr [eax+04],04
"bionic_commando.exe"+47763B: 0F 8C B7 00 00 00     -  jl bionic_commando.exe+4776F8
"bionic_commando.exe"+477641: 8B 00                 -  mov eax,[eax]
"bionic_commando.exe"+477643: F6 40 05 03           -  test byte ptr [eax+05],03
"bionic_commando.exe"+477647: 0F 84 AB 00 00 00     -  je bionic_commando.exe+4776F8
"bionic_commando.exe"+47764D: 8A 45 05              -  mov al,[ebp+05]
"bionic_commando.exe"+477650: A8 04                 -  test al,04
"bionic_commando.exe"+477652: 0F 84 A0 00 00 00     -  je bionic_commando.exe+4776F8
"bionic_commando.exe"+477658: 8B 4B 10              -  mov ecx,[ebx+10]
}

 

Заменяю 

mov [esi],ecx

На, допустим 

mov [esi],#42340000

Нажимаю Execute и краш 

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

А теперь для интересу, в отладчике ПКМ по этой инструкции:

mov [esi],ecx

"Найти адреса, к которым обращается инструкция".

И отпишитесь о результатах.

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

Только что, Dejavu сказал:

Что это за скан?

aobscanmodule(INJECT,bionic_commando.exe,89 0E 8B 50 04 89 56 04 83 78)
Только что, Dejavu сказал:

В чем его преимущество? 

Допустим вышел патч на Вашу игру, аобскан найдёт адрес Вашей инструкции по сигнатуре. А в простой инъекции, скрипт придётся переписывать, так как скорее всего адрес инструкции сместится.

 

Вы это моё сообщение прочитали?

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

Только что, Dejavu сказал:

Вылезло много адресов, значений и количество их выоплнения

Так вот - Ваши ошибки:

1. 

Только что, Dejavu сказал:

Вылезло много адресов, значений и количество их выоплнения

НУЖЕН ФИЛЬТР.

2. 

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

Узнал, что они хранятся в типе Float,

а пишете в адрес:

20 минуты назад, Dejavu сказал:

mov [esi],#42340000

хотя нужно писать:

mov [esi],(float)45

и удивляетесь после этого - почему у меня вылет? ;)

Эхе-хе.

Начните заново - посмотрите видео-уроки от Xipho, kenga и мои, тоже посмотрите.

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

Только что, Dejavu сказал:

Хорошо, со скриптом я может и ошибся, но почему обычные нопы на спасают?
Почему из-за них краш? 

потому что инструкция работает не только с вашим адресом патронов

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

Только что, Dejavu сказал:

Хорошо, со скриптом я может и ошибся, но почему обычные нопы на спасают?
Почему из-за них краш? 

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

6 минут назад, Dejavu сказал:

Вылезло много адресов, значений и количество их выоплнения

Отключите (занопайте) в машине двигатель внутреннего сгорания, вместе с допустим с радио и попробуйте проехать. :)

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

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

а пишете в адрес:

26 минуты назад, Dejavu сказал:

mov [esi],#42340000

В стеке значение находится в 4 байтах, поэтому я и писал так. Разве разница есть между  

mov [esi],(float)45

и 

mov [esi],#42340000

этим?

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

Только что, Dejavu сказал:

Все, понял. Всем спасибо!

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

Лучше возьмите для взлома более простые игры.

В Вашей игрушке в игровом коде используются LUA-скрипты и соответственно на каждую инструкцию навешено куча адресов (как я писал ранее там и графика и звук и т.д. и т.п.)

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

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

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

Лучше возьмите для взлома более простые игры.

В Вашей игрушке в игровом коде используются LUA-скрипты и соответственно на каждую инструкцию навешено куча адресов (как я писал ранее там и графика и звук и т.д. и т.п.)

Все нормально, попытка — не пытка :)

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

4 минуты назад, Garik66 сказал:

И Совет - игрушка, которую Вы выбрали, судя по коду,  для теперешнего Вашего уровня тяжеловата - сомневаюсь, что Вы сумеете подобрать фильтры

Я предполагаю, что нужно положить в стек значение esi, если он будет совпадать с адресом моих патрон, то не буду убавлять их

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

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

Я предполагаю, что нужно положить в стек значение esi, если он будет совпадать с адресом моих патрон, то не буду убавлять их

Дерзайте, только откуда вы возьмёте адрес патронов для сравнения? Или адреса в игре статические?

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

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

Дерзайте, только откуда вы возьмёте адрес патронов для сравнения? Или адреса в игре статические?

Да, я это понимаю. Но одноразовый рабочий скрипт, написанный мной — уже радость. Сейчас же мне известен адрес моих патронов, после перезапуска уже неизвестен будет. 

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

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

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

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