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

Поиск нужной инструкции


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

Доброго времени суток всем! Решил тут я поломать малость симулятор тенниса Vitrual Tennis Pro 4. Нашел нужный мне адрес - пытаюсь посмотреть какие инструкции с ним работают - и только я цепляю отладчик к процессу игры - как игра вылетает. Подскажите пожалуйста как быть в такой ситуации??? P.S. когда морозишь адрес и ставишь нужное значение - игра не вылетает. 

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

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

и только я цепляю отладчик

Это уже 155 раз обсуждалось. В настройках отладчика ставить надо Veh и использовать int

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

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

Это уже 155 раз обсуждалось. В настройках отладчика ставить надо Veh и использовать int

А не подскажете что сделать если опция выбора отладчика не доступна??? 

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

 

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

46 минуты назад, NickSpirit сказал:

По поводу "155 раз обсуждалось" - ну не нашел я нигде это.

Ну это я уж преувеличил :)  ну раза 3 точно обсуждалось и не сказать что так давно прям.  Можно было бы и Google в поиске написать и показало бы результаты. А возможно даже и форум с подобным вопросом. 

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

Вообщем нашел я нужные инструкции. Написал кучу скриптов...более менее работают два. Вообщем суть такая - пока ограничился тем что хочу найти просто два нужных мне адреса. И все вроде бы работает НО - игра через некоторое время вылетает. Хотя вроде бы толком то скрипт ничего криминального с игрой не делает..не понимаю вообщем из-за чего вылеты. Кстати и после отладчика через некоторое время вылетает. Даже с нужными настройками. Вот скрипт который использую. Подскажите - может байты не выровнял где нить..или чего еще не так... 

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

{ Game   : VT4.exe
  Version: 
  Date   : 2016-11-10
  Author : GravaPC

  This script does blah blah blah
}

{ Game   : VT4.exe
  Version: 
  Date   : 2016-11-09
  Author : GravaPC

  This script does blah blah blah
}

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat

aobscanmodule(SUPERFOUR,VT4.exe,F3 0F 11 47 04 8B 0D) // should be unique
alloc(newmem,$1000)
registersymbol(SUPERFOUR)
registersymbol(pointer)
label(code)
label(return)
label(pointer)

newmem:
  cmp [edi+20],0
  jne code
  push eax
  lea eax,[edi+04]
  mov [pointer],eax
  pop eax
  movss [edi+04],xmm0
  jmp return
code:
  movss [edi+04],xmm0
  jmp return
pointer:
  db 0
SUPERFOUR:
  jmp newmem
return:


aobscanmodule(SUPERTHREE,VT4.exe,F3 0F 11 00 C6 40 08 01) // should be unique
alloc(newmem2,$1000)
registersymbol(SUPERTHREE)
registersymbol(pointer1)
label(code2)
label(return2)
label(pointer1)

newmem2:
  cmp [eax+0B],0
  jne code2
  push ebx
  lea ebx,[eax]
  mov [pointer1],ebx
  pop ebx
  movss [eax],xmm0
  mov byte ptr [eax+08],01
  jmp return2
code2:
  movss [eax],xmm0
  mov byte ptr [eax+08],01
  jmp return2
pointer1:
  db 0
SUPERTHREE:
  jmp newmem2
  nop
  nop
  nop
return2:


[DISABLE]
//code from here till the end of the code will be used to disable the cheat
SUPERFOUR:
  db F3 0F 11 47 04

unregistersymbol(SUPERFOUR)
unregistersymbol(pointer)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1434A2

"VT4.exe"+143473: F3 0F 10 43 04           -  movss xmm0,[ebx+04]
"VT4.exe"+143478: F3 0F 10 4C 24 24        -  movss xmm1,[esp+24]
"VT4.exe"+14347E: D9 5C 24 20              -  fstp dword ptr [esp+20]
"VT4.exe"+143482: F3 0F 10 54 24 20        -  movss xmm2,[esp+20]
"VT4.exe"+143488: E9 1E FC FF FF           -  jmp VT4.exe+1430AB
"VT4.exe"+14348D: 0F 2F C8                 -  comiss xmm1,xmm0
"VT4.exe"+143490: 72 10                    -  jb VT4.exe+1434A2
"VT4.exe"+143492: 0F 28 C1                 -  movaps xmm0,xmm1
"VT4.exe"+143495: C7 47 48 00 00 00 00     -  mov [edi+48],00000000
"VT4.exe"+14349C: F3 0F 11 44 24 1C        -  movss [esp+1C],xmm0
// ---------- INJECTING HERE ----------
"VT4.exe"+1434A2: F3 0F 11 47 04           -  movss [edi+04],xmm0
// ---------- DONE INJECTING  ----------
"VT4.exe"+1434A7: 8B 0D 78 68 83 00        -  mov ecx,[VT4.exe+436878]
"VT4.exe"+1434AD: 85 C9                    -  test ecx,ecx
"VT4.exe"+1434AF: 74 2E                    -  je VT4.exe+1434DF
"VT4.exe"+1434B1: D9 44 24 1C              -  fld dword ptr [esp+1C]
"VT4.exe"+1434B5: 8B 57 38                 -  mov edx,[edi+38]
"VT4.exe"+1434B8: 6A 00                    -  push 00
"VT4.exe"+1434BA: 51                       -  push ecx
"VT4.exe"+1434BB: D9 1C 24                 -  fstp dword ptr [esp]
"VT4.exe"+1434BE: 52                       -  push edx
"VT4.exe"+1434BF: E8 BC DB 0A 00           -  call VT4.exe+1F1080
}
SUPERTHREE:
  db F3 0F 11 00 C6 40 08 01

unregistersymbol(SUPERTHREE)
unregistersymbol(pointer1)
dealloc(newmem2)

{
// ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1F10E9

"VT4.exe"+1F10BA: F2 0F 5C CA              -  subsd xmm1,xmm2
"VT4.exe"+1F10BE: 66 0F 5A C9              -  cvtpd2ps xmm1,xmm1
"VT4.exe"+1F10C2: F3 0F 11 4C 24 0C        -  movss [esp+0C],xmm1
"VT4.exe"+1F10C8: 81 64 24 0C FF FF FF 7F  -  and [esp+0C],7FFFFFFF
"VT4.exe"+1F10D0: F3 0F 10 4C 24 0C        -  movss xmm1,[esp+0C]
"VT4.exe"+1F10D6: 0F 5A C9                 -  cvtps2pd xmm1,xmm1
"VT4.exe"+1F10D9: 66 0F 2F 0D 68 FB 78 00  -  comisd xmm1,[VT4.exe+38FB68]
"VT4.exe"+1F10E1: 5E                       -  pop esi
"VT4.exe"+1F10E2: 76 1E                    -  jna VT4.exe+1F1102
"VT4.exe"+1F10E4: 80 7C 24 0C 00           -  cmp byte ptr [esp+0C],00
// ---------- INJECTING HERE ----------
"VT4.exe"+1F10E9: F3 0F 11 00              -  movss [eax],xmm0
"VT4.exe"+1F10ED: C6 40 08 01              -  mov byte ptr [eax+08],01
// ---------- DONE INJECTING  ----------
"VT4.exe"+1F10F1: C7 40 0C 00 00 00 00     -  mov [eax+0C],00000000
"VT4.exe"+1F10F8: 74 08                    -  je VT4.exe+1F1102
"VT4.exe"+1F10FA: 6A 00                    -  push 00
"VT4.exe"+1F10FC: 52                       -  push edx
"VT4.exe"+1F10FD: E8 6E FC FF FF           -  call VT4.exe+1F0D70
"VT4.exe"+1F1102: C2 0C 00                 -  ret 000C
"VT4.exe"+1F1105: CC                       -  int 3 
"VT4.exe"+1F1106: CC                       -  int 3 
"VT4.exe"+1F1107: CC                       -  int 3 
"VT4.exe"+1F1108: CC                       -  int 3 
}

 

 

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

11 минуту назад, NickSpirit сказал:

Вообщем нашел я нужные инструкции. Написал кучу скриптов...более менее работают два. Вообщем суть такая - пока ограничился тем что хочу найти просто два нужных мне адреса.  

Суть в чем? В том чтобы найти два нужных тебе адреса?Почему два , а не три или один ? Зачем тебе их нужно найти? Что подразумевается под словом "нужные"? 

 

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

И все вроде бы работает НО - игра через некоторое время вылетает. Хотя вроде бы толком то скрипт ничего криминального с игрой не делает..не понимаю вообщем из-за чего вылеты. 

Работает что? Поиск адресов? Вылетает из-за чего? Из-за поиска адресов? 

 

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

Кстати и после отладчика через некоторое время вылетает. Даже с нужными настройками. Вот скрипт который использую. Подскажите - может байты не выровнял где нить..или чего еще не так... 

Вылетает после установки breakpoint или после N-го количества step'ов ?

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

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

Суть в чем? В том чтобы найти два нужных тебе адреса?Почему два , а не три или один ? Зачем тебе их нужно найти? Что подразумевается под словом "нужные"? 

 

Работает что? Поиск адресов? Вылетает из-за чего? Из-за поиска адресов? 

 

Вылетает после установки breakpoint или после N-го количества step'ов ?

1. Пока просто найти именно два адреса и показать их. Найти нужно чтобы поменять значение затем - либо руками либо (когда будет стабильность скрипта - в самом скрипте). Два - потому что ДВА. - И он находит и показывает именно нужные адреса. просто через минуту-две игра вылетает. 

 

2+3.  Работает поиск адресов - все отображает верно. Вылетает - сама по себе (по Вашему говоря - после нескольких шагов (времени работы скрипта я так понимаю)). Крашится то есть. 

 

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

Ты понимаешь что вопрос задан не корректно? И тебе никто из присутствующий здесь  не даст корректного ответа, потому что попросту не поймут чего ты хочешь сделать.

Но хорошо хоть скрипт привел, так бы и сказал что пишешь фильтр объектов.

 

Задача в принципе тривиальная, на ютубе этой информации пруд пруди. Если не получается сразу два объекта отфильтровать, то пиши сначала для одного

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

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

Ты понимаешь что вопрос задан не корректно? И тебе никто из присутствующий здесь  не даст корректного ответа, потому что попросту не поймут чего ты хочешь сделать.

Но хорошо хоть скрипт привел, так бы и сказал что пишешь фильтр объектов.

 

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

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

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

 

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

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

 

кинь ссылку на игру

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

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

кинь ссылку на игру

http://maintracker.org/forum/viewtopic.php?t=4286369

 

Что пытаюсь сделать - при ударе у игрока заполняется полоска суперудара (Вот пытаюсь ее всегда заполнять до 100). За нее отвечают по моим догадкам три адреса..две инструкции нашел. третий адрес находится рядом с одним по смещению 14. Тип float.

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

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

Подскажите - может байты не выровнял где нить..или чего еще не так... 

NickSpirit, а оба скрипта (до объединения в один) как работали? был ли вылет? (мне кажется не очень корректно обединил скрипты).

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

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

По отдельности тож вылетали. 

 

Вообще..предполагаю что игра имеет какую то защиту..но как ее найти пока понять не могу. Да и живет игра при подцеплении отладчика (с разными настройками - как верными так и не оч) не особо долго..от вылета сразу до вылета через 3-4 минуты. 

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

7 часов назад, NickSpirit сказал:

По отдельности тож вылетали. 

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

Но объединение тоже важно, я бы например объединил твои скрипты так:

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

{ Game   : VT4.exe
  Version:
  Date   : 2016-11-10
  Author : GravaPC

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(SUPERFOUR,VT4.exe,F3 0F 11 47 04 8B 0D)
aobscanmodule(SUPERTHREE,VT4.exe,F3 0F 11 00 C6 40 08 01)
alloc(newmem,$1000)
label(newmem2)
label(code)
label(code2)
label(return)
label(return2)
label(pointer)
registersymbol(pointer)
label(pointer1)
registersymbol(pointer1)
registersymbol(SUPERFOUR)
registersymbol(SUPERTHREE)

newmem:
  cmp [edi+20],0
  jne code
  push eax
  lea eax,[edi+04]
  mov [pointer],eax
  pop eax

code:
  movss [edi+04],xmm0
  jmp return

newmem2:
  cmp [eax+0B],0
  jne code2
  push ebx
  lea ebx,[eax]
  mov [pointer1],ebx
  pop ebx

code2:
  movss [eax],xmm0
  mov byte ptr [eax+08],01
  jmp return2

pointer:
  dd 0
pointer1:
  dd 0

SUPERFOUR:
  jmp newmem
return:

SUPERTHREE:
  jmp newmem2
  db 90 90 90
return2:

[DISABLE]
SUPERFOUR:
  db F3 0F 11 47 04
SUPERTHREE:
  db F3 0F 11 00 C6 40 08 01

unregistersymbol(pointer)
unregistersymbol(pointer1)
unregistersymbol(SUPERFOUR)
unregistersymbol(SUPERTHREE)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1434A2

"VT4.exe"+143473: F3 0F 10 43 04           -  movss xmm0,[ebx+04]
"VT4.exe"+143478: F3 0F 10 4C 24 24        -  movss xmm1,[esp+24]
"VT4.exe"+14347E: D9 5C 24 20              -  fstp dword ptr [esp+20]
"VT4.exe"+143482: F3 0F 10 54 24 20        -  movss xmm2,[esp+20]
"VT4.exe"+143488: E9 1E FC FF FF           -  jmp VT4.exe+1430AB
"VT4.exe"+14348D: 0F 2F C8                 -  comiss xmm1,xmm0
"VT4.exe"+143490: 72 10                    -  jb VT4.exe+1434A2
"VT4.exe"+143492: 0F 28 C1                 -  movaps xmm0,xmm1
"VT4.exe"+143495: C7 47 48 00 00 00 00     -  mov [edi+48],00000000
"VT4.exe"+14349C: F3 0F 11 44 24 1C        -  movss [esp+1C],xmm0
// ---------- INJECTING HERE ----------
"VT4.exe"+1434A2: F3 0F 11 47 04           -  movss [edi+04],xmm0
// ---------- DONE INJECTING  ----------
"VT4.exe"+1434A7: 8B 0D 78 68 83 00        -  mov ecx,[VT4.exe+436878]
"VT4.exe"+1434AD: 85 C9                    -  test ecx,ecx
"VT4.exe"+1434AF: 74 2E                    -  je VT4.exe+1434DF
"VT4.exe"+1434B1: D9 44 24 1C              -  fld dword ptr [esp+1C]
"VT4.exe"+1434B5: 8B 57 38                 -  mov edx,[edi+38]
"VT4.exe"+1434B8: 6A 00                    -  push 00
"VT4.exe"+1434BA: 51                       -  push ecx
"VT4.exe"+1434BB: D9 1C 24                 -  fstp dword ptr [esp]
"VT4.exe"+1434BE: 52                       -  push edx
"VT4.exe"+1434BF: E8 BC DB 0A 00           -  call VT4.exe+1F1080
}
{
// ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1F10E9

"VT4.exe"+1F10BA: F2 0F 5C CA              -  subsd xmm1,xmm2
"VT4.exe"+1F10BE: 66 0F 5A C9              -  cvtpd2ps xmm1,xmm1
"VT4.exe"+1F10C2: F3 0F 11 4C 24 0C        -  movss [esp+0C],xmm1
"VT4.exe"+1F10C8: 81 64 24 0C FF FF FF 7F  -  and [esp+0C],7FFFFFFF
"VT4.exe"+1F10D0: F3 0F 10 4C 24 0C        -  movss xmm1,[esp+0C]
"VT4.exe"+1F10D6: 0F 5A C9                 -  cvtps2pd xmm1,xmm1
"VT4.exe"+1F10D9: 66 0F 2F 0D 68 FB 78 00  -  comisd xmm1,[VT4.exe+38FB68]
"VT4.exe"+1F10E1: 5E                       -  pop esi
"VT4.exe"+1F10E2: 76 1E                    -  jna VT4.exe+1F1102
"VT4.exe"+1F10E4: 80 7C 24 0C 00           -  cmp byte ptr [esp+0C],00
// ---------- INJECTING HERE ----------
"VT4.exe"+1F10E9: F3 0F 11 00              -  movss [eax],xmm0
"VT4.exe"+1F10ED: C6 40 08 01              -  mov byte ptr [eax+08],01
// ---------- DONE INJECTING  ----------
"VT4.exe"+1F10F1: C7 40 0C 00 00 00 00     -  mov [eax+0C],00000000
"VT4.exe"+1F10F8: 74 08                    -  je VT4.exe+1F1102
"VT4.exe"+1F10FA: 6A 00                    -  push 00
"VT4.exe"+1F10FC: 52                       -  push edx
"VT4.exe"+1F10FD: E8 6E FC FF FF           -  call VT4.exe+1F0D70
"VT4.exe"+1F1102: C2 0C 00                 -  ret 000C
"VT4.exe"+1F1105: CC                       -  int 3
"VT4.exe"+1F1106: CC                       -  int 3
"VT4.exe"+1F1107: CC                       -  int 3
"VT4.exe"+1F1108: CC                       -  int 3
}

 

 

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

5 часов назад, NickSpirit сказал:

Вообщем вот так лучше - так все работает! Щас буду пытаться не просто читать но и менять значения.

При внимательном рассмотрении скрипта, обнаружил у тебя ещё одну ошибку:

pointer:
  db 0  // нужно dd 0
pointer1:
  db 0  // нужно dd 0

поправил свой скрипт.

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

Вообщем тестил почти сутки - ситуация такая - сделал два скрипта которые задают в 3 адреса нужное значение 1. Вообщем запускал скрипты совместно - вылет игры по разному - то 5 минут..то 25... но в принципе нужный эффект достигнут. 

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

{ Game   : VT4.exe
  Version: 
  Date   : 2016-11-09
  Author : GravaPC

  This script does blah blah blah
}

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat

 
 
aobscanmodule(SUPERTHREE,VT4.exe,F3 0F 11 00 C6 40 08 01) // should be unique
alloc(newmem,$1000)
registersymbol(SUPERTHREE)
label(code)
label(return)

newmem:
  cmp [eax+3C],0
  jne code
  movss [eax],xmm0
  mov [eax],(float)1
  mov [eax+04],(float)1
  mov byte ptr [eax+08],01
  jmp return
code:
  movss [eax],xmm0
  mov byte ptr [eax+08],01
  jmp return

SUPERTHREE:
  jmp newmem
  nop
  nop
  nop
return:


[DISABLE]
//code from here till the end of the code will be used to disable the cheat
SUPERTHREE:
  db F3 0F 11 00 C6 40 08 01

unregistersymbol(SUPERTHREE)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1F10E9

"VT4.exe"+1F10BA: F2 0F 5C CA              -  subsd xmm1,xmm2
"VT4.exe"+1F10BE: 66 0F 5A C9              -  cvtpd2ps xmm1,xmm1
"VT4.exe"+1F10C2: F3 0F 11 4C 24 0C        -  movss [esp+0C],xmm1
"VT4.exe"+1F10C8: 81 64 24 0C FF FF FF 7F  -  and [esp+0C],7FFFFFFF
"VT4.exe"+1F10D0: F3 0F 10 4C 24 0C        -  movss xmm1,[esp+0C]
"VT4.exe"+1F10D6: 0F 5A C9                 -  cvtps2pd xmm1,xmm1
"VT4.exe"+1F10D9: 66 0F 2F 0D 68 FB 78 00  -  comisd xmm1,[VT4.exe+38FB68]
"VT4.exe"+1F10E1: 5E                       -  pop esi
"VT4.exe"+1F10E2: 76 1E                    -  jna VT4.exe+1F1102
"VT4.exe"+1F10E4: 80 7C 24 0C 00           -  cmp byte ptr [esp+0C],00
// ---------- INJECTING HERE ----------
"VT4.exe"+1F10E9: F3 0F 11 00              -  movss [eax],xmm0
"VT4.exe"+1F10ED: C6 40 08 01              -  mov byte ptr [eax+08],01
// ---------- DONE INJECTING  ----------
"VT4.exe"+1F10F1: C7 40 0C 00 00 00 00     -  mov [eax+0C],00000000
"VT4.exe"+1F10F8: 74 08                    -  je VT4.exe+1F1102
"VT4.exe"+1F10FA: 6A 00                    -  push 00
"VT4.exe"+1F10FC: 52                       -  push edx
"VT4.exe"+1F10FD: E8 6E FC FF FF           -  call VT4.exe+1F0D70
"VT4.exe"+1F1102: C2 0C 00                 -  ret 000C
"VT4.exe"+1F1105: CC                       -  int 3 
"VT4.exe"+1F1106: CC                       -  int 3 
"VT4.exe"+1F1107: CC                       -  int 3 
"VT4.exe"+1F1108: CC                       -  int 3 
}

Второй:


{ Game   : VT4.exe
  Version: 
  Date   : 2016-11-11
  Author : GravaPC
  This script does blah blah blah
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
 
 
aobscanmodule(SUPNEW,VT4.exe,F3 0F 11 47 04 8B 0D) // should be unique
alloc(newmem,$1000)
registersymbol(SUPNEW)
label(code)
label(return)
newmem:
  cmp [edi+04+34],0
  jne code
  movss [edi+04],xmm0
  mov [edi+04],(float)1
  jmp return
code:
  movss [edi+04],xmm0
  jmp return
SUPNEW:
  jmp newmem
return:

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
SUPNEW:
  db F3 0F 11 47 04
unregistersymbol(SUPNEW)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1434A2
"VT4.exe"+143473: F3 0F 10 43 04           -  movss xmm0,[ebx+04]
"VT4.exe"+143478: F3 0F 10 4C 24 24        -  movss xmm1,[esp+24]
"VT4.exe"+14347E: D9 5C 24 20              -  fstp dword ptr [esp+20]
"VT4.exe"+143482: F3 0F 10 54 24 20        -  movss xmm2,[esp+20]
"VT4.exe"+143488: E9 1E FC FF FF           -  jmp VT4.exe+1430AB
"VT4.exe"+14348D: 0F 2F C8                 -  comiss xmm1,xmm0
"VT4.exe"+143490: 72 10                    -  jb VT4.exe+1434A2
"VT4.exe"+143492: 0F 28 C1                 -  movaps xmm0,xmm1
"VT4.exe"+143495: C7 47 48 00 00 00 00     -  mov [edi+48],00000000
"VT4.exe"+14349C: F3 0F 11 44 24 1C        -  movss [esp+1C],xmm0
// ---------- INJECTING HERE ----------
"VT4.exe"+1434A2: F3 0F 11 47 04           -  movss [edi+04],xmm0
// ---------- DONE INJECTING  ----------
"VT4.exe"+1434A7: 8B 0D 78 68 83 00        -  mov ecx,[VT4.exe+436878]
"VT4.exe"+1434AD: 85 C9                    -  test ecx,ecx
"VT4.exe"+1434AF: 74 2E                    -  je VT4.exe+1434DF
"VT4.exe"+1434B1: D9 44 24 1C              -  fld dword ptr [esp+1C]
"VT4.exe"+1434B5: 8B 57 38                 -  mov edx,[edi+38]
"VT4.exe"+1434B8: 6A 00                    -  push 00
"VT4.exe"+1434BA: 51                       -  push ecx
"VT4.exe"+1434BB: D9 1C 24                 -  fstp dword ptr [esp]
"VT4.exe"+1434BE: 52                       -  push edx
"VT4.exe"+1434BF: E8 BC DB 0A 00           -  call VT4.exe+1F1080
}

 

 

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

3 часа назад, Dino сказал:

Предположу что там установлена защита целостности памяти. Попробуй пустой хук поставить( без внесения свое кода)

 

Это я так понимаю примерно так?

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

{ Game   : VT4.exe
  Version: 
  Date   : 2016-11-11
  Author : GravaPC

  This script does blah blah blah
}

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat

 
 
aobscanmodule(SUPNEW,VT4.exe,F3 0F 11 47 04 8B 0D) // should be unique
alloc(newmem,$1000)
registersymbol(SUPNEW)
label(code)
label(return)

newmem:

code:
  movss [edi+04],xmm0
  jmp return

SUPNEW:
  jmp code
return:


[DISABLE]
//code from here till the end of the code will be used to disable the cheat
SUPNEW:
  db F3 0F 11 47 04

unregistersymbol(SUPNEW)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1434A2

"VT4.exe"+143473: F3 0F 10 43 04           -  movss xmm0,[ebx+04]
"VT4.exe"+143478: F3 0F 10 4C 24 24        -  movss xmm1,[esp+24]
"VT4.exe"+14347E: D9 5C 24 20              -  fstp dword ptr [esp+20]
"VT4.exe"+143482: F3 0F 10 54 24 20        -  movss xmm2,[esp+20]
"VT4.exe"+143488: E9 1E FC FF FF           -  jmp VT4.exe+1430AB
"VT4.exe"+14348D: 0F 2F C8                 -  comiss xmm1,xmm0
"VT4.exe"+143490: 72 10                    -  jb VT4.exe+1434A2
"VT4.exe"+143492: 0F 28 C1                 -  movaps xmm0,xmm1
"VT4.exe"+143495: C7 47 48 00 00 00 00     -  mov [edi+48],00000000
"VT4.exe"+14349C: F3 0F 11 44 24 1C        -  movss [esp+1C],xmm0
// ---------- INJECTING HERE ----------
"VT4.exe"+1434A2: F3 0F 11 47 04           -  movss [edi+04],xmm0
// ---------- DONE INJECTING  ----------
"VT4.exe"+1434A7: 8B 0D 78 68 83 00        -  mov ecx,[VT4.exe+436878]
"VT4.exe"+1434AD: 85 C9                    -  test ecx,ecx
"VT4.exe"+1434AF: 74 2E                    -  je VT4.exe+1434DF
"VT4.exe"+1434B1: D9 44 24 1C              -  fld dword ptr [esp+1C]
"VT4.exe"+1434B5: 8B 57 38                 -  mov edx,[edi+38]
"VT4.exe"+1434B8: 6A 00                    -  push 00
"VT4.exe"+1434BA: 51                       -  push ecx
"VT4.exe"+1434BB: D9 1C 24                 -  fstp dword ptr [esp]
"VT4.exe"+1434BE: 52                       -  push edx
"VT4.exe"+1434BF: E8 BC DB 0A 00           -  call VT4.exe+1F1080
}

то есть AobScan присутствует но прыжок не на newmem а обратно в code

 

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

С вариантом который я привел выше - получил вылет после 7 минут игры. Ну и как дальше быть?)

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

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

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

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