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

7 days to die GodMod


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

По запросу 7 days to die написал скрипт God Mod.

Использовал один из способов написания фильтра.

Видео получилось длинным - 55 минут. (Я чуть-чуть притормозил :angry: - извините:wacko:.)

Сам скрипт:

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

{ Game   : 7DaysToDie.exe
  Version: лицензия Steam Alpha 14.7 (64bit)
  Date   : 2016-07-10
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscan(Pointer,48 8B 46 18 F3 0F 10 45 CC) // should be unique
aobscan(GodMod,F3 0F 11 6E 24 48 8B CE)
alloc(newmem,$1000,2A0C488C)
label(newmem1)
label(code)
label(code1)
label(return)
label(return1)
label(Health)
registersymbol(Health)
label(Stamina)
registersymbol(Stamina)
registersymbol(Pointer)
registersymbol(GodMod)

newmem:
  mov ecx,[rsi+10]
  mov [Health],ecx

  mov ecx,[rsi+18]
  mov [Stamina],ecx

code:
  mov rax,[rsi+18]
  movss xmm0,[rbp-34]
  jmp return

newmem1:
  mov rcx,[Health]
  cmp rcx,rsi
  je @f
  mov rcx,[Stamina]
  cmp rcx,rsi
  je @f
  jmp code1

@@:
  fld [rsi+20]
  fstp [rsi+24]
  jmp return1

code1:
  movss [rsi+24],xmm5
  jmp return1

Health:
dq (double)0
Stamina:
dq (double)0

Pointer:
  jmp newmem
  db 90 90 90 90
return:

GodMod:
  jmp newmem1
return1:

[DISABLE]
Pointer:
  db 48 8B 46 18 F3 0F 10 45 CC
GodMod:
  db F3 0F 11 6E 24

unregistersymbol(Health)
unregistersymbol(Stamina)
unregistersymbol(Pointer)
unregistersymbol(GodMod)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 2A0C488C

2A0C4862: 4C 8B C5                       -  mov r8,rbp
2A0C4865: 49 83 C0 CC                    -  add r8,-34
2A0C4869: 48 8B C8                       -  mov rcx,rax
2A0C486C: BA 0C 00 00 00                 -  mov edx,0000000C
2A0C4871: 45 33 C9                       -  xor r9d,r9d
2A0C4874: 48 83 EC 20                    -  sub rsp,20
2A0C4878: 83 38 00                       -  cmp dword ptr [rax],00
2A0C487B: 49 BB F0 49 0C 2A 00 00 00 00  -  mov r11,000000002A0C49F0
2A0C4885: 41 FF D3                       -  call r11d
2A0C4888: 48 83 C4 20                    -  add rsp,20
// ---------- INJECTING HERE ----------
2A0C488C: 48 8B 46 18                    -  mov rax,[rsi+18]
2A0C4890: F3 0F 10 45 CC                 -  movss xmm0,[rbp-34]
// ---------- DONE INJECTING  ----------
2A0C4895: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
2A0C4899: 48 8B C8                       -  mov rcx,rax
2A0C489C: F2 0F 10 C8                    -  movsd xmm1,xmm0
2A0C48A0: F2 0F 5A C9                    -  cvtsd2ss xmm1,xmm1
2A0C48A4: 48 83 EC 20                    -  sub rsp,20
2A0C48A8: 83 38 00                       -  cmp dword ptr [rax],00
2A0C48AB: 49 BB 60 4C E6 00 00 00 00 00  -  mov r11,0000000000E64C60
2A0C48B5: 41 FF D3                       -  call r11d
2A0C48B8: 48 83 C4 20                    -  add rsp,20
2A0C48BC: B8 18 3D 2C 04                 -  mov eax,042C3D18
}
{
// ORIGINAL CODE - INJECTION POINT: 00E64EE2

00E64EB6: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
00E64EBA: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
00E64EBE: F3 0F 11 6D EC                 -  movss [rbp-14],xmm5
00E64EC3: F3 0F 10 46 24                 -  movss xmm0,[rsi+24]
00E64EC8: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
00E64ECC: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
00E64ED0: F3 0F 11 6D E8                 -  movss [rbp-18],xmm5
00E64ED5: F3 0F 10 45 D8                 -  movss xmm0,[rbp-28]
00E64EDA: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
00E64EDE: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
00E64EE2: F3 0F 11 6E 24                 -  movss [rsi+24],xmm5
// ---------- DONE INJECTING  ----------
00E64EE7: 48 8B CE                       -  mov rcx,rsi
00E64EEA: 48 83 EC 20                    -  sub rsp,20
00E64EEE: 49 BB C0 4F E6 00 00 00 00 00  -  mov r11,0000000000E64FC0
00E64EF8: 41 FF D3                       -  call r11d
00E64EFB: 48 83 C4 20                    -  add rsp,20
00E64EFF: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
00E64F03: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
00E64F07: F3 0F 11 6D E4                 -  movss [rbp-1C],xmm5
00E64F0C: F3 0F 10 45 EC                 -  movss xmm0,[rbp-14]
00E64F11: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
}

 

В теме также ещё есть скрипты:

" Скрипт на быстрый крафт (сборку) предметов" (автор ZoraVl смотреть здесь):

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

{ Game   : 7DaysToDie.exe
  Version: 
  Date   : 2016-07-12
  Author : ?????????

  This script does blah blah blah
}

[ENABLE]

aobscan(craft,F3 0F 10 86 D4 00 00 00 F3 0F 5A C0 F3) // should be unique
alloc(newmem,$1000,60B3F1DE)

label(code)
label(return)

newmem:
  mov [rsi+000000D4],(float)0
code:
  movss xmm0,[rsi+000000D4]
  jmp return

craft:
  jmp newmem
  nop
  nop
  nop
return:
registersymbol(craft)

[DISABLE]

craft:
  db F3 0F 10 86 D4 00 00 00

unregistersymbol(craft)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 60B3F1DE

60B3F1AF: 66 0F 2F C8                    -  comisd xmm1,xmm0
60B3F1B3: 0F 8A 6F 00 00 00              -  jp 60B3F228
60B3F1B9: 0F 83 69 00 00 00              -  jae 60B3F228
60B3F1BF: B8 03 00 00 00                 -  mov eax,00000003
60B3F1C4: 83 F8 01                       -  cmp eax,01
60B3F1C7: 0F B6 86 DC 00 00 00           -  movzx eax,byte ptr [rsi+000000DC]
60B3F1CE: 85 C0                          -  test eax,eax
60B3F1D0: 0F 84 52 00 00 00              -  je 60B3F228
60B3F1D6: B8 04 00 00 00                 -  mov eax,00000004
60B3F1DB: 83 F8 01                       -  cmp eax,01
// ---------- INJECTING HERE ----------
60B3F1DE: F3 0F 10 86 D4 00 00 00        -  movss xmm0,[rsi+000000D4]
// ---------- DONE INJECTING  ----------
60B3F1E6: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
60B3F1EA: F3 0F 10 4D B8                 -  movss xmm1,[rbp-48]
60B3F1EF: F3 0F 5A C9                    -  cvtss2sd xmm1,xmm1
60B3F1F3: F2 0F 5C C1                    -  subsd xmm0,xmm1
60B3F1F7: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
60B3F1FB: F3 0F 11 AE D4 00 00 00        -  movss [rsi+000000D4],xmm5
60B3F203: F3 0F 10 86 D8 00 00 00        -  movss xmm0,[rsi+000000D8]
60B3F20B: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
60B3F20F: F3 0F 10 4D B8                 -  movss xmm1,[rbp-48]
60B3F214: F3 0F 5A C9                    -  cvtss2sd xmm1,xmm1
}

 

Скрипт  "Damage 10000" для слома предметов (смотреть здесь):

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

{ Game   : 7DaysToDie.exe
  Version: лицензия Steam Alpha 14.7 (64bit)
  Date   : 2016-07-11
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscan(damage,F3 0F 10 48 3C F3 0F 5A) // should be unique
alloc(newmem,$1000,31331006)
label(code)
label(return)
registersymbol(damage)

newmem:
  mov [rax+3C],(float)10000

code:
  movss xmm1,[rax+3C]
  jmp return

damage:
  jmp newmem
return:

[DISABLE]
damage:
  db F3 0F 10 48 3C

unregistersymbol(damage)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 31331006

31330FD5: F3 0F 10 40 3C                 -  movss xmm0,[rax+3C]
31330FDA: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
31330FDE: F3 0F 10 8D 2C FE FF FF        -  movss xmm1,[rbp-000001D4]
31330FE6: F3 0F 5A C9                    -  cvtss2sd xmm1,xmm1
31330FEA: F2 0F 58 C1                    -  addsd xmm0,xmm1
31330FEE: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
31330FF2: F3 0F 11 68 3C                 -  movss [rax+3C],xmm5
31330FF7: C6 40 50 00                    -  mov byte ptr [rax+50],00
31330FFB: 48 63 8D 84 FE FF FF           -  movsxd  rcx,dword ptr [rbp-0000017C]
31331002: F2 0F 2A C1                    -  cvtsi2sd xmm0,ecx
// ---------- INJECTING HERE ----------
31331006: F3 0F 10 48 3C                 -  movss xmm1,[rax+3C]
// ---------- DONE INJECTING  ----------
3133100B: F3 0F 5A C9                    -  cvtss2sd xmm1,xmm1
3133100F: F2 0F 58 C1                    -  addsd xmm0,xmm1
31331013: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
31331017: F3 0F 11 68 44                 -  movss [rax+44],xmm5
3133101C: 48 8B 85 50 FE FF FF           -  mov rax,[rbp-000001B0]
31331023: 48 8B 80 B0 00 00 00           -  mov rax,[rax+000000B0]
3133102A: 0F B6 40 74                    -  movzx eax,byte ptr [rax+74]
3133102E: 85 C0                          -  test eax,eax
31331030: 0F 85 D8 16 00 00              -  jne 3133270E
31331036: 48 8B 85 80 00 00 00           -  mov rax,[rbp+00000080]
}

 

Скрипт  "Hunger and thirst (Голод и жажда)" (смотреть здесь):

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

{ Game   : 7DaysToDie.exe
  Version: 
  Date   : 2016-07-15
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscan(WATER,89 47 10 48 63 4F 14) // should be unique
alloc(newmem,$1000,2E86DC17)
label(code)
label(return)
registersymbol(WATER)

newmem:
  mov eax,[rdi+14] // проверь может лучше поставить [rdi+18]

code:
  mov [rdi+10],eax
  movsxd  rcx,dword ptr [rdi+14]
  jmp return

WATER:
  jmp newmem
  DB 90 90
return:

[DISABLE]
WATER:
  db 89 47 10 48 63 4F 14

unregistersymbol(WATER)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 2E86DC17

2E86DBFC: 00 00                          -  add [rax],al
2E86DBFE: 00 00                          -  add [rax],al
2E86DC00: 55                             -  push rbp
2E86DC01: 48 8B EC                       -  mov rbp,rsp
2E86DC04: 57                             -  push rdi
2E86DC05: 48 83 EC 18                    -  sub rsp,18
2E86DC09: 48 8B F9                       -  mov rdi,rcx
2E86DC0C: 48 89 55 E8                    -  mov [rbp-18],rdx
2E86DC10: 48 63 47 10                    -  movsxd  rax,dword ptr [rdi+10]
2E86DC14: 03 45 E8                       -  add eax,[rbp-18]
// ---------- INJECTING HERE ----------
2E86DC17: 89 47 10                       -  mov [rdi+10],eax
2E86DC1A: 48 63 4F 14                    -  movsxd  rcx,dword ptr [rdi+14]
// ---------- DONE INJECTING  ----------
2E86DC1E: 3B C1                          -  cmp eax,ecx
2E86DC20: 0F 8E 75 00 00 00              -  jng 2E86DC9B
2E86DC26: B8 01 00 00 00                 -  mov eax,00000001
2E86DC2B: 83 F8 01                       -  cmp eax,01
2E86DC2E: B8 01 00 00 00                 -  mov eax,00000001
2E86DC33: 85 C0                          -  test eax,eax
2E86DC35: F3 0F 10 47 1C                 -  movss xmm0,[rdi+1C]
2E86DC3A: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
2E86DC3E: 48 63 47 10                    -  movsxd  rax,dword ptr [rdi+10]
2E86DC42: 48 63 4F 14                    -  movsxd  rcx,dword ptr [rdi+14]
}

 

Скрипт   "Прикол" (смотреть здесь):

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

{ Game   : 7DaysToDie.exe
  Version: 
  Date   : 2016-07-12
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]

aobscan(Prikol,89 48 4C 4C 8B E8) // should be unique
alloc(newmem,$1000,2A3C5DE8)

label(code)
label(return)

newmem:

code:
  mov ecx,1
  mov [rax+4C],ecx
  mov r13,rax
  jmp return

Prikol:
  jmp code
  nop
return:
registersymbol(Prikol)

[DISABLE]

Prikol:
  db 89 48 4C 4C 8B E8

unregistersymbol(Prikol)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 2A3C5DE8

2A3C5DB7: 8B 8D 80 FE FF FF              -  mov ecx,[rbp-00000180]
2A3C5DBD: 8B 14 25 50 AF A2 0B           -  mov edx,[0BA2AF50]
2A3C5DC4: 23 CA                          -  and ecx,edx
2A3C5DC6: 48 63 C9                       -  movsxd  rcx,ecx
2A3C5DC9: 39 48 18                       -  cmp [rax+18],ecx
2A3C5DCC: 0F 86 FF 19 00 00              -  jbe 2A3C77D1
2A3C5DD2: 48 8D 44 C8 20                 -  lea rax,[rax+rcx*8+20]
2A3C5DD7: 48 8B 00                       -  mov rax,[rax]
2A3C5DDA: 48 63 88 9C 01 00 00           -  movsxd  rcx,dword ptr [rax+0000019C]
2A3C5DE1: 48 8B 85 80 00 00 00           -  mov rax,[rbp+00000080]
// ---------- INJECTING HERE ----------
2A3C5DE8: 89 48 4C                       -  mov [rax+4C],ecx
2A3C5DEB: 4C 8B E8                       -  mov r13,rax
// ---------- DONE INJECTING  ----------
2A3C5DEE: 0F B6 85 27 FE FF FF           -  movzx eax,byte ptr [rbp-000001D9]
2A3C5DF5: 85 C0                          -  test eax,eax
2A3C5DF7: 0F 85 4C 00 00 00              -  jne 2A3C5E49
2A3C5DFD: 48 8B 04 25 58 FA ED 2A        -  mov rax,[2AEDFA58]
2A3C5E05: 8B 8D 80 FE FF FF              -  mov ecx,[rbp-00000180]
2A3C5E0B: 8B 14 25 50 AF A2 0B           -  mov edx,[0BA2AF50]
2A3C5E12: 23 CA                          -  and ecx,edx
2A3C5E14: 48 63 C9                       -  movsxd  rcx,ecx
2A3C5E17: 39 48 18                       -  cmp [rax+18],ecx
2A3C5E1A: 0F 86 AA 19 00 00              -  jbe 2A3C77CA
}

 

 

Видео: 

 

 

Сама табличка: // табличку выложил ниже, добавил ещё один скрипт.

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

За

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

Большое спасибо!

от меня пожалуйста - плюсик в репку.

 

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

Таблицу посмотрел, маленько понял, надеюсь после видео эта проблема пропадет!:)

Надеюсь, что будет всё понятно.

Если, что не поймёшь - задавай вопросы или в этой теме, или в теме своего запроса. 

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

Есть один вопрос, хочу написать скрипт на разрушение блоков с одного удара.

Допустим, есть у нас сейф, у него 2500 HP. Я нанес ему 15 урона, стало 2485\2500 HP, я нашел значение нанесенного урона этому блоку, путем отсеивания полученного урона. Нанес 15 урона стало 2485 HP нанес еще 20 стало 2465 HP.

Таким образом я нашел 3 адреса отвечающие за полученный урон этим блоком:

f19cd8c30265875a504e45f188839843.png

Ставлю брейкпоинт на запись, получаю функцию такого типа: 

3AC10007 - F3 0F11 68 44  - movss [rax+44],xmm5

Если я правильно понимаю то это функция нанесения урона блокам, собственно вопрос: как сделать так что-бы к этому урону прибавлялся еще, грубо говоря, 10000 урона, что-бы блок сломался с одного удара?

 


 

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

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

{ Game   : 7DaysToDie.exe
  Version: 
  Date   : 2016-07-11
  Author : ?????????
  This script does blah blah blah
}
[ENABLE]
aobscan(damageblock,F3 0F 11 68 44 48 8B 85) // should be unique
alloc(newmem,$1000,32711427)
label(code)
label(return)
newmem:
code:
  movss [rax+44],xmm5
  jmp return
damageblock:
  jmp code
return:
registersymbol(damageblock)
[DISABLE]
damageblock:
  db F3 0F 11 68 44
unregistersymbol(damageblock)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 32711427
327113FA: F2 0F 58 C1                    -  addsd xmm0,xmm1
327113FE: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
32711402: F3 0F 11 68 3C                 -  movss [rax+3C],xmm5
32711407: C6 40 50 00                    -  mov byte ptr [rax+50],00
3271140B: 48 63 8D 84 FE FF FF           -  movsxd  rcx,dword ptr [rbp-0000017C]
32711412: F2 0F 2A C1                    -  cvtsi2sd xmm0,ecx
32711416: F3 0F 10 48 3C                 -  movss xmm1,[rax+3C]
3271141B: F3 0F 5A C9                    -  cvtss2sd xmm1,xmm1
3271141F: F2 0F 58 C1                    -  addsd xmm0,xmm1
32711423: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
32711427: F3 0F 11 68 44                 -  movss [rax+44],xmm5
// ---------- DONE INJECTING  ----------
3271142C: 48 8B 85 50 FE FF FF           -  mov rax,[rbp-000001B0]
32711433: 48 8B 80 B0 00 00 00           -  mov rax,[rax+000000B0]
3271143A: 0F B6 40 74                    -  movzx eax,byte ptr [rax+74]
3271143E: 85 C0                          -  test eax,eax
32711440: 0F 85 D8 16 00 00              -  jne 32712B1E
32711446: 48 8B 85 80 00 00 00           -  mov rax,[rbp+00000080]
3271144D: F3 0F 10 40 3C                 -  movss xmm0,[rax+3C]
32711452: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
32711456: 66 0F 57 C9                    -  xorpd xmm1,xmm1
3271145A: 66 0F 2F C8                    -  comisd xmm1,xmm0
}

 

 

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

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

aobscan(damageblock,F3 0F 11 68 44 48 8B 85) // should be unique

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

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

{ Game   : 7DaysToDie.exe
  Version: 
  Date   : 2016-07-11
  Author : ?????????
  This script does blah blah blah
}
[ENABLE]
aobscan(damageblock,F3 0F 11 68 44 48 8B 85) // should be unique
alloc(newmem,$1000,32711427)
label(code)
label(return)
registersymbol(damageblock)

newmem:

code:
  movss [rax+44],xmm5
  sub [rax+44],(float)10000
  jmp return

damageblock:
  jmp newmem
return:

[DISABLE]
damageblock:
  db F3 0F 11 68 44

unregistersymbol(damageblock)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 32711427
327113FA: F2 0F 58 C1                    -  addsd xmm0,xmm1
327113FE: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
32711402: F3 0F 11 68 3C                 -  movss [rax+3C],xmm5
32711407: C6 40 50 00                    -  mov byte ptr [rax+50],00
3271140B: 48 63 8D 84 FE FF FF           -  movsxd  rcx,dword ptr [rbp-0000017C]
32711412: F2 0F 2A C1                    -  cvtsi2sd xmm0,ecx
32711416: F3 0F 10 48 3C                 -  movss xmm1,[rax+3C]
3271141B: F3 0F 5A C9                    -  cvtss2sd xmm1,xmm1
3271141F: F2 0F 58 C1                    -  addsd xmm0,xmm1
32711423: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
32711427: F3 0F 11 68 44                 -  movss [rax+44],xmm5
// ---------- DONE INJECTING  ----------
3271142C: 48 8B 85 50 FE FF FF           -  mov rax,[rbp-000001B0]
32711433: 48 8B 80 B0 00 00 00           -  mov rax,[rax+000000B0]
3271143A: 0F B6 40 74                    -  movzx eax,byte ptr [rax+74]
3271143E: 85 C0                          -  test eax,eax
32711440: 0F 85 D8 16 00 00              -  jne 32712B1E
32711446: 48 8B 85 80 00 00 00           -  mov rax,[rbp+00000080]
3271144D: F3 0F 10 40 3C                 -  movss xmm0,[rax+3C]
32711452: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
32711456: 66 0F 57 C9                    -  xorpd xmm1,xmm1
3271145A: 66 0F 2F C8                    -  comisd xmm1,xmm0
}

 

 

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

2 минуты назад, ZoraVl сказал:

0 реакции... Только значение нанесенного урона ушло в - 

Так тогда я не правильно понял функцию, скорее всего это функция именно наносимого урона, а не здоровья блока (предмета).

Попробуй так:

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

{ Game   : 7DaysToDie.exe
  Version: 
  Date   : 2016-07-11
  Author : ?????????
  This script does blah blah blah
}
[ENABLE]
aobscan(damageblock,F3 0F 11 68 44 48 8B 85) // should be unique
alloc(newmem,$1000,32711427)
label(code)
label(return)
registersymbol(damageblock)

newmem:

code:
  movss [rax+44],xmm5
  add [rax+44],(float)10000
  jmp return

damageblock:
  jmp newmem
return:

[DISABLE]
damageblock:
  db F3 0F 11 68 44

unregistersymbol(damageblock)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 32711427
327113FA: F2 0F 58 C1                    -  addsd xmm0,xmm1
327113FE: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
32711402: F3 0F 11 68 3C                 -  movss [rax+3C],xmm5
32711407: C6 40 50 00                    -  mov byte ptr [rax+50],00
3271140B: 48 63 8D 84 FE FF FF           -  movsxd  rcx,dword ptr [rbp-0000017C]
32711412: F2 0F 2A C1                    -  cvtsi2sd xmm0,ecx
32711416: F3 0F 10 48 3C                 -  movss xmm1,[rax+3C]
3271141B: F3 0F 5A C9                    -  cvtss2sd xmm1,xmm1
3271141F: F2 0F 58 C1                    -  addsd xmm0,xmm1
32711423: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
32711427: F3 0F 11 68 44                 -  movss [rax+44],xmm5
// ---------- DONE INJECTING  ----------
3271142C: 48 8B 85 50 FE FF FF           -  mov rax,[rbp-000001B0]
32711433: 48 8B 80 B0 00 00 00           -  mov rax,[rax+000000B0]
3271143A: 0F B6 40 74                    -  movzx eax,byte ptr [rax+74]
3271143E: 85 C0                          -  test eax,eax
32711440: 0F 85 D8 16 00 00              -  jne 32712B1E
32711446: 48 8B 85 80 00 00 00           -  mov rax,[rbp+00000080]
3271144D: F3 0F 10 40 3C                 -  movss xmm0,[rax+3C]
32711452: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
32711456: 66 0F 57 C9                    -  xorpd xmm1,xmm1
3271145A: 66 0F 2F C8                    -  comisd xmm1,xmm0
}

 

 

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

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

Конечно есть, мне нужно понять, что за инструкцию ты дал.

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

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

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

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

Да удалил и закачку тоже. Но думаю разберёмся. Мне нужно подумать, что это и как это. :D

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

Всё-таки думаю, что это здоровье сейфа (блока, предмета), попробуй ещё более простой скрипт:

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

{ Game   : 7DaysToDie.exe
  Version: 
  Date   : 2016-07-11
  Author : ?????????
  This script does blah blah blah
}
[ENABLE]
aobscan(damageblock,F3 0F 11 68 44 48 8B 85) // should be unique
alloc(newmem,$1000,32711427)
label(code)
label(return)
registersymbol(damageblock)

newmem:

code:
  mov [rax+44],0
  jmp return

damageblock:
  jmp newmem
return:

[DISABLE]
damageblock:
  db F3 0F 11 68 44

unregistersymbol(damageblock)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 32711427
327113FA: F2 0F 58 C1                    -  addsd xmm0,xmm1
327113FE: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
32711402: F3 0F 11 68 3C                 -  movss [rax+3C],xmm5
32711407: C6 40 50 00                    -  mov byte ptr [rax+50],00
3271140B: 48 63 8D 84 FE FF FF           -  movsxd  rcx,dword ptr [rbp-0000017C]
32711412: F2 0F 2A C1                    -  cvtsi2sd xmm0,ecx
32711416: F3 0F 10 48 3C                 -  movss xmm1,[rax+3C]
3271141B: F3 0F 5A C9                    -  cvtss2sd xmm1,xmm1
3271141F: F2 0F 58 C1                    -  addsd xmm0,xmm1
32711423: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
32711427: F3 0F 11 68 44                 -  movss [rax+44],xmm5
// ---------- DONE INJECTING  ----------
3271142C: 48 8B 85 50 FE FF FF           -  mov rax,[rbp-000001B0]
32711433: 48 8B 80 B0 00 00 00           -  mov rax,[rax+000000B0]
3271143A: 0F B6 40 74                    -  movzx eax,byte ptr [rax+74]
3271143E: 85 C0                          -  test eax,eax
32711440: 0F 85 D8 16 00 00              -  jne 32712B1E
32711446: 48 8B 85 80 00 00 00           -  mov rax,[rbp+00000080]
3271144D: F3 0F 10 40 3C                 -  movss xmm0,[rax+3C]
32711452: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
32711456: 66 0F 57 C9                    -  xorpd xmm1,xmm1
3271145A: 66 0F 2F C8                    -  comisd xmm1,xmm0
}

 

Может нужно будет два удара нанести по предмету. И кстати в первом варианте скрипта тоже может быть два удара.

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

Ладно, тогда вечером опять качну игру и посмотрю в игре.

А то нужно много вопросов задавать, чтобы понять как это работает.

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

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

Ладно, тогда вечером опять качну игру и посмотрю в игре.

А то нужно много вопросов задавать, чтобы понять как это работает.

Буду ждать!

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

У него адрес не правильный. Урон работает вот как. Когда ты стучишь по предмету, прибавляется количество ударов и вот это количество ударов, уже вычитается из значение по которому наносишь урон. На пример в машине сломанной 250 HP - стукнуть по ней раз 5 если, то значение у машины будет 245, а если посчитать удары кулаком, то я и нанес как раз 5 ударов по 1 - там в общем смотреть надо как работает урон с другим оружием (той же трубой) и так далее. Если записать в эти удары на пример сразу 3000 - то одни только кулаком, можно будет рушить с одного удара предметы в которых до 3000 HP 

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

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

У него адрес не правильный. Урон работает вот как. Когда ты стучишь по предмету, прибавляется количество ударов и вот это количество ударов, уже вычитается из значение по которому наносишь урон. На пример в машине сломанной 250 HP - стукнуть по ней раз 5 если, то значение у машины будет 245, а если посчитать удары кулаком, то я и нанес как раз 5 ударов по 1 - там в общем смотреть надо как работает урон с другим оружием (той же трубой) и так далее. Если записать в эти удары на пример сразу 3000 - то одни только кулаком, можно будет рушить с одного удара предметы в которых до 3000 HP 

Жень ты будешь делать?

Или мне позаниматься?

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

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

Жень ты будешь делать?

Игорь делай. У меня не работает игра x64 вылетает то и дело. Видать кряк кривой и поставлен на 14.7 версию от 14. 00 - так как у скидрова нету 14.7 версий. Я искал на старой версии игры. 14. 00 и x32. 

Я не знай как она у тебя работает - у меня вылетает то и дело. Прям не с того не с сего - перестаёт работать и всё.  Бредятина в общем какая то с игрой. Да Игорь - это вылетает не из за того, что я там что то в скриптах сделал - я даже и искать то не чего ещо не начал, это вот загрузка карты и вылет сразу.

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

image.png

 

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

В 11.07.2016в18:59, LIRW сказал:

Игорь делай.

Сенк :D.

Скрипт "Damage 10000":

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

{ Game   : 7DaysToDie.exe
  Version: лицензия Steam Alpha 14.7 (64bit)
  Date   : 2016-07-11
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscan(damage,F3 0F 10 48 3C F3 0F 5A) // should be unique
alloc(newmem,$1000,31331006)
label(code)
label(return)
registersymbol(damage)

newmem:
  mov [rax+3C],(float)10000

code:
  movss xmm1,[rax+3C]
  jmp return

damage:
  jmp newmem
return:

[DISABLE]
damage:
  db F3 0F 10 48 3C

unregistersymbol(damage)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 31331006

31330FD5: F3 0F 10 40 3C                 -  movss xmm0,[rax+3C]
31330FDA: F3 0F 5A C0                    -  cvtss2sd xmm0,xmm0
31330FDE: F3 0F 10 8D 2C FE FF FF        -  movss xmm1,[rbp-000001D4]
31330FE6: F3 0F 5A C9                    -  cvtss2sd xmm1,xmm1
31330FEA: F2 0F 58 C1                    -  addsd xmm0,xmm1
31330FEE: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
31330FF2: F3 0F 11 68 3C                 -  movss [rax+3C],xmm5
31330FF7: C6 40 50 00                    -  mov byte ptr [rax+50],00
31330FFB: 48 63 8D 84 FE FF FF           -  movsxd  rcx,dword ptr [rbp-0000017C]
31331002: F2 0F 2A C1                    -  cvtsi2sd xmm0,ecx
// ---------- INJECTING HERE ----------
31331006: F3 0F 10 48 3C                 -  movss xmm1,[rax+3C]
// ---------- DONE INJECTING  ----------
3133100B: F3 0F 5A C9                    -  cvtss2sd xmm1,xmm1
3133100F: F2 0F 58 C1                    -  addsd xmm0,xmm1
31331013: F2 0F 5A E8                    -  cvtsd2ss xmm5,xmm0
31331017: F3 0F 11 68 44                 -  movss [rax+44],xmm5
3133101C: 48 8B 85 50 FE FF FF           -  mov rax,[rbp-000001B0]
31331023: 48 8B 80 B0 00 00 00           -  mov rax,[rax+000000B0]
3133102A: 0F B6 40 74                    -  movzx eax,byte ptr [rax+74]
3133102E: 85 C0                          -  test eax,eax
31331030: 0F 85 D8 16 00 00              -  jne 3133270E
31331036: 48 8B 85 80 00 00 00           -  mov rax,[rbp+00000080]
}

 

Тестировал только ударом кулака, с другим оружием не разбирался, далеко не бегал.

Сама табличка с двумя скриптами:

таблицу выложил в этом сообщении.

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

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

Тестировал только ударом кулака

Я тоже на кулаках только и делал. Хотя он просил сделать таблицу, но какой смысл делать на версии ниже на 7 апдейтов и разрядности другой. Трейнеры выходят каждую обнову, а значит изменяется всё в байтах.  

Он как вроде бы спать ушел :) проснется, проверит. А я кстати игру эту хотел купить как то на скидках, но что то я пожалел и купил "The Long Dark" мне она показалась более интересней.

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

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

Скрипт и табличка здесь.

Интересно то, что у меня даже скрипт не активируется...:(

А нет, заработал, мгновенный урон работает на всех оружиях, блоки ломаются с одного удара:lol: спасибо большое за помощь уважаемые форумчане!:rolleyes:

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

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

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

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