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

[Company of Heroes 2] Вопрос по скрипту


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

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

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

cmp [esi+1b8],0
jne @f
mov [esi+7c],(float)ххх
fstp dword ptr [eax]
jmp return
@@:
  fstp dword ptr [eax]
  cmp ebp,08
  jmp return

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

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

11 минуту назад, Жажда Знаний сказал:

Помогите разобраться со скриптом

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

 

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

33 минуты назад, Жажда Знаний сказал:

вот одна из инструкций

Ладно, что-то долго ждать.

Из того что ты выложил.

1. Ошибка 1:

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

  cmp [esi+1b8],0
  jne @f
  mov [esi+7c],(float)ххх
  //fstp dword ptr [eax]                         - эти две инструкции не нужны.
  //jmp return
@@:
  fstp dword ptr [eax]
  cmp ebp,08
  jmp return

 

 2. Причем здесь esi, если у тебя инструкция по eax?

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

Не совсем понимаю что значит с логами?  Полностью скрипт ? Esi потому что это тот же самый регистр eax только полный не с нулевым смещением как  eax. Инструкции 2 потому как происходит разветвление  инструкции на 2 части отдельно, она обрабатывается первой. Суть в том как записать инструкцию с сохранением флагов и регистров в стек, чтоб игра не выдавала ошибку.? 

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

5 часов назад, Жажда Знаний сказал:

Не совсем понимаю что значит с логами?  Полностью скрипт ?

Мы уже это с тобой проходили, я всегда прошу это сделать -> смотри ТУТ.

5 часов назад, Жажда Знаний сказал:

Esi потому что это тот же самый регистр eax только полный не с нулевым смещением как  eax.

Тогда это твоя вторая ошибка, если бы выложил скрипт с Логами, было более понятно.

 

5 часов назад, Жажда Знаний сказал:

Инструкции 2 потому как происходит разветвление  инструкции на 2 части отдельно, она обрабатывается первой. 

Я под спойлером не задавал вопрос, а писал, что у тебя там ошибки, ещё раз повторю:

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

 // Либо нужно записать так:
  cmp [esi+1b8],0
  jne @f
  mov [esi+7c],(float)ххх
  //fstp dword ptr [eax]                         - т.е. без этих двух инструкций. Они не нужны.
  //jmp return
@@:
  fstp dword ptr [eax]
  cmp ebp,08
  jmp return
  
  
// Либо записать так:  
  cmp [esi+1b8],0
  jne @f
  mov [esi+7c],(float)ххх
  fstp dword ptr [eax]                       
  cmp ebp,08               // так как ты убрал эту инструкцию из-за этого однозначно вылет.
  jmp return
@@:
  fstp dword ptr [eax]
  cmp ebp,08
  jmp return

 

И твоя вторая ошибка, что нужно не esi, а eax. Но это уже после выкладывания полностью скрипта. И мне нужно будет ещё задать один вопрос.

 

5 часов назад, Жажда Знаний сказал:

 Суть в том как записать инструкцию с сохранением флагов и регистров в стек, чтоб игра не выдавала ошибку.? 

У тебя нет в скрипте ни флагов, ни записи в стек.

Твои ошибки:

1. Перепутаны регистры esi/eax.

2. Удалена оригинальная инструкция игры (смотри выше.

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

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

define(address,"RelicCoH2.exe"+F756E2)
define(bytes,F3 0F 10 41 04)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
cmp [eax+13c],0
jne @f
//cmp ebx,5
//jne @f
mov [esp+58],(float)0
mov [esp+5c],(float)0
mov [esp+60],(float)0
mov [esp+64],(float)0
movss xmm0,[ecx+04]
jmp return
@@:
  movss xmm0,[ecx+04]
  jmp return

address:
  jmp newmem
return:

[DISABLE]

address:
  db bytes
  // movss xmm0,[ecx+04]

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "RelicCoH2.exe"+F756E2

"RelicCoH2.exe"+F756CB: CC                    -  int 3 
"RelicCoH2.exe"+F756CC: CC                    -  int 3 
"RelicCoH2.exe"+F756CD: CC                    -  int 3 
"RelicCoH2.exe"+F756CE: CC                    -  int 3 
"RelicCoH2.exe"+F756CF: CC                    -  int 3 
"RelicCoH2.exe"+F756D0: 8B C1                 -  mov eax,ecx
"RelicCoH2.exe"+F756D2: 8B 4C 24 04           -  mov ecx,[esp+04]
"RelicCoH2.exe"+F756D6: F3 0F 10 01           -  movss xmm0,[ecx]
"RelicCoH2.exe"+F756DA: F3 0F 58 00           -  addss xmm0,[eax]
"RelicCoH2.exe"+F756DE: F3 0F 11 00           -  movss [eax],xmm0
// ---------- INJECTING HERE ----------
"RelicCoH2.exe"+F756E2: F3 0F 10 41 04        -  movss xmm0,[ecx+04]
// ---------- DONE INJECTING  ----------
"RelicCoH2.exe"+F756E7: F3 0F 58 40 04        -  addss xmm0,[eax+04]
"RelicCoH2.exe"+F756EC: F3 0F 11 40 04        -  movss [eax+04],xmm0
"RelicCoH2.exe"+F756F1: F3 0F 10 41 08        -  movss xmm0,[ecx+08]
"RelicCoH2.exe"+F756F6: F3 0F 58 40 08        -  addss xmm0,[eax+08]
"RelicCoH2.exe"+F756FB: F3 0F 11 40 08        -  movss [eax+08],xmm0
"RelicCoH2.exe"+F75700: F3 0F 10 41 0C        -  movss xmm0,[ecx+0C]
"RelicCoH2.exe"+F75705: F3 0F 58 40 0C        -  addss xmm0,[eax+0C]
"RelicCoH2.exe"+F7570A: F3 0F 11 40 0C        -  movss [eax+0C],xmm0
"RelicCoH2.exe"+F7570F: F3 0F 10 41 10        -  movss xmm0,[ecx+10]
"RelicCoH2.exe"+F75714: F3 0F 58 40 10        -  addss xmm0,[eax+10]
}

Вот скрипт который нужен, первый я брал как альтернативный вариант потому что ни какие инструкции не работают., перед этим я перепробовал все варианты прежде обращаться за помощью и уверяю что первый скрипт написан правильно потому как скрипты по другим значениям написаны по такому принципу и работают без ошибок. Тут в этом скрипте Регистр Есх это стек, поэтому я пишу сразу напрямую в стек. Бывает что игра какое то время работает затем вылетает. Инструкция работает с множество адресами.

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

9 минут назад, Жажда Знаний сказал:

Вот скрипт который нужен

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

 

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

25 минут назад, Жажда Знаний сказал:

Инструкция работает с множество адресами.

Значит ты пишешь во все эти адреса свои значения из-за чего получаешь вылет. Что ты вовсе пытался сделать этим скриптом? Да и фильтр нужно более нормальный подобрать.
 

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

Только что, Жажда Знаний сказал:

Garik6, версия 21.0.0.421799

Тогда сейчас качну вот эту версию:

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

Скачать торрент Company of Heroes 2: Master Collection [v 4.0.0.21799 + DLC's] (2014) PC | RePack от =nemos=

И после установки, отпишусь тебе в ЛС.

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

ReWanet, да думаю ты прав,потому что когда пишу с ebx то работает нормально, но тогда не работает фильтр на игрока. Как бы правильно это Записать ?

cmp [eax+13c],0
jne @f

@@:           // так не пойдет ?
cmp ebx,5
jne @f

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

1 минуту назад, Жажда Знаний сказал:

ReWanet, да думаю ты прав,потому что когда пишу с ebx то работает нормально, но тогда не работает фильтр на игрока. Как бы правильно это Записать ?

Без более подробной обрисовки ситуации я не смогу помочь. Если нужный тебе адрес имеет эти оба фактора то пиши как-то так:

cmp [eax+13c],0
jne code
cmp ebx.5
jne code
тут свой код

А так ничем более помочь тут тебе нельзя потому как информации гроши. Советую посмотреть парочку уроков про фильтры и способы отделения нужного объекта от ненужных. 

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

3 минуты назад, Жажда Знаний сказал:

ReWanet, я так писал, работает со мной и с врагами. Причем работает только "cmp ebx"

А можно писать без вот этих "эффeктов"? Я и так вижу что ты написал. Если работает с тобой и с врагами то значит фильтр не правильно подобран. Я то как тебе фильтр подберу не видя игры?

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

ReWanetСмотри,если взять регистр ebx как единицу  обозначение ресурса, например 4 ресурса присвоить к  ebp1,ebp2,ebp3,ebp4 и как сделать их что бы записать за место регистра eax, регистр сравнения esi, что бы игра не выдавала ошибку. ?

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

3 минуты назад, Жажда Знаний сказал:

ReWanetСмотри,если взять регистр ebx как единицу  обозначение ресурса, например 4 ресурса присвоить к  ebp1,ebp2,ebp3,ebp4 и как сделать их что бы записать за место регистра eax, регистр сравнения esi, что бы игра не выдавала ошибку. ?

Боюсь, у Всех после такого вопроса, мозг взорвется.;)

 

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

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

И после установки, отпишусь тебе в ЛС.

@Жажда Знаний, короче репак по видимому битый, после 90 % установки - вылет.

Так что не судьба и так помочь. Качать другие репаки больше не буду. Терять 1.5 часа нет желания.

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

Garik66я не пойму пойму почему выдает ошибку когда регистр используешь esi,? При точке останова брекпойнта его видно. Про регистр    ebp я имел в виду что если присвоить ресурсы например - горючее ebp=1, боеприпасы ebp=2, и так далее

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

6 минут назад, Жажда Знаний сказал:

Garik66я не пойму пойму почему выдает ошибку когда регистр используешь esi,? При точке останова брекпойнта его видно. Про регистр    ebp я имел в виду что если присвоить ресурсы например - горючее ebp=1, боеприпасы ebp=2, и так далее

Я не знаю, как тебе помочь.

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

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

Больше способов я не знаю.

 

А расспрашивать тебя по-моему бес толку, то что ты пишешь, абсолютно ничего не понятно.

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

ReWanet, вообщем хотел увеличить скорость пополнения ресурсов или без вычитания стоимости войск. С поддержкой получилось с ресурсами нет.

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

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

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

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