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

mahonya

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

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

  • Посещение

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

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

    скрипт попробовал? не прокатило?

    Краш(

    Полагаю, нужно в игровой код переходить. Только бы еще разобраться как грамотно это сделать) Полез ковыряться

     

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

    нужно выходить на игровую инструкцию

    Вообще странно, все, что пытаюсь брейкпоинтом поймать, все выводит к VCRUNTIME140.dll . Это нужно через трасировку искать игровую инструкцию ?

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

    видео все-таки ты не посмотрел

    Блин, у меня уже глаза плывут от белого фона сайта, после резкого перехода с IDE с темной темы, я неправильно прочитал тебя) Я читаю как "видео посмотрел" ?

    По поводу выполнения кода после я понял, это второе, я просто первым делом хочу решить основную проблему.

     

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

    нужно выходить на игровую инструкцию

    Как это сделать ?

     

    З.Ы. Видео посмотрел) И вообще, приметил кучу видео, которые буду позже смотреть)

  3. 14 минут назад, mahonya сказал:
      Скрыть контент
    { Game   : DrugDealerSimulator-Win64-Shipping.exe
      Version: 
      Date   : 2022-02-10
      Author : ??????
    
      This script does blah blah blah
    }
    
    [ENABLE]
    //code from here to '[DISABLE]' will be used to enable the cheat
    
     
     
    aobscanmodule(stam,VCRUNTIME140.dll,89 08 C3 0F 1F 00) // should be unique
    alloc(newmem,$1000,stam)
    
    label(code)
    label(return)
    
    newmem:
      mov [rax],ecx
      push dword ptr [rax+0A68]
      pop dword ptr [rax+0]
    code:
      ret 
      nop dword ptr [rax]
      jmp return
    
    stam:
      jmp newmem
    return:
    registersymbol(stam)
    
    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    stam:
      db 89 08 C3 0F 1F 00
    
    unregistersymbol(stam)
    dealloc(newmem)
    
    {
    // ORIGINAL CODE - INJECTION POINT: VCRUNTIME140.memcpy+CA
    
    VCRUNTIME140.memcpy+AD: C3              - ret 
    VCRUNTIME140.memcpy+AE: 66 90           - nop 2
    VCRUNTIME140.memcpy+B0: 4C 8B 02        - mov r8,[rdx]
    VCRUNTIME140.memcpy+B3: 0F B7 4A 08     - movzx ecx,word ptr [rdx+08]
    VCRUNTIME140.memcpy+B7: 44 0F B6 4A 0A  - movzx r9d,byte ptr [rdx+0A]
    VCRUNTIME140.memcpy+BC: 4C 89 00        - mov [rax],r8
    VCRUNTIME140.memcpy+BF: 66 89 48 08     - mov [rax+08],cx
    VCRUNTIME140.memcpy+C3: 44 88 48 0A     - mov [rax+0A],r9l
    VCRUNTIME140.memcpy+C7: C3              - ret 
    VCRUNTIME140.memcpy+C8: 8B 0A           - mov ecx,[rdx]
    // ---------- INJECTING HERE ----------
    VCRUNTIME140.memcpy+CA: 89 08           - mov [rax],ecx
    // ---------- DONE INJECTING  ----------
    VCRUNTIME140.memcpy+CC: C3              - ret 
    VCRUNTIME140.memcpy+CD: 0F 1F 00        - nop dword ptr [rax]
    VCRUNTIME140.memcpy+D0: 8B 0A           - mov ecx,[rdx]
    VCRUNTIME140.memcpy+D2: 44 0F B6 42 04  - movzx r8d,byte ptr [rdx+04]
    VCRUNTIME140.memcpy+D7: 89 08           - mov [rax],ecx
    VCRUNTIME140.memcpy+D9: 44 88 40 04     - mov [rax+04],r8l
    VCRUNTIME140.memcpy+DD: C3              - ret 
    VCRUNTIME140.memcpy+DE: 66 90           - nop 2
    VCRUNTIME140.memcpy+E0: 8B 0A           - mov ecx,[rdx]
    VCRUNTIME140.memcpy+E2: 44 0F B7 42 04  - movzx r8d,word ptr [rdx+04]
    }

     

     

    Я вот смотрю на скрипт и вижу одну вещь. Я заметил, что действия происходят в библиотеке VCRUNTIME140.memcpy . Насколько это нормально?

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

    ты их удалил в своем скрипте.
    автоматически СЕ делает их внизу скрипта

     

    Спойлер
    { Game   : DrugDealerSimulator-Win64-Shipping.exe
      Version: 
      Date   : 2022-02-10
      Author : ??????
    
      This script does blah blah blah
    }
    
    [ENABLE]
    //code from here to '[DISABLE]' will be used to enable the cheat
    
     
     
    aobscanmodule(stam,VCRUNTIME140.dll,89 08 C3 0F 1F 00) // should be unique
    alloc(newmem,$1000,stam)
    
    label(code)
    label(return)
    
    newmem:
      mov [rax],ecx
      push dword ptr [rax+0A68]
      pop dword ptr [rax+0]
    code:
      ret 
      nop dword ptr [rax]
      jmp return
    
    stam:
      jmp newmem
    return:
    registersymbol(stam)
    
    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    stam:
      db 89 08 C3 0F 1F 00
    
    unregistersymbol(stam)
    dealloc(newmem)
    
    {
    // ORIGINAL CODE - INJECTION POINT: VCRUNTIME140.memcpy+CA
    
    VCRUNTIME140.memcpy+AD: C3              - ret 
    VCRUNTIME140.memcpy+AE: 66 90           - nop 2
    VCRUNTIME140.memcpy+B0: 4C 8B 02        - mov r8,[rdx]
    VCRUNTIME140.memcpy+B3: 0F B7 4A 08     - movzx ecx,word ptr [rdx+08]
    VCRUNTIME140.memcpy+B7: 44 0F B6 4A 0A  - movzx r9d,byte ptr [rdx+0A]
    VCRUNTIME140.memcpy+BC: 4C 89 00        - mov [rax],r8
    VCRUNTIME140.memcpy+BF: 66 89 48 08     - mov [rax+08],cx
    VCRUNTIME140.memcpy+C3: 44 88 48 0A     - mov [rax+0A],r9l
    VCRUNTIME140.memcpy+C7: C3              - ret 
    VCRUNTIME140.memcpy+C8: 8B 0A           - mov ecx,[rdx]
    // ---------- INJECTING HERE ----------
    VCRUNTIME140.memcpy+CA: 89 08           - mov [rax],ecx
    // ---------- DONE INJECTING  ----------
    VCRUNTIME140.memcpy+CC: C3              - ret 
    VCRUNTIME140.memcpy+CD: 0F 1F 00        - nop dword ptr [rax]
    VCRUNTIME140.memcpy+D0: 8B 0A           - mov ecx,[rdx]
    VCRUNTIME140.memcpy+D2: 44 0F B6 42 04  - movzx r8d,byte ptr [rdx+04]
    VCRUNTIME140.memcpy+D7: 89 08           - mov [rax],ecx
    VCRUNTIME140.memcpy+D9: 44 88 40 04     - mov [rax+04],r8l
    VCRUNTIME140.memcpy+DD: C3              - ret 
    VCRUNTIME140.memcpy+DE: 66 90           - nop 2
    VCRUNTIME140.memcpy+E0: 8B 0A           - mov ecx,[rdx]
    VCRUNTIME140.memcpy+E2: 44 0F B7 42 04  - movzx r8d,word ptr [rdx+04]
    }

     

     

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

    1. Выкладывайте скрипты, не удаляя логи, которые делает СЕ. (так более понятен игровой код.
    2. и снова стандартная ошибка всех новичков - посмотри мое одноименно видео,  imaginary тебе об этом написала.

    Выложи скрипт с логами (используя теги спойлера и кода). посмотрим

    Где я могу найти логи CE ?

  6. 1 минуту назад, imaginary сказал:

    Даже если бы не было краша, дальше идёт

    code:
      mov [rax],ecx

    поэтому твои действия учитываться не будут

    Хорошо, а что может провоцировать краш? И еще, как можно это "обыграть" ? Я могу удалить эту строку просто, может ?

  7. Всем привет! Решил познакомиться с ассемблером путем взлома сингл игр.

    Выбор пал на игру Drug Dealer Simulator (v1.1.0.25, в этой версии ввели какие-то сложности для геймхацкеров, но не знаю какие). Взлом игры, в целом, не представляет из себя что-то сложное для людей знающих, но и не что-то банально легкое.

    В этой теме планирую выкладывать вопросы по мере их поступления.

    1. [Вопрос открыт]Первый вопрос, с которым я столкнулся: Пользовался методами push/pop следующим образом:
    push dword ptr [adress]
    pop dwprd ptr [adress]

          Делал с значениями 4byte, но когда попробовал этот метод со значениями типа float, то последовал краш, гуглил что-то, пытался что-то, следовал краш.

          Вопрос следующий: Это просто совпадение, что с этими стеками крашило, или для типа float нужен другой метод? Если нужен другой, то какой и как правильно применять?

          

           Ситуация:

    Спойлер

    Хочу сделать некончающуюся выносливость. Именно НОПнуть, а не просто заморозить. Нашел адрес и поинтеры.

    значений порядка 9 штук, которые отвечают за выносливость. Есть только одно значение, после заморозки которого выносливость перестает тратиться, ставля на него бряк, обращается только в момент восстановления и траты выносливости. Вероятно, именно то, что нам нужно.

    опкод выглядит следующим образом:

    89 08  - mov [rax],ecx

    в структуре RAX текущее значение выносливости - оффсет +0

    в той же структуре максимальное значение выносливости - оффсет +0А68

     

    пишу следующий скрипт:

    [ENABLE]
    
    aobscanmodule(stamina,VCRUNTIME140.dll,89 08 C3 0F 1F 00) // should be unique
    alloc(newmem,$1000,stamina)
    
    label(code)
    label(return)
    
    newmem:
      push dword ptr [rax+0A68]
      pop dword ptr [rax+0]
    code:
      mov [rax],ecx
      ret 
      nop dword ptr [rax]
      jmp return
    
    stamina:
      jmp newmem
    return:
    registersymbol(stamina)
    [DISABLE]
    stamina:
      db 89 08 C3 0F 1F 00
    
    unregistersymbol(stamina)
    dealloc(newmem)

    Краш. Тыкните пальцем ламеру, что не так)))

     

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

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

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