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

ZoraVl

Пользователи
  • Постов

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

  • Посещение

  • Победитель дней

    1

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

  1. Подскажи пожалуйста, фильтр мне делать так-же как и ты делал в 7 days to die? У врагов ХП тоже не отнимается

    p.s почему-то скрипты не работают твои... может видео записать, и там подробно объяснить что и как я хочу сделать?

  2. подскажите как реализовать так, чтобы при отнимании здоровья срабатывала функция: записать в текущее значение, максимальное.

    вот инструкция отнимания здоровья: movss [ecx+1C],xmm0

     Смещение ecx+1C Это текущее здоровье

     Смещение ecx+78 максимально значение

    Вот Aob код:

    Скрытый текст
    
    { Game   : Grim Dawn.exe
      Version: 
      Date   : 2016-07-31
      Author : ?????????
    
      This script does blah blah blah
    }
    
    [ENABLE]
    
    aobscanmodule(INJECT,Game.dll,CC 0F 11 41 1C) // should be unique
    alloc(newmem,$1000)
    
    label(code)
    label(return)
    
    newmem:
    
    code:
      movss [ecx+1C],xmm0
      jmp return
    
    INJECT:
      jmp code
    return:
    registersymbol(INJECT)
    
    [DISABLE]
    
    INJECT:
      db CC 0F 11 41 1C
    
    unregistersymbol(INJECT)
    dealloc(newmem)
    
    {
    // ORIGINAL CODE - INJECTION POINT: "Game.dll"+3C3A5
    
    "Game.dll"+3C376: 0F 85 D5 00 00 00        -  jne Game.dll+3C451
    "Game.dll"+3C37C: 80 BF 01 12 00 00 00     -  cmp byte ptr [edi+00001201],00
    "Game.dll"+3C383: 0F 85 C8 00 00 00        -  jne Game.dll+3C451
    "Game.dll"+3C389: F3 0F 10 4D 08           -  movss xmm1,[ebp+08]
    "Game.dll"+3C38E: 8D 8F 54 08 00 00        -  lea ecx,[edi+00000854]
    "Game.dll"+3C394: 0F 57 D2                 -  xorps xmm2,xmm2
    "Game.dll"+3C397: 0F 2F CA                 -  comiss xmm1,xmm2
    "Game.dll"+3C39A: 72 1C                    -  jb Game.dll+3C3B8
    "Game.dll"+3C39C: F3 0F 10 41 1C           -  movss xmm0,[ecx+1C]
    "Game.dll"+3C3A1: F3 0F 5C C1              -  subss xmm0,xmm1
    // ---------- INJECTING HERE ----------
    "Game.dll"+3C3A5: F3 0F 11 41 1C           -  movss [ecx+1C],xmm0
    // ---------- DONE INJECTING  ----------
    "Game.dll"+3C3AA: F3 0F 10 41 24           -  movss xmm0,[ecx+24]
    "Game.dll"+3C3AF: F3 0F 58 C1              -  addss xmm0,xmm1
    "Game.dll"+3C3B3: F3 0F 11 41 24           -  movss [ecx+24],xmm0
    "Game.dll"+3C3B8: 80 7D 14 00              -  cmp byte ptr [ebp+14],00
    "Game.dll"+3C3BC: 53                       -  push ebx
    "Game.dll"+3C3BD: 8B 5D 0C                 -  mov ebx,[ebp+0C]
    "Game.dll"+3C3C0: 56                       -  push esi
    "Game.dll"+3C3C1: C6 81 A0 04 00 00 01     -  mov byte ptr [ecx+000004A0],01
    "Game.dll"+3C3C8: 74 36                    -  je Game.dll+3C400
    "Game.dll"+3C3CA: 83 3B 01                 -  cmp dword ptr [ebx],01
    }

     

    пробовал:

    Mov eax,[ecx+78]
    mov [ecx+1C],eax

    но игра вылетала при ударе

  3. 9 часов назад, Garik66 сказал:

    Попробуй:  СЕ/Изменить/Настройки/Параметры отладчика -> Использовать VEH отладчик. Если стоит он, то наоборот переключи на  Использовать Windows отладчик.

    Все заработало, спасибо!

  4. 14 часа назад, MasterGH сказал:

    Выкладываю исходники для желающих. Там все есть чтобы сделать читы на C#. Скорее всего, придется поправить немного код, чтобы собрать .dll. Также нужно указать пути дло текстур minus.png и plus.png.


     

    Также нужны SharpDevelop 4.3 и ILSpy

    hacktools_unity3d (Draw Hierarchy + Titanium).rar

    7 days to die GodMod + Stamina + Draw Hierarchy.rar

    Вместо SahrpDevelop подойдет обычный Microsoft Visual Studio?

  5. Garik66

    Я понял, сейчас проверю


    MasterGH

    Ну для тебя это все просто) А мне до такого уровня еще далеко

     

    Garik66

    Короче скрипт проверил, активировал, еда стала 100% вода осталась так-же, но в консоли много ошибок и она не закрывается, даже если скрипт отключить, все-равно много ошибок

    А если поставить rdi+18 то скрипт работает!):-P Спасибо за помощь!!!

     

    А как ты нашел значение то? Как ты понял что оно максимально 72?

  6. 1 час назад, Garik66 сказал:

    Да разрабы хитрые ребята. :D

    А в 4 байтах поискать не пробовал? (Ну не во float т .е.)

    Скрипт "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]
    }

     

    MAX значение не равно 100, а равно 72. 

    В структуре этой инструкции:

    [rdi+10] - текущее значение голода (жажды).

    [rdi+14] - я выбрал это значение за MAX, но нужно тестить скрипт в игре, может лучше следующее смещение взять.

    [rdi+18] - вот это.

    Потесть. Видео записывать не буду, вроде ничего сложного.

    Хорошо спасибо, я полазию посмотрю может что найду

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

    ЗЫ:

    ZoraVl, игрушку я сношу (надоел мне этот английский, ни хрена не понимаю ни что делать, никак делать, а без понимания весь интерес к игре теряется:wacko:), но, если сделают поддержку на русском разрабы, либо фанаты опять начнут переводить, то может и поиграю (вроде интересно должно быть повыживать, но конечно же без читов).

    На лицензии которая в стиме продается, там есть русификатор от фанатов, в руководствах... Можешь глянуть вот тут

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

    ЗЫ1: ZoraVl, а с голодом и жаждой разобрался?

    Нет, я значение найти не как не могу.... Пробовал и отнимать и прибавлять, и в структуре капался... Без толку... 

    Вот скрипты котоорые я сделал:

    •качество оружия бесконечное

    •бесконечные патроны

    •очки улучшения скиллов

    •всегда день

    •быстрый крафт

    Ну и остальные твои, год мод и дамаг... 

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

    je - если в предыдущем сравнение значения в регистре и адресе равны то прыгаем на .....

    @f - короткий прыжок (условный переход) вперёд (от английского forward - вперёд)  на ближайшую безымянную метку @@, может быть  ещё @b - короткий прыжок назад (от английского back - назад).

    В чём преимущество использования безымянных меток @@: их ненужно объявлять, и их может быть сколько угодно в скрипте.

     

    fld - загружает в верхний регистр FPU значение из адреса (в нашем случае [rsi+20]) сдвигая значения в регистрах.

    fst - выгружает из регистра в память без сдвига.

    fstp - выгружает из регистра в память со сдвигом назад (т.е. в нашем случае мы восстановили значения регистров на игровые на всякий случай).

    Т.е. код:

    
      fld [rsi+20]  
      fstp [rsi+24]    

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

    Подробнее по работе с вещественными числами - погугли и почитай, больше поймёшь.

    90 - это  тот же опкод nop, в нашем случае служит для выравнивания, т.е. 5 байт (jmp newmem) + 4 байта (4 nop или 90 90 90 90) = 9 байт (48 8B 46 18 F3 0F 10 45 CC - смотри ниже это байты оригинальной инструкции игры, с которой мы делаем прыжок (переход) на нашу инъекцию.)

    db - от английского define byte (определить байт)

    dw - word (слово - два байта)

    dd - double word (двойное слово - 4 байта) - если значение вещественное то пишем float в скобках.

    dq - quadr worrd (учетверённое слово - 8 байт) ставим double, т.е. получаем удвоенное двойное слово.

    Об этом всём тоже лучше погуглить и почитать поподробнее.

    Спасибо большое за объяснения! Теперь намного понятнее что да как!:)

  9. 3 часа назад, Garik66 сказал:

    default_offtopic.gifА я подумал, что Зорро 6. :D

    Молодца!!! Удачного дальнейшего взлома!!!;)

    Можешь рассказать что означают функции в твоем скриптке GodMod? Я в коде отмечу какие.

    Скрытый текст
    
    { 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(code)
    label(return)
    label(Health)
    label(Wilness)
    label(Stamina)
    label(code1)
    label(return1)
    label(newmem1)
    
    registersymbol(Health)
    registersymbol(Stamina)
    registersymbol(Pointer)
    registersymbol(Wilness)
    registersymbol(GodMod)
    
    newmem:
      mov ecx,[rsi+10]
      mov [Health],ecx
    
      mov ecx,[rsi+18]
      mov [Stamina],ecx
    
      mov ecx,[rsi+38]
      mov [Wilness],ecx
    
    code:
      mov rax,[rsi+18]
      movss xmm0,[rbp-34]
      jmp return
    
    Health:
    dq (double)0
    Stamina:
    dq (double)0
    Wilness:
    dq (double)0
    
    newmem1:
      mov rcx,[Health]
      cmp rcx,rsi
      je @f    // Что делает эта фукция?
      mov rcx,[Stamina]
      cmp rcx,rsi
      je @f   // Что делает эта фукция?
      mov rcx,[Wilness]
      cmp rcx,rsi
      je @f   // Что делает эта фукция?
      jmp return1
    
    @@:
      fld [rsi+20]  // Что делает эта фукция?
      fstp [rsi+24]    // Что делает эта фукция?
      jmp return1
    
    code1:
      movss [rsi+24],xmm5
      jmp return1
    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)
    unregistersymbol(Wilness)
    dealloc(newmem)

     

    Код я переделал немного, добавил Wilness, это отвечает за максимальное здоровье и стамину...:)

    Еще мне интересно почему ты записал db 90 90 90 90 где Pointer, ну тоесть зачем это? и чем отличается db от dq и почему ты написал dq (bouble) а не dq (float):-P

    • Плюс 1
  10. 8 часов назад, Garik66 сказал:

    ZoraVI, извиняй - сегодня точно уже не получиться покопаться в игре.

    Короче спасибо большое!!! Я разобрался как сделать фильтр!!! Урааа!=)))) 

    P.S мой ник читается как ЗораВЛ  - ударение на О, а вл это Влад =) 

    Спасибо за твои уроки!:rolleyes:

    • Плюс 1
  11. 5 минут назад, Garik66 сказал:

    Да не зачем.

    Я в неё играть всё-равно не буду.

    А видео по крафту и прохождение - думаю полный ТЮБ, т.е. куча.:D

    Ну короче что-бы сделать первый инструмент тоесть топор, нужно подойти к дереву постучать по нему, подойти к камню постучать по нему и постучать по траве... лучше включить скрипт для ломания с одного удара... дальше нажимаешь ТАВ и там белым цветом будет Stone Axe это каменный топор, нажимаешь на него и нажимаешь Craft (собрать)... Вуаля:lol:

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

    Ты уверен, что это НР зомби? эт во-первых.

    во-вторых: очень не внимательно смотрим скрипты, эта инструкция, которую я  использовал при написании GodMod.

     

    Через часок появиться время, попробую написать тебе OneHitKill.

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

     

    С прочностью предметов, будем разбираться как-нибудь потом.

    Могу записать видео как сделать топор в начале игры, если хочешь)

  13. 1 час назад, Garik66 сказал:

     

    Ну например урок из этой же темы можно взять.

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

  14. 7 минут назад, Garik66 сказал:

    ФИЛЬТР!!!

    Если пока не понимаешь, как это делать, смотри мои видео-уроки, я почти в каждом уроке про фильтры, что-нибудь да рассказываю.

    Написание фильтра - есть много способов и вариантов реализации. 

    Например какой видео урок?

  15. Короче, есть у каждого оружия состояние, каждый удар отнимает одну единицу состояния, я нашел значение, которое при каждом ударе увеличивается на 1 единицу и вот после нескольких ударов у меня значение уже 6, состояние оружия уменьшилось... Если поставить значение 0 то предмет снова целый...

    Вообщем ставим бряк на запись, при ударе вылазит одна инструкция, но она работает со многими адресами 

    061D7C8C - 89 77 28  - mov [rdi+28],esi
    И когда в скрипте пишем допустим

    mov [rdi+28],#0 то игра вылетает при активации скрипта, 0 - это кол-во ударов нанесенное этим оружием...

    Вот собственно вопрос, как правильно написать скрипт, что-бы кол-во ударов не прибавлялось и игра не вылетала?

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

    Конечно можно, как и в любой другой игре.

    zoraVI, посмотри мои видео-уроки по добавлению новых предметов, есть и для игры Дарк Соулс и для Fallout, ну и раньше делал для других игр тоже.

    Смотри там же в разделе для новичков.

    Сейчас гляну

  17. 53 минуты назад, LIRW сказал:

    Да я не до конца досмотрел. А там кстати Игорь можно предметы генерировать. Ну в сумку :) пистолеты всякие и в обще всё вооружение и тому подобные предметы.

    А кстати да, можно как-то найти адрес допустим первого слота, и вставить в структуру ID предмета и его качество или колличество, сейчас попробую качество предмета взломать, что-бы он не ломался, поможете если что?)

  18. 4 минуты назад, LIRW сказал:

    Тогда Игоря жди - у меня не идет игра. Бонусов под коплю - куплю её по скидки :)  Хотя для неё постоянно в сети трейнеры выкладывают. А то что работает инструкция и с другими адресами, у меня такое было и не раз. По за вчера вон в координатах - вроде бы я один был, а в следующем уровне уже пол игры. 

    Ну будем ждать Игоря:)

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

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

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