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

Взлом Witcher


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

Взлом Witcher   покупка товаров без денег

Скрипт "Покупка товаров у торговцев без денег.":

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

{ Game   : witcher.exe
  Version: 
  Date   : 2017-04-13
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(Money,witcher.EXE,73 15 6A 00 6A 00) // should be unique
registersymbol(Money)

Money:
  db EB

[DISABLE]
Money:
  db 73

unregistersymbol(Money)


{
// ORIGINAL CODE - INJECTION POINT: "witcher.EXE"+4B3422

"witcher.EXE"+4B3407: 6A 64                    -  push 64
"witcher.EXE"+4B3409: 8B CF                    -  mov ecx,edi
"witcher.EXE"+4B340B: E8 60 97 FF FF           -  call witcher.EXE+4ACB70
"witcher.EXE"+4B3410: 5F                       -  pop edi
"witcher.EXE"+4B3411: 5E                       -  pop esi
"witcher.EXE"+4B3412: 33 C0                    -  xor eax,eax
"witcher.EXE"+4B3414: 5B                       -  pop ebx
"witcher.EXE"+4B3415: C2 10 00                 -  ret 0010
"witcher.EXE"+4B3418: 8B 8F 40 0A 00 00        -  mov ecx,[edi+00000A40]
"witcher.EXE"+4B341E: 3B 4C 24 14              -  cmp ecx,[esp+14]
// ---------- INJECTING HERE ----------
"witcher.EXE"+4B3422: 73 15                    -  jae witcher.EXE+4B3439
"witcher.EXE"+4B3424: 6A 00                    -  push 00
"witcher.EXE"+4B3426: 6A 00                    -  push 00
// ---------- DONE INJECTING  ----------
"witcher.EXE"+4B3428: 6A 66                    -  push 66
"witcher.EXE"+4B342A: 8B CF                    -  mov ecx,edi
"witcher.EXE"+4B342C: E8 3F 97 FF FF           -  call witcher.EXE+4ACB70
"witcher.EXE"+4B3431: 5F                       -  pop edi
"witcher.EXE"+4B3432: 5E                       -  pop esi
"witcher.EXE"+4B3433: 33 C0                    -  xor eax,eax
"witcher.EXE"+4B3435: 5B                       -  pop ebx
"witcher.EXE"+4B3436: C2 10 00                 -  ret 0010
"witcher.EXE"+4B3439: 8B 47 04                 -  mov eax,[edi+04]
"witcher.EXE"+4B343C: 8B 74 24 1C              -  mov esi,[esp+1C]
}

 

Видео:

 

Табличка:

witcher.CT

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

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

По регам esp...сколько не юзал я игры, там всегда куча адресов\указателей бегало. <_<

???

Я же вроде без esp обошёлся?:) 

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

А пожертвовал ей, для ускорения - что было под рукой, то и взял для видео. 

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

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

Я же вроде без esp обошёлся?

Так в скрипте ты делал прыжочик (JMP),

а сверху над ним инструкция...

cmp ecx,[esp+14]

Наверняка там куча адресов юзается. :D

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

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

Наверняка там куча адресов юзается. :D

Да нет там кучи адресов, а только цены у торговцев, при срабатывании инструкции при покупке.

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

офтоп

Скрытый текст
11 минуту назад, Garik66 сказал:

после взлома игры у меня почему то интерес к ней теряется - играть уже не хочется

у меня точно так с читами было

 

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

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

Да нет там кучи адресов, а только цены у торговцев, при срабатывании инструкции при покупке.

Иногда не сразу они там бегают\срабатывают, погамаешь немного и появятся. ^_^

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

1 минуту назад, krocki сказал:

Иногда не сразу они там бегают\срабатывают, погамаешь немного и появятся. ^_^

Вот смотри:

 

 

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

28 минуты назад, krocki сказал:

я по тестию.

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

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

Я бы юзал бы так, на запись...

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

[ENABLE]
witcher.exe+4B3B1C: //Ну или тупо затереть этот код.
db 39 F8

[DISABLE]
witcher.exe+4B3B1C:
db 2B C7

 

В edi храниться цена товара, а из eax она вычитывается sub'ом

P.S - Не пойму, почему именно её взял для скрипта? :huh:

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

{
// ORIGINAL CODE - INJECTION POINT: "witcher.EXE"+4B3422

"witcher.EXE"+4B3407: 6A 64                    -  push 64
"witcher.EXE"+4B3409: 8B CF                    -  mov ecx,edi
"witcher.EXE"+4B340B: E8 60 97 FF FF           -  call witcher.EXE+4ACB70
"witcher.EXE"+4B3410: 5F                       -  pop edi
"witcher.EXE"+4B3411: 5E                       -  pop esi
"witcher.EXE"+4B3412: 33 C0                    -  xor eax,eax
"witcher.EXE"+4B3414: 5B                       -  pop ebx
"witcher.EXE"+4B3415: C2 10 00                 -  ret 0010
"witcher.EXE"+4B3418: 8B 8F 40 0A 00 00        -  mov ecx,[edi+00000A40]
"witcher.EXE"+4B341E: 3B 4C 24 14              -  cmp ecx,[esp+14]
// ---------- INJECTING HERE ----------
"witcher.EXE"+4B3422: 73 15                    -  jae witcher.EXE+4B3439
"witcher.EXE"+4B3424: 6A 00                    -  push 00
"witcher.EXE"+4B3426: 6A 00                    -  push 00
// ---------- DONE INJECTING  ----------
"witcher.EXE"+4B3428: 6A 66                    -  push 66
"witcher.EXE"+4B342A: 8B CF                    -  mov ecx,edi
"witcher.EXE"+4B342C: E8 3F 97 FF FF           -  call witcher.EXE+4ACB70
"witcher.EXE"+4B3431: 5F                       -  pop edi
"witcher.EXE"+4B3432: 5E                       -  pop esi
"witcher.EXE"+4B3433: 33 C0                    -  xor eax,eax
"witcher.EXE"+4B3435: 5B                       -  pop ebx
"witcher.EXE"+4B3436: C2 10 00                 -  ret 0010
"witcher.EXE"+4B3439: 8B 47 04                 -  mov eax,[edi+04]
"witcher.EXE"+4B343C: 8B 74 24 1C              -  mov esi,[esp+1C]
}

 

 

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

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

Короче поставив бряк при покупке, там во такой адрес и постоянно у него значение меняется...

При покупке в этом адресе всегда будет цена. Я же показал на видео.

Скрипт мой не приведёт к вылету и будет работать всегда правильно Апробировано уже на нескольких играх

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

Просто меня заинтересовал что рег esp в нём один адрес гуляет, но скучей значений.

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

21 минуты назад, krocki сказал:

P.S - Не пойму, почему именно её взял для скрипта?

Ты как то боязно и не понимающе относишься к стеку (конечно в самом адресе значение будет меняться, но при продаже там всегда будет цена товара, который ты хочешь купить). Это тоже самое сказать смотри в регистре EAX. постоянно разное значение, но мы же при этом, им управляем.

Специально для тебя мой скрипт можно записать и так:

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

{ Game   : witcher.exe
  Version: 
  Date   : 2017-04-13
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(Money1,witcher.EXE,8B 8F 40 0A 00 00) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(Money1)

newmem:
  mov [esp+14],0 // Обнуляем значение в стеке при покупке.

code:
  mov ecx,[edi+00000A40]
  jmp return

Money1:
  jmp newmem
  db 90
return:

[DISABLE]
Money1:
  db 8B 8F 40 0A 00 00

unregistersymbol(Money1)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "witcher.EXE"+4B3418

"witcher.EXE"+4B3403: 6A 00                 -  push 00
"witcher.EXE"+4B3405: 6A 00                 -  push 00
"witcher.EXE"+4B3407: 6A 64                 -  push 64
"witcher.EXE"+4B3409: 8B CF                 -  mov ecx,edi
"witcher.EXE"+4B340B: E8 60 97 FF FF        -  call witcher.EXE+4ACB70
"witcher.EXE"+4B3410: 5F                    -  pop edi
"witcher.EXE"+4B3411: 5E                    -  pop esi
"witcher.EXE"+4B3412: 33 C0                 -  xor eax,eax
"witcher.EXE"+4B3414: 5B                    -  pop ebx
"witcher.EXE"+4B3415: C2 10 00              -  ret 0010
// ---------- INJECTING HERE ----------
"witcher.EXE"+4B3418: 8B 8F 40 0A 00 00     -  mov ecx,[edi+00000A40]
// ---------- DONE INJECTING  ----------
"witcher.EXE"+4B341E: 3B 4C 24 14           -  cmp ecx,[esp+14]
"witcher.EXE"+4B3422: 73 15                 -  jae witcher.EXE+4B3439
"witcher.EXE"+4B3424: 6A 00                 -  push 00
"witcher.EXE"+4B3426: 6A 00                 -  push 00
"witcher.EXE"+4B3428: 6A 66                 -  push 66
"witcher.EXE"+4B342A: 8B CF                 -  mov ecx,edi
"witcher.EXE"+4B342C: E8 3F 97 FF FF        -  call witcher.EXE+4ACB70
"witcher.EXE"+4B3431: 5F                    -  pop edi
"witcher.EXE"+4B3432: 5E                    -  pop esi
"witcher.EXE"+4B3433: 33 C0                 -  xor eax,eax
}

 

 

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

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

Ты как то боязно и не понимающе относишься к стеку

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

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

ЗЫ: И, если всё-таки будет не понятно, я в последнем скрипте не меняю цену у торговца, а изменяю значение в стеке. И соответственно, при сравнении денег у Геральта, даже если у него будет 0, он сможет купить всё.  

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

13 минуты назад, krocki сказал:

Ну когда денег 0...

Хорошо, можно изменить скрипт, чтобы деньги не отнимались:

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

{ Game   : witcher.exe
  Version: 
  Date   : 2017-04-13
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(Money1,witcher.EXE,8B 8F 40 0A 00 00) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(Money1)

newmem:
  mov ecx,[esp+14]       // Загружаем стоимость товаров, которые хотим купить.
  add [edi+00000A40],ecx // и прибовляем их в кошелёк Геральта.

code:
  mov ecx,[edi+00000A40]
  jmp return

Money1:
  jmp newmem
  db 90
return:

[DISABLE]
Money1:
  db 8B 8F 40 0A 00 00

unregistersymbol(Money1)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "witcher.EXE"+4B3418

"witcher.EXE"+4B3403: 6A 00                 -  push 00
"witcher.EXE"+4B3405: 6A 00                 -  push 00
"witcher.EXE"+4B3407: 6A 64                 -  push 64
"witcher.EXE"+4B3409: 8B CF                 -  mov ecx,edi
"witcher.EXE"+4B340B: E8 60 97 FF FF        -  call witcher.EXE+4ACB70
"witcher.EXE"+4B3410: 5F                    -  pop edi
"witcher.EXE"+4B3411: 5E                    -  pop esi
"witcher.EXE"+4B3412: 33 C0                 -  xor eax,eax
"witcher.EXE"+4B3414: 5B                    -  pop ebx
"witcher.EXE"+4B3415: C2 10 00              -  ret 0010
// ---------- INJECTING HERE ----------
"witcher.EXE"+4B3418: 8B 8F 40 0A 00 00     -  mov ecx,[edi+00000A40]
// ---------- DONE INJECTING  ----------
"witcher.EXE"+4B341E: 3B 4C 24 14           -  cmp ecx,[esp+14]
"witcher.EXE"+4B3422: 73 15                 -  jae witcher.EXE+4B3439
"witcher.EXE"+4B3424: 6A 00                 -  push 00
"witcher.EXE"+4B3426: 6A 00                 -  push 00
"witcher.EXE"+4B3428: 6A 66                 -  push 66
"witcher.EXE"+4B342A: 8B CF                 -  mov ecx,edi
"witcher.EXE"+4B342C: E8 3F 97 FF FF        -  call witcher.EXE+4ACB70
"witcher.EXE"+4B3431: 5F                    -  pop edi
"witcher.EXE"+4B3432: 5E                    -  pop esi
"witcher.EXE"+4B3433: 33 C0                 -  xor eax,eax
}

 

 Скрипт в игре не тестил, сам потесть.

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

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

1. Поставить в настройках формат WAV

2. Не использовать бандикам.

Я лично рекомендую второй вариант. Присмотрись к OBS Studio (ею я провожу стримы и она бесплатная), к Mirillis Action (ею я снимаю летсплеи. Точнее, снимал, так как сейчас не до летсплеев) - отличная прога, но платная. В разы лучше Bandicam'а. Есть еще PlawClaw от нашего отечественного разработчика. Тоже отличная программа, надо сказать. Но тоже платная. Если  надумаешь писать с OBS, свяжись со мной в скайпе, я тебе помогу настроить ее для наилучшего качества записи видео и голоса.

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

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

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

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