Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

В данном разделе обсуждаются вопросы, связанные с клиентской частью. Темы не относящиеся к тематике раздела будут перемещены или удалены, а авторы наказаны.
При создании темы кратко опишите проблему в ее названии! Темы с названиями "Как сделать?", "Помогите", "Вопрос" и т.п. будут удалятся!
2 страниц V   1 2

Исходники RevEmu или аналогов

Статус пользователя Metal Messiah
сообщение 22.9.2013, 18:38
Сообщение #1


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Доброго времени суток!

В виду того что не нашел ничего в сети, спрашиваю.
Появлялись ли в интернетах исходники КЛИЕНТСКИХ эмуляторов RevEmu, SteamEmu или аналогичных?
Делаю свою сборку, пришла в голову идея сделать эмулятор со своими шахматами и поэтессами.
Ищу пример c импортами/API т.к. механизм генерации SteamID будет собственный, чтобы исключить коллизии, которые присутствуют во всех текущих эмуляторах.


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя mazdan
сообщение 22.9.2013, 18:48
Сообщение #2


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Metal Messiah, не выйдет без коллизий же, если не вести общую базу


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 22.9.2013, 18:59
Сообщение #3


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(mazdan @ 22.9.2013, 20:48) *
Metal Messiah, не выйдет без коллизий же, если не вести общую базу

будет пиратский metalID, это вместо steamID


исходники есть
выкладывали на csmania или на рине
там советую поискать
а может и вру
уже точно не помню

Отредактировал: Legenda, - 22.9.2013, 19:14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 22.9.2013, 23:08
Сообщение #4


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Цитата
выкладывали на csmania или на рине

кого именно выкладывали там? Rev, Steam или экзотику? Пошел искать...


У меня собралась база информации обо всех кто заходил на мои сервера с конца лета 2012 и я вижу огромное количество совпадающих SteamEmu и некоторое (существенно меньшее) количество совпадающих RevEmu. Это точно разные люди, разные ПК и разные города / провайдеры.

То что совсем без коллизий невозможно - я знаю, доказано md5.
Но если использовать несколько характеристик "железа" вместо одной мне очень кажется что их можно уменьшить.
Ну и конечно же
Цитата(Legenda)
будет пиратский metalID, это вместо steamID

блек джек никто не отменял

Отредактировал: Metal Messiah, - 22.9.2013, 23:11


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 22.9.2013, 23:47
Сообщение #5


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(Metal Messiah @ 23.9.2013, 1:08) *
кого именно выкладывали там? Rev, Steam или экзотику? Пошел искать...


У меня собралась база информации обо всех кто заходил на мои сервера с конца лета 2012 и я вижу огромное количество совпадающих SteamEmu и некоторое (существенно меньшее) количество совпадающих RevEmu. Это точно разные люди, разные ПК и разные города / провайдеры.

То что совсем без коллизий невозможно - я знаю, доказано md5.
Но если использовать несколько характеристик "железа" вместо одной мне очень кажется что их можно уменьшить.
Ну и конечно же

блек джек никто не отменял

Rev точно ни кто не выкладывал ибо проект активно развивается
часть исходников esteamation был вроде как
больше ни чего не помню
пять лет почти прошло если не больше
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 23.9.2013, 7:55
Сообщение #6


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Metal Messiah, тут не в md5 дело то даже, стимайди коротковат просто, мне кажется для этих дел.


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя RedL1ne
сообщение 23.9.2013, 8:42
Сообщение #7


Стаж: 15 лет

Сообщений: 3828
Благодарностей: 1854
Полезность: 876

mazdan,
Почему нельзя увеличить? Стим айди тоже когда то был 3-5 символов.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Chuvi
сообщение 23.9.2013, 9:01
Сообщение #8


Стаж: 12 лет

Сообщений: 115
Благодарностей: 52
Полезность: 351

Если будешь делать свой механизм генерации SteamID, его нужно будет добавлять в Dproto.
В генерации SteamID у RevEmu до 2013-го года нет ничего сложного, лучше воспользоваться им.
Длина SteamID, насколько я помню, ограничена длиной unsigned(?) int.То есть максимальное значение у него может быть 2147483647, если он таки signed, и 4294967295, если он unsigned.

Да, я тут потихоньку пишу VoiceCodecFix с блекджеком итд итп...
Почему "потихоньку"? Да потому что уже человека так 3 обещали "вот-вот уже скоро" выпустить модуль для сервера. Ну, а раз так - значит я пишу модуль для повышения собственного скилла, ибо пользоваться им, скорее всего, мало кто будет.

В процессе написания этого asi-модуля я, внезапно, научился запускать движок, без использования hl.exe.
Теперь вот думал о том, что не мешало бы проэмулировать steam_api, если оно по каким-то причинам не запустилось. А тут такая тема...
Кстати, у меня почему-то не всегда получается пнуть SteamApi моим exe-шником, зато у движка контры это, обычно, удаётся (если запущен стим, естественно). В чём подвох- не понимаю.

Отредактировал: Chuvi, - 23.9.2013, 9:07
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 23.9.2013, 9:13
Сообщение #9


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

RedL1ne, не знаю, просто мне кажется оно прописано во многих местах. Status, длина в каких-нибудь пакетах и т.п. Кажется более простым вариант организовать отдельный поток типа как в античитах клинент\сервер


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 23.9.2013, 9:34
Сообщение #10


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

в любом случаи все то, что на клиенте можно подделать)
нужен механизм
клиент - сервер авторизации - hlds

Отредактировал: Legenda, - 23.9.2013, 9:34
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя neverminde
сообщение 23.9.2013, 11:40
Сообщение #11


Стаж: 15 лет

Сообщений: 1133
Благодарностей: 595
Полезность: 576

Вот сделаете новый эмуль, крок его сразу в dproto не добавит, да и добавит ли хз. Так что игроки будут бегать с VALVE_ID_LAN
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 23.9.2013, 11:52
Сообщение #12


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

neverminde, даже если и так, что с того? допилить системы бана\статистики не так сложно.


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Chuvi
сообщение 23.9.2013, 12:20
Сообщение #13


Стаж: 12 лет

Сообщений: 115
Благодарностей: 52
Полезность: 351

Цитата(neverminde @ 23.9.2013, 13:40) *
Вот сделаете новый эмуль, крок его сразу в dproto не добавит, да и добавит ли хз. Так что игроки будут бегать с VALVE_ID_LAN

Крок уже не занимается разработкой Dproto.
Как я понял, разработкой Dproto занимается этот товарищ.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 23.9.2013, 12:51
Сообщение #14


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(Chuvi @ 23.9.2013, 14:20) *
Крок уже не занимается разработкой Dproto.
Как я понял, разработкой Dproto занимается этот товарищ.

на сколько я помню
dproto пилят два человек lev и crock
аж с самого начала
еще с рина
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 23.9.2013, 19:20
Сообщение #15


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Ну во первых, если есть эмуль с исходниками, то он детектится дпрото как этот самый эмуль и ничего никуда добавлять не надо.
Просто ID будет генериться иначе.

Во вторых, с авторизацией будет конечно круто но нужны далеко не те мощности которые у меня есть, и на это очень быстро положат глаз копирасты, соответственно будут проблемы а они никому не нужны.

Делать свой античит я все равно собираюсь, т.к. ни один существующий меня не устраивает, но это чисто под свой сервер и его основная функция - эвристическое обнаружение постороннего вмешательства в процесс hl.exe, нужно будет только набрать много бета тестеров и обучить нейронную сеть.
А сборку я по определению распространяю среди игроков, которые не обязательно на моем сервере играть будут, следовательно запущенный античит стучащий на мой сервер мне не нужен только траффик жрать будет. Так что отдельный коннект в эмуляторе не вариант, придерживаемся традиционной схемы.

P.S. ксманию я вчера общарил, сырцы не нашел. Буду искать на рине.

P.S. 2. Chuvi, ты меня навел на мысль что "беспалевный чит" opengl32.dll в каталоге с КС это еще фигня, а вот ... дает целый полигон для экспериментов. Только вот мне интересно зачем при выходе из КС модуль выгружается, потом снова загружается и выгружается... Хотя я вообще отвлекся от основной своей идеи...

Отредактировал: Metal Messiah, - 23.9.2013, 21:30


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Chuvi
сообщение 23.9.2013, 22:54
Сообщение #16


Стаж: 12 лет

Сообщений: 115
Благодарностей: 52
Полезность: 351

Цитата(Metal Messiah @ 23.9.2013, 21:20) *
P.S. 2. Chuvi, ты меня навел на мысль что "беспалевный чит" opengl32.dll в каталоге с КС это еще фигня, а вот ... дает целый полигон для экспериментов. Только вот мне интересно зачем при выходе из КС модуль выгружается, потом снова загружается и выгружается... Хотя я вообще отвлекся от основной своей идеи...

Декомпильни hl.exe->WinMain
Код

//Какой-то код...
  _unlink("opengl32.dll");
//какой-то код.


Ну, а теперь, посмотрим что такое _unlink(char*)
Код
int __cdecl _unlink(const char *Filename)
{
  return remove(Filename);
}

int __cdecl remove(const char *Filename)
{
  unsigned __int32 v1; // eax@2
  int result; // eax@5

  if ( DeleteFileA(Filename) )
    v1 = 0;
  else
    v1 = GetLastError();
  if ( v1 )
  {
    _dosmaperr(v1);
    result = -1;
  }
  else
  {
    result = 0;
  }
  return result;
}


Забавно. hl.exe сама борется с opengl32.dll :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя neverminde
сообщение 23.9.2013, 23:07
Сообщение #17


Стаж: 15 лет

Сообщений: 1133
Благодарностей: 595
Полезность: 576

Цитата(Chuvi @ 23.9.2013, 23:54) *
Декомпильни hl.exe->WinMain
Забавно. hl.exe сама борется с opengl32.dll :)

Это же заплатка valve где-то с >6000 билда

Отредактировал: neverminde, - 23.9.2013, 23:07
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Chuvi
сообщение 23.9.2013, 23:18
Сообщение #18


Стаж: 12 лет

Сообщений: 115
Благодарностей: 52
Полезность: 351

Цитата(neverminde @ 24.9.2013, 1:07) *
Это же заплатка valve где-то с >6000 билда

Билд, который был с первым глобальным обновлением, насколько я помню, носил номер 5999. Или чуть меньше (влом рассчитывать :))
Мало ли кто не в курсе: номер билда у HL (а контра работает на движке халфы, точнее на GoldSrc) это не абстрактное число, взятое из головы.
Оно рассчитывается так: Дата_компиляции-дата_начала_разработки->количество дней между датами.
То есть между билдом 6027 и 6153 должно было пройти 126 дней.
6027 вышел 25-го апреля, 6153 - 29-го августа.
(30-25)(апрель)+31(май)+30(июнь)+31(июль)+29(август)=126.
Всё просто и понятно. И ничерта не понятно, если речь идёт про "номер патча". Впрочем, я отвлёкся...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 24.9.2013, 2:28
Сообщение #19


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(Chuvi @ 24.9.2013, 1:18) *
Билд, который был с первым глобальным обновлением, насколько я помню, носил номер 5999. Или чуть меньше (влом рассчитывать :))
Мало ли кто не в курсе: номер билда у HL (а контра работает на движке халфы, точнее на GoldSrc) это не абстрактное число, взятое из головы.
Оно рассчитывается так: Дата_компиляции-дата_начала_разработки->количество дней между датами.
То есть между билдом 6027 и 6153 должно было пройти 126 дней.
6027 вышел 25-го апреля, 6153 - 29-го августа.
(30-25)(апрель)+31(май)+30(июнь)+31(июль)+29(август)=126.
Всё просто и понятно. И ничерта не понятно, если речь идёт про "номер патча". Впрочем, я отвлёкся...

високосные года считаются?)
номер патча - это сугубо выдумки "игроков" по моему мнению)
есть версия игры, есть билд игры, а есть еще эмулятор и его версия - тут пока что все понятно)
что такое патч - сам не знаю...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Chuvi
сообщение 24.9.2013, 7:26
Сообщение #20


Стаж: 12 лет

Сообщений: 115
Благодарностей: 52
Полезность: 351

Цитата(Legenda @ 24.9.2013, 4:28) *
високосные года считаются?)
номер патча - это сугубо выдумки "игроков" по моему мнению)
есть версия игры, есть билд игры, а есть еще эмулятор и его версия - тут пока что все понятно)
что такое патч - сам не знаю...


Считаются.
В исходниках HL2:Beta есть файлик /engine/buildnum.cpp
Код
#include "quakedef.h"
#include "vstdlib/strtools.h"

//char *date = "Sep 30 2003"; // "Oct 24 1996";
char *date = __DATE__;

char *mon[12] =
{ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
char mond[12] =
{ 31,    28,    31,    30,    31,    30,    31,    31,    30,    31,    30,    31 };

class CBuildNumber
{
public:
    CBuildNumber( void )
    {
        ComputeBuildNumber();
    }
    
    // returns days since Oct 24 1996
    int    GetBuildNumber( void )
    {
        return m_nBuildNumber;
    }

private:
    void        ComputeBuildNumber( void )
    {
        int m = 0;
        int d = 0;
        int y = 0;

        for (m = 0; m < 11; m++)
        {
            if (Q_strncasecmp( &date[0], mon[m], 3 ) == 0)
                break;
            d += mond[m];
        }

        d += atoi( &date[4] ) - 1;

        y = atoi( &date[7] ) - 1900;

        m_nBuildNumber = d + (int)((y - 1) * 365.25);

        if (((y % 4) == 0) && m > 1)
        {
            m_nBuildNumber += 1;
        }

        //m_nBuildNumber -= 34995; // Oct 24 1996
        m_nBuildNumber -= 37527;  // Sep 30 2003
    }

    int            m_nBuildNumber;
};

// Singleton
static CBuildNumber g_BuildNumber;

//-----------------------------------------------------------------------------
// Purpose: Only compute build number the first time we run the app
// Output : int
//-----------------------------------------------------------------------------
int build_number( void )
{
    return g_BuildNumber.GetBuildNumber();
}

Да, если посчитать, 29.08.2013-6153 дня(спасибо, Excell :)), как раз получается : //m_nBuildNumber -= 34995; // Oct 24 1996
То есть этот файл, похоже, перекочевал из HL в HL2 с небольшими изменениями. С другой стороны, непонятно, почему у HL2 стоит дата 30 сентября 2003. Он, вроде, в этот день должен был выйти. Или разработчики таким методом реализовали обратный отчёт? :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: