Lua ORP Joiner - эмуляция мобильного клиента Online-RP

Mintha

Я прошёл столько дорог, пока не нашёл свою.
Автор темы
Проверенный
145
1,159
ORP Joiner
Скрипт позволяет эмулировать заход с мобильного устройства для Online-RP



Сервера:

1) s1.gta-mobile.ru:7777 или 176.32.39.240:7777 (TEXAS)
2) s2.gta-mobile.ru:7777 или 176.32.39.249:7777 (FLORIDA)
3) s3.gta-mobile.ru:7777 или 80.66.71.65:7777 (NEVADA)
4) s4.gta-mobile.ru:7777 или 80.66.71.64:7777 (HAWAII)
5) s5.gta-mobile.ru:7777 или 80.66.71.63:7777 (INDIANA)


Активация:
Автоматическая
Скачать


Примечание
Кастом машины, скины, интерфейсы, иконки
будут отображаться с заменой.


Авторство: @Mintha @Lolendor
1698755392051.png
 
Последнее редактирование:

genius.company

Известный
595
271
ORP Joiner
Скрипт позволяет эмулировать заход с мобильного устройства для Online-RP



Сервера:

1) s1.gta-mobile.ru:7777 или 176.32.39.240:7777 (TEXAS)
2) s2.gta-mobile.ru:7777 или 176.32.39.249:7777 (FLORIDA)
3) s3.gta-mobile.ru:7777 или 80.66.71.65:7777 (NEVADA)
4) s4.gta-mobile.ru:7777 или 80.66.71.64:7777 (HAWAII)
5) s5.gta-mobile.ru:7777 или 80.66.71.63:7777 (INDIANA)


Активация:
Автоматическая
Скачать



Примечание
Кастом машины, скины, интерфейсы, иконки
будут отображаться с заменой.



Авторство: @Mintha @Lolendor
Поломал бизнес ребятам. Как тебе файл с протом одобрили?
 

mhertz

Известный
125
174
опенсорс хули:
#include "main.h"

#define online_ver 356
SAMPFUNCS *SF = new SAMPFUNCS();

void encrypt(uint32_t* v, uint32_t* k)
{
  /* set up */

  uint32_t v0 = v[0];
  uint32_t v1 = v[1];
  uint32_t sum = 0;
  uint32_t i;

  /* a key schedule constant */

  uint32_t delta = 0x9e3779b9;

  /* cache key */

  uint32_t k0 = k[0];
  uint32_t k1 = k[1];
  uint32_t k2 = k[2];
  uint32_t k3 = k[3];

  /* basic cycle start */

  for (i = 0; i < 32; i++)
  {
    sum += delta;
    v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1);
    v1 += ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3);
  }

  /* end cycle */

  v[0] = v0;
  v[1] = v1;
}

bool __stdcall bypassORPC(stRakNetHookParams* params)
{
  if (params->packetId == RPC_ClientJoin)
  {
    params->bitStream->ResetReadPointer();
    params->bitStream->IgnoreBits(40);
    char nickname[24];
    uint8_t nickLen;
    uint32_t challengeResponse;
    params->bitStream->Read(nickLen);
    params->bitStream->Read(nickname, nickLen);
    nickname[nickLen] = '\0';
    params->bitStream->Read(challengeResponse);

    // 140
    for(int i = 0; i < 5; ++i)
    {
      BitStream bs;
      bs.Write<uint32_t>(online_ver);
      bs.Write<uint8_t>(0);
      SF->getRakNet()->SendRPC(140, &bs, HIGH_PRIORITY, RELIABLE_SEQUENCED, 0, false);
    }

    // cj
    {
      BitStream bs;
      bs.Write<uint32_t>(0xFD9);
      bs.Write<uint8_t>(1);
      bs.Write(nickLen);
      bs.Write(nickname, nickLen);
      bs.Write(challengeResponse);
      bs.Write<uint8_t>(42);
      bs.Write("FF2BE5E6F5D9392F57C4E66F7AD78767277C6E4F6B", 42);
      bs.Write<uint8_t>(5);
      bs.Write("0.3.7", 5);
      bs.Write<uint8_t>(2);
      bs.Write<uint32_t>(online_ver);
      SF->getRakNet()->SendRPC(RPC_ClientJoin, &bs, HIGH_PRIORITY, RELIABLE_SEQUENCED, 0, false);
    }

    return false;
  }
  return true;
}

bool __stdcall bypassIRPC(stRakNetHookParams* params)
{
  if (params->packetId == 87)
  {
    uint16_t magic{};
    uint32_t keys[4]{};
    uint32_t data[2]{};  

    params->bitStream->Read(magic);
    if (magic == 0xFFFF)
    {
      params->bitStream->Read((char*)&keys, sizeof(keys));
      params->bitStream->Read((char*)&data, sizeof(data));
      encrypt(data, keys);

      BitStream bs;
      bs.Write<uint16_t>(0xFFFF);

      for (int i = 0; i < 17; i++)
      {
        bs.Write<uint8_t>(rand() & 0xFF);
      }

      bs.Write((char*)&data, sizeof(data));
      SF->getRakNet()->SendRPC(83, &bs, SYSTEM_PRIORITY, RELIABLE_ORDERED, 0, false);
      return false;
    }
  }
  return true;
}

void __stdcall mainloop()
{
  static bool initialized = false;
  if (!initialized)
  {
    if (GAME && GAME->GetSystemState() == eSystemState::GS_PLAYING_GAME && SF->getSAMP()->IsInitialized())
    {
      srand((unsigned int)time(nullptr));
      
      SF->getRakNet()->registerRakNetCallback(RAKHOOK_TYPE_OUTCOMING_RPC, bypassORPC);
      SF->getRakNet()->registerRakNetCallback(RAKHOOK_TYPE_INCOMING_RPC, bypassIRPC);

      initialized = true;
    }
  }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
  if (dwReasonForCall == DLL_PROCESS_ATTACH)
    SF->initPlugin(mainloop, hModule);
  return TRUE;
}
 

yeroi

Потрачен
5
5
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Если ты думаешь что ты обломал бизнес - нет, после фикса этого я тут же новый сделаю, можешь даже не переживать об этом, ты просто слил обход😹
 
  • Ха-ха
  • Эм
Реакции: Lolendor и heybeykyept

XRLM

Известный
2,539
854
тебе не кажется что на нём играешь только ты
я не играю там

Если ты думаешь что ты обломал бизнес - нет, после фикса этого я тут же новый сделаю, можешь даже не переживать об этом, ты просто слил обход😹
после фикса, если ему делать нехуй будет, он новый сделает и так же сольет его
 
  • Клоун
Реакции: Air_Official

yeroi

Потрачен
5
5
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
я не играю там


после фикса, если ему делать нехуй будет, он новый сделает и так же сольет его
Он не сделает новый, он слил алгоритм генерации байтов, поэтому уже новый просто так он не сделает, а у меня на фикс уйдет минут 15
 
  • Bug
Реакции: Mintha, Lolendor и atomlin

atomlin

Известный
580
384
@atomlin кидаешь баги думая что ты крутой?) огорчу тебя, ты еблан.
Брат, ты продаешь обход на проект, на котором общий онлайн еле-еле доходит до 1.5k.. Мне не о чем с тобой разговаривать.

Причём не совсем понимаю в чём смысл это продавать, когда эта защита сурсом на гитхабе лежит (https://github.com/tendensy/santrope-core-client/)
 
  • Нравится
Реакции: XRLM, Lolendor и Mintha

Mintha

Я прошёл столько дорог, пока не нашёл свою.
Автор темы
Проверенный
145
1,159
Он не сделает новый, он слил алгоритм генерации байтов, поэтому уже новый просто так он не сделает, а у меня на фикс уйдет минут 15
алгоритм твой бешеной генерации из покон веков 4 года по наследству передается , от сантропа до блекраши и щас на этом малом сервере , на котором ты мне пытаешься что-то доказывать …