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

вопрос по скрипту с 2 адресами


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

Всем доброго времени суток

Буду краток, вот анализ данных структур

В самом верху где курсор, адрес со значением 3 отвечает за собранные секреты, Сразу под ним лежит адрес со значением 6. Это адрес показывает сколько всего секретов надо собрать за уровень. Нужен скрипт первое значение, всегда равнялось второму, сколько бы игрок не подобрал секретов. Ниже скидываю скрипт из авто-асм с информацией о нём. Свой код там не писал

Спойлер

Скрипт АСМ

{ Game   : Sam2.exe
  Version: 
  Date   : 2019-04-17
  Author : Pitronic

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(sekret,Sam2Game.dll,FF 40 08 8B 06) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  inc [eax+08]
  mov eax,[esi]
  jmp return

sekret:
  jmp newmem
return:
registersymbol(sekret)

[DISABLE]

sekret:
  db FF 40 08 8B 06

unregistersymbol(sekret)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "Sam2Game.dll"+25EB43

"Sam2Game.dll"+25EB25: 56                    -  push esi
"Sam2Game.dll"+25EB26: 8B 30                 -  mov esi,[eax]
"Sam2Game.dll"+25EB28: 83 7E 48 01           -  cmp dword ptr [esi+48],01
"Sam2Game.dll"+25EB2C: 8B 40 FC              -  mov eax,[eax-04]
"Sam2Game.dll"+25EB2F: 74 21                 -  je Sam2Game.dll+25EB52
"Sam2Game.dll"+25EB31: 89 46 50              -  mov [esi+50],eax
"Sam2Game.dll"+25EB34: FF 15 64 2D 22 02     -  call dword ptr [Sam2Game.dll+262D64]
"Sam2Game.dll"+25EB3A: 85 C0                 -  test eax,eax
"Sam2Game.dll"+25EB3C: 74 08                 -  je Sam2Game.dll+25EB46
"Sam2Game.dll"+25EB3E: E8 DD A5 F8 FF        -  call Sam2Game.dll+1E9120
// ---------- INJECTING HERE ----------
"Sam2Game.dll"+25EB43: FF 40 08              -  inc [eax+08]
"Sam2Game.dll"+25EB46: 8B 06                 -  mov eax,[esi]
// ---------- DONE INJECTING  ----------
"Sam2Game.dll"+25EB48: 6A 01                 -  push 01
"Sam2Game.dll"+25EB4A: 8B CE                 -  mov ecx,esi
"Sam2Game.dll"+25EB4C: FF 90 A4 01 00 00     -  call dword ptr [eax+000001A4]
"Sam2Game.dll"+25EB52: 5E                    -  pop esi
"Sam2Game.dll"+25EB53: C3                    -  ret 
"Sam2Game.dll"+25EB54: CC                    -  int 3 
"Sam2Game.dll"+25EB55: CC                    -  int 3 
"Sam2Game.dll"+25EB56: CC                    -  int 3 
"Sam2Game.dll"+25EB57: CC                    -  int 3 
"Sam2Game.dll"+25EB58: CC                    -  int 3 
}
-----------------------------------------------------------------
Дополнительная информация

EAX=7F8E0448
EBX=0220DE40
ECX=0022F9E4
EDX=00000000
ESI=7C4D4218
EDI=038FDCA0
EBP=0022F9F0
ESP=0022F994
EIP=0321AB16

Вероятный базовый указатель =7F8E0448

0321AB0C - je 0321AB16
0321AB0E - call 031A5B30
0321AB13 - inc [eax+08]
0321AB16 - mov eax,[esi]
0321AB18 - push 01

 

 

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

newmem:
  mov eax,[eax+4] // Женя,
  mov [eax],eax   // Это чушь - будет вылет Garik66 
code: 
  inc [eax+08]
  mov eax,[esi]
  jmp return 

Ps: 
На ecx смени.. А то чушь... тут делов то... Не чего страшного в этом не вижу.. Или курсовую пишем... 
Жека...

Разговор о первом и втором... а вешаешь на третий ? А разве не inc прибавляет + найденную секретку ?  

Ps... Хотя спишем на то, что там якобы адресов куча... а в +8 один.. 

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

23 часа назад, LIRW сказал:

А разве не inc прибавляет

А где это посмотреть? Второй адрес найти не возможно, так как адреса меняютсяна уровнях, единственный спооб это найти его в анализе структур.

23 часа назад, LIRW сказал:

[eax+4]

Это из анализа данных структур?

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

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

Это из анализа данных структур?

Ну если ты говоришь, что в первом, а то есть в [eax] лежит реальное.. а в [eax+04] максимальное :rolleyes: значит от туда и брал...  а сам скрипт, почему то на +8 

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

23 часа назад, LIRW сказал:

а сам скрипт, почему то на +8

Не знаю почему, скрипт с первой инструкции, инструкций много, но как ни странно во всех +8, а в анализе сам видел, асм загадка.  Кстати это я к твоей таблице хочу читы добавить свои, а в дальнейшем есль дашь добро, создам трейнер где буду ка автор репака трейнера LIRW, сылки на перво источник обязуюсь скидывать везде где выложу этот репак.

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

А на счет того, что в +4 максимальное лежит.. Бряк поставь на адрес при подборе секретки на адрес.. И погляди, может там (если сработает бряк) и в регистрах лежит адрес реального значения.. И вот прям от туда и накатишь, куда надо. Хотя я думаю, что ты не понял меня и о чем я в обще пишу... 

Если есть (прыжок).. затер тогда сообщения. 

У меня игра есть... могу подсобить :) правда не вот прям сейчас... Но к после обеду как вернусь (по делам уйти надо) тогда бы и подсобил... Мог бы и видео снять.. если не понял бы действий... 

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

41 минуту назад, LIRW сказал:

Но так лучше..

Жень может так все-таки будет лучше?

Спойлер

[ENABLE]
aobscanmodule(baseplayerjump,Sam2Game.dll,D8 88 * * * * 8B 13 8B CB D8 4D * D9 5D * FF 92 * * * * 8B 03 D9 9B * * * * 8B CB FF 90 * * * * D9 9B * * * * D9 45 * D9 45 * DB E9 DA C1 DD C1 D9 9D * * * * 8B 93 * * * * 8B 8D * * * * 52 89 4D * FF D7 8B 10 83 C4 * 8D 4D * 51 8B C8 FF 52 * D9 45)
alloc(newmem,$1000)
label(return)
label(voskoko)
registersymbol(voskoko)
registersymbol(baseplayerjump)

newmem:
  fmul dword ptr [eax+00000390] // чем больше "fmul dword ptr [eax+00000390]" тем выше прыгает.
  fmul dword ptr [voskoko]      // вывести адрес в таблицу и регулировать высоту прыжка там
  jmp return

voskoko:
  dd (float)2                   // в два раза выше.    

baseplayerjump:
  jmp newmem
  db 90
return:

[DISABLE]
baseplayerjump:
  db D8 88 90 03 00 00

unregistersymbol(voskoko)
unregistersymbol(baseplayerjump)
dealloc(newmem)

 

 

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

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

Жень может так все-таки будет лучше?

Игорь можно конечно и так... Я просто не помню.. есть там fstp или нет.. А то что то оно ведет себя не совсем нормально, если ожидает это множение.. А это прям чистый код получается и стек не ломается.. 

А так можно прям на прямую в обще писать.  

newmem: 
  push (45)
  fmul dword ptr [esp]
  add esp,4
  jmp return

И работает норм всё..  Но я бы что бы прям наверника всё было.. Лучше перемножил бы такими же функциями.  В трейнере всё равно не видно реализации... а работать будет всё по надежнее. 

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

44 минуты назад, LIRW сказал:

newmem:
  mov eax,[eax+4]
  mov [eax],eax
code: 
  inc [eax+08]
  mov eax,[esi]
  jmp return

Разговор о первом и втором... а вешаешь на третий ? А разве не inc прибавляет + найденную секретку ?  

Ps... Хотя спишем на то, что там якобы адресов куча... а в +8 один.. 

Да уж Жень, не ожидал от тебя.:blink:

Это что ты такое ТС предлагаешь - получить вылет из игры?
Юзаешь eax, а в eax то что лежит? Правильно указатель.:-D 

Нужно было либо сохранить указатель куда-нибудь (но это уже длинный костыльный скрипт), либо заюзать другой (свободный, а вот посмотрел ecx регистр как раз свободный), либо стек::

newmem:
 push [eax+4]
 pop [eax]
code: 

 

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

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

Юзаешь eax, а в eax то что лежит?

А оно всё равно перезаписывается.. ниже.. 

mov eax,[esi]

Игорь ну отвалится если.. По другому посоветую :) у кого не бывает ошибок... На ошибках и учатся.. 

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

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

Ну ну.

Головой немного подумай.

:D только проснулся...(голова ещо в спящем режиме) чаю даже не принимал... Но должно норм всё быть.. Будет вылет если, отпишет.. Сделаем по другому.. Мы же тут не курсы проводим... За то будет знать, что так вот как я сделал - делать нельзя :D

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

8 минут назад, LIRW сказал:

Игорь ну отвалится если..

Само собой отвалится, вот на этом участке

 mov [eax],eax // у тебя в eax лежит какое-то значение, но не адрес и ты пытаешься якобы в него писать.

Жуть короче, иди смотри уроки @Xipho от А до Я по новой. :-D

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

23 часа назад, Garik66 сказал:

Жень может так все-таки будет лучше

Не совсем так, в целых 2 раза прыжок может быть выше чем хотелось бы, лучше бы если прыжок равен 

Спойлер

(voskoko)

тогда какая высота нужна та и будет

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

23 часа назад, Garik66 сказал:

Не понял? Переведи.

Ты предлагаешь чтоб высота в 2 раза увеличилась я правильно понял? А если это слишком высоко?

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

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

Ты предлагаешь чтоб высота в 2 раза увеличилась я правильно понял? А если это слишком высоко?

я предлагаю:

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

fmul dword ptr [voskoko] // вывести адрес в таблицу и регулировать высоту прыжка там

 

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

23 часа назад, Garik66 сказал:

я предлагаю

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

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

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

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

только правильно адрес в табличку вставь (во float)
 

Спойлер

image.thumb.png.37fb3d715c3d72d56d6af8b0a6cbe3e3.png

 

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

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

Тоесть, устанавльваешь значение в таблице с адресом типа 1, 1 или 1,2 так?

?

Любое значение, сам смотри в игре, сколько нужно тебе высоты.

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

22 часа назад, Garik66 сказал:

Любое значение

нужно желаемое значение или кратность, желаемого значения?

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

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

нужно желаемое значение или кратность, желаемого значения?

:-D ты меня, что, уже тролишь?

Я же даже метку объявил вроде понятную 

voskoko

т.е. во сколько раз выше ты хочешь, во столько и делай, игры у меня нет, скрипт основан на скрипте @LIRW что в этом адресе (

[eax+00000390]

)в игре я не знаю.

ЗЫ; ты просто скрипт потесть. А потом уже вопросы задавай

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

23 часа назад, Garik66 сказал:

скрипте @LIRW что в этом адресе

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

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

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

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

Ну по идее именно так и должно быть - напишешь, какие читы Женьки, какие твои. 

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

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

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

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