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

Rest0rer

Стажёры
  • Постов

    19
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Rest0rer

  1. 6 часов назад, LIRW сказал:

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

    Ps: Да... чуть не забыл! Игра у тебя старой версии, не так давно, её обновили на 1.5 gb пришлось восстанавливать. 

    Teleport crosshair.CT 8 \u043a\u0411 · 2 downloads

    xorps xmm14,xmm14//привести к 0
      comiss xmm14,[rcx+4c]//???
      je code

    Не могу понять для чего ты это делаешь comiss xmm14,[rcx+4c]

  2. 13 минут назад, LIRW сказал:

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

    Ps: Да... чуть не забыл! Игра у тебя старой версии, не так давно, её обновили на 1.5 gb пришлось восстанавливать. 

    Teleport crosshair.CT 8 \u043a\u0411 · 1 download

    Да, работает, сейчас буду разбираться в чем напортачил. Спасибо большое за подсказку

    • Смешно 1
  3. GetPBase:
     

    Спойлер
    
    { Game   : Sam4.exe
      Version: 
      Date   : 2020-10-09
      Author : vlad
    
      This script does blah blah blah
    }
    
    [ENABLE]
    
    aobscanmodule(NEWGetPBase,Sam4.exe,25 49 8B 00 49 8B C8) // should be unique
    alloc(newmem,$1000,"Sam4.exe"+D4F3E)
    alloc(store_pbase,4)
    
    label(code)
    label(return)
    label(pbase)
    
    registersymbol(pbase)
    
    store_pbase:
    pbase:
    dd 0
    
    newmem:
      push rbx
      mov rbx,[r8+1D0]
      mov [pbase],rbx
      pop rbx
    code:
      mov rax,[r8]
      mov rcx,r8
      jmp return
    
    NEWGetPBase+01:
      jmp newmem
      nop
    return:
    registersymbol(NEWGetPBase)
    
    [DISABLE]
    
    NEWGetPBase+01:
      db 49 8B 00 49 8B C8
    
    unregistersymbol(NEWGetPBase)
    unregistersymbol(pbase)
    dealloc(newmem)
    dealloc(store_pbase)
    
    {
    // ORIGINAL CODE - INJECTION POINT: "Sam4.exe"+D4F3E
    
    "Sam4.exe"+D4F15: 48 81 EC B0 02 00 00        -  sub rsp,000002B0
    "Sam4.exe"+D4F1C: 45 33 FF                    -  xor r15d,r15d
    "Sam4.exe"+D4F1F: 0F 29 B4 24 A0 02 00 00     -  movaps [rsp+000002A0],xmm6
    "Sam4.exe"+D4F27: 44 89 7C 24 44              -  mov [rsp+44],r15d
    "Sam4.exe"+D4F2C: 0F 28 F3                    -  movaps xmm6,xmm3
    "Sam4.exe"+D4F2F: 4C 8B F2                    -  mov r14,rdx
    "Sam4.exe"+D4F32: 48 8B F9                    -  mov rdi,rcx
    "Sam4.exe"+D4F35: 45 8D 67 01                 -  lea r12d,[r15+01]
    "Sam4.exe"+D4F39: 4D 85 C0                    -  test r8,r8
    "Sam4.exe"+D4F3C: 74 25                       -  je Sam4.exe+D4F63
    // ---------- INJECTING HERE ----------
    "Sam4.exe"+D4F3E: 49 8B 00                    -  mov rax,[r8]
    "Sam4.exe"+D4F41: 49 8B C8                    -  mov rcx,r8
    // ---------- DONE INJECTING  ----------
    "Sam4.exe"+D4F44: FF 10                       -  call qword ptr [rax]
    "Sam4.exe"+D4F46: 48 8B 15 1B D3 17 02        -  mov rdx,[Sam4.exe+2252268]
    "Sam4.exe"+D4F4D: 48 8B C8                    -  mov rcx,rax
    "Sam4.exe"+D4F50: E8 2B 4F FF 00              -  call Sam4.exe+10C9E80
    "Sam4.exe"+D4F55: 8B 4C 24 44                 -  mov ecx,[rsp+44]
    "Sam4.exe"+D4F59: 85 C0                       -  test eax,eax
    "Sam4.exe"+D4F5B: 41 0F 44 CC                 -  cmove ecx,r12d
    "Sam4.exe"+D4F5F: 89 4C 24 44                 -  mov [rsp+44],ecx
    "Sam4.exe"+D4F63: 48 8B 0D 7E 6A 1A 02        -  mov rcx,[Sam4.exe+227B9E8]
    "Sam4.exe"+D4F6A: 48 8B 81 78 1C 00 00        -  mov rax,[rcx+00001C78]
    }

     

    GetAimCoords:

    Спойлер
    
    [ENABLE]
    
    aobscanmodule(AimCoords,Sam4.exe,F2 0F 10 87 60 21 00 00) // should be unique
    alloc(newmem,$1000,"Sam4.exe"+11EA1F)
    alloc(store_aimcoords,16)
    
    label(code)
    label(return)
    label(x_aim)
    label(y_aim)
    label(z_aim)
    registersymbol(x_aim)
    registersymbol(y_aim)
    registersymbol(z_aim)
    
    store_aimcoords:
    x_aim:
    dd 0
    y_aim:
    dd 0
    z_aim:
    dd 0
    
    newmem:
    push rbx
    mov rbx,[rdi+00002160]
    mov [x_aim],rbx
    mov rbx,[rdi+00002164]
    mov [y_aim],rbx
    mov rbx,[rdi+00002168]
    mov [z_aim],rbx
    pop rbx
    jmp code
    
    code:
      movsd xmm0,[rdi+00002160]
      jmp return
    
    AimCoords:
      jmp newmem
      nop 3
    return:
    registersymbol(AimCoords)
    
    [DISABLE]
    
    AimCoords:
      db F2 0F 10 87 60 21 00 00
    
    unregistersymbol(AimCoords)
    unregistersymbol(x_aim)
    unregistersymbol(y_aim)
    unregistersymbol(z_aim)
    dealloc(newmem)
    dealloc(store_aimcoords)
    

     

    Teleport:

    Спойлер
    
    { Game   : Sam4.exe
      Version: 
      Date   : 2020-10-09
      Author : vlad
    
      This script does blah blah blah
    }
    
    [ENABLE]
    
    aobscanmodule(Tp_4,Sam4.exe,8B 40 54 89 42 18 48 8B C2) // should be unique
    alloc(newmem,$1000,"Sam4.exe"+470046)
    alloc(store_coord,256)
    
    label(code)
    label(return)
    label(xpos)
    label(ypos)
    label(zpos)
    label(en_save)
    label(en_load)
    label(en_load_aim)
    label(save)
    label(load)
    label(load_aim)
    
    registersymbol(en_load)
    registersymbol(en_save)
    registersymbol(en_load_aim)
    registersymbol(xpos)
    registersymbol(ypos)
    registersymbol(zpos)
    
    store_coord:
    xpos:
    dd 0
    ypos:
    dd 0
    zpos:
    dd 0
    
    en_save:
    dd 0
    en_load:
    dd 0
    en_load_aim:
    dd 0
    
    
    newmem:
    cmp rax,[pbase]
    jne code
    cmp [en_save],1
    je save
    cmp [en_load],1
    je load
    cmp [en_load_aim],1
    je load_aim
    jmp code
    //сохранить корды
    save:
    mov [en_save],0
    push rdx
    mov rdx,[rax+4c]
    mov [xpos],rdx
    mov rdx,[rax+50]
    mov [ypos],rdx
    mov rdx,[rax+54]
    mov [zpos],rdx
    pop rdx
    //загрузить корды
    load:
    mov [en_load],0
    push rdx
    mov rdx,[xpos]
    mov [rax+4c],rdx
    mov rdx,[ypos]
    mov [rax+50],rdx
    mov rdx,[zpos]
    mov [rax+54],rdx
    pop rdx
    //сохранить корды прицела и загрузить
    load_aim:
    mov [en_load_aim],0
    push rdx
    //save
    mov rdx,[x_aim]
    mov [xpos],rdx
    mov rdx,[y_aim]
    mov [ypos],rdx
    mov rdx,[z_aim]
    mov [zpos],rdx
    //load
    mov rdx,[xpos]
    mov [rax+4c],rdx
    mov rdx,[ypos]
    mov [rax+50],rdx
    mov rdx,[zpos]
    mov [rax+54],rdx
    pop rdx
    
    code:
      mov eax,[rax+54]
      mov [rdx+18],eax
      jmp return
    
    Tp_4:
      jmp newmem
      nop
    return:
    registersymbol(Tp_4)
    
    [DISABLE]
    
    Tp_4:
      db 8B 40 54 89 42 18
    
    unregistersymbol(Tp_4)
    unregistersymbol(en_save)
    unregistersymbol(en_load)
    unregistersymbol(en_load_aim)
    unregistersymbol(xpos)
    unregistersymbol(ypos)
    unregistersymbol(zpos)
    dealloc(newmem)
    dealloc(store_coord)
    {
    // ORIGINAL CODE - INJECTION POINT: "Sam4.exe"+470046
    
    "Sam4.exe"+470020: 40 53                    -  push rbx
    "Sam4.exe"+470022: 48 83 EC 20              -  sub rsp,20
    "Sam4.exe"+470026: 48 8B 81 D0 01 00 00     -  mov rax,[rcx+000001D0]
    "Sam4.exe"+47002D: 48 8B DA                 -  mov rbx,rdx
    "Sam4.exe"+470030: 48 85 C0                 -  test rax,rax
    "Sam4.exe"+470033: 74 20                    -  je Sam4.exe+470055
    "Sam4.exe"+470035: 0F 10 40 3C              -  movups xmm0,[rax+3C]
    "Sam4.exe"+470039: 0F 11 02                 -  movups [rdx],xmm0
    "Sam4.exe"+47003C: F2 0F 10 48 4C           -  movsd xmm1,[rax+4C]
    "Sam4.exe"+470041: F2 0F 11 4A 10           -  movsd [rdx+10],xmm1
    // ---------- INJECTING HERE ----------
    "Sam4.exe"+470046: 8B 40 54                 -  mov eax,[rax+54]
    "Sam4.exe"+470049: 89 42 18                 -  mov [rdx+18],eax
    // ---------- DONE INJECTING  ----------
    "Sam4.exe"+47004C: 48 8B C2                 -  mov rax,rdx
    "Sam4.exe"+47004F: 48 83 C4 20              -  add rsp,20
    "Sam4.exe"+470053: 5B                       -  pop rbx
    "Sam4.exe"+470054: C3                       -  ret 
    "Sam4.exe"+470055: 48 8B 01                 -  mov rax,[rcx]
    "Sam4.exe"+470058: FF 90 A8 00 00 00        -  call qword ptr [rax+000000A8]
    "Sam4.exe"+47005E: 48 8B C3                 -  mov rax,rbx
    "Sam4.exe"+470061: 48 83 C4 20              -  add rsp,20
    "Sam4.exe"+470065: 5B                       -  pop rbx
    "Sam4.exe"+470066: C3                       -  ret 
    }

     

    (Указатель на коорд Х: "Sam4.exe"+02265FD0 + 8 + 8 + 1D0 + 4C)

  4. 6 часов назад, youneuoy сказал:

    если всё сделано верно, значит игре не нравится что-то ещё. Может стоит попробовать при телепорте сначала сохранять координаты прицеливания, потом изменять их и перемещаться на сохранённые?

    Тоже не прокатило

  5. 1 час назад, LIRW сказал:

    На метро я делал что то типа такого!

      Скрыть контент
    
    
    loadcrosshaircoordinatehook:
    mov rax,[rbx + 1B58h]    // загружка значения координат в пределах карты
    mov [loadmaxaddr],eax   // загружаем его... что бы в некуда не улететь
    mov edx,[rbx + 1B30h]  // далее загружаем коориднаты прицела
    mov [crosshairX],edx
    mov edx,[rbx + 1B34h]
    mov [crosshairY],edx
    mov edx,[rbx + 1B38h]
    mov [crosshairZ],edx
    mov rax,[rbx]  // оригинал код....
    lea rdx,[rsp + 20h + 8]
    ret
    pointerplayercoordinatehook:
    movss [rax + 18h],xmm0 
    sub rax,30h 
    mov [loadaddrpointer],rax   // поинтер - проще говоря фильтр
    mov eax,[rbx + 0Ch]
    ret
    baseplatercoordinatehook:
    cmp [loadaddrpointer],rcx  // смотрим ровно ли - перс или нет
    jne @f
    movss xmm0,[loadmaxaddr]  // проверям координаты прицела с максимально допустимым расстоянием
    comiss xmm0,[maxaddr]    // если всё норм то под флаг
    je @f
    cmp [enableteleport],0  // ну и сам флаг на запись данных в коориднаны персонажа
    jz @f
    mov eax,[crosshairX]
    mov [rcx + 40h],eax
    mov eax,[crosshairY]
    mov [rcx + 44h],eax
    mov eax,[crosshairZ]
    mov [rcx + 48h],eax
    @@:
    mov eax,[rcx + 48h]  // оригинал
    mov [rcx + F8h],eax
    ret

     

    Зачем загружал максимально допустимое значение ? Хм.... игры разные... у меня перс улетал просто в некуда - это если без них! В другой игре к примеру, если улететь так же в не куда, она просто зависала и вылетала. 

    вроде загрузка, выгрузка такая же.. Завтра попробую все сначала сделать 

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

    проверяй что у тебя в  x_aim, y_aim иz_aim. 

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

  7. 4 часа назад, Garik66 сказал:

    Попробуй сделать без call:

      Показать контент
    
    
    load_aim:
      mov [en_load_aim],0
      push rdx
      mov rdx,[x_aim]
      mov [rcx+4c],rdx
      movss xmm10,[y_aim]
      addss xmm10,[incr]
      movss [rcx+50],xmm10
      xorps xmm10,xmm10
      mov rdx,[z_aim]
      mov [rcx+54],rdx
      pop rdx
      jmp code

     

    отпишись

    Краш

  8. 4 часа назад, Garik66 сказал:

    И вопрос - для чего тебе эта функция? Если для подъема на высоту. то ее лучше писать отдельно.

    Функция для того чтобы при восстановлении координат увеличить Y, чтобы не провалиться под карту.

    Я пробовал без нее, вообще не увеличивая, проблема такая-же.

    Еще пробовал в другие места инжектить, на чтении тоже - проблема сохраняется: в сохраненные тепается нормально, а в координаты прицела с вылетом.

    Может быть координаты прицела записываются слишком далеко в памяти или что то типа такого?

  9. 13 минут назад, Garik66 сказал:

    Где объявление переменных x_aim, y_aim иz_aim? 
    И откуда ты их берешь?
    В другом скрипте?

    Да, в другом.

    Вот:

    Спойлер
    
    [ENABLE]
    
    aobscanmodule(AimCoords,Sam4.exe,F2 0F 10 87 60 21 00 00) // should be unique
    alloc(newmem,$1000,"Sam4.exe"+11EA1F)
    alloc(store_aimcoords,24)
    
    label(code)
    label(return)
    label(x_aim)
    label(y_aim)
    label(z_aim)
    registersymbol(x_aim)
    registersymbol(y_aim)
    registersymbol(z_aim)
    
    store_aimcoords:
    x_aim:
    dd 0
    y_aim:
    dd 0
    z_aim:
    dd 0
    
    newmem:
    push rbx
    mov rbx,[rdi+00002160]
    mov [x_aim],rbx
    mov rbx,[rdi+00002164]
    mov [y_aim],rbx
    mov rbx,[rdi+00002168]
    mov [z_aim],rbx
    pop rbx
    jmp code
    
    code:
      movsd xmm0,[rdi+00002160]
      jmp return
    
    AimCoords:
      jmp newmem
      nop 3
    return:
    registersymbol(AimCoords)
    
    [DISABLE]
    
    AimCoords:
      db F2 0F 10 87 60 21 00 00
    
    unregistersymbol(AimCoords)
    unregistersymbol(x_aim)
    unregistersymbol(y_aim)
    unregistersymbol(z_aim)
    dealloc(newmem)
    dealloc(store_aimcoords)
    

     

     

  10. Делаю разные виды телепорта в serious sam 4. Получилось написать телепорт к сохраненной точке, а вот при телепортации в место прицеливания происходит телепорт, затем через пару секунд вылет с игры(Код такой же, как телепорт в сохраненные координаты, за исключением подставления координат прицеливания). В чем может быть проблема?(3й день сижу над ней)

    код(много букаф) :

    Спойлер
    
    { Game   : Sam4.exe
      Version: 
      Date   : 2020-10-02
      Author : vlad
    
      This script does blah blah blah
    }
    
    [ENABLE]
    
    aobscanmodule(testnewtp,Sam4.exe,C3 CC CC CC 48 83 EC 28 48 8D 0D * * * * E8 C8 9E) // should be unique
    alloc(newmem,$1000,"Sam4.exe"+BEE6F4)
    alloc(store_coord,256)
    
    label(code)
    label(return)
    label(xpos)
    label(ypos)
    label(zpos)
    label(en_save)
    label(en_load)
    label(en_load_aim)
    label(increasey)
    label(incr)
    label(save)
    label(load)
    label(popRDX)
    label(load_aim)
    
    registersymbol(en_load)
    registersymbol(en_save)
    registersymbol(en_load_aim)
    registersymbol(xpos)
    registersymbol(ypos)
    registersymbol(zpos)
    //место для сохранения координат
    store_coord:
    xpos:
    dd 0
    ypos:
    dd 0
    zpos:
    dd 0
    
    en_save:
    dd 0
    en_load:
    dd 0
    en_load_aim:
    dd 0
    //фильтр на проверку игрока и проверка флагов
    newmem:
      push rdx
      mov rdx,[pbase]
      cmp rcx,rdx
      jne popRDX
      pop rdx
      cmp [en_save],1
      je save
      cmp [en_load],1
      je load
      cmp [en_load_aim],1
      je load_aim
      jmp code
    
    popRDX:
      pop rdx
      jmp code
    //сохранить координаты
    save:
      mov [en_save],0
      push rdx
      mov rdx,[rcx+4c]
      mov [xpos],rdx
      mov rdx,[rcx+50]
      mov [ypos],rdx
      mov rdx,[rcx+54]
      mov [zpos],rdx
      pop rdx
      jmp code
    //телепорт к созраненным координатам
    load:
      mov [en_load],0
      push rdx
      mov rdx,[xpos]
      mov [rcx+4c],rdx
      mov rdx,[ypos]
      mov [rcx+50],rdx
      mov rdx,[zpos]
      mov [rcx+54],rdx
      pop rdx
      jmp code
    //телепорт к координатам прицеливания(вылет с игры после телепорта)
    load_aim:
      mov [en_load_aim],0
      push rdx
      mov rdx,[x_aim]
      mov [rcx+4c],rdx
      call increasey
      mov rdx,[z_aim]
      mov [rcx+54],rdx
      pop rdx
      jmp code
    //увеличение y при телепорте в место прицеливания
    increasey:
      movss xmm10,[y_aim]
      addss xmm10,[incr]
      movss [rcx+50],xmm10
      xorps xmm10,xmm10
      ret
    
    code:
      ret 
      int 3 
      int 3 
      int 3 
      sub rsp,28
      jmp return
    
    incr:
      dd (float)1
    
    testnewtp:
      jmp newmem
      nop 3
    return:
    registersymbol(testnewtp)
    
    [DISABLE]
    
    testnewtp:
      db C3 CC CC CC 48 83 EC 28
    
    unregistersymbol(testnewtp)
    unregistersymbol(en_save)
    unregistersymbol(en_load)
    unregistersymbol(en_load_aim)
    unregistersymbol(xpos)
    unregistersymbol(ypos)
    unregistersymbol(zpos)
    dealloc(newmem)
    dealloc(store_coord
    
    {
    // ORIGINAL CODE - INJECTION POINT: "Sam4.exe"+BEE6F4
    
    "Sam4.exe"+BEE6C5: 41 0F 28 7B E0           -  movaps xmm7,[r11-20]
    "Sam4.exe"+BEE6CA: 45 0F 28 43 D0           -  movaps xmm8,[r11-30]
    "Sam4.exe"+BEE6CF: 45 0F 28 4B C0           -  movaps xmm9,[r11-40]
    "Sam4.exe"+BEE6D4: 45 0F 28 53 B0           -  movaps xmm10,[r11-50]
    "Sam4.exe"+BEE6D9: 45 0F 28 5B A0           -  movaps xmm11,[r11-60]
    "Sam4.exe"+BEE6DE: 45 0F 28 63 90           -  movaps xmm12,[r11-70]
    "Sam4.exe"+BEE6E3: 45 0F 28 6B 80           -  movaps xmm13,[r11-80]
    "Sam4.exe"+BEE6E8: 45 0F 28 B3 70 FF FF FF  -  movaps xmm14,[r11-00000090]
    "Sam4.exe"+BEE6F0: 49 8B E3                 -  mov rsp,r11
    "Sam4.exe"+BEE6F3: 5D                       -  pop rbp
    // ---------- INJECTING HERE ----------
    "Sam4.exe"+BEE6F4: C3                       -  ret 
    "Sam4.exe"+BEE6F5: CC                       -  int 3 
    "Sam4.exe"+BEE6F6: CC                       -  int 3 
    "Sam4.exe"+BEE6F7: CC                       -  int 3 
    "Sam4.exe"+BEE6F8: 48 83 EC 28              -  sub rsp,28
    // ---------- DONE INJECTING  ----------
    "Sam4.exe"+BEE6FC: 48 8D 0D 5D 08 22 01     -  lea rcx,[Sam4.exe+1E0EF60]
    "Sam4.exe"+BEE703: E8 C8 9E 4D 00           -  call Sam4.exe+10C85D0
    "Sam4.exe"+BEE708: 48 83 C4 28              -  add rsp,28
    "Sam4.exe"+BEE70C: C3                       -  ret 
    "Sam4.exe"+BEE70D: CC                       -  int 3 
    "Sam4.exe"+BEE70E: CC                       -  int 3 
    "Sam4.exe"+BEE70F: CC                       -  int 3 
    "Sam4.exe"+BEE710: 48 8B 01                 -  mov rax,[rcx]
    "Sam4.exe"+BEE713: 83 61 60 FB              -  and dword ptr [rcx+60],-05
    "Sam4.exe"+BEE717: 48 FF 60 38              -  jmp qword ptr [rax+38]
    }

     

     

  11. Делаю разные виды телепорта в serious sam 4. Получилось написать телепорт к сохраненной точке, а вот при телепортации в место прицеливания происходит телепорт, затем через пару секунд вылет с игры(Код такой же, как телепорт в сохраненные координаты, за исключением подставления координат прицеливания). В чем может быть проблема?(3й день сижу над ней)

    код(много букаф) :

    Спойлер
    
    { Game   : Sam4.exe
      Version: 
      Date   : 2020-10-02
      Author : vlad
    
      This script does blah blah blah
    }
    
    [ENABLE]
    
    aobscanmodule(testnewtp,Sam4.exe,C3 CC CC CC 48 83 EC 28 48 8D 0D * * * * E8 C8 9E) // should be unique
    alloc(newmem,$1000,"Sam4.exe"+BEE6F4)
    alloc(store_coord,256)
    
    label(code)
    label(return)
    label(xpos)
    label(ypos)
    label(zpos)
    label(en_save)
    label(en_load)
    label(en_load_aim)
    label(increasey)
    label(incr)
    label(save)
    label(load)
    label(popRDX)
    label(load_aim)
    
    registersymbol(en_load)
    registersymbol(en_save)
    registersymbol(en_load_aim)
    registersymbol(xpos)
    registersymbol(ypos)
    registersymbol(zpos)
    //место для сохранения координат
    store_coord:
    xpos:
    dd 0
    ypos:
    dd 0
    zpos:
    dd 0
    
    en_save:
    dd 0
    en_load:
    dd 0
    en_load_aim:
    dd 0
    //фильтр на проверку игрока и проверка флагов
    newmem:
      push rdx
      mov rdx,[pbase]
      cmp rcx,rdx
      jne popRDX
      pop rdx
      cmp [en_save],1
      je save
      cmp [en_load],1
      je load
      cmp [en_load_aim],1
      je load_aim
      jmp code
    
    popRDX:
      pop rdx
      jmp code
    //сохранить координаты
    save:
      mov [en_save],0
      push rdx
      mov rdx,[rcx+4c]
      mov [xpos],rdx
      mov rdx,[rcx+50]
      mov [ypos],rdx
      mov rdx,[rcx+54]
      mov [zpos],rdx
      pop rdx
      jmp code
    //телепорт к созраненным координатам
    load:
      mov [en_load],0
      push rdx
      mov rdx,[xpos]
      mov [rcx+4c],rdx
      mov rdx,[ypos]
      mov [rcx+50],rdx
      mov rdx,[zpos]
      mov [rcx+54],rdx
      pop rdx
      jmp code
    //телепорт к координатам прицеливания(вылет с игры после телепорта)
    load_aim:
      mov [en_load_aim],0
      push rdx
      mov rdx,[x_aim]
      mov [rcx+4c],rdx
      call increasey
      mov rdx,[z_aim]
      mov [rcx+54],rdx
      pop rdx
      jmp code
    //увеличение y при телепорте в место прицеливания
    increasey:
      movss xmm10,[y_aim]
      addss xmm10,[incr]
      movss [rcx+50],xmm10
      xorps xmm10,xmm10
      ret
    
    code:
      ret 
      int 3 
      int 3 
      int 3 
      sub rsp,28
      jmp return
    
    incr:
      dd (float)1
    
    testnewtp:
      jmp newmem
      nop 3
    return:
    registersymbol(testnewtp)
    
    [DISABLE]
    
    testnewtp:
      db C3 CC CC CC 48 83 EC 28
    
    unregistersymbol(testnewtp)
    unregistersymbol(en_save)
    unregistersymbol(en_load)
    unregistersymbol(en_load_aim)
    unregistersymbol(xpos)
    unregistersymbol(ypos)
    unregistersymbol(zpos)
    dealloc(newmem)
    dealloc(store_coord
    
    {
    // ORIGINAL CODE - INJECTION POINT: "Sam4.exe"+BEE6F4
    
    "Sam4.exe"+BEE6C5: 41 0F 28 7B E0           -  movaps xmm7,[r11-20]
    "Sam4.exe"+BEE6CA: 45 0F 28 43 D0           -  movaps xmm8,[r11-30]
    "Sam4.exe"+BEE6CF: 45 0F 28 4B C0           -  movaps xmm9,[r11-40]
    "Sam4.exe"+BEE6D4: 45 0F 28 53 B0           -  movaps xmm10,[r11-50]
    "Sam4.exe"+BEE6D9: 45 0F 28 5B A0           -  movaps xmm11,[r11-60]
    "Sam4.exe"+BEE6DE: 45 0F 28 63 90           -  movaps xmm12,[r11-70]
    "Sam4.exe"+BEE6E3: 45 0F 28 6B 80           -  movaps xmm13,[r11-80]
    "Sam4.exe"+BEE6E8: 45 0F 28 B3 70 FF FF FF  -  movaps xmm14,[r11-00000090]
    "Sam4.exe"+BEE6F0: 49 8B E3                 -  mov rsp,r11
    "Sam4.exe"+BEE6F3: 5D                       -  pop rbp
    // ---------- INJECTING HERE ----------
    "Sam4.exe"+BEE6F4: C3                       -  ret 
    "Sam4.exe"+BEE6F5: CC                       -  int 3 
    "Sam4.exe"+BEE6F6: CC                       -  int 3 
    "Sam4.exe"+BEE6F7: CC                       -  int 3 
    "Sam4.exe"+BEE6F8: 48 83 EC 28              -  sub rsp,28
    // ---------- DONE INJECTING  ----------
    "Sam4.exe"+BEE6FC: 48 8D 0D 5D 08 22 01     -  lea rcx,[Sam4.exe+1E0EF60]
    "Sam4.exe"+BEE703: E8 C8 9E 4D 00           -  call Sam4.exe+10C85D0
    "Sam4.exe"+BEE708: 48 83 C4 28              -  add rsp,28
    "Sam4.exe"+BEE70C: C3                       -  ret 
    "Sam4.exe"+BEE70D: CC                       -  int 3 
    "Sam4.exe"+BEE70E: CC                       -  int 3 
    "Sam4.exe"+BEE70F: CC                       -  int 3 
    "Sam4.exe"+BEE710: 48 8B 01                 -  mov rax,[rcx]
    "Sam4.exe"+BEE713: 83 61 60 FB              -  and dword ptr [rcx+60],-05
    "Sam4.exe"+BEE717: 48 FF 60 38              -  jmp qword ptr [rax+38]
    }

     

     

  12. Подскажите в чем проблема? В меню все правильно отрисовывает, а в игре какие то блики делает. Код получения девайса:

    Спойлер
    
    bool GetD3D9Device(void** pTable, size_t size) {
    	if (!pTable)
    		return false;
    
    	IDirect3D9* pD3D = Direct3DCreate9(D3D_SDK_VERSION);
    
    	if (!pD3D)
    		return false;
    
    	IDirect3DDevice9* pDummyDevice = nullptr;
    
    	D3DPRESENT_PARAMETERS d3dpp = {};
    	d3dpp.Windowed = false;
    	d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    	d3dpp.hDeviceWindow = GetProcessWindow();
    
    	HRESULT dummyDevCreated = pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, d3dpp.hDeviceWindow, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &pDummyDevice);
    
    	if (dummyDevCreated != S_OK) {
    		d3dpp.Windowed = !d3dpp.Windowed;
    		HRESULT dummyDevCreated = pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, d3dpp.hDeviceWindow, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &pDummyDevice);
    
    		if (dummyDevCreated != S_OK) {
    			pD3D->Release();
    			return false;
    		}
    	}
    
    	memcpy(pTable, *(void***)(pDummyDevice), size);
    	pDummyDevice->Release();
    	pD3D->Release();
    	return true;
    }

     

     

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

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

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