Shared secret steam android

Shared secret steam android

Basically you aren’t supposed to be able to access the shared secret it is just meant to go from the app to Valve. Only that app is meant to be able to see it.

With your phone rooted you can use things that would allow you to see it by bypassing the protection mechanisms. If you can’t root your phone you won’t be able to use it for what you want.

The SSA also prohibits automation of the account so even though there other other methods you will not get help on how to do it.

If you bork it up, it’s on you.

Thing is, the tutorials on google either require rooted phone (i cant root it) or something else i cant do

If you bork it up, it’s on you.

Thing is, the tutorials on google either require rooted phone (i cant root it) or something else i cant do

Only way I can think of is to install SteamDesktopAuthenticator [github.com] , setup new account, export data to .maFile and read shared secret from there.

But this will disable Steam Guard on your phone.

Источник

Python. Создаем Steam бота.

Предисловие.

В этом уроке вы научитесь работать с библиотекой steampy, на которой можно создать steam бота.

Подготовка

Первым делом, получите steam_api ключ, он нам понадобится для получения информации о трейдах. Получить его можно на сайте steam: https://steamcommunity.com/dev/apikey

Далее, понадобятся shared_secret и identity_secret, дающие полный доступ к вашему аккаунту.

Получить его можно в SDA в папке maFiles, при условии что вы не шифровали этот файл. Или на телефоне под управлением android с рут правами, к которому привязан steam.

Создайте текстовый файл steam_guard.json, и поместите туда следующий текст.

Steamid берем тут. В поле сайта, введите ссылку на аккаунт.

И установите библиотеку steampy, введя данную комманду в консоли.

Подтверждаем обмен.

Напишем основу стим бота.

Данный код отвечает за авторизацию на аккаунте.

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

И пройдите по данной ссылке.

STEAM_API_KEY — замените на свой.

Данная ссылка, это api запрос, который выводит информацию о входящих трейдах в json формате, подробнее здесь.

Нас, во всем этом месиве, интересует только tradeofferid. Он понадобится для подтверждения обмена. Теперь, скопируйте следующие строки в свой скрипт.

trade_id — замените на собственный.

И запустите скрипт.

В итоге, обмен принят без нашего участия, что круто.

Читайте также:  Android studio переход между activity по кнопке kotlin

Кидаем обмен.

Создайте новый скрипт, и поместите туда следующий код:

За отправку трейда отвечает функция make_trade_1_item, разберем её.

В качестве инвентаря выбрали инвентарь TF2

Получаем информацию о предметах инвентаря. И отсеиваем ненужное, с помощью функции find_item_in_inventory. На выходе, получаем словарь такого формата:

Далее, запаковываем предмет в Asset.

Asset принимает 2 аргумента:

  • id предмета
  • код игры (для TF2, это 440)

Наши предметы готовы, осталось подготовить предметы партнера. Сперва, получим инвентарь партнера.

Отсеем все ненужное, и закинем в Asset.

Ассеты собраны, время посылать трейд.

Заключение.

Данная библиотека, мне очень помогла в написании tf2.tm бота, который я упоминал здесь. Применив знания с данной статьи отсюда и отсюда, вы сможете написать похожего бота.

Источник

Работаем с SteamWorks. Часть 1

SteamWorks — это интерфейс, который обеспечивает разработку и публикацию инструментов для разработчиков игр. Он предоставляет возможность интеграции с клиентом Steam, интеграция с комьюнити, добавлять и редактировать достижения для игр и многое другое.

На данный момент доступ к SteamWorks можно получить если вы являетесь «гейм студией» и хотите распространять свое приложение в steam или через сервис Steam Greenlight, тем самым став партнером steam. Подробности здесь. Open SteamWorks это открытая реализация Steam api (дизассемблированная версия библиотек steam.)

“Open SteamWorks designed for people who know, what they do” — Ryan Stecker. Так автор открытой версии ответил на вопрос (не мой) о наличии дополнительной документации, вся документация которая есть в наличии, является комментариями в исходных кодах. Загрузить последнюю версию Open SteamWorks можно с сайта.

Я буду использовать Visual Studio, если у вас есть под рукой mingw, можете использовать его. Приступим к созданию консольного приложения (вы можете использовать пример test platform из open steamworks).
Подключаем необходимые заголовочные файлы.

Подключаем необходимые библиотеки для компиляции нашего приложения.

Получаем базу Steam с 12 версией интерфейса.
В дизассемблированном виде это компилируется как поиск в реестре пути до стима и подключение к нему.

Проверяем смогли ли мы получить базу.

Создаем пайпу для взаимодействия.

Подключаемся к глобальному пользователю (запущенный стим).

Проверка подключения к глобальному пользователю.

Получаем доступ к api v 12 интерфейса пользователя.

Получаем доступ к api v.13 и v. 1 интерфейса друзей.

Предостерегаю тех, кто будет использовать интерфейсы IClient (IClientUtils, IClientFriends, и т. д.), все эти интерфейсы перестают работать сразу после глобального обновления steam, ваше приложение будет выдавать ошибки, используйте ISteam (стабильный) изложенный выше, если очень нужно использовать функции из IClient интерфейсов, а такое иногда случается, скопируйте все важные DLL файлы для вашего приложения (можно посмотреть в таблице импорта) и держите в папке с вашим приложением.

Читайте также:  Delete all from sqlite android

Теперь мы попробуем сделать самую простую вещь, поменять статус в стиме. (api для смены статуса доступна в первой версии интерфейса)

Компилируем, запускаем и теперь мы имеем статус спит в стиме.

Получаем количество друзей.

Меняем свое имя

Перебираем наших друзей, получаем структуру SteamID(64bits) текущего друга по индексу, проверяем статус текущего друга, если равняется статусу онлайн и имя друга Crey, отсылаем ему сообщение.

Думаю теперь все понимают, что при помощи SteamWorks можно легко написать trade бота, для обмена вещей по «заданному курсу» и много чего интересного.

В следующих частях мы рассмотрим работу с IScreenshots, IUserstats(achievements), callbacks и возможно дело дойдет до написания бота.

Источник

guard¶

This submodule contains various functionality related to Steam Guard.

SteamAuthenticator provides methods for genereating codes and enabling 2FA on a Steam account. Operations managing the authenticator on an account require an instance of either MobileWebAuth or SteamClient . The instance needs to be logged in.

Adding an authenticator

Before you finalize the authenticator, make sure to save your secrets. Otherwise you will lose access to the account.

Once authenticator is enabled all you need is the secrets to generate codes.

You can obtain the authenticator secrets from an Android device using extract_secrets_from_android_rooted() . See the function docstring for details on what is required for it to work.

class steam.guard. SteamAuthenticator ( secrets=None, backend=None ) В¶

Add/Remove authenticator from an account. Generate 2FA and confirmation codes.

Parameters:
  • secret (dict) – a dict of authenticator secrets
  • backend ( MobileWebAuth , SteamClient ) – logged on session for steam user

steam_time_offset = None¶

offset from steam server time

how often to align time with Steam ( 0 never, otherwise interval in seconds)

dict with authenticator secrets

get_time ( ) В¶

Returns: Steam aligned timestamp
Return type: int

get_code ( timestamp=None ) В¶

Parameters: timestamp (int) – time to use for code generation
Returns: two factor code
Return type: str

get_confirmation_key ( tag=», timestamp=None ) В¶

trade confirmation key

Add authenticator to an account. The account’s phone number will receive a SMS code required for finalize() .

Parameters:
  • tag (str) – see generate_confirmation_key() for this value
  • timestamp (int) – time to use for code generation
Returns:
Raises: SteamAuthenticatorError

finalize ( activation_code ) В¶

Finalize authenticator with received SMS code

Parameters: activation_code (str) – SMS code
Raises: SteamAuthenticatorError

remove ( revocation_code=None ) В¶

Parameters: revocation_code (str) – revocation code for account (e.g. R12345)

After removing authenticator Steam Guard will be set to email codes

Doesn’t work via SteamClient . Disabled by Valve

Fetch authenticator status for the account

Raises: SteamAuthenticatorError
Returns: dict with status parameters
Return type: dict

create_emergency_codes ( code=None ) В¶

Generate emergency codes

Parameters: code (str) – SMS code
Raises: SteamAuthenticatorError
Returns: list of codes
Return type: list

A confirmation code is required to generate emergency codes and this method needs to be called twice as shown below.

Destroy all emergency codes

Raises: SteamAuthenticatorError

add_phone_number ( phone_number ) В¶

Add phone number to account

Parameters: phone_number ( str ) – phone number with country code
Returns: success (returns False on request fail/timeout)
Return type: bool

confirm_phone_number ( sms_code ) В¶

Confirm phone number with the recieved SMS code

Parameters: sms_code ( str ) – sms code
Returns: success (returns False on request fail/timeout)
Return type: bool

has_phone_number ( ) В¶

Check whether the account has a verified phone number

Returns: result
Return type: bool or None

Retruns None if the web requests fails for any reason

Test whether phone number is valid for Steam

Parameters: phone_number ( str ) – phone number with country code
Returns: see example output below
Return type: dict

Generate Steam 2FA code for login with current time

Parameters: shared_secret (bytes) – authenticator shared shared_secret
Returns: steam two factor code
Return type: str

steam.guard. generate_twofactor_code_for_time ( shared_secret, timestamp ) В¶

Generate Steam 2FA code for timestamp

steam two factor code

Parameters:
  • shared_secret (bytes) – authenticator shared secret
  • timestamp (int) – timestamp to use, if left out uses current time
Returns:

steam.guard. generate_confirmation_key ( identity_secret, tag, timestamp ) В¶

Generate confirmation key for trades. Can only be used once.

  • conf to load the confirmations page
  • details to load details about a trade
  • allow to confirm a trade
  • cancel to cancel a trade

Get time offset from steam server time via WebAPI

Parameters:
  • identity_secret (bytes) – authenticator identity secret
  • tag (str) – tag identifies what the request, see list below
  • timestamp (int) – timestamp to use for generating key
Returns:
Returns: time offset ( None when Steam WebAPI fails to respond)
Return type: int , None

steam.guard. generate_device_id ( steamid ) В¶

Generate Android device id

Parameters: steamid ( SteamID , int ) – Steam ID
Returns: android device id
Return type: str

steam.guard. extract_secrets_from_android_rooted ( adb_path=’adb’ ) В¶

Extract Steam Authenticator secrets from a rooted Android device

Prerequisite for this to work:

  • rooted android device
  • adb binary
  • device in debug mode, connected and paired

If you know how to make this work, without requiring the device to be rooted, please open a issue on github. Thanks

Parameters: adb_path (str) – path to adb binary
Raises: When there is any problem
Returns: all secrets from the device, steamid as key
Return type: dict

© Copyright 2019, Rossen Georgiev Revision 070e4a3c .

Источник

Читайте также:  Как очистит внутреннюю память андроид
Оцените статью