Сейчас на форуме: igorcauret, Rio (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Changer STEAM by OSTROG, что делать когда dproto искажает sid?
Посл.ответ Сообщение

Ранг: 3.4 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 15 июня 2015 19:47 · Поправил: Manio133
· Личное сообщение · #1

Не получается полноценно эмулировать steamid через софт (Changer STEAM by OSTROG). Если подключаюсь я к тестовому серверу с dproto 0.9.0.548. То нахожу в записанной демке это, к примеру:
\bottomcolor\6\model\gordon\topcolor\30\name\SET\*sid\6436716

А должно быть это:
\bottomcolor\6\model\gordon\topcolor\30\name\SET\*sid\76561197966702444

Это же я вижу и на серверах. То есть все норм. Человек играет со стим.

Но я не могу подделать реальный id. С чем это связано? Оно просто умножает на два число 3218358 (2*3218358 = 6436716), а должно ещё добавлять смещение 76561197960265728.

76561197960265728 + 3218358*2 = 76561197966702444

Dproto как-то эту подмену обнаруживает. И меня, если банят то не по этому steam id, а по ip сразу.
Когда выключить dproto, то при подключении с клиента
логи:
-------
Connecting to 127.0.0.1:27015 ...
Trying p48/auth3/revEm
-------

У меня показывает что клиент стим, и правильно вычисляет его *sid (\bottomcolor\6\model\gordon\topcolor\30\name\SET\*sid\76561197966702444). Но droto все портит. Хорошо, что соль к серверу не добавили.

Ещё мне неясно как вычисляется чексумма в конце
STEAM_0:0:1
... 0A 4A 00 00 00
01 00 00 80 76 65 72 00 00 00 00 00 02 00 00 00 01 00 10 01 41 44 46 4E 4C 4F 4C 46
...
41 44 46 4E 4C 4F 4C 46 чек-сумма steamid

STEAM_0:0:2
02 00 00 80 ....................... 04 00 00 00 ............41 44 46 4E 4C 4F 4C 47

STEAM_0:0:3
03 00 00 80 ....................... 06 00 00 00 ............41 44 46 4E 4C 4F 4C 48

STEAM_0:0:4
04 00 00 80 ....................... 08 00 00 00 ............41 44 46 4E 4C 4F 4C 41

STEAM_0:0:5
05 00 00 80 ....................... 0A 00 00 00 ............41 44 46 4E 4C 4F 4C 42

STEAM_0:0:7
07 00 00 80 ....................... 0E 00 00 00 ............41 44 46 4E 4C 4F 4C 44

STEAM_0:0:8
08 00 00 80 ....................... 10 00 00 00 ............41 50 43 57 4B 46 42 4A

STEAM_0:0:9
09 00 00 80 ....................... 12 00 00 00 ............41 50 43 57 4B 46 42 4B

STEAM_0:0:12
0C 00 00 80 ....................... 18 00 00 00 ............41 50 43 57 4B 46 42 4E

STEAM_0:0:13
0D 00 00 80 ....................... 1A 00 00 00 ............41 50 43 57 4B 46 42 4F

STEAM_0:0:14
0E 00 00 80 ....................... 1C 00 00 00 ............41 50 43 57 4B 46 42 50

STEAM_0:0:18
12 00 00 80 ....................... 24 00 00 00 ............41 44 46 4E 4C 4F 51 53



STEAM_0:0:10
0A 00 00 80 ....................... 14 00 00 00 ............41 50 43 57 4B 46 42 4C

STEAM_0:0:100
64 00 00 80 ....................... C8 00 00 00 ............41 44 46 4E 4C 4F 51 49

STEAM_0:0:1000000000
00 CA 9A 3B ....................... 00 94 35 77 ............41 42 4B 4D 4D 4C 42 53

STEAM_0:0:2147483647
FF FF FF FF ....................... FE FF FF FF ............41 44 48 47 4A 4B 56 53




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 15 июня 2015 19:58
· Личное сообщение · #2

И наработки-то где? Адреса процедур, дизасм листинги?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 15 июня 2015 20:04
· Личное сообщение · #3

игроманы на сайт игроманов, здесь вам делать нечего, за вас никто ничего не будет изучать



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 15 июня 2015 20:05
· Личное сообщение · #4

Я вообще не понял о чем речь. Впрочем, как и 90% этого сайта тоже
Changer STEAM by OSTROG - это хрень, которая меняет ID стима (К.О.) для CS 1.6
--> dtopto <-- это, судя по всему, плагин, который создает SteamID, по serial number харда (традиционный способ).
Я не понимаю, например, самого элементраного - какая связь между двумя этими программами и зачем их нужно вместе юзать??



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 15 июня 2015 20:37
· Личное сообщение · #5

ELF_7719116 пишет:
какая связь между двумя этими программами и зачем их нужно вместе юзать??

Чтобы читерить и после бана перезаходить на тот же сервер, очевидно же.

| Сообщение посчитали полезным: unknownproject

Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 16 июня 2015 07:33
· Личное сообщение · #6

TryAga1n пишет:
Чтобы читерить и после бана перезаходить на тот же сервер, очевидно же.

Я уже в более глубоком смысле имел ввиду (непосрдественной роли): dtopto генерирует, Changer меняет?
По идее, у топикастера, получается, все проблемы на начальном этапе (с dtopto). Но потом, склыдвается впечатление, что всё наоборот.



Ранг: 3.4 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 16 июня 2015 10:19 · Поправил: Manio133
· Личное сообщение · #7

Я думал люди в теме. Вот тема, которая давно подымалась на ресурсе --> Link <--
Цель поста, раскрыть алгоритм генерации steam_id модулем ssteam.dll, и проблемы которые возникают с dproto, который узнает, что клиент подменяет steam id и не добавляет 76561197960265728, при вычислении sid. ssteam.dll позволяет генерить steam_id в виде набора байт при передачи пакета "connect 48" от клиента контры к серверу контры, которые предаются в момент коннекта.
При подключении клиента контры cs1.6 к серверу контры. От клиента к серверу отправляется пакет
00000000 | FF FF FF FF 63 6F 6E 6E 65 63 74 20 34 38 20 37 | яяяяconnect 48 7
00000010 | 35 36 34 36 35 37 32 30 20 22 5C 70 72 6F 74 5C | 56465720 "\prot\
00000020 | 33 5C 75 6E 69 71 75 65 5C 2D 31 5C 72 61 77 5C | 3\unique\-1\raw\
00000030 | 73 74 65 61 6D 5C 63 64 6B 65 79 5C 38 32 37 34 | steam\cdkey\8274
00000040 | 38 39 32 37 34 38 38 62 31 35 38 38 62 39 30 30 | 8927488b1588b900
00000050 | 31 65 35 37 62 34 38 39 66 62 35 66 22 20 22 5C | 1e57b489fb5f" "\
00000060 | 5F 63 6C 5F 61 75 74 6F 77 65 70 73 77 69 74 63 | _cl_autowepswitc
00000070 | 68 5C 31 5C 62 6F 74 74 6F 6D 63 6F 6C 6F 72 5C | h\1\bottomcolor\
00000080 | 36 5C 63 6C 5F 64 6C 6D 61 78 5C 31 32 38 5C 6D | 6\cl_dlmax\128\m
00000090 | 6F 64 65 6C 5C 67 6F 72 64 6F 6E 5C 6E 61 6D 65 | odel\gordon\name
000000A0 | 5C 53 45 54 5C 74 6F 70 63 6F 6C 6F 72 5C 33 30 | \SET\topcolor\30
000000B0 | 5C 74 72 61 6E 73 6C 69 74 5C 31 5C 5F 76 67 75 | \translit\1\_vgu
000000C0 | 69 5F 6D 65 6E 75 73 5C 31 5C 63 6C 5F 75 70 64 | i_menus\1\cl_upd
000000D0 | 61 74 65 72 61 74 65 5C 31 30 31 5C 63 6C 5F 6C | aterate\101\cl_l
000000E0 | 63 5C 31 5C 63 6C 5F 6C 77 5C 31 5C 72 61 74 65 | c\1\cl_lw\1\rate
000000F0 | 5C 32 35 30 30 30 5C 68 77 70 5C 31 22 0A 4A 00 | \25000\hwp\1".J.
00000100 | 00 00 B6 1B 31 00 76 65 72 00 00 00 00 00 6C 37 | ..¶.1.ver.....l7
00000110 | 62 00 01 00 10 01 41 4F 4A 54 49 5A 50 45 00 00 | b .....AOJTIZPE..
00000120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000130 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000150 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000170 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000190 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
000001A0 | 00 00 00 00 20 00 00 00 01 00 00 00 00 00 00 00 | .... ...........

Самое интересное -- это набор выделенных байт, ответственных за генерирование steam id.
В данном пакете генериться STEAM_0:0:3218358.
Интересующий набор байт:
B6 1B 31 00 76 65 72 00 00 00 00 00 6C 37 62 00 01 00 10 01 41 4F 4A 54 49 5A 50 45

младший - старший байты (переворачиваем, для вычисления значения в dec)
B6 1B 31 00 -> 00 31 1B B6 = 3218358
6C 37 62 00 -> 00 62 37 6C = 6436716 (3218358 * 2) двойное его значение
41 4F 4A 54 49 5A 50 45 -> "магическая" чек-сумма, которая вычисляется хитрым способом.
Этот хитрый способ я хочу найти, но не знаю метода. Как мне вскрыть алгоритм генерации не вдаваясь в дизассемблирование ssteam.dll и dproto, а оперируя данными пакета и изменения байтов в нем. Вот я и снял различные наборы байт, для различных steam id, заданных через steam id changer by OSTROG.

Формула вычисления sid
STEAM_0:X:YYYYYY
sid = (X:YYYYYY * 2 + X) + 76561197960265728
sid = (3218358 * 2 + 0) + 76561197960265728
sid = 76561197966702444

Соответствует профилю в стиме (это пример, у меня много есть всяких других steam id)
http://steamcommunity.com/profiles/76561197966702444

Чтобы подключить модуль в контру нужно скопировать два файла в корень игры.
ssteam.asi
ssteam.dll

Использование:
1. Запустить контру
2. В консоли написать
steam_random_id 0
steam_set_id 3218358 (STEAM_0:0:3218358 )

Декриптовать никак нельзя?
Эти хвосты
STEAM_0:0:3218358
41 4F 4A 54 49 5A 50 45

STEAM_0:0:1
41 44 46 4E 4C 4F 4C 46

STEAM_0:0:2
41 44 46 4E 4C 4F 4C 47

STEAM_0:0:3
41 44 46 4E 4C 4F 4C 48

STEAM_0:0:4
41 44 46 4E 4C 4F 4C 41

STEAM_0:0:5
41 44 46 4E 4C 4F 4C 42

STEAM_0:0:7
41 44 46 4E 4C 4F 4C 44

Отсюда выходит частная закономерность (к примеру), что для
STEAM_0:0:6, будет этот "хвост"
41 44 46 4E 4C 4F 4C 43

При проверке на прокси (подстановке этого хвоста в пакет connect 48) получаем вменяемый адекват при вводе команды status:

hostname: Test server
version : 48/1.1.2.6 4554 insecure (10)
tcp/ip : 192.168.1.62:27018
map : de_dust2 at: 0 x, 0 y, 0 z
players : 1 active (32 max)

# name userid uniqueid frag time ping loss adr
# 1 "SET" 2 STEAM_0:0:6 0 00:04 14 0

Видим пользователя с STEAM_0:0:6 .
На своем тестовом сервере содержимое
cstrike\addons\metamod\plugins.ini

;; Metamod plugins.ini
; AMX Mod X 1.8.0

win32 addons\amxmodx\dlls\amxmodx_mm.dll
; win32 addons\booster\booster_mm.dll
; win32 addons\STATSME\dlls\sm_cstrike_mm.dll
win32 addons\dproto\dproto.dll
; Enable this instead for binary logging
; win32 addons\amxmodx\dlls\amxmodx_bl_mm.dll

В консоли hlds сервера вводи команду meta list
meta list
Currently loaded plugins:
description stat pend file vers src load unlod
[ 1] AMX Mod X RUN - amxmodx_mm.dll v1.8.2 ini Start ANY
[ 2] dproto_EF RUN - dproto.dll v0.9.548 ini Start Never
[ 3] Fun RUN - fun_amxx.dll v1.8.2 pl1 ANY ANY
[ 4] Engine RUN - engine_amxx.dll v1.8.2 pl1 ANY ANY
[ 5] FakeMeta RUN - fakemeta_amxx.dl v1.8.2 pl1 ANY ANY
[ 6] CStrike RUN - cstrike_amxx.dll v1.8.2 pl1 ANY ANY
[ 7] CSX RUN - csx_amxx.dll v1.8.2 pl1 ANY ANY

dproto ативирован

Стим id меняет, но сервер его видит как эмулирующий steam id

То есть когда я записал демку и посмотрел её в hex редакторе (искал по команде сервера fullserverinfo), то я нашел это
fullserverinfo "\*gamedir\cstrike"

 \bottomcolor\6\model\gordon\topcolor\30\name\SET\*sid\12

а должно быть (12+76561197960265728)
fullserverinfo "\*gamedir\cstrike"

 \bottomcolor\6\model\gordon\topcolor\30\name\SET\*sid\76561197960265740

Теперь, если я подставляю 3218358 -- получаю

fullserverinfo "\*gamedir\cstrike"

 \bottomcolor\6\model\gordon\topcolor\30\name\SET\*sid\6436716

а должно быть (6436716+76561197960265728= 76561197966702444)

fullserverinfo "\*gamedir\cstrike"

 \bottomcolor\6\model\gordon\topcolor\30\name\SET\*sid\76561197966702444
, что соответствовало бы профилю 76561197966702444

по http://steamidfinder.com/

http://steamcommunity.com/profiles/76561197966702444

Вот в чем проблема

Приложения:
https://www.dropbox.com/sh/kjwf3rwpe83t34b/AAAUgoukbwj81NG8x7XXOGTFa?dl=0




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 16 июня 2015 11:04
· Личное сообщение · #8

Manio133 пишет:
Как мне вскрыть алгоритм генерации не вдаваясь в дизассемблирование ssteam.dll и dproto

никак
Manio133 пишет:
а оперируя данными пакета и изменения байтов в нем

великий комбинатор? к гадалкам




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 16 июня 2015 11:16
· Личное сообщение · #9

Тема закрыта за нарушение п.9 правил форума, коль никаких дизасмов, адресов и тд выложено так и не было. На этом форуме работают с кодом, а не гадают на пакетах и кофе.


 eXeL@B —› Вопросы новичков —› Changer STEAM by OSTROG, что делать когда dproto искажает sid?
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати