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

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

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

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

как какой скрипт работает

твой скрипт работает только при поборе, скрипт @LIRW работает сразу (он на читающей инструкции основан.

Поделиться сообщением


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

Гарик извинения приняты? А то кошки на душе скребут.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
22 минуты назад, Pitronic сказал:

извинения

так не за что вроде извиняться. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 23.04.2019 в 23:42, Garik66 сказал:

не за что вроде извиняться

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

 

Изменено пользователем Pitronic

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 23.04.2019 в 00:10, LIRW сказал:

add eax,68

LIRW для чего здесь увеличение на 68, и откуда эта цифра?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 минут назад, Pitronic сказал:

LIRW для чего здесь увеличение на 68

Я конечно не LIRW, но по моему это смещение до адреса от которого после берётся адрес по смещению

  • Плюс 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
26 минут назад, Pitronic сказал:

LIRW для чего здесь увеличение на 68, и откуда эта цифра?

Это кодовая функция, ну использовалась игрой, а не я её писал... А используется оно обычно :rolleyes: как бы по проще сказать: Для выравнивания адреса. 

call <-------------
add eax,68 к примеру тут... eax < 0x09568400 +68 = 0x9568468
------------------
mov [eax+08],xxx  <--------- и уже сюда в +08 

Я не умею объяснять... И мой язык, мало кто понимает :lol: 

Ну тут все видно... Надо не много только понимать.... 

add eax,68
mov ecx,[eax+0C]  - это уже самописное... Моё. Но eax то ровный и испольуется + 08.. а значит и +0С такое же в + 04
mov [eax+08],ecx
mov esp,ebp
jmp return

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 часа назад, LIRW сказал:

Это кодовая функция

Дело в том что я то же самое хотел сделать по статистике убитых, 

но у меня вылет на моём скрипте скрипте,

Спойлер

{ Game   : Sam2.exe
  Version: 
  Date   : 2019-05-03
  Author : Pitronic

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(killStatictic,Sam2Game.dll,FF 40 10 8D 45 EC) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  inc [eax+10]
  push [eax+14]
  pop [eax+10]

code:
  lea eax,[ebp-14]
  jmp return

killStatictic:
  jmp newmem
  nop
return:
registersymbol(killStatictic)

[DISABLE]

killStanbctic:
  db FF 40 10 8D 45 EC

unregistersymbol(killStatictic)
dealloc(newmem)

 

а твой вариант не догнал, как это сделать в моём случае?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
newmem:
  push [eax+14]
  pop [eax+10]
code:
  lea eax,[ebp-14]
  jmp return

inc там на крен не нужен... в случаи с СЕ то.. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, LIRW сказал:

inc

вылет не из-за этого. Это просто лишняя инструкция ( из этих), которая ни на что не влияет.

2 часа назад, Pitronic сказал:

у меня вылет

Выкладывай скрипты с СЕ-ными логами хотя бы.
Не понятно какую ты инструкцию берешь, для инъекции. И почему ты делаешь puah/pop по другому регистру. Заметил уже не в первом твоем скрипте.
короче с ЛОГАМИ, так нам будет понятнее где у тебя ошибка
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 минут назад, Garik66 сказал:

вылет не из-за этого.

Я не говорю что вылет из за неё... Он писал я плагином занят был с челом... 

Написал ему что оно там в обще на крен не нужно... 

А почему ты говоришь.. что еакс не тот ? У него +10 - так оно и есть... 

по одному за убийство прибавляет.. Если я правильно его понял... А вот в +14 крен знает что у него уже...  Он какие то вещи не предсказуемые делает :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, LIRW сказал:

+14 крен

+14 по этомусмещению лежит значение если убить всех на уровне

в статистике отображается так, допустим я убил не всех парчку не нашёл, убито противников 10 /12

то есть значение 10 лежить в  [eax+10] а значение 12 лежит в [eax+14] это из анализа данных структур,

вот скрин:

Спойлер

STUKTURA.png

тут видно 12 я убил, а 39 надо для полного счастья, если не все противников убью.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
20 минут назад, LIRW сказал:

А почему ты говоришь.. что еакс не тот ?

А где в скрипте ТС видно, что eax тот?:wacko:

 

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

Т.е.  [eax+14] ( [eax+10]) в eax - нету указателя. 

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

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

Инструкцию покажи на которой делал анализ структур, что не понятного я говорю и выложи нормальный скрипт с ЛОГАМИ

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, Garik66 сказал:

покажи на которой делал анализ структур

вот из буфера:

Спойлер

EAX=7E8E42F8
EBX=7E9BEB08
ECX=00000004
EDX=00000000
ESI=1000B2B0
EDI=7E9BECFC
EBP=0012F914
ESP=0012F8D0
EIP=020487CD

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

020487C3 - jne 020487CD
020487C5 - call 021A9120
020487CA - inc [eax+10]
020487CD - lea eax,[ebp-14]
020487D0 - push 023B143C

 

а из этого писал скрипт инструкцяя всего одна вылезает

Спойлер

{ Game   : Sam2.exe
  Version: 
  Date   : 2019-05-03
  Author : Pitronic

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(INJECT,Sam2Game.dll,FF 40 10 8D 45 EC) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  inc [eax+10]
  lea eax,[ebp-14]
  jmp return

INJECT:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db FF 40 10 8D 45 EC

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "Sam2Game.dll"+887CA

"Sam2Game.dll"+887AB: 51                             -  push ecx
"Sam2Game.dll"+887AC: FF D6                          -  call esi
"Sam2Game.dll"+887AE: 8B 10                          -  mov edx,[eax]
"Sam2Game.dll"+887B0: 83 C4 04                       -  add esp,04
"Sam2Game.dll"+887B3: 53                             -  push ebx
"Sam2Game.dll"+887B4: 8B C8                          -  mov ecx,eax
"Sam2Game.dll"+887B6: FF 92 D0 01 00 00              -  call dword ptr [edx+000001D0]
"Sam2Game.dll"+887BC: 83 BB 84 04 00 00 01           -  cmp dword ptr [ebx+00000484],01
"Sam2Game.dll"+887C3: 75 08                          -  jne Sam2Game.dll+887CD
"Sam2Game.dll"+887C5: E8 56 09 16 00                 -  call Sam2Game.dll+1E9120
// ---------- INJECTING HERE ----------
"Sam2Game.dll"+887CA: FF 40 10                       -  inc [eax+10]
"Sam2Game.dll"+887CD: 8D 45 EC                       -  lea eax,[ebp-14]
// ---------- DONE INJECTING  ----------
"Sam2Game.dll"+887D0: 68 3C 14 3B 02                 -  push Sam2Game.dll+3F143C
"Sam2Game.dll"+887D5: 50                             -  push eax
"Sam2Game.dll"+887D6: FF 15 30 20 22 02              -  call dword ptr [Sam2Game.dll+262030]
"Sam2Game.dll"+887DC: 8B 0D A0 22 22 02              -  mov ecx,[Sam2Game.dll+2622A0]
"Sam2Game.dll"+887E2: 8B 11                          -  mov edx,[ecx]
"Sam2Game.dll"+887E4: 8B 38                          -  mov edi,[eax]
"Sam2Game.dll"+887E6: 8B 03                          -  mov eax,[ebx]
"Sam2Game.dll"+887E8: 83 C4 08                       -  add esp,08
"Sam2Game.dll"+887EB: 52                             -  push edx
"Sam2Game.dll"+887EC: 8B CB                          -  mov ecx,ebx
}

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Pitronic сказал:

а из этого писал скрипт

вот теперь более понятно.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Garik66 сказал:

вот теперь более понятно.

Да там и так было понятно... Дела идут на убийства... по одному их накидывает.... inc как раз... как может быть eax не тот :rolleyes: 

А вот что у него в +14.. крен знает. 

Проще зайти в call что выше и хук туда прилепить.. от туда eax и передается поди...  

Ps: 

А вылетает она вот почему... Я ему про это 155 раз писал.. А он видать не то не хочет понимать, не то не слушает.... Делает всё по своему.. 

Тут lea то сломат прыжком.. который он поставит.. после включение скрипта.. 

7777777.thumb.jpg.eb27ba10683b4fdc87c2c82f4fe887de.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Pitronic сказал:

вот из буфера:

На вот.. что бы без папки делал то... :lol: 

Спойлер

[ENABLE]
aobscanmodule(__AddrHook__,Sam2Game.dll,83 C0 68 8B E5)
  alloc(newmem,$1000)
  label(return)
newmem:
  add eax,68
  mov esp,[eax+14]
  mov [eax+10],esp
  mov esp,ebp
  jmp return
__AddrHook__:
  jmp newmem
  return:
registersymbol(__AddrHook__)
[DISABLE]
__AddrHook__:
  db 83 C0 68 8B E5
unregistersymbol(__AddrHook__)
  dealloc(newmem)

 

Как и писал выше... он передаётся от туда же... как и секреты были...  Это хорошо у мня игра стоит... тоже буду трейнер делать, но после... Пока другим занят.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 03.05.2019 в 21:12, LIRW сказал:

папки делал то

на моей игре не включаеться

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, Pitronic сказал:

на моей игре не включаеться

Значит у тебя версия игры допотопная... Пропуск байт в паттерне тут на вряд ли поможет... Они тут все нужные.  Не будет чего то, вылет обеспечен.. А место то найдет, но толков то от него будет :rolleyes:

Спойлер

[ENABLE]
aobscanmodule(__AddrHook__,Sam2Game.dll,8B * * FF * * * * * 83 * * 85 * 75 * 8B * * * 83 * * 8B)
  alloc(newmem,$1000)
  label(return)
newmem:
  add eax,68
  mov esp,[eax+14]
  mov [eax+10],esp
  mov esp,ebp
  jmp return
__AddrHook__+14:
  jmp newmem
  return:
registersymbol(__AddrHook__)
[DISABLE]
__AddrHook__+14:
  db 83 C0 68 8B E5
unregistersymbol(__AddrHook__)
  dealloc(newmem)

 

000000095.thumb.jpg.aae1654f5c692a2dcd0bbc80ee619337.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, LIRW сказал:

Значит у тебя версия игры допотопная

Может быть, только репак на версию стим 2.0.70 от механиков, но я не спорю может они чем то отличаться, потому что это второй случай, и ещё , все твои читы кроме 2 о которых ты знаешь работают. А этот скрипт работает! Что бы я без папки то делал?!☺️

Изменено пользователем Pitronic

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, LIRW сказал:

Пропуск байт в паттерне тут на вряд ли поможет

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, LIRW сказал:

А место то найдет, но толков то от него будет

байты одни и те же, а смещения разные, вот скрипт секретов

Спойлер

[ENABLE]
aobscanmodule(SecHack,Sam2Game.dll,85 * * * 8B * * C3 83 C0 68 8B * * C3)
alloc(newmem,$1000)
label(return)
newmem:
add eax,68
mov ecx,[eax+0C]  // ?
mov [eax+08],ecx // ?
mov esp,ebp
jmp return
SecHack+08:  // ?
jmp newmem
return:
registersymbol(SecHack)
[DISABLE]
SecHack+08:
db 83 C0 68 8B E5
unregistersymbol(SecHack)
dealloc(newmem)

 

а вот статистика убитых противников

Спойлер

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

  This script does blah blah blah
}
[ENABLE]
aobscanmodule(__AddrHook__,Sam2Game.dll,8B * * FF * * * * * 83 * * 85 * 75 * 8B * * * 83 * * 8B)
  alloc(newmem,$1000)
  label(return)
newmem:
  add eax,68
  mov esp,[eax+14] //
  mov [eax+10],esp //
  mov esp,ebp
  jmp return
__AddrHook__+14: //
  jmp newmem
  return:
registersymbol(__AddrHook__)
[DISABLE]
__AddrHook__+14:
  db 83 C0 68 8B E5
unregistersymbol(__AddrHook__)
  dealloc(newmem)

их как то объеденить надо, в один чит. только автора тебя поставить чтоб видно было где твои читы, в прочем я сам сделаю.

вот из за этого, они и не могут 2 одновременно работать

Изменено пользователем Pitronic

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Pitronic сказал:

байты одни и те же, а смещения разные, вот скрипт секретов

Значит делай как то так... Один на всё.. а там надо будет если по отдельности.. пиши флаги.. 

Спойлер

[ENABLE]
aobscanmodule(__AddrHook__,Sam2Game.dll,8B * * FF * * * * * 83 * * 85 * 75 * 8B * * * 83 * * 8B)
  alloc(newmem,$1000)
  label(return)
newmem:
  add eax,68
  mov esp,[eax+0C]
  mov [eax+08],esp
  mov esp,[eax+14]
  mov [eax+10],esp
  mov esp,ebp
  jmp return
__AddrHook__+14: //
  jmp newmem
  return:
registersymbol(__AddrHook__)
[DISABLE]
__AddrHook__+14:
  db 83 C0 68 8B E5
unregistersymbol(__AddrHook__)
  dealloc(newmem)

 

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

Либо вешай на тот скрипт, что от секретов идет.. В общем там сам смотри как лучше...  

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, LIRW сказал:

В общем там сам смотри как лучше

Лучше как у тебя придумать не возможно, идеальный вариант, идеально работает, идеально подходит! Я этот чит назвал perfect statistics, что в переводе будет идеальная статистика! Что бы я без папки делал?

Изменено пользователем Pitronic

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×

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

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