• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Вопрос I2cppgethendl

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Ноя 2022
Сообщения
132
Реакции
3
я делаю с нуля external (первый раз) и у меня проблема с декриптом i2cpp get hendl можете сказать как получить декрипт (вот код с ида)
Код:
Expand Collapse Copy
void *__fastcall il2cpp_gchandle_free_0(unsigned int a1)
{
  void *result; // rax
  __int64 v2; // rdx
  __int64 v3; // rbx
  char *v4; // rdi
  __int64 v5; // rbp
  __int64 v6; // r8
  int v7; // ecx
  __int64 v8; // rax
  _QWORD *v9; // rdx

  result = &ill2cppgethandle_18C18B5D0;
  v2 = (a1 & 7) - 1;
  v3 = a1 >> 3;
  v4 = (char *)&ill2cppgethandle_18C18B5D0 + 0x28 * v2;
  if ( (unsigned int)v2 <= 3 )
  {
    result = (void *)il2cpp_baselib::Baselib_Thread_GetCurrentThreadId((il2cpp_baselib *)(5 * v2));
    v5 = (__int64)result;
    if ( result == (void *)qword_18C18F9B8 )
    {
      v6 = (unsigned int)++dword_18C18F9C0;
    }
    else
    {
      if ( _InterlockedExchangeAdd(&dword_18C18F978, 0xFFFFFFFF) <= 0 )
        result = (void *)il2cpp_baselib::Baselib_SystemSemaphore_Acquire(qword_18C18F970);
      qword_18C18F9B8 = v5;
      v6 = 1i64;
      dword_18C18F9C0 = 1;
    }
    if ( (unsigned int)v3 < *((_DWORD *)v4 + 4) )
    {
      result = *(void **)v4;
      v7 = *(_DWORD *)(*(_QWORD *)v4 + 4 * ((unsigned __int64)(unsigned int)v3 >> 5));
      if ( _bittest(&v7, v3 & 0x1F) )
      {
        v8 = *((_QWORD *)v4 + 1);
        v9 = (_QWORD *)(v8 + 8 * v3);
        if ( (unsigned __int8)v4[20] > 1u )
        {
          *v9 = 0i64;
        }
        else if ( *v9 )
        {
          sub_180722B50(v8 + 8 * v3, v9, v6);
        }
        result = *(void **)v4;
        *(_DWORD *)(4 * ((unsigned __int64)(unsigned int)v3 >> 5) + *(_QWORD *)v4) = *(_DWORD *)(*(_QWORD *)v4
                                                                                               + 4
                                                                                               * ((unsigned __int64)(unsigned int)v3 >> 5)) & ~(1 << (v3 & 0x1F));
        LODWORD(v6) = dword_18C18F9C0;
      }
    }
    if ( (int)v6 > 0 )
    {
      if ( (_DWORD)v6 == 1 )
      {
        qword_18C18F9B8 = 0i64;
        dword_18C18F9C0 = 0;
        return (void *)sub_18067DDA0(&qword_18C18F970);
      }
      else
      {
        dword_18C18F9C0 = v6 - 1;
      }
    }
  }
  return result;
}
 
я делаю с нуля external (первый раз) и у меня проблема с декриптом i2cpp get hendl можете сказать как получить декрипт (вот код с ида)
Код:
Expand Collapse Copy
void *__fastcall il2cpp_gchandle_free_0(unsigned int a1)
{
  void *result; // rax
  __int64 v2; // rdx
  __int64 v3; // rbx
  char *v4; // rdi
  __int64 v5; // rbp
  __int64 v6; // r8
  int v7; // ecx
  __int64 v8; // rax
  _QWORD *v9; // rdx

  result = &ill2cppgethandle_18C18B5D0;
  v2 = (a1 & 7) - 1;
  v3 = a1 >> 3;
  v4 = (char *)&ill2cppgethandle_18C18B5D0 + 0x28 * v2;
  if ( (unsigned int)v2 <= 3 )
  {
    result = (void *)il2cpp_baselib::Baselib_Thread_GetCurrentThreadId((il2cpp_baselib *)(5 * v2));
    v5 = (__int64)result;
    if ( result == (void *)qword_18C18F9B8 )
    {
      v6 = (unsigned int)++dword_18C18F9C0;
    }
    else
    {
      if ( _InterlockedExchangeAdd(&dword_18C18F978, 0xFFFFFFFF) <= 0 )
        result = (void *)il2cpp_baselib::Baselib_SystemSemaphore_Acquire(qword_18C18F970);
      qword_18C18F9B8 = v5;
      v6 = 1i64;
      dword_18C18F9C0 = 1;
    }
    if ( (unsigned int)v3 < *((_DWORD *)v4 + 4) )
    {
      result = *(void **)v4;
      v7 = *(_DWORD *)(*(_QWORD *)v4 + 4 * ((unsigned __int64)(unsigned int)v3 >> 5));
      if ( _bittest(&v7, v3 & 0x1F) )
      {
        v8 = *((_QWORD *)v4 + 1);
        v9 = (_QWORD *)(v8 + 8 * v3);
        if ( (unsigned __int8)v4[20] > 1u )
        {
          *v9 = 0i64;
        }
        else if ( *v9 )
        {
          sub_180722B50(v8 + 8 * v3, v9, v6);
        }
        result = *(void **)v4;
        *(_DWORD *)(4 * ((unsigned __int64)(unsigned int)v3 >> 5) + *(_QWORD *)v4) = *(_DWORD *)(*(_QWORD *)v4
                                                                                               + 4
                                                                                               * ((unsigned __int64)(unsigned int)v3 >> 5)) & ~(1 << (v3 & 0x1F));
        LODWORD(v6) = dword_18C18F9C0;
      }
    }
    if ( (int)v6 > 0 )
    {
      if ( (_DWORD)v6 == 1 )
      {
        qword_18C18F9B8 = 0i64;
        dword_18C18F9C0 = 0;
        return (void *)sub_18067DDA0(&qword_18C18F970);
      }
      else
      {
        dword_18C18F9C0 = v6 - 1;
      }
    }
  }
  return result;
}
Код:
Expand Collapse Copy
uintptr_t decrypts::il2cppgethandle(int32_t ObjectHandleID)
{
    uint64_t rdi_1 = ((uint64_t)(ObjectHandleID >> 3));
    uint64_t rcx_1 = ((uint64_t)((ObjectHandleID & 7) - 1));
    uintptr_t ObjectArray = dxmm::memory::read<uintptr_t>((rcx_1 * 0x28) + (game::gameassembly + dump::il2cppgethandle + 0x8)) + (rdi_1 << 3);
    if (dxmm::memory::read<uint8_t>((rcx_1 * 0x28) + (game::gameassembly + dump::il2cppgethandle + 0x14)) > 1)
    {
        return dxmm::memory::read<uintptr_t>(ObjectArray);
    }
    else
    {
        uint32_t eax = dxmm::memory::read<uint32_t>(ObjectArray);
        eax = ~eax;
        return eax;
    }
}

советую на юц заглядывать тебе братан, а не сидеть на форуме тупых мертвых девблог пастеров
 
я смо
Код:
Expand Collapse Copy
uintptr_t decrypts::il2cppgethandle(int32_t ObjectHandleID)
{
    uint64_t rdi_1 = ((uint64_t)(ObjectHandleID >> 3));
    uint64_t rcx_1 = ((uint64_t)((ObjectHandleID & 7) - 1));
    uintptr_t ObjectArray = dxmm::memory::read<uintptr_t>((rcx_1 * 0x28) + (game::gameassembly + dump::il2cppgethandle + 0x8)) + (rdi_1 << 3);
   if (dxmm::memory::read<uint8_t>((rcx_1 * 0x28) + (game::gameassembly + dump::il2cppgethandle + 0x14)) > 1)
    {
        return dxmm::memory::read<uintptr_t>(ObjectArray);
    }
    else
    {
        uint32_t eax = dxmm::memory::read<uint32_t>(ObjectArray);
        eax = ~eax;
        return eax;
    }
}

советую на юц заглядывать тебе братан, а не сидеть на форуме тупых мертвых девблог пастеров
трел но у меня пират раст а там другие оффсеты вот и ишю сам
 
тогда советую забить хуй ибо ты слишком глупый
глупый?? забить хуй? ну ты странный чувачок, никакой пользы от тебя вообще, сказал бы что то толковое, сказал бы под учи например основы Assembler
 
смех = слабость)
да мне похуй на тебя и на всех пиратских пастеров ебучих, я их всех в рот ебал бреиндеднутые пидорасы насилующие два сурса неко и плюсминус еще с 2021
 
да мне похуй на тебя и на всех пиратских пастеров ебучих, я их всех в рот ебал бреиндеднутые пидорасы насилующие два сурса неко и плюсминус еще с 2021
дак нахуй ть вообще, что то в эту тему начал высирать? ты вообще нахуй никакой пользы не принес в эту темму, если и совета годного не дал, и строишь из себя умного ??? я уверен что ты сам ебучий пастер, и нихуя ты не умный
 
дак нахуй ть вообще, что то в эту тему начал высирать? ты вообще нахуй никакой пользы не принес в эту темму, если и совета годного не дал, и строишь из себя умного ??? я уверен что ты сам ебучий пастер, и нихуя ты не умный
ты че братан я же дохуя дельного сделал, импакта внес, поделился декриптом на раст для стима, а на алкад пусть сам ищеь, юц в помощь епта
 
ты че братан я же дохуя дельного сделал, импакта внес, поделился декриптом на раст для стима, а на алкад пусть сам ищеь, юц в помощь епта
если это так, я извиняюсь, но не называй людей Глупыми, он просто учится, учится. если у тебя нету желание помочь ему, то просто пройди мимо, и не понял, зачем ты ему сказал забить хуй?) ну реально, я в шоке, нет бы сказать что то полезное, все такие умные говорят забей хуй)) ну реально зачем так говорить? он же просто учится) учится не на стиме а на пиратке) и возможно он станет умным, и будет тебе еще помогать
 
если это так, я извиняюсь, но не называй людей Глупыми, он просто учится, учится. если у тебя нету желание помочь ему, то просто пройди мимо, и не понял, зачем ты ему сказал забить хуй?) ну реально, я в шоке, нет бы сказать что то полезное, все такие умные говорят забей хуй)) ну реально зачем так говорить? он же просто учится) учится не на стиме а на пиратке) и возможно он станет умным, и будет тебе еще помогать
бля откуда ты такой моралфаг взялся сука)
 
1754386992204.png
вроде норм получается
 
Код:
Expand Collapse Copy
uintptr_t decrypts::il2cppgethandle(int32_t ObjectHandleID)
{
    uint64_t rdi_1 = ((uint64_t)(ObjectHandleID >> 3));
    uint64_t rcx_1 = ((uint64_t)((ObjectHandleID & 7) - 1));
    uintptr_t ObjectArray = dxmm::memory::read<uintptr_t>((rcx_1 * 0x28) + (game::gameassembly + dump::il2cppgethandle + 0x8)) + (rdi_1 << 3);
    if (dxmm::memory::read<uint8_t>((rcx_1 * 0x28) + (game::gameassembly + dump::il2cppgethandle + 0x14)) > 1)
    {
        return dxmm::memory::read<uintptr_t>(ObjectArray);
    }
    else
    {
        uint32_t eax = dxmm::memory::read<uint32_t>(ObjectArray);
        eax = ~eax;
        return eax;
    }
}

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