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

Как правильно написать скрипт


Druid

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

Здравствуйте!

Прошу помощи, при написании скрипта!

Скрипт не корректен, т.к крашит игру.  Я понимаю за счет условного перехода:

 je RAGE2.exe+740DE3.

Помогите как правильно написать скрипт при таких ситуациях.

 

Заранее Всем спасибо!!!

001.jpg%22%20alt=%22001

 

Спойлер

[ENABLE]

aobscanmodule(Look_items,RAGE2.exe,8B 40 20 C3 33 C0 C3 CC CC CC CC CC CC CC CC CC CC 4C)
alloc(newmem,$1000,"RAGE2.exe"+740DDF)

label(code)
label(return)
label(id_items)
registersymbol(Look_items)
registersymbol(code)
registersymbol(id_items)

id_items:
dd 0

newmem:
  cmp [rax+1C],86A6BE6A
  jne code
  mov [id_items],rax
code:
  readmem(Look_items,6)
  jmp return

Look_items:
  jmp newmem
  nop
return:


[DISABLE]

Look_items:
  readmem(code,6)

unregistersymbol(Look_items)
unregistersymbol(code)
unregistersymbol(id_items)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "RAGE2.exe"+740DDF

"RAGE2.exe"+740DC4: 48 8B 09              -  mov rcx,[rcx]
"RAGE2.exe"+740DC7: 80 79 19 00           -  cmp byte ptr [rcx+19],00
"RAGE2.exe"+740DCB: 74 E9                 -  je RAGE2.exe+740DB6
"RAGE2.exe"+740DCD: 49 3B C0              -  cmp rax,r8
"RAGE2.exe"+740DD0: 74 05                 -  je RAGE2.exe+740DD7
"RAGE2.exe"+740DD2: 3B 50 1C              -  cmp edx,[rax+1C]
"RAGE2.exe"+740DD5: 73 03                 -  jae RAGE2.exe+740DDA
"RAGE2.exe"+740DD7: 49 8B C0              -  mov rax,r8
"RAGE2.exe"+740DDA: 49 3B C0              -  cmp rax,r8
"RAGE2.exe"+740DDD: 74 04                 -  je RAGE2.exe+740DE3
// ---------- INJECTING HERE ----------
"RAGE2.exe"+740DDF: 8B 40 20              -  mov eax,[rax+20]
"RAGE2.exe"+740DE2: C3                    -  ret 
"RAGE2.exe"+740DE3: 33 C0                 -  xor eax,eax
// ---------- DONE INJECTING  ----------
"RAGE2.exe"+740DE5: C3                    -  ret 
"RAGE2.exe"+740DE6: CC                    -  int 3 
"RAGE2.exe"+740DE7: CC                    -  int 3 
"RAGE2.exe"+740DE8: CC                    -  int 3 
"RAGE2.exe"+740DE9: CC                    -  int 3 
"RAGE2.exe"+740DEA: CC                    -  int 3 
"RAGE2.exe"+740DEB: CC                    -  int 3 
"RAGE2.exe"+740DEC: CC                    -  int 3 
"RAGE2.exe"+740DED: CC                    -  int 3 
"RAGE2.exe"+740DEE: CC                    -  int 3 
}

 

 

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

Вот на этот параметр вешай.  Это тот, что выше идет...

- mov rax,rcx
- mov rcx,[rcx]

Как то так.... Сравнение там только накати с r8  с прыгом на возврат.(Хотя это сам уж посмотришь) игра есть, там сам уж посмотришь как лучше.

- mov rax,rcx
- mov [id_items],rax
- mov rcx,[rcx]

Ps: 

Вот так в общем такие дела делаются... 

Спойлер

[ENABLE]

aobscanmodule(__THooke____,RAGE2.exe,4C 8B 81 B8 01 00 00 49 8B * 49 8B 48 08 * * * * * * * * * * * 48 8B 49 10 * * 48 8B C1 48 8B 09)
alloc(Hack_mem,$1000,__THooke____)
label(__loadaddrHook__)
label(__THooke____Back)
label(___Ex.Hook)
Hack_mem:
  mov rax,rcx
  cmp rax,r8
  je ___Ex.Hook
  mov [__loadaddrHook__],rax
  ___Ex.Hook:
  mov rcx,[rcx]
  jmp __THooke____Back
  __loadaddrHook__:
  dd 0
__THooke____+1F:
  jmp Hack_mem
  db 90
__THooke____Back:
registersymbol(__THooke____)
registersymbol(__loadaddrHook__)
[DISABLE]
__THooke____+1F:
  db 48 8B C1 48 8B 09
unregistersymbol(__THooke____)
unregistersymbol(__loadaddrHook__)
dealloc(Hack_mem)

{
// ORIGINAL CODE - INJECTION POINT: "RAGE2.exe"+73A2CF

"RAGE2.exe"+73A2AF: CC                          -  int 3 
"RAGE2.exe"+73A2B0: 4C 8B 81 B8 01 00 00        -  mov r8,[rcx+000001B8]
"RAGE2.exe"+73A2B7: 49 8B C0                    -  mov rax,r8
"RAGE2.exe"+73A2BA: 49 8B 48 08                 -  mov rcx,[r8+08]
"RAGE2.exe"+73A2BE: 80 79 19 00                 -  cmp byte ptr [rcx+19],00
"RAGE2.exe"+73A2C2: 75 21                       -  jne RAGE2.exe+73A2E5
"RAGE2.exe"+73A2C4: 39 51 1C                    -  cmp [rcx+1C],edx
"RAGE2.exe"+73A2C7: 73 06                       -  jae RAGE2.exe+73A2CF
"RAGE2.exe"+73A2C9: 48 8B 49 10                 -  mov rcx,[rcx+10]
"RAGE2.exe"+73A2CD: EB 06                       -  jmp RAGE2.exe+73A2D5
// ---------- INJECTING HERE ----------
"RAGE2.exe"+73A2CF: 48 8B C1                    -  mov rax,rcx
"RAGE2.exe"+73A2D2: 48 8B 09                    -  mov rcx,[rcx]
// ---------- DONE INJECTING  ----------
"RAGE2.exe"+73A2D5: 80 79 19 00                 -  cmp byte ptr [rcx+19],00
"RAGE2.exe"+73A2D9: 74 E9                       -  je RAGE2.exe+73A2C4
"RAGE2.exe"+73A2DB: 49 3B C0                    -  cmp rax,r8
"RAGE2.exe"+73A2DE: 74 05                       -  je RAGE2.exe+73A2E5
"RAGE2.exe"+73A2E0: 3B 50 1C                    -  cmp edx,[rax+1C]
"RAGE2.exe"+73A2E3: 73 03                       -  jae RAGE2.exe+73A2E8
"RAGE2.exe"+73A2E5: 49 8B C0                    -  mov rax,r8
"RAGE2.exe"+73A2E8: 49 3B C0                    -  cmp rax,r8
"RAGE2.exe"+73A2EB: 74 04                       -  je RAGE2.exe+73A2F1
"RAGE2.exe"+73A2ED: 8B 40 20                    -  mov eax,[rax+20]
}

 

 

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

Спойлер

[ENABLE]
aobscanmodule(__THook____,RAGE2.exe,74 04 8B 40 20 C3 33 C0 C3 CC CC CC CC CC CC CC CC CC CC CC CC 48 89)
  alloc(__Hack_mem,$1000,__THook____)
  label(__THook____Back)
  label(__loadaddrHooke___)
  __Hack_mem:
  cmp rax,r8
  je __THook____+06
  mov [__loadaddrHooke___],rax
  mov eax,[rax+20]
  jmp __THook____Back
  __loadaddrHooke___:
  dd 0
  __THook____:
  jmp __Hack_mem
  __THook____Back:
  registersymbol(__THook____)
  registersymbol(__loadaddrHooke___)
[DISABLE]
  __THook____:
  db 74 04 8B 40 20
  unregistersymbol(__THook____)
  unregistersymbol(__loadaddrHooke___)
dealloc(__Hack_mem)

{
// ORIGINAL CODE - INJECTION POINT: "RAGE2.exe"+73A2EB

"RAGE2.exe"+73A2CF: E9 2C 5D 8A FF              -  jmp 7FF6141C0000
"RAGE2.exe"+73A2D4: 90                          -  nop 
"RAGE2.exe"+73A2D5: 80 79 19 00                 -  cmp byte ptr [rcx+19],00
"RAGE2.exe"+73A2D9: 74 E9                       -  je RAGE2.exe+73A2C4
"RAGE2.exe"+73A2DB: 49 3B C0                    -  cmp rax,r8
"RAGE2.exe"+73A2DE: 74 05                       -  je RAGE2.exe+73A2E5
"RAGE2.exe"+73A2E0: 3B 50 1C                    -  cmp edx,[rax+1C]
"RAGE2.exe"+73A2E3: 73 03                       -  jae RAGE2.exe+73A2E8
"RAGE2.exe"+73A2E5: 49 8B C0                    -  mov rax,r8
"RAGE2.exe"+73A2E8: 49 3B C0                    -  cmp rax,r8
// ---------- INJECTING HERE ----------
"RAGE2.exe"+73A2EB: 74 04                       -  je RAGE2.exe+73A2F1
"RAGE2.exe"+73A2ED: 8B 40 20                    -  mov eax,[rax+20]
// ---------- DONE INJECTING  ----------
"RAGE2.exe"+73A2F0: C3                          -  ret 
"RAGE2.exe"+73A2F1: 33 C0                       -  xor eax,eax
"RAGE2.exe"+73A2F3: C3                          -  ret 
"RAGE2.exe"+73A2F4: CC                          -  int 3 
"RAGE2.exe"+73A2F5: CC                          -  int 3 
"RAGE2.exe"+73A2F6: CC                          -  int 3 
"RAGE2.exe"+73A2F7: CC                          -  int 3 
"RAGE2.exe"+73A2F8: CC                          -  int 3 
"RAGE2.exe"+73A2F9: CC                          -  int 3 
"RAGE2.exe"+73A2FA: CC                          -  int 3 
}

 

 

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

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

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

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