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

Pitronic

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

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

  • Посещение

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

    20

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

  1. Добро время суток. Предлагаю видео урок с поиском адресов, которые казалось бы сложно найти.

    Спойлер

     

    Следующий урок готовлю, в котором будет тема, как написать скрипт с искусственным фильтром. Прошу не жалеть коментов.

    • Плюс 3
  2. Не работает

    Спойлер

    image.png

    На скриншоте видно что это максимальное значение в адресе proverka в 4 байтах показывает правилно а во float не правильно. вот мой скрипт

    Спойлер
    
    { Game   : SR2_pc.exe
      Version: 
      Date   : 2021-05-02
      Author : Pitronic
    
      This script does blah blah blah
    }
    
    [ENABLE]
    
    aobscanmodule(_heallth_deloper_gg_,SR2_pc.exe,D8 9A 24 11 00 00 DF E0 F6 C4 01 75 03) // should be unique
    alloc(newmem,$1000)
    
    label(code)
    label(return)
    label(proverka)
    
    registersymbol(_heallth_deloper_gg_)
    registersymbol(proverka)
    
    newmem:
    //cmp [edx+111C],#0
    //jne code
    fld [edx+00001120]
    fstp [proverka]
    
    code:
    fcomp dword ptr [edx+00001124]
    jmp return
    
    proverka:
    dd 0
    
    _heallth_deloper_gg_:
      jmp newmem
      nop
    return:
    
    [DISABLE]
    
    _heallth_deloper_gg_:
      db D8 9A 24 11 00 00
    
    unregistersymbol(_heallth_deloper_gg_)
    unregistersymbol(proverka)
    
    dealloc(newmem)
    
    {
    // ORIGINAL CODE - INJECTION POINT: SR2_pc.exe.text+584661
    
    SR2_pc.exe.text+584647: C1 E1 04              - shl ecx,04
    SR2_pc.exe.text+58464A: 8B 89 64 9C 14 02     - mov ecx,[ecx+SR2_pc.exe+1D49C64]
    SR2_pc.exe.text+584650: 85 C9                 - test ecx,ecx
    SR2_pc.exe.text+584652: 74 05                 - je SR2_pc.exe.text+584659
    SR2_pc.exe.text+584654: 39 41 44              - cmp [ecx+44],eax
    SR2_pc.exe.text+584657: 74 02                 - je SR2_pc.exe.text+58465B
    SR2_pc.exe.text+584659: 33 C9                 - xor ecx,ecx
    SR2_pc.exe.text+58465B: 3B CA                 - cmp ecx,edx
    SR2_pc.exe.text+58465D: 75 0F                 - jne SR2_pc.exe.text+58466E
    SR2_pc.exe.text+58465F: D9 EE                 - fldz 
    // ---------- INJECTING HERE ----------
    SR2_pc.exe.text+584661: D8 9A 24 11 00 00     - fcomp dword ptr [edx+00001124]
    // ---------- DONE INJECTING  ----------
    SR2_pc.exe.text+584667: DF E0                 - fnstsw ax
    SR2_pc.exe.text+584669: F6 C4 01              - test ah,01
    SR2_pc.exe.text+58466C: 75 03                 - jne SR2_pc.exe.text+584671
    SR2_pc.exe.text+58466E: B0 01                 - mov al,01
    SR2_pc.exe.text+584670: C3                    - ret 
    SR2_pc.exe.text+584671: 83 BA 8C 0F 00 00 00  - cmp dword ptr [edx+00000F8C],00
    SR2_pc.exe.text+584678: 0F 9D C0              - setge al
    SR2_pc.exe.text+58467B: C3                    - ret 
    SR2_pc.exe.text+58467C: CC                    - int 3 
    SR2_pc.exe.text+58467D: CC                    - int 3 
    }

     

     

  3. Вопрос простой но не знаю как это сделать. Под спойлером скрипт. с комментариями. Задача обозначена в скрипте. Игра Saints Row 2.v 1.2 от Буки. Мне это надо не только для этой игры, но и для шаблона если ещё где встретится.

    Спойлер
    
    { Game   : SR2_pc.exe
      Version: 
      Date   : 2021-05-02
      Author : Pitronic
    
      This script does blah blah blah
    }
    
    [ENABLE]
    
    aobscanmodule(_good_mode_,SR2_pc.exe,D8 * * * * * * * F6 * * 75 * B0 * * 83 * * * * * * 0F 9D)
    alloc(newmem,$1000)
    
    label(code)
    label(return)
    
    newmem:
    // [edx+00001120] здесь максимальное значение здоровья гг, но тип 4 байта.
    
    code:
    fcomp dword ptr [edx+00001124] //  здесь здорове гг, но тип float.
    jmp return
    
    // задача, записать максимальное здоровье гг, в фактический адрес здоровья гг.
    
    _good_mode_:
      jmp newmem
    db 90
    return:
    registersymbol(_good_mode_)
    
    [DISABLE]
    
    _good_mode_:
    fcomp dword ptr [edx+00001124]
    
    unregistersymbol(_good_mode_)
    dealloc(newmem)
    
    {
    // ORIGINAL CODE - INJECTION POINT: SR2_pc.exe.text+584661
    
    SR2_pc.exe.text+584647: C1 E1 04              - shl ecx,04
    SR2_pc.exe.text+58464A: 8B 89 64 9C 14 02     - mov ecx,[ecx+SR2_pc.exe+1D49C64]
    SR2_pc.exe.text+584650: 85 C9                 - test ecx,ecx
    SR2_pc.exe.text+584652: 74 05                 - je SR2_pc.exe.text+584659
    SR2_pc.exe.text+584654: 39 41 44              - cmp [ecx+44],eax
    SR2_pc.exe.text+584657: 74 02                 - je SR2_pc.exe.text+58465B
    SR2_pc.exe.text+584659: 33 C9                 - xor ecx,ecx
    SR2_pc.exe.text+58465B: 3B CA                 - cmp ecx,edx
    SR2_pc.exe.text+58465D: 75 0F                 - jne SR2_pc.exe.text+58466E
    SR2_pc.exe.text+58465F: D9 EE                 - fldz 
    // ---------- INJECTING HERE ----------
    SR2_pc.exe.text+584661: D8 9A 24 11 00 00     - fcomp dword ptr [edx+00001124]
    // ---------- DONE INJECTING  ----------
    SR2_pc.exe.text+584667: DF E0                 - fnstsw ax
    SR2_pc.exe.text+584669: F6 C4 01              - test ah,01
    SR2_pc.exe.text+58466C: 75 03                 - jne SR2_pc.exe.text+584671
    SR2_pc.exe.text+58466E: B0 01                 - mov al,01
    SR2_pc.exe.text+584670: C3                    - ret 
    SR2_pc.exe.text+584671: 83 BA 8C 0F 00 00 00  - cmp dword ptr [edx+00000F8C],00
    SR2_pc.exe.text+584678: 0F 9D C0              - setge al
    SR2_pc.exe.text+58467B: C3                    - ret 
    SR2_pc.exe.text+58467C: CC                    - int 3 
    SR2_pc.exe.text+58467D: CC                    - int 3 
    }

     

     

  4. В 23.03.2020 в 01:40, imaginary сказал:

    Попробуй вот такую вставку

    До сих по всё работало, но на флагах не работает не один вариант в этой теме, мне кажется там нужна проверка, стоит крестик или нет, когда таймер обнулился, и если нет снимать.

  5. В 12.02.2017 в 13:04, Garik66 сказал:

    это уже плагиат.

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

  6. Начал ломать игру Saints Row 2 на коды разработчиков. Выяснялось что все чит коды находятся в одном адресе, их 32, при включении разных чит кодов, разное значение в адресе, включение нескольких суммирует значение в адресе, в одном скрипте муторное дело скрипт писать на 32 чита, решил сделать эксперемент, черех инструмент code saves сохранил в блокноте 32 адреса в которых потом для каждого чита сделать отдельный скрипт, вопрос возможно ли сделать клоны инструкций по сохранённым адресам, чтоб они работали так же как в оригиннальной инструкции, и второй вопрос как записать этот скрип в луа чтоб он автоматически применился при запуске трейнера. Скрипт под спойлером. достаточно для примера с одним адресом. остальное сам доклепаю.

    Спойлер
    
    { Game   : SR2_pc.exe
      Version: 
      Date   : 2021-04-25
      Author : Pitronic
    
      This script does blah blah blah
    }
    
    [ENABLE]
    
    aobscan(_save_,8B * * * * * 8B * * * * * 75 * 85 * 74 * 32)
    alloc(newmem_save_,$1000)
    
    label(code_save_)
    label(return_save_)
    
    registersymbol(_save_)
    registersymbol(code_save_)
    
    newmem_save_:
    push eax
    // [00010278] адрес в который надо скопировать  инструкцию
    
    code_save_:
    // mov ebx,[SR2_pc.exe+2126E14]
    readmem(_save_,6)
    pop eax
    jmp return_save_
    
    _save_:
    jmp newmem_save_
    db 90
    return_save_:
    
    
    [DISABLE]
    _save_:
    //  db 8B 1D 14 6E 52 02
    readmem(code_save_,6)
    
    unregistersymbol(_save_)
    unregistersymbol(code_save_)
    
    dealloc(newmem_save_)
    
    {
    // ORIGINAL CODE - INJECTION POINT: SR2_pc.exe.text+DCD68
    
    SR2_pc.exe.text+DCD4F: CC                    - int 3 
    SR2_pc.exe.text+DCD50: 83 EC 0C              - sub esp,0C
    SR2_pc.exe.text+DCD53: 53                    - push ebx
    SR2_pc.exe.text+DCD54: 8B 1D 10 6E 52 02     - mov ebx,[SR2_pc.exe+2126E10]
    SR2_pc.exe.text+DCD5A: 85 DB                 - test ebx,ebx
    SR2_pc.exe.text+DCD5C: 55                    - push ebp
    SR2_pc.exe.text+DCD5D: 56                    - push esi
    SR2_pc.exe.text+DCD5E: 57                    - push edi
    SR2_pc.exe.text+DCD5F: 75 39                 - jne SR2_pc.exe.text+DCD9A
    SR2_pc.exe.text+DCD61: 80 3D 6F 43 F8 00 00  - cmp byte ptr [SR2_pc.exe+B8436F],00
    // ---------- INJECTING HERE ----------
    SR2_pc.exe.text+DCD68: 8B 1D 14 6E 52 02     - mov ebx,[SR2_pc.exe+2126E14]
    // ---------- DONE INJECTING  ----------
    SR2_pc.exe.text+DCD6E: 8B 3D E4 6D 52 02     - mov edi,[SR2_pc.exe+2126DE4]
    SR2_pc.exe.text+DCD74: 75 08                 - jne SR2_pc.exe.text+DCD7E
    SR2_pc.exe.text+DCD76: 85 FF                 - test edi,edi
    SR2_pc.exe.text+DCD78: 74 04                 - je SR2_pc.exe.text+DCD7E
    SR2_pc.exe.text+DCD7A: 32 C0                 - xor al,al
    SR2_pc.exe.text+DCD7C: EB 02                 - jmp SR2_pc.exe.text+DCD80
    SR2_pc.exe.text+DCD7E: B0 01                 - mov al,01
    SR2_pc.exe.text+DCD80: 85 DB                 - test ebx,ebx
    SR2_pc.exe.text+DCD82: 75 0E                 - jne SR2_pc.exe.text+DCD92
    SR2_pc.exe.text+DCD84: 8B 1D 18 6E 52 02     - mov ebx,[SR2_pc.exe+2126E18]
    }

     

     

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

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

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