GameHackLab[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Проблема с сравнением.

    Запланировано Прикреплена Закрыта Перенесена Взлом игр (начинающим)
    4 Сообщения 2 Posters 130 Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • RotlJotR
      RotlJot
      отредактировано

      Вкратце опишу.

      У меня при сравнение [next] с 0, всё нормально работает, но стоит мне написать сравнение с 1 или больше, когда в [next] лежит 0, почему-то вместо jne code у меня крашит игру, хотя должно просто перебросить в оригинальный код.

      В чём я ошибся?

      [ENABLE]
      
      aobscanmodule(myCord,UnityPlayer.dll,0F 28 40 10 41 0F 54 C2 0F 58 D8 0F 28 C3 F3 0F 11 5C)
      aobscanmodule(metka,UnityPlayer.dll,39 41 34 76 06)
      
      registersymbol(myCord)
      registersymbol(metka)
      
      registersymbol(next)
      
      alloc(newmem,$1000,myCord)
      label(newmem_metka)
      
      label(code)
      label(return)
      
      label(code_metka)
      label(return_metka)
      
      label(x_1)
      label(y_1)
      label(z_1)
      
      label(x_2)
      label(y_2)
      label(z_2)
      //1
      newmem:
        cmp dword ptr [next],0
        je jumps_1
        jne code
      
      jumps_1:
        movss xmm5,[x_1]
        movss [rax+10],xmm5
      
        movss xmm6,[y_1]
        movss [rax+14],xmm6
      
        movss xmm7,[z_1]
        movss [rax+18],xmm7
      
        cmp dword ptr [next],1
        je jumps_2
        jne code
      jumps_2:
        movss xmm5,[x_2]
        movss [rax+10],xmm5
      
        movss xmm6,[y_2]
        movss [rax+14],xmm6
      
        movss xmm7,[z_2]
        movss [rax+18],xmm7
        jmp code
      code:
        movaps xmm0,[rax+10]
        andps xmm0,xmm10
        jmp return
      //2
      newmem_metka:
        mov rax,[rcx+34]
        mov [next],rax
      
      code_metka:
        cmp [rcx+34],eax
        jna UnityPlayer.dll+FC015B
        jmp return_metka
      //3
      next:
        dd 0
      x_1:
        dq (float)-0.4942475855
      y_1:
        dq (float)1.800000072
      z_1:
        dq (float)12.02723598
      
      x_2:
        dq (float)12.224123
      y_2:
        dq (float)1.800000072
      z_2:
        dq (float)-0.09221532196
      //4
      
      metka:
        jmp newmem_metka
      return_metka:
      
      myCord:
        jmp newmem
        nop 3
      return:
      
      [DISABLE]
      
      myCord:
        db 0F 28 40 10 41 0F 54 C2
      metka:
        db 39 41 34 76 06
      
      unregistersymbol(myCord)
      unregistersymbol(metka)
      unregistersymbol(next)
      dealloc(newmem)
      
      Partizan1078P 1 ответ Последний ответ Ответить Цитировать 0
      • Partizan1078P
        Partizan1078 @RotlJot
        отредактировано

        @RotlJot Попобуй не jne code а jmp code

        RotlJotR 1 ответ Последний ответ Ответить Цитировать 0
        • RotlJotR
          RotlJot @Partizan1078
          отредактировано

          @Partizan1078 Пробывал, результат тот же. Я сейчас вручную поставил в next единицу, работает, но если там два числа что не равны друг другу - крашит. Думал из-за того что в dd передаю rax а не eax, но нет.

          1 ответ Последний ответ Ответить Цитировать 0
          • RotlJotR
            RotlJot
            отредактировано

            UPD.

            Проблему решил взяв другую инструкцию, почему-то именно в этой у меня не работало сравнение и просто приводило к крашу.

            1 ответ Последний ответ Ответить Цитировать 1
            • Первое сообщение
              Последнее сообщение