Другое Что мне удалось добыть o libsamp.so Black Russia

ValarDahaelis

Участник
Автор темы
39
39
Надеюсь то, что я добыл пригодится кому-нибудь. Так как у меня руки из ж, я не смог создать обход.
1. Шифровка строк: строки шифруются ксорированием на их длину. Вот простенький скрипт на питоне, который я юзал для расшифровки строк:
govnocode:
toDecode = "<тут стринг>"

def decode(string):
    shift = len(string)
    bytes = list(string.encode())
    for i in range(len(bytes)):
        bytes[i] ^= shift
    return bytes
def decodeBytes(bytes):
    shift = len(bytes)
    for i in range(len(bytes)):
        bytes[i] ^= shift
    return bytes
a = decode(toDecode)

print("Result:")
print("In String:", "".join(map(chr, a)))
print("In Bytes:", [hex(x) for x in a])
2. Как я понял, Black Russia проверяет клиент не только через ClientJoin но и через 168 пакет (по крайней мере, он не обработан обычным клиентом). Его можно найти по кроссрефам к dword_A8.
3. Нельзя просто взять и сменить IP. Судя по всему там стоит какая-то защита, которую мои кривые руки не смогли найти. Будет просто Подключение к Black Russia и всё (он даже не будет пытаться подключиться, даже пакеты не идут, хотя сервер пингуется с обычного клиента).
4. И насчёт IP: они захардкожены в сам libsamp.so и как я понял, определяются по номеру сервера в порядке Red, Green, ...
5. ClientJoin Black Russia:
Version: 24342
Mod: 1
ChallengeAnswer: Challenge ^(xor) 0xFD9
joinAuthKey: E02262CF28BC542486C558D4BE9EFB716592AFAF8B
clientVer: 0.3.7
Если вдруг нужно будет, могу скинуть мою дб IDA Pro.
 

Smeruxa

Известный
1,361
722
Надеюсь то, что я добыл пригодится кому-нибудь. Так как у меня руки из ж, я не смог создать обход.
1. Шифровка строк: строки шифруются ксорированием на их длину. Вот простенький скрипт на питоне, который я юзал для расшифровки строк:
govnocode:
toDecode = "<тут стринг>"

def decode(string):
    shift = len(string)
    bytes = list(string.encode())
    for i in range(len(bytes)):
        bytes[i] ^= shift
    return bytes
def decodeBytes(bytes):
    shift = len(bytes)
    for i in range(len(bytes)):
        bytes[i] ^= shift
    return bytes
a = decode(toDecode)

print("Result:")
print("In String:", "".join(map(chr, a)))
print("In Bytes:", [hex(x) for x in a])
2. Как я понял, Black Russia проверяет клиент не только через ClientJoin но и через 168 пакет (по крайней мере, он не обработан обычным клиентом). Его можно найти по кроссрефам к dword_A8.
3. Нельзя просто взять и сменить IP. Судя по всему там стоит какая-то защита, которую мои кривые руки не смогли найти. Будет просто Подключение к Black Russia и всё (он даже не будет пытаться подключиться, даже пакеты не идут, хотя сервер пингуется с обычного клиента).
4. И насчёт IP: они захардкожены в сам libsamp.so и как я понял, определяются по номеру сервера в порядке Red, Green, ...
5. ClientJoin Black Russia:
Version: 24342
Mod: 1
ChallengeAnswer: Challenge ^(xor) 0xFD9
joinAuthKey: E02262CF28BC542486C558D4BE9EFB716592AFAF8B
clientVer: 0.3.7
Если вдруг нужно будет, могу скинуть мою дб IDA Pro.
жду гайд как доставать эти ключи <3
joinAuthKey: E02262CF28BC542486C558D4BE9EFB716592AFAF8B
 

Majunti

Известный
527
165
попробуй перенаправить подключение через hosts go на свой сервер от red сервера 80.66.82.46 с портом 5125. Ауткей такой же как у сантропа.
 

ValarDahaelis

Участник
Автор темы
39
39
попробуй перенаправить подключение через hosts go на свой сервер от red сервера 80.66.82.46 с портом 5125. Ауткей такой же как у сантропа.
В либе захардкожены айпишники, а не хосты. А айпишники можно переадресовать, насколько я знаю, только натом.
 

ValarDahaelis

Участник
Автор темы
39
39
жду гайд как доставать эти ключи <3
joinAuthKey: E02262CF28BC542486C558D4BE9EFB716592AFAF8B
я добыл статическим анализом с помощью нахождения функции входа на сервер (отправки клиентджоина) и потом по тому как пишется битстрим уже нашёл сам ключ и расшифровал его.
 
  • Нравится
Реакции: paulohardy

Smeruxa

Известный
1,361
722
я добыл статическим анализом с помощью нахождения функции входа на сервер (отправки клиентджоина) и потом по тому как пишется битстрим уже нашёл сам ключ и расшифровал его.
а как понять как пишется битстрим?