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

как правильно соединять два скрипта или несколько в один скрипт ?


Alex2411

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

зы1: можно будет попробовать 

вот так фильтрануть:

Спойлер

  cmp [esp],00626973    
  jne code

 

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

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

не  получаеться сделать фильтр

Ты наверное пропустил мое сообщение.

Адреса инструкций постоянные в игре или меняются после перезагрузки игры.

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

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

 

вылет через нескольо  секунд.

Ты не ответил. 

 

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

Адреса инструкций постоянные в игре или меняются после перезагрузки игры.

 

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

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

 

cmp [esp+размер кадра стека + количество положеных в стек регистров в прологе], адрес возврата (адрес в какую функцию вернуть выполнение кода, уникальный вызов дяя игрока)
je code
//ohk для противников
code:
//бессмертие

Если с адресами, то есть несколько инструкций, которые вызывают одну функцию из разных мест для игрока и NPC, значит адрес возврата будет уникальный для игрока. Возьмем к примеру адрес возврата игрока 0xDEADF00D, для NPC 0xDEADFACE, внутри вызываемой функции они будут иметь одинаковое смещение по стеку к примеру 0x44(размер кадра стека) + 4 байта на сохраненный адрес кадра стека функции откуда происходил вызов + 4 байта на адрес куда вернуть выполнение кода, после вызова функции.

 

//cmp [esp+0x44+4+4], 0xDEADF00D
cmp [esp+0x4C], 0xDEADF00D

je code
//ohk для противников
code:
//бессмертие

 

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

  • 8 месяцев спустя...

как мне объединить два скрипта в оден? 

вот 1 скрипт

 

Спойлер

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem:
mov dword ptr [edi+0000052C],(float)0
originalcode:
mulss xmm0,[edi+0000052C]

exit:
jmp returnhere

"xrGame.dll"+1D672E:
jmp newmem
nop
nop
nop
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"xrGame.dll"+1D672E:
mulss xmm0,[edi+0000052C]
//Alt: db F3 0F 59 87 2C 05 00 00

и 2 скрипт





[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem:
mov dword ptr [edi+00000528],(float)0
originalcode:
addss xmm0,[edi+00000528]

exit:
jmp returnhere

"xrGame.dll"+1D6736:
jmp newmem
nop
nop
nop
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"xrGame.dll"+1D6736:
addss xmm0,[edi+00000528]
//Alt: db F3 0F 58 87 28 05 00 00

 

 

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

1 час назад, ЛАГАРИУМ сказал:

как мне объединить два скрипта в оден? 

Даже в этом топике давал ссылки на видео, где делал объединение.
Пока сам не попробуешь - не отложится. А способов много.

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

Спойлер

ENABLE]
alloc(newmem,2048)
label(newmem1)
label(returnhere)
label(returnhere1)


newmem:
mov dword ptr [edi+0000052C],(float)0


jmp returnhere

newmem1:
mov dword ptr [edi+00000528],(float)0


jmp returnhere1

"xrGame.dll"+1D672E:
jmp newmem
nop
nop
nop

returnhere:

"xrGame.dll"+1D6736:
jmp newmem1
nop
nop
nop
returnhere1:

[DISABLE]

"xrGame.dll"+1D672E:
mulss xmm0,[edi+0000052C]

"xrGame.dll"+1D6736:
addss xmm0,[edi+00000528]
dealloc(newmem)

Спойлер

 

почему у меня скрипт работает только при выключение а вк  нет ?

 

16 часов назад, Garik66 сказал:

Даже в этом топике давал ссылки на видео, где делал объединение.
Пока сам не попробуешь - не отложится. А способов много.

 

 

Изменено пользователем ЛАГАРИУМ
Ссылка на комментарий
Поделиться на другие сайты

42 минуты назад, ЛАГАРИУМ сказал:

почему у меня скрипт работает только при выключение а вк  нет ?

А где оригинальный код.

originalcode:
mulss xmm0,[edi+0000052C] и первого и второго скриптов
нужно делать внимательно

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

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

А где оригинальный код.

originalcode:
mulss xmm0,[edi+0000052C] и первого и второго скриптов
нужно делать внимательно

я просто скопировал своё в етот скрипт с форума

Спойлер

[ENABLE]
alloc(newmem,2048)
label(newmem1)
label(returnhere)
label(returnhere1)

newmem:
mov [ecx],#99
mov eax,edx
pop esi
jmp returnhere

newmem1:
mov [esi+00000830],#99
jmp returnhere1

"conviction_game.exe"+13E2B2:
jmp newmem
returnhere:

"conviction_game.exe"+1430BE:
jmp newmem1
nop
returnhere1:

[DISABLE]
"conviction_game.exe"+13E2B2:
mov [ecx],eax
mov eax,edx
pop esi
"conviction_game.exe"+1430BE:
mov [esi+00000830],edi

dealloc(newmem)

 

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

45 минут назад, ЛАГАРИУМ сказал:

я просто скопировал

Нужно не просто скопировать, а посмотреть видос, понять и потом сделать.

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

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

Нужно не просто скопировать, а посмотреть видос, понять и потом сделать.

уже заработало добавил label(code)
label(code1) вот что получилось

Спойлер

[ENABLE]
alloc(Norecoil,2048)
label(Norecoil1)
label(returnhere)
label(code)
label(code1)
label(returnhere1)


Norecoil:
mov dword ptr [edi+0000052C],(float)0
code:
  mulss xmm0,[edi+0000052C]

jmp returnhere

Norecoil1:
mov dword ptr [edi+00000528],(float)0
code1:
  addss xmm0,[edi+00000528]

jmp returnhere1

"xrGame.dll"+1D672E:
jmp Norecoil
nop
nop
nop

returnhere:

"xrGame.dll"+1D6736:
jmp Norecoil1
nop
nop
nop
returnhere1:

[DISABLE]

"xrGame.dll"+1D672E:
mulss xmm0,[edi+0000052C]

"xrGame.dll"+1D6736:
addss xmm0,[edi+00000528]
dealloc(newmem)
 

 

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

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

Нужно не просто скопировать, а посмотреть видос, понять и потом сделать.

а видос я смотрел и не один раз я еты метки  или как они там називаются не понимаю их типа  етих  label(returnhere)
label(code)
label(code1)
label(returnhere1)

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

1 час назад, ЛАГАРИУМ сказал:

уже заработало добавил label(code)

а как ты назад восстановишь значение в адресе ? функцию выключишь, а отдачи то всё равно нет...  

А если по твоему делать.. то хотя бы так накати... в первую и во вторую.

originalcode:
xorps xmm0,xmm0
mulss xmm0,[edi+0000052C] - перемножит на 0 и выйдет 0
exit:
originalcode:
addss xmm0,[edi+00000528]
xorps xmm0,xmm0  // тут обнулит
exit:
jmp returnhere

так хоть оригинал восстановишь если хуком делать. 

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

как то так получилось, теперь отключается скрипт все работает спасибо .  

Спойлер

[ENABLE]
alloc(Norecoil,2048)
label(Norecoil1)
label(returnhere)
label(code)
label(code1)
label(returnhere1)


Norecoil:

code:
  xorps xmm0,xmm0
mulss xmm0,[edi+0000052C]


jmp returnhere

Norecoil1:

code1:
  addss xmm0,[edi+00000528]
xorps xmm0,xmm0  // тут обнулит

jmp returnhere1

"xrGame.dll"+1D672E:
jmp Norecoil
nop
nop
nop

returnhere:

"xrGame.dll"+1D6736:
jmp Norecoil1
nop
nop
nop
returnhere1:

[DISABLE]

"xrGame.dll"+1D672E:
mulss xmm0,[edi+0000052C]

"xrGame.dll"+1D6736:
addss xmm0,[edi+00000528]
dealloc(newmem)

 

 

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

13 минут назад, ЛАГАРИУМ сказал:

как то так получилось

Как то так должно получаться то... 

Спойлер

[ENABLE]
alloc(newmem,1048)
label(_recoil_1_)
label(_recoil_2_)
label(_1_back_)
label(_2_back_)
newmem:
_recoil_1_:
xorps xmm0,xmm0
mulss xmm0,[edi+0000052C]
jmp _1_back_
_recoil_2_:
addss xmm0,[edi+00000528]
xorps xmm0,xmm0
jmp _2_back_
"xrGame.dll"+1D672E:
jmp _recoil_1_
db 90 90 90
_1_back_:
"xrGame.dll"+1D6736:
jmp _recoil_2_
db 90 90 90
_2_back_:
[DISABLE]
"xrGame.dll"+1D672E:
mulss xmm0,[edi+0000052C]
"xrGame.dll"+1D6736:
addss xmm0,[edi+00000528]
dealloc(newmem)

 

и aobscan желательно... 

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

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

Как то так должно получаться то... 

  Показать контент


[ENABLE]
alloc(newmem,1048)
label(_recoil_1_)
label(_recoil_2_)
label(_1_back_)
label(_2_back_)
newmem:
_recoil_1_:
xorps xmm0,xmm0
mulss xmm0,[edi+0000052C]
jmp _1_back_
_recoil_2_:
addss xmm0,[edi+00000528]
xorps xmm0,xmm0
jmp _2_back_
"xrGame.dll"+1D672E:
jmp _recoil_1_
db 90 90 90
_1_back_:
"xrGame.dll"+1D6736:
jmp _recoil_2_
db 90 90 90
_2_back_:
[DISABLE]
"xrGame.dll"+1D672E:
mulss xmm0,[edi+0000052C]
"xrGame.dll"+1D6736:
addss xmm0,[edi+00000528]
dealloc(newmem)

 

и aobscan желательно... 

чот не получается  вставить правельно  aobscan

вот ето нужно

Спойлер

aobscan(Norecoil,xrGame.dll,F3 0F 59 87 2C 05 00 00 F3 0F 58 87 28 05 00 00 51)

aobscan(Norecoil1,xrGame.dll,F3 0F 58 87 28 05 00 00 51)

 

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

11 минут назад, ЛАГАРИУМ сказал:

чот не получается  вставить правельно  aobscan

Модуль указывать не над... а с модулем.. пишется по другому.. как то так.. 

Если что то не так.. подправишь.

Спойлер

[ENABLE]
aobscanmodule(_recoil_1_,xrGame.dll,F3 0F 59 87 2C 05 00 00 F3 0F 58 87 28 05 00 00 51)
aobscanmodule(_recoil_2_,xrGame.dll,F3 0F 58 87 20 05 00 00 51)
alloc(newmem,1048)
label(_recoil_1)
label(_recoil_2)
label(_1_back_)
label(_2_back_)
newmem:
_recoil_1:
xorps xmm0,xmm0
mulss xmm0,[edi+0000052C]
jmp _1_back_
_recoil_2:
addss xmm0,[edi+00000528]
xorps xmm0,xmm0
jmp _2_back_
_recoil_1_:
jmp _recoil_1
db 90 90 90
_1_back_:
_recoil_2_:
jmp _recoil_2
db 90 90 90
_2_back_:
[DISABLE]
_recoil_1_:
db F3 0F 59 87 2C 05 00 00
_recoil_2_:
db F3 0F 58 87 20 05 00 00
dealloc(newmem)

 

 

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

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

aobscanmodule(Norecoil,xrGame.dll,F3 0F 59 87 2C 05 00 00 F3 0F 58 87 28 05 00 00 51)

я так делаю

Спойлер

[ENABLE]
aobscanmodule(Norecoil,xrGame.dll,F3 0F 59 87 2C 05 00 00 F3 0F 58 87 28 05 00 00 51)
aobscanmodule(Norecoil1,xrGame.dll,F3 0F 58 87 28 05 00 00 51)
alloc(Norecoil$1000)
label(Norecoil1)
label(returnhere)
label(code)
label(code1)
label(returnhere1)

и пишет ошибку не весь код пригоден к иньекции ошибка в строке  4 alloc(00000000$1000) и так дале

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

  • 1 месяц спустя...

когда я соединяю два скрипта инжекции  в один скрипт  как правильно выделить память для 64 бит игры ?  нужно для каждого скрипта  выделить  память отдельно типа  newmem1 newmem2 ? а если не отдельно , тогда что  написать в скобках после  alloc?

 

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

49 минут назад, Alex2411 сказал:

когда я соединяю два скрипта инжекции  в один скрипт  как правильно выделить память для 64 бит игры ?  нужно для каждого скрипта  выделить  память отдельно типа  newmem1 newmem2 ? а если не отдельно , тогда что  написать в скобках после  alloc?

 

Я в своих уроках неоднократно об этом рассказывал,

При объединении, выделяешь память один раз, а второй скрипт, как обычная метка и в этой теме. есть тоже пример:
 

alloc(newmem,2048)
label(newmem1)

 

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

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

При объединении, выделяешь память один раз, а второй скрипт, как обычная метка

 

для 64 бит  так же делать ? если так же , тогда что писать в скобках  alloc после 2048 ?

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

15 минут назад, Alex2411 сказал:

не кто не подскажет ?

вот поменяеш на своы сигнатури и код

Спойлер

[ENABLE]

aobscanmodule(recoil_1,xrGame.dll,F3 0F 59 87 2C 05 00 00 F3 0F 58 87 28 05 00 00 51)
aobscanmodule(recoil_2,xrGame.dll,F3 0F 58 87 28 05 00 00 51)
alloc(newmem,$1000)
label(newmem_2)
label(code)
label(code_2)
label(return)
label(return_2)
registersymbol(recoil_1)
registersymbol(recoil_2)

newmem:

code:
  xorps xmm0,xmm0
mulss xmm0,[edi+0000052C]

  jmp return

newmem_2:

code_2:
   addss xmm0,[edi+00000528]
xorps xmm0,xmm0
  jmp return_2



recoil_1:
  jmp newmem
  nop
  nop
  nop
return:


recoil_2:
  jmp newmem_2
  nop
  nop
  nop
return_2:

[DISABLE]

recoil_1:
  db F3 0F 59 87 2C 05 00 00
recoil_2:
  db F3 0F 58 87 28 05 00 00
unregistersymbol(recoil_1)
unregistersymbol(recoil_2)
dealloc(newmem)
dealloc(newmem_2)

 

 

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

  • Xipho закрыл тема
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...

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

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