<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Flopo4o</title><generator>teletype.in</generator><description><![CDATA[Flopo4o]]></description><image><url>https://img2.teletype.in/files/54/6b/546b27ab-d68a-4da8-b74d-d76a240b2bfa.png</url><title>Flopo4o</title><link>https://teletype.in/@flopo4o</link></image><link>https://teletype.in/@flopo4o?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=flopo4o</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/flopo4o?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/flopo4o?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Fri, 10 Apr 2026 09:03:16 GMT</pubDate><lastBuildDate>Fri, 10 Apr 2026 09:03:16 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@flopo4o/csgo-idle</guid><link>https://teletype.in/@flopo4o/csgo-idle?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=flopo4o</link><comments>https://teletype.in/@flopo4o/csgo-idle?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=flopo4o#comments</comments><dc:creator>flopo4o</dc:creator><title>IDLE на запросах.</title><pubDate>Sun, 16 Mar 2025 18:10:50 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/b4/7b/b47b6e3c-e782-4837-9604-979a06ca7c80.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/e4/1d/e41d6681-35d3-43d4-8a97-d79aaa0d3ae7.png"></img>IDLE на запросах.]]></description><content:encoded><![CDATA[
  <blockquote id="6gvl">Данная статья носит исключительно образовательный характер. Автор не несёт ответственности за любой ущерб, причинённый читателями третьим лицам или сервисам при использовании полученных знаний.</blockquote>
  <blockquote id="kqiZ">Любые упоминания сторонних лиц и сервисов в статье используются исключительно в контексте изложения материала и не несут рекламного характера.</blockquote>
  <p id="OnzJ"></p>
  <h2 id="Вступление">Вступление</h2>
  <section style="background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Trlx">Хола бола, у микрофона <a href="https://t.me/flopo4o" target="_blank">Флопа</a>.</p>
    <p id="bXw7">В данной статье будет рассмотрен способ IDLE-фарма без окон.</p>
    <p id="dHAi">Наверняка каждый олд помнит, как прекрасно было фармить кейсы без прайма. Для этого необходимо было приобрести специальный сервер.</p>
    <p id="7gG2">Сервер состоял из минималистичной карты и ключевого элемента – плагина &quot;<strong>Drop Summoner</strong>&quot;. Этот плагин был создан разработчиками кастомных серверов Steam исключительно для развлечения. Однако авторы не осознавали истинный потенциал своего творения, чего не скажешь о фермерах, которые быстро поняли его практическую ценность.</p>
    <p id="Nld8">Суть фарма заключалась в следующем: нужно было одновременно подключить к серверу не менее двух аккаунтов(максимум 64) и удерживать их на сервере в течение 4 часов. <strong>Плагин каждые 5 минут пытался призвать выпадение дропа для каждого подключенного аккаунта.</strong> Если аккаунт успешно получал дроп, плагин автоматически исключал его из списка активных участников.</p>
    <p id="i5N1">Самым известным поставщиком серверов был Rexto, который, в том числе, использовал плагин от разработчика под ником Феникс.</p>
    <p id="Ziuo">В конечном итоге данный плагин инициировал запрос k_EMsgGCCStrike15_v2_MatchEndRunRewardDrops, это единственное для чего он нужен был, в версиях дороже была отправка о дропе в ТГ канал.</p>
  </section>
  <p id="YyCc"></p>
  <h2 id="Безопасность">Безопасность</h2>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Lrpo">На самом деле IDLE-фарм был самым безопасным методом из всех существовавших и существующих на текущий момент. <strong>Ни клиент, ни сервер не передавали никакой информации о действиях игроков на сервере.</strong> Steam воспринимал одинаково, бегаете ли вы или стоите без движения. Единственной информацией, передаваемой в систему, были количество убийств и текущий опыт.</p>
    <p id="j0c0">Скорее всего, именно из-за этого Valve приняли решение изменить систему дропа, так как определить и заблокировать аккаунты по паттерну &quot;афк на сервере&quot; было невозможно, ведь Steam не имел данных о реальном поведении игроков.</p>
  </section>
  <p id="NQsq"></p>
  <h2 id="Немного-о-Tedon">Немного о Tedon</h2>
  <section style="background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="pZqt">На просторах GitHub появился проект <a href="https://github.com/yourmnbbn/tiny-steam-client" target="_blank"><strong>tiny-csgo-client</strong></a>. Именно на его базе и был создан известный фарм без окон, когда множество процессов Steam запускались через песочницу, и к каждому подключался Tiny Client.</p>
    <p id="zPLq"><strong>В конечном итоге Tedon взял этот проект без каких-либо модификаций и нагло выдал его за свою разработку.</strong> Изначально всё было понятно, когда софт для фарма на запросах работает, а обыкновенная программа для запуска аккаунтов в авасте постоянно вылетает. Что было своровано, а что разработано)</p>
    <p id="l28O">До сих пор у этих ребят осталась своя фишка в виде бесконечного обилия багов.</p>
    <p id="mkAY">К большому удивлению, Tedon не воспользовался смежным проектом — <a href="https://github.com/yourmnbbn/tiny-csgo-server" target="_blank"><strong>tiny-csgo-server</strong></a>, который позволял запускать IDLE-сервер без возможности прямого подключения игроков, но при этом корректно выполнял все запросы, необходимые для выпадения кейсов.</p>
    <p id="Y4m2">Данная часть написана не с целью кого-либо оскорбить, а для того, чтобы отдать должное настоящим разработчикам, заслуживающим внимания и признания, чьи проекты были использованы без упоминания авторства.</p>
  </section>
  <p id="fnFN"></p>
  <h2 id="Техническая-реализация-Tiny-Client">Техническая реализация Tiny Client</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="gwRY">Поскольку Steam Client написан на C++ это даёт возможность вызывать методы через публичные интерфейсы, они были разработаны для внутриигрового взаимодействия. Старые версии этих интерфейсов имели скрытые возможности по авторизации, получения <strong>TICKET </strong>для игр Valve с помощью вызова метода, этим и воспользовался разработчик. Он подключался к уже существующему Steam клиенту и вызывал методы, как это делает игра.</p>
    <p id="4MIU">Информация о них расположена тут: <a href="https://github.com/alliedmodders/hl2sdk/tree/csgo" target="_blank">https://github.com/alliedmodders/hl2sdk/tree/csgo</a></p>
  </section>
  <p id="zpY9"></p>
  <h2 id="Техническая-реализация-нашей-версии">Техническая реализация нашей версии</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="RVKn">Проект для фарма без окон и без использования Steam-клиентов был реализован на .NET с помощью библиотеки <a href="https://github.com/SteamRE/SteamKit" target="_blank"><strong>SteamKit2</strong></a>.</p>
    <p id="4849">Основой сетевого клиентского обмена информацией в Steam является протокол <strong>Protobuf</strong>.</p>
    <p id="NoeH">В самой библиотеке SteamKit2 уже присутствует множество примеров авторизации, доступных в официальном репозитории, поэтому здесь мы сразу перейдём к сути процесса.</p>
    <p id="SOYm">Система работы была следующей:</p>
    <h3 id="Клиент:">Клиент:</h3>
    <ol id="ntzi">
      <li id="ZTWf">Подключение к игровому координатору (EGCBaseClientMsg.k_EMsgGCClientHello).</li>
      <li id="Nrj5">Инициализация подключения к серверу матчмейкинга (ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchmakingGC2ClientHello).</li>
      <li id="f4ew">Запрос на подключение к эмулированному IDLE-серверу (ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRequestJoinServerData).</li>
      <li id="goS5">Далее необходимо было создать так называемый <strong>TICKET</strong>, подтверждающий прохождение проверки VAC. Одним из ключевых условий была защита сервера с помощью VAC, поэтому требовалось формировать подпись, подтверждающую успешную верификацию модуля VAC. Это являлось наиболее сложной частью программы, так как малейшая ошибка приводила к отказу подключения с соответствующей VAC-ошибкой, аналогичной той, которая периодически возникает и в официальном клиенте CS.</li>
    </ol>
    <p id="T4yn">Созданный <strong>TICKET </strong>отправлялся в Steam и передавался серверу, который также должен был отправить его в Steam для подтверждения корректности подключения.</p>
    <p id="6BOM">После успешной верификации тикета у аккаунта появлялось 15 минут, в течение которых время нахождения на сервере засчитывалось Steam. По истечении этого времени тикет необходимо было обновлять и заново проходить процедуру верификации.</p>
    <h3 id="Сервер:">Сервер:</h3>
    <ol id="3ybV">
      <li id="YJ6u">Авторизация через анонимного пользователя, что доступно для игровых серверов.</li>
      <li id="Vvcb">Отправка базовой информации сервера (порт, название и т.д.) с помощью сообщения (EMsg.GSServerType).</li>
      <li id="T6K2">Инициализация подключения осуществлялась отправкой информации о текущих подключённых клиентах, их пинге и других параметрах (EMsg.AMGameServerUpdate).</li>
      <li id="XsBY">При каждом новом подключении клиента сервер должен был отправлять обновления (EMsg.AMGameServerUpdate) с актуальной информацией о подключённых клиентах и сетевой статистикой.</li>
      <li id="TLvy">Каждые 3 минуты отправлялся запрос (ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchmakingServerReservationResponse), подтверждающий, что клиент провёл необходимое время на сервере для засчитывания игрового времени Steam.</li>
      <li id="2NRk">Каждые 5 минут отправлялся запрос (ECsgoGCMsg.k_EMsgGCCStrike15_v2_MatchEndRunRewardDrops), инициирующий процесс выпадения дропа на аккаунтах.</li>
    </ol>
    <p id="N5xj">Благодаря эмуляции, серверу и клиенту не надо было иметь постоянное соединение через сокет, как это реализовано в Tiny Server и официальном сервере Steam. Надо было лишь уведомить Steam с помощью клиента и сервера, что аккаунт успешно авторизовался.</p>
    <p id="mzLs">Также важной необходимо было поддерживать так называемый HeartBeat, специальные системные сообщения, которые говорят Steam сети, что клиент активен. Это надо делать со стороны сервера и клиента.</p>
  </section>

]]></content:encoded></item></channel></rss>