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

Указатель сканер + Инъекции Копии + АОБ данным


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

Ладно тогда задаю кучу вопросов:

ты написал 

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

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

про этот скрипт:

 

1. Ты добавил адреса Money99 и flag в таблицу? Именно как адреса без указателей.

2. Ты присваивал значение flag = 1?

3. Или он вообще не включается?

4. Или значение не расшифрованное?

5. Уверен ли ты в твоих фильтрах и смещении 3b80?

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

37 минуты назад, Baracuda сказал:

находишь деньги ставишь бряк на доступ вылазить 3 инструкции

 

37 минуты назад, Baracuda сказал:

2- инструкция

mov eax,[rcx]      СКРИПТ КОТОРЫЙ Я ВЫЛОЖИЛ ОН ИЗ ЭТОЙ ИНСТРУКЦИИ
mov [rsp+18],rcx

Исходя из этого, вообще не понимаю при чём здесь смещение 3b80, если в [rsx] уже лежит зашифрованное значение денег и соответственно в eax тоже.

Тогда добавив после 

mov eax,[rsx]

это:

xor eax,ecx
mov [Money99],eax
xor eax,ecx

мы уже получим расшифрованное значение денег в [Money99].

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

короче так

вот скрипт

ВСЕ РАБОТАЕТ GARIK66 БЕЗ ПРОБЛЕМ НО ТОЛЬКО С ЭТОЙ ИНСТРУКЦИЕЙ

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

[ENABLE]

aobscanmodule(money,GTA5.exe,4B 48 83 C1 10 48 89 4C 24)
alloc(newmem,1024,money)
label(returnhere)
label(originalcode)
label(flag)
registersymbol(flag)
label(Money99)
registersymbol(Money99)
registersymbol(money)

newmem:
cmp [rcx+38],10343C10
jne originalcode

cmp [flag],1
jne @f
push rax
mov eax,[rcx]
xor eax,ecx
mov [Money99],eax
pop rax
mov [flag],0
jmp originalcode

@@:
cmp [flag],2
jne originalcode
push rax
mov eax,[Money99]
xor eax,ecx
mov [rcx],eax
pop rax
mov [flag],0

originalcode:
mov eax,[rcx]
xor ecx,ecx
mov [rsp+08],eax
jmp returnhere

Money99:          // Добавь в таблицу адрес с адресом "Money99" и названием "Денюжки"
dd 0

flag:             // Добавь в таблицу адрес с адресом "flag" и названием "1 - сколько денег в игре, 2 - изменить значение денег"
dd 0

money+0A:
jmp newmem
nop
nop
nop
returnhere:
registersymbol(money)
registersymbol(Money99)

[DISABLE]
money+0A:
db 8B 01 33 C9 89 44 24 08

unregistersymbol(flag)
unregistersymbol(money)
unregistersymbol(Money99)
dealloc(newmem)

//Alt: db 8B 01 33 C9 89 44 24 08


{
// ORIGINAL CODE - INJECTION POINT: "GTA5.exe"+C79325

"GTA5.exe"+C79307: 8A 44 04 10     -  mov al,[rsp+rax+10]
"GTA5.exe"+C7930B: 30 44 0C 07     -  xor [rsp+rcx+07],al
"GTA5.exe"+C7930F: 48 FF CA        -  dec rdx
"GTA5.exe"+C79312: 75 EA           -  jne GTA5.exe+C792FE
"GTA5.exe"+C79314: 0F B7 44 24 08  -  movzx eax,word ptr [rsp+08]
"GTA5.exe"+C79319: C3              -  ret
"GTA5.exe"+C7931A: 90              -  nop
"GTA5.exe"+C7931B: 4B 48           -  dec r8
"GTA5.exe"+C7931D: 83 C1 10        -  add ecx,10
"GTA5.exe"+C79320: 48 89 4C 24 10  -  mov [rsp+10],rcx
// ---------- INJECTING HERE ----------
"GTA5.exe"+C79325: 8B 01           -  mov eax,[rcx]
"GTA5.exe"+C79327: 33 C9           -  xor ecx,ecx
"GTA5.exe"+C79329: 89 44 24 08     -  mov [rsp+08],eax
// ---------- DONE INJECTING  ----------
"GTA5.exe"+C7932D: 8D 51 04        -  lea edx,[rcx+04]
"GTA5.exe"+C79330: 48 8B C1        -  mov rax,rcx
"GTA5.exe"+C79333: 48 FF C1        -  inc rcx
"GTA5.exe"+C79336: 83 E0 07        -  and eax,07
"GTA5.exe"+C79339: 8A 44 04 10     -  mov al,[rsp+rax+10]
"GTA5.exe"+C7933D: 30 44 0C 07     -  xor [rsp+rcx+07],al
"GTA5.exe"+C79341: 48 FF CA        -  dec rdx
"GTA5.exe"+C79344: 75 EA           -  jne GTA5.exe+C79330
"GTA5.exe"+C79346: 8B 44 24 08     -  mov eax,[rsp+08]
"GTA5.exe"+C7934A: C3              -  ret
}

 

 

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

всё работает Garik66 БЕЗ ПРОБЛЕМ

БЛАГОДАРЮ ТЕБЯ ОООООООООООООООООО ВЕЛИКИЙ Garik66

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

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

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

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

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

[ENABLE]

aobscanmodule(objects,Disrupt_b64.dll,8B 42 0C 48 8B 5C 24 38 48 8B 74 24 40 48)
alloc(newmem,2048,objects)
label(returnhere)
label(originalcode)
label(fame99)
registersymbol(fame99)
label(fame100)
registersymbol(fame100)
label(fame200)
registersymbol(fame200)
label(fame300)
registersymboll(fame300)
label(fame400)
registersymbol(fame400)

newmem:
cmp [rdx+8],FFD91B7B //ВОТ ID УКАЗАТЕЛЯ
jne @F
mov [fame99],rdx

@@:
cmp [rdx+8],B940FFDB  //ВОТ ID УКАЗАТЕЛЯ
jne @F
mov [fame100],rdx

@@:
cmp [rdx+8],F3AA69F8  //ВОТ ID УКАЗАТЕЛЯ
jne @F
mov [fame200],rdx

@@:
cmp [rdx+8],2822D5F9  //ВОТ ID УКАЗАТЕЛЯ
jne @F
mov [fame300],rdx

@@:
cmp [rdx+8],431BA89D  //ВОТ ID УКАЗАТЕЛЯ
jne originalcode
mov [fame400],rdx

originalcode:
mov eax,[rdx+0C]
mov rbx,[rsp+38]
jmp returnhere

fame99:
dd 0

fame100:
dd 0

fame200:
dd 0

fame300:
dd 0

fame400:
dd 0

objects:
jmp newmem
nop
nop
nop
returnhere:
registersymbol(objects)

[DISABLE]
objects:
db 8B 42 0C 48 8B 5C 24 38

unregistersymbol(objects)
unregistersymbol(fame99)
unregistersymbol(fame100)
unregistersymbol(fame200)
unregistersymbol(fame300)
unregistersymbol(fame400)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Disrupt_b64.dll"+1208C50

"Disrupt_b64.dll"+1208C43: 48 83 C4 40              -  add rsp,40
"Disrupt_b64.dll"+1208C47: 5B                       -  pop rbx
"Disrupt_b64.dll"+1208C48: C3                       -  ret
"Disrupt_b64.dll"+1208C49: CC                       -  int 3
"Disrupt_b64.dll"+1208C4A: CC                       -  int 3
"Disrupt_b64.dll"+1208C4B: CC                       -  int 3
"Disrupt_b64.dll"+1208C4C: CC                       -  int 3
"Disrupt_b64.dll"+1208C4D: CC                       -  int 3
"Disrupt_b64.dll"+1208C4E: CC                       -  int 3
"Disrupt_b64.dll"+1208C4F: CC                       -  int 3
// ---------- INJECTING HERE ----------
"Disrupt_b64.dll"+1208C50: 8B 81 70 01 00 00        -  mov eax,[rcx+00000170]
// ---------- DONE INJECTING  ----------
"Disrupt_b64.dll"+1208C56: C3                       -  ret
"Disrupt_b64.dll"+1208C57: CC                       -  int 3
"Disrupt_b64.dll"+1208C58: CC                       -  int 3
"Disrupt_b64.dll"+1208C59: CC                       -  int 3
"Disrupt_b64.dll"+1208C5A: CC                       -  int 3
"Disrupt_b64.dll"+1208C5B: CC                       -  int 3
"Disrupt_b64.dll"+1208C5C: CC                       -  int 3
"Disrupt_b64.dll"+1208C5D: CC                       -  int 3
"Disrupt_b64.dll"+1208C5E: CC                       -  int 3
"Disrupt_b64.dll"+1208C5F: CC                       -  int 3
}

 

 

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

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

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

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

Визуально скрипт верный.

Так что - либо фильтры (ID) не постоянные (проверь их), либо ты ошибаешься при проверке - работает ли скрипт.

Вот, как ты забиваешь новые адреса в таблицу, покажи.

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

Привет Garik66, ID верные абсолютно, я их проверял не один раз, они рабочие.Как понять забиваешь адрес в таблицу, скрипт сверху я выложил там всё написано, скрипт полностью мой, единственное только вот @F и @@: ты мене показывал.

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

Это как либо ты ошибаешься при проверке - работает ли скрипт.

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

Вот пример скрипт с одним указателем, прекрасно работает.

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


[ENABLE]

aobscanmodule(objects,Disrupt_b64.dll,8B 42 0C 48 8B 5C 24 38 48 8B 74 24 40 48)
alloc(newmem,2048,objects)
label(returnhere)
label(originalcode)
label(fame99)
registersymbol(fame99)

newmem:
cmp [rdx+8],431BA89D  //ВОТ ID УКАЗАТЕЛЯ
jne originalcode
mov [fame99],rdx  УКАЗАТЕЛЬ РАБОТАЕТ ОТЛИЧНО ///НО ЕСЛИ СУДА ЕЩЁ В БИТЬ 4 УКАЗАТЕЛЯ ТО ОНИ ПЕРЕСТАЮТ РАБОТАТЬ 

originalcode:
mov eax,[rdx+0C]
mov rbx,[rsp+38]
jmp returnhere

fame99:
dd 0

objects:
jmp newmem
nop
nop
nop
returnhere:
registersymbol(objects)

[DISABLE]
objects:
db 8B 42 0C 48 8B 5C 24 38

unregistersymbol(objects)
unregistersymbol(fame99)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Disrupt_b64.dll"+1208C50

"Disrupt_b64.dll"+1208C43: 48 83 C4 40              -  add rsp,40
"Disrupt_b64.dll"+1208C47: 5B                       -  pop rbx
"Disrupt_b64.dll"+1208C48: C3                       -  ret
"Disrupt_b64.dll"+1208C49: CC                       -  int 3
"Disrupt_b64.dll"+1208C4A: CC                       -  int 3
"Disrupt_b64.dll"+1208C4B: CC                       -  int 3
"Disrupt_b64.dll"+1208C4C: CC                       -  int 3
"Disrupt_b64.dll"+1208C4D: CC                       -  int 3
"Disrupt_b64.dll"+1208C4E: CC                       -  int 3
"Disrupt_b64.dll"+1208C4F: CC                       -  int 3
// ---------- INJECTING HERE ----------
"Disrupt_b64.dll"+1208C50: 8B 81 70 01 00 00        -  mov eax,[rcx+00000170]
// ---------- DONE INJECTING  ----------
"Disrupt_b64.dll"+1208C56: C3                       -  ret
"Disrupt_b64.dll"+1208C57: CC                       -  int 3
"Disrupt_b64.dll"+1208C58: CC                       -  int 3
"Disrupt_b64.dll"+1208C59: CC                       -  int 3
"Disrupt_b64.dll"+1208C5A: CC                       -  int 3
"Disrupt_b64.dll"+1208C5B: CC                       -  int 3
"Disrupt_b64.dll"+1208C5C: CC                       -  int 3
"Disrupt_b64.dll"+1208C5D: CC                       -  int 3
"Disrupt_b64.dll"+1208C5E: CC                       -  int 3
"Disrupt_b64.dll"+1208C5F: CC                       -  int 3
}

 

 

ЗАПУСКАЕШЬ СКРИП, И ДОБАВЛЯЕШЬ АДРЕС Fame99, и вбиваешь смещения С.

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

4 часа назад, Baracuda сказал:

сам скрипт работает, но указатели не вы водятся.

Визуально ошибок в твоём скрипте не вижу.

Давай попробуем переписать его так:

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

[ENABLE]
aobscanmodule(objects,Disrupt_b64.dll,8B 42 0C 48 8B 5C 24 38 48 8B 74 24 40 48)
alloc(newmem,2048,objects)
label(returnhere)
label(originalcode)
label(fame99)
registersymbol(fame99)
label(fame100)
registersymbol(fame100)
label(fame200)
registersymbol(fame200)
label(fame300)
registersymbol(fame300)
label(fame400)
registersymbol(fame400)
registersymbol(objects)

newmem:
cmp [rdx+8],FFD91B7B
jne @f
push rdx
pop [fame99]
jmp originalcode

@@:
cmp [rdx+8],B940FFDB
jne @f
push rdx
pop [fame100]
jmp originalcode

@@:
cmp [rdx+8],F3AA69F8
jne @f
push rdx
pop [fame200]
jmp originalcode

@@:
cmp [rdx+8],2822D5F9
jne @f
push rdx
pop [fame300]
jmp originalcode

@@:
cmp [rdx+8],431BA89D
jne originalcode
push rdx
pop [fame400]

originalcode:
mov eax,[rdx+0C]
mov rbx,[rsp+38]
jmp returnhere

fame99:
dd 0
fame100:
dd 0
fame200:
dd 0
fame300:
dd 0
fame400:
dd 0

objects:
jmp newmem
db 90 90 90
returnhere:

[DISABLE]
objects:
db 8B 42 0C 48 8B 5C 24 38

unregistersymbol(objects)
unregistersymbol(fame99)
unregistersymbol(fame100)
unregistersymbol(fame200)
unregistersymbol(fame300)
unregistersymbol(fame400)
dealloc(newmem)

 

Проверь.

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

4 часа назад, Baracuda сказал:

Не не помогает, не работают указатели.

Странно - должен работать. Кинь в ЛС ссылку на свою версию игры, проверю. Так не понятно - в чём может быть дело.

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

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

Не не помогает, не работают указатели.

Пришлось скачать, хоть ты и не написал какая игра.

У тебя ошибка - здесь:

fame99:
dd 0

Адреса в игре по 8 байт.

Так что вот скрипт:

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

{ Game   : Watch_Dogs.exe
  Version: 
  Date   : 2016-05-04
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(Item,Disrupt_b64.dll,8B 42 0C 48 8B 5C 24 38 48 8B 74 24 40 48) // should be unique
alloc(newmem,$1000,"Disrupt_b64.dll"+137D12C)
label(code)
label(return)
label(fame99)
registersymbol(fame99)
label(fame100)
registersymbol(fame100)
label(fame200)
registersymbol(fame200)
label(fame300)
registersymbol(fame300)
label(fame400)
registersymbol(fame400)
registersymbol(Item)

newmem:
  cmp ebx,FFD91B7B
  jne @f
  push rdx
  pop [fame99]

@@:
  cmp ebx,B940FFDB
  jne @f
  push rdx
  pop [fame100]

@@:
  cmp ebx,F3AA69F8
  jne @f
  push rdx
  pop [fame200]

@@:
  cmp ebx,2822D5F9
  jne @f
  push rdx
  pop [fame300]

@@:
  cmp ebx,431BA89D
  jne code
  push rdx
  pop [fame400]

code:
  mov eax,[rdx+0C]
  mov rbx,[rsp+38]
  jmp return

fame99:
dq (double)0
fame100:
dq (double)0
fame200:
dq (double)0
fame300:
dq (double)0
fame400:
dq (double)0

Item:
  jmp newmem
  db 90 90 90
return:

[DISABLE]
Item:
  db 8B 42 0C 48 8B 5C 24 38

unregistersymbol(fame99)
unregistersymbol(fame100)
unregistersymbol(fame200)
unregistersymbol(fame300)
unregistersymbol(fame400)
unregistersymbol(Item)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "Disrupt_b64.dll"+137D12C

"Disrupt_b64.dll"+137D110: 48 85 D2                 -  test rdx,rdx
"Disrupt_b64.dll"+137D113: 75 F3                    -  jne Disrupt_b64.dll+137D108
"Disrupt_b64.dll"+137D115: 33 C0                    -  xor eax,eax
"Disrupt_b64.dll"+137D117: 48 8B 5C 24 38           -  mov rbx,[rsp+38]
"Disrupt_b64.dll"+137D11C: 48 8B 74 24 40           -  mov rsi,[rsp+40]
"Disrupt_b64.dll"+137D121: 48 83 C4 20              -  add rsp,20
"Disrupt_b64.dll"+137D125: 5F                       -  pop rdi
"Disrupt_b64.dll"+137D126: C3                       -  ret 
"Disrupt_b64.dll"+137D127: 48 85 D2                 -  test rdx,rdx
"Disrupt_b64.dll"+137D12A: 74 E9                    -  je Disrupt_b64.dll+137D115
// ---------- INJECTING HERE ----------
"Disrupt_b64.dll"+137D12C: 8B 42 0C                 -  mov eax,[rdx+0C]
"Disrupt_b64.dll"+137D12F: 48 8B 5C 24 38           -  mov rbx,[rsp+38]
// ---------- DONE INJECTING  ----------
"Disrupt_b64.dll"+137D134: 48 8B 74 24 40           -  mov rsi,[rsp+40]
"Disrupt_b64.dll"+137D139: 48 83 C4 20              -  add rsp,20
"Disrupt_b64.dll"+137D13D: 5F                       -  pop rdi
"Disrupt_b64.dll"+137D13E: C3                       -  ret 
"Disrupt_b64.dll"+137D13F: CC                       -  int 3 
"Disrupt_b64.dll"+137D140: CC                       -  int 3 
"Disrupt_b64.dll"+137D141: CC                       -  int 3 
"Disrupt_b64.dll"+137D142: CC                       -  int 3 
"Disrupt_b64.dll"+137D143: CC                       -  int 3 
"Disrupt_b64.dll"+137D144: CC                       -  int 3 
}

 

 

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

Либо можно ещё так сделать - вариант 2:

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

{ Game   : Watch_Dogs.exe
  Version: 
  Date   : 2016-05-04
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(Item,Disrupt_b64.dll,8B 42 0C 48 8B 5C 24 38 48 8B 74 24 40 48) // should be unique
alloc(newmem,$1000,"Disrupt_b64.dll"+137D12C)
label(code)
label(return)
label(fame99)
registersymbol(fame99)
label(fame100)
registersymbol(fame100)
label(fame200)
registersymbol(fame200)
label(fame300)
registersymbol(fame300)
label(fame400)
registersymbol(fame400)
registersymbol(Item)

newmem:
  cmp ebx,FFD91B7B
  jne @f
  push edx
  pop [fame99]

@@:
  cmp ebx,B940FFDB
  jne @f
  push edx
  pop [fame100]

@@:
  cmp ebx,F3AA69F8
  jne @f
  push edx
  pop [fame200]

@@:
  cmp ebx,2822D5F9
  jne @f
  push edx
  pop [fame300]

@@:
  cmp ebx,431BA89D
  jne code
  push edx
  pop [fame400]

code:
  mov eax,[rdx+0C]
  mov rbx,[rsp+38]
  jmp return

fame99:
dd 0
fame100:
dd 0
fame200:
dd 0
fame300:
dd 0
fame400:
dd 0

Item:
  jmp newmem
  db 90 90 90
return:

[DISABLE]
Item:
  db 8B 42 0C 48 8B 5C 24 38

unregistersymbol(fame99)
unregistersymbol(fame100)
unregistersymbol(fame200)
unregistersymbol(fame300)
unregistersymbol(fame400)
unregistersymbol(Item)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "Disrupt_b64.dll"+137D12C

"Disrupt_b64.dll"+137D110: 48 85 D2                 -  test rdx,rdx
"Disrupt_b64.dll"+137D113: 75 F3                    -  jne Disrupt_b64.dll+137D108
"Disrupt_b64.dll"+137D115: 33 C0                    -  xor eax,eax
"Disrupt_b64.dll"+137D117: 48 8B 5C 24 38           -  mov rbx,[rsp+38]
"Disrupt_b64.dll"+137D11C: 48 8B 74 24 40           -  mov rsi,[rsp+40]
"Disrupt_b64.dll"+137D121: 48 83 C4 20              -  add rsp,20
"Disrupt_b64.dll"+137D125: 5F                       -  pop rdi
"Disrupt_b64.dll"+137D126: C3                       -  ret 
"Disrupt_b64.dll"+137D127: 48 85 D2                 -  test rdx,rdx
"Disrupt_b64.dll"+137D12A: 74 E9                    -  je Disrupt_b64.dll+137D115
// ---------- INJECTING HERE ----------
"Disrupt_b64.dll"+137D12C: 8B 42 0C                 -  mov eax,[rdx+0C]
"Disrupt_b64.dll"+137D12F: 48 8B 5C 24 38           -  mov rbx,[rsp+38]
// ---------- DONE INJECTING  ----------
"Disrupt_b64.dll"+137D134: 48 8B 74 24 40           -  mov rsi,[rsp+40]
"Disrupt_b64.dll"+137D139: 48 83 C4 20              -  add rsp,20
"Disrupt_b64.dll"+137D13D: 5F                       -  pop rdi
"Disrupt_b64.dll"+137D13E: C3                       -  ret 
"Disrupt_b64.dll"+137D13F: CC                       -  int 3 
"Disrupt_b64.dll"+137D140: CC                       -  int 3 
"Disrupt_b64.dll"+137D141: CC                       -  int 3 
"Disrupt_b64.dll"+137D142: CC                       -  int 3 
"Disrupt_b64.dll"+137D143: CC                       -  int 3 
"Disrupt_b64.dll"+137D144: CC                       -  int 3 
}

 

Вместо rdx использовать edx и тогда по 4 байта прописывать:

fame99:
dd 0

 

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

я проверил не тот, не другой скрипт, не работает. Да ещё там тип не Double а 4 Байта

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

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

Да ещё там тип не Double а 4 Байта

Да, когда писал это:

 

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

Адреса в игре по 8 байт.

я хотел другое написать не 8 байт, а использование записи

mov [fame99],rdx

мы записываем в [fame99] 8 байт, а в rdx лежат адреса в виде (0000000000 + 4 байта адрес), соответственно, когда ты записываешь только один адрес - всё ровно, но когда ты записываешь следующий [fame100] поверх адреса в [fame99] записываются 0000000000.

Записал для тебя видео, на моей версии игры - первый скрипт работает чётко, второй не сработал как нужно (хотя в самом начале работал, его нужно смотреть и отлаживать, но в лом). 

Видео:

 

 

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

ЗЫ: Сейчас перекачаю и установлю твою версию игры (Пропатчено до версии - 1.06.329) и проверю, скорее всего в ebx не лежат ID на этой версии и нужно использовать именно твои фильтры, т.е. смещение +08 структуры. 

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

Работают скрипты вариант 1 и 4.  1 - выложил ранее.

Вариант 4:

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

{ Game   : Watch_Dogs.exe
  Version: 
  Date   : 2016-05-04
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(Item,Disrupt_b64.dll,8B 42 0C 48 8B 5C 24 38 48 8B 74 24 40 48) // should be unique
alloc(newmem,$1000,"Disrupt_b64.dll"+137D12C)
label(code)
label(return)
label(fame)
registersymbol(fame)
registersymbol(Item)

newmem:
  cmp ebx,FFD91B7B
  jne @f
  mov [fame],edx

@@:
  cmp ebx,B940FFDB
  jne @f
  mov [fame+8],edx

@@:
  cmp ebx,F3AA69F8
  jne @f
  mov [fame+10],edx

@@:
  cmp ebx,2822D5F9
  jne @f
  mov [fame+18],edx

@@:
  cmp ebx,431BA89D
  jne code
  mov [fame+20],edx

code:
  mov eax,[rdx+0C]
  mov rbx,[rsp+38]
  jmp return

fame:
db 0

Item:
  jmp newmem
  db 90 90 90
return:

[DISABLE]
Item:
  db 8B 42 0C 48 8B 5C 24 38

unregistersymbol(fame)
unregistersymbol(Item)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "Disrupt_b64.dll"+137D12C

"Disrupt_b64.dll"+137D110: 48 85 D2                 -  test rdx,rdx
"Disrupt_b64.dll"+137D113: 75 F3                    -  jne Disrupt_b64.dll+137D108
"Disrupt_b64.dll"+137D115: 33 C0                    -  xor eax,eax
"Disrupt_b64.dll"+137D117: 48 8B 5C 24 38           -  mov rbx,[rsp+38]
"Disrupt_b64.dll"+137D11C: 48 8B 74 24 40           -  mov rsi,[rsp+40]
"Disrupt_b64.dll"+137D121: 48 83 C4 20              -  add rsp,20
"Disrupt_b64.dll"+137D125: 5F                       -  pop rdi
"Disrupt_b64.dll"+137D126: C3                       -  ret 
"Disrupt_b64.dll"+137D127: 48 85 D2                 -  test rdx,rdx
"Disrupt_b64.dll"+137D12A: 74 E9                    -  je Disrupt_b64.dll+137D115
// ---------- INJECTING HERE ----------
"Disrupt_b64.dll"+137D12C: 8B 42 0C                 -  mov eax,[rdx+0C]
"Disrupt_b64.dll"+137D12F: 48 8B 5C 24 38           -  mov rbx,[rsp+38]
// ---------- DONE INJECTING  ----------
"Disrupt_b64.dll"+137D134: 48 8B 74 24 40           -  mov rsi,[rsp+40]
"Disrupt_b64.dll"+137D139: 48 83 C4 20              -  add rsp,20
"Disrupt_b64.dll"+137D13D: 5F                       -  pop rdi
"Disrupt_b64.dll"+137D13E: C3                       -  ret 
"Disrupt_b64.dll"+137D13F: CC                       -  int 3 
"Disrupt_b64.dll"+137D140: CC                       -  int 3 
"Disrupt_b64.dll"+137D141: CC                       -  int 3 
"Disrupt_b64.dll"+137D142: CC                       -  int 3 
"Disrupt_b64.dll"+137D143: CC                       -  int 3 
"Disrupt_b64.dll"+137D144: CC                       -  int 3 
}

 

На видео всё объяснено (сейчас загрузиться и обработается и вложу сюдым):

 

 

 

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

Заработал Первый, скрипт Item v 1 и работает Item v 4. Но это го достаточно что бы взять пример, то как правильно надо делать указатели в скриптах AA Cheat Engine. Все остальные почему то у меня не работают, и у тебя я так понял Garik66 тоже но это и не важно.

А видео ты Garik66 оставь хороший пример, и другим пользователям.

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

Я ДУМАЮ ТЕМУ МОЖНО ЗАКРЫВАТЬ, ЕСЛИ КОНЕЧНО ДОБАВИТЬ БОЛЬШЕ НЕ КОМУ, НЕ ЧЕГО.

 

Как всегда огромное тебе спасибо Garik66 что я ещё могу сказать душевного спасибо

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

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

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

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