Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Инжектим на C#| Injection on C#

-

Разработка ПО для Perfect World

- Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World

Ответ
 
Опции темы
Старый 20.06.2012, 23:14   #1
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
Post Инжектим на C#| Injection on C#

Добрый день!
Считается что C# сложнее для использования инжектов чем Delphi. Хочу раз и навсегда развеять этот миф.

Проблема часто в том, что в C# нет встроенного asm-а, а практически все примеры функций для внедрения выкладываются на Delphi. И каждый программист придумывает для себя свои способы для внедрения байт-кода в процесс игры. Для этой цели существует класс ASM для C#. Он абстрагирует программиста от байт-кода и заменяет его привычными командами asm-а. Чем облегчает жизнь и новичков и тех кто уже пожил.

Хочу с вами поделиться этим классом. Он облегчает перевод функций написанных на Delphi и других языках где есть встроенный asm(С++, Power Basic и др.) .
Чтобы не грузить объяснениями я добавил этот класс в PW FrameWork (а так же добавил несколько функций в него и пару переделал для личных и возможно в будущем ваших целей) и добавил в решение Демо проект по использованию Инжекта на C#, а так же пример функции на Delphi и ее перевод на C# с использованием класса ASM.

Итак во вложении Пример использования класса ASM для Инжекта и PW FrameWork (с моими правками и классом ASM).

Всем комфортного кодинга!
Вложения
Тип файла: zip Inject Example on C#.zip (563.7 Кб, 443 просмотров)
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
  Ответить с цитированием
7 пользователя(ей) сказали cпасибо:
/GeG/ (22.07.2012), 388672 (25.08.2013), krysun (21.06.2012), Link's (22.09.2012), samosi (21.06.2012), vladoscom93 (09.08.2012), whoami (19.09.2012)
Старый 21.06.2012, 01:29   #2
 Разведчик
Аватар для vogel
 
vogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личность
Регистрация: 17.09.2009
Сообщений: 46
Популярность: 1187
Сказал(а) спасибо: 8
Поблагодарили 50 раз(а) в 13 сообщениях
 
По умолчанию Re: Инжектим на C#| Injection on C#

FASM_Managed ? BlackMagic ?
  Ответить с цитированием
Старый 21.06.2012, 16:52   #3
 Разведчик
Аватар для samosi
 
samosi на правильном путиsamosi на правильном пути
Регистрация: 23.12.2011
Сообщений: 42
Популярность: 192
Сказал(а) спасибо: 26
Поблагодарили 11 раз(а) в 9 сообщениях
 
По умолчанию Re: Инжектим на C#| Injection on C#

krukovis вот у меня вопрос а как передать UInt значение так как wid его требует а в int не влезет wid.
Вот код
Код:
private void PickWall(int wid, int type)
        {
            int intProcID = this.ProcessID;
            int Address = 0x0489470;

            asm.Pushad();
            asm.Mov_EAX(BaseAddress);
            asm.Mov_EAX_DWORD_Ptr_EAX();
            asm.Mov_EAX_DWORD_Ptr_EAX_Add(0x1c);
            asm.Mov_ESI_DWORD_Ptr_EAX_Add(0x34);
            asm.Mov_EAX(type);
            asm.Push_EAX();
            asm.Mov_EDX(wid);//Вот тут та и должно дыть uint а если эго поставить оно орет.
            asm.Push_EDX();
            asm.Mov_EDX(Address);
            asm.Call_EDX();
            asm.Popad();
            asm.Ret();
            asm.RunAsm(intProcID, 0);
        }
  Ответить с цитированием
Старый 21.06.2012, 17:02   #4
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: Инжектим на C#| Injection on C#

Цитата:
Сообщение от samosiПосмотреть сообщение
krukovis вот у меня вопрос а как передать UInt значение так как wid его требует а в int не влезет wid.

У меня нормально работало с int.
Вот старая функция:
Код:
    /// <summary> Поднятие лута и Копка ресурсов(переделано) </summary>
    /// <param name="ItemWorldID">WorldID ресурса (SN)</param>
    /// <param name="ItemType">Type ресурса (0-лут, 1-шахта)</param>
    /// 
    public void PickLoot(int ItemWorldID, int ItemType)
    {
        int intProcID = ProcessID;
        int CallAddress = 0x469b40;
        //ASM asm = new ASM();
        asm.Pushad();
        asm.Mov_ECX_DWORD_Ptr(BaseAddress);
        asm.Mov_ECX_DWORD_Ptr_ECX_Add(0x1c);
        asm.Mov_ECX_DWORD_Ptr_ECX_Add(0x34);
        asm.Push68(ItemType);
        asm.Push68(ItemWorldID);
        asm.Mov_EAX(CallAddress);
        asm.Call_EAX();
        asm.Popad();
        asm.Ret();
        asm.RunAsm(intProcID, 0);
    }
Добавлено через 2 минуты
Считывай WID в int и передавай в int. Просто у тебя WID будет отрицательное. Но какая разница. Все нормально отрабатывает.
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------

Последний раз редактировалось krukovis; 21.06.2012 в 17:04. Причина: Добавлено сообщение
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
388672 (25.08.2013), samosi (21.06.2012)
Старый 21.06.2012, 17:06   #5
 Разведчик
Аватар для samosi
 
samosi на правильном путиsamosi на правильном пути
Регистрация: 23.12.2011
Сообщений: 42
Популярность: 192
Сказал(а) спасибо: 26
Поблагодарили 11 раз(а) в 9 сообщениях
 
По умолчанию Re: Инжектим на C#| Injection on C#

Теперь уже понял как обращаться с инжектами на C#. Благодарствую.

Добавлено через 5 минут
krukovis, Вот у меня почему то оно ругаеца что wid uint а вот и сам он 3222277307. В чем может быть проблема.

Добавлено через 9 минут
Так все понял. Надо из игры читать вид как инт. Все работает спс.

Последний раз редактировалось samosi; 21.06.2012 в 17:16. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 21.06.2012, 17:20   #6
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: Инжектим на C#| Injection on C#

Цитата:
Сообщение от samosiПосмотреть сообщение
krukovis, Вот у меня почему то оно ругаеца что wid uint а вот и сам он 3222277307. В чем может быть проблема.

А моя функа работает? Не забудь адрес только поправить на сегодняшний перед тестом.
Проблема в том, что не работает класс ASM с UInt, только с Int или Int32. Передавай в функцию int wid. И считывай MemoryManager.ReadInt. И все будет работать.

Добавлено через 3 минуты
Или конвертируй в Int тут:
asm.Mov_EDX(wid);//Вот тут та и должно дыть uint а если эго поставить оно орет.
меняй на:
asm.Mov_EDX(Convert.ToInt32(wid));
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------

Последний раз редактировалось krukovis; 21.06.2012 в 17:23. Причина: Добавлено сообщение
  Ответить с цитированием
Пользователь сказал cпасибо:
388672 (25.08.2013)
Старый 16.07.2012, 12:10   #7
 Разведчик
Аватар для phoenixusa
 
phoenixusa никому не известный тип
Регистрация: 12.01.2012
Сообщений: 10
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Инжектим на C#| Injection on C#

Движение по координатам, в режиме полета - перс самостоятельно не встает на полет, это у меня косяк или это не закладывалось? (использую твой пример с инжектом)
  Ответить с цитированием
Старый 16.07.2012, 12:28   #8
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: Инжектим на C#| Injection on C#

Цитата:
Сообщение от phoenixusaПосмотреть сообщение
Движение по координатам, в режиме полета - перс самостоятельно не встает на полет, это у меня косяк или это не закладывалось? (использую твой пример с инжектом)

Сам на полет не встает. И в зависимости от того на полете или пешком не меняет режим walk_mode - пешком или на полете. Показано только движение по координатам как самая сложная функция для перевода из ассемблера в методы класса ASM.
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
  Ответить с цитированием
Старый 22.07.2012, 23:50   #9
 Разведчик
Аватар для /GeG/
 
/GeG/ скоро будет известен/GeG/ скоро будет известен/GeG/ скоро будет известен/GeG/ скоро будет известен
Регистрация: 27.06.2011
Сообщений: 30
Популярность: 351
Сказал(а) спасибо: 25
Поблагодарили 144 раз(а) в 13 сообщениях
Отправить сообщение для /GeG/ с помощью Skype™
 
По умолчанию Re: Инжектим на C#| Injection on C#

Хотел сделать с помощью этого инжекта что-то типа прогулки по вейпоинтам. Но прописав несколько WalkTo, персонаж идёт только в одно место. Подскажите, как можно реализовать такую "прогулку по вейпоинтам".
  Ответить с цитированием
Старый 23.07.2012, 00:19   #10
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: Инжектим на C#| Injection on C#

Цитата:
Сообщение от /GeG/Посмотреть сообщение
Хотел сделать с помощью этого инжекта что-то типа прогулки по вейпоинтам. Но прописав несколько WalkTo, персонаж идёт только в одно место. Подскажите, как можно реализовать такую "прогулку по вейпоинтам".

Может надо это делать в цикле?
Алгоритм м.б. примерно такой:
Пока не дошли до точки 1 - идем в эту точку.
Как дошли - идем во вторую.
...
Пока не дойдем до последней.
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------

Последний раз редактировалось krukovis; 23.07.2012 в 00:23.
  Ответить с цитированием
Пользователь сказал cпасибо:
/GeG/ (25.07.2012)
Старый 05.08.2012, 11:36   #11
 Разведчик
Аватар для fatalistik
 
fatalistik никому не известный тип
Регистрация: 03.04.2010
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Инжектим на C#| Injection on C#

krukovis, Подскажи пожалуйста, как правильно пользоваться классом OffsetRetriever (как я понимаю, он нужен для поиска оффсетов в файле elementclient.exe, верно?)?
  Ответить с цитированием
Старый 05.08.2012, 12:29   #12
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: Инжектим на C#| Injection on C#

Цитата:
Сообщение от fatalistikПосмотреть сообщение
krukovis, Подскажи пожалуйста, как правильно пользоваться классом OffsetRetriever (как я понимаю, он нужен для поиска оффсетов в файле elementclient.exe, верно?)?

OffsetRetriever ищет смещения в запущенном процессе игры по маске. Как им пользоваться - долго объяснять и это выходит за рамки темы данной ветки. Возможно в будущем напишу статью с подробными комментариями, но скоро не обещаю.
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
  Ответить с цитированием
Старый 19.09.2012, 14:32   #13
 Сержант
Аватар для whoami
 
whoami на правильном путиwhoami на правильном пути
Регистрация: 07.09.2010
Сообщений: 124
Популярность: 147
Сказал(а) спасибо: 22
Поблагодарили 87 раз(а) в 18 сообщениях
 
По умолчанию Re: Инжектим на C#| Injection on C#

krukovis, на самом деле, он ищет не в процессе, а в файле elementclient.exe на диске, зоторый был запущен Нужен для поиска оффсетов и адресов по шаблонам. Например, некий оффсет меняется от версии к версии, но в коде клиента различных версий используется всегда в одной и той же последовательности команд, например:
PUSH ECX
XOR ECX, ECX
MOV EAX, [EDX+OFF_1]

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

Вообще, класс ASM полезный, но слишком сильно дублирует возможности MemoryManager2. Я бы сделал класс, который вообще ничего не знает о процессах, тупо сериализует ассемблерные команды в массив байт, который потом можно было бы записать в память процесса через MemPtr.Bytes, и выполнить с помощью MemPtr.CreateRemoteThread()
  Ответить с цитированием
Старый 19.09.2012, 17:49   #14
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: Инжектим на C#| Injection on C#

Цитата:
Сообщение от whoamiПосмотреть сообщение
krukovis, на самом деле, он ищет не в процессе, а в файле elementclient.exe на диске, зоторый был запущен

Да, когда я писал, я думал что он ищет в открытой памяти процесса, а когда решил использовать в проекте PerfectAutoLogin, оказалось, что в файле. Это очень не удобно, если на elementclient навешена обертка - такое часто встречается на фришках.
Я дописал в класс OffsetRetriever несколько методов для работы с открытой памятью. Добавил поиск не только смещений, но еще и адресов функций для инжектов. Пример работы можно посмотреть в PerfectAutoLogin последней версии. Исходники последней версии PWFrameWork могу кинуть в личку. Но это все равно не конечный вариант. Хочу еще улучшить - переводить байт-код в строку и уже эту строку разбирать с помощью регулярных выражений. Мне кажется это должно быть быстрее и позволит составлять маски любой сложности и более гибко. Если есть какие то мысли по этому поводу - прошу озвучить.
Ты больше ничего не делал с фреймворком?
Можешь откомментировать класс MemoryManager2?


Цитата:
Сообщение от whoamiПосмотреть сообщение
Вообще, класс ASM полезный, но слишком сильно дублирует возможности MemoryManager2. Я бы сделал класс, который вообще ничего не знает о процессах, тупо сериализует ассемблерные команды в массив байт, который потом можно было бы записать в память процесса через MemPtr.Bytes, и выполнить с помощью MemPtr.CreateRemoteThread()

Я не понимаю в чем дублирование MemoryManager2. Поясни плиз. Класс ASM как раз ничего не знает о процессах, а просто переводит псевдо-ассемблерные команды в байт код, а уже потом инжектит его.

В данные момент у меня новая версия класса ASM и новый класс для работы с памятью, вместо MemoryManager. Я переписал MemoryManager для работы с несколькими окнами и добавил несколько дополнительных свойств.

Все это было нужно чтобы решить большую проблему при внедрении своего кода в процесс игры. При инжекте кода в процесс игры, через какое то время, память перестает выделяться и инжекты перестают работать. Чтобы решить эту проблему - я переписал класс для работы с памятью. Теперь память у меня выделяется один раз - при открытии памяти и вся работа с памятью строится на работе с этой выделенной страницей. Так же я добавил возможность работы с несколькими окнами.

В паблик пока тоже не выкладывал. Если кому нужно - могу кинуть в личку. Просьбы, соответственно, тоже прошу направлять в ЛС.
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------

Последний раз редактировалось krukovis; 20.09.2012 в 21:23.
  Ответить с цитированием
Старый 26.09.2012, 15:46   #15
 Сержант
Аватар для whoami
 
whoami на правильном путиwhoami на правильном пути
Регистрация: 07.09.2010
Сообщений: 124
Популярность: 147
Сказал(а) спасибо: 22
Поблагодарили 87 раз(а) в 18 сообщениях
 
По умолчанию Re: Инжектим на C#| Injection on C#

krukovis, регулярные выражения для таких задач - слишком медленные. Хоть и мощная штука.
MemoryManager - это было в самой первой версии PWFW, сделано первоначальным разработчиком библиотеки =) Я её почти не трогал, оставил для совместимости. MemoryManager2 - более удобная штука, плюс позволяет работать с несколькими процессами (в т.ч. с текущим) одновременно, с внутриигровыми списками, мэпами и т.д.
А чтобы память не переставала выделяться - её надо освобождать
  Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] SQL injection carl1993 Общение и обсуждение, архив Lineage 2 3 19.05.2012 13:59
faild injection dll FABIK Общение и обсуждение, архив Point Blank 1 05.11.2011 12:48
SQL injection с ЛК KillerTT Общение и обсуждение, архив Lineage 2 0 04.07.2011 01:32

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 03:26.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net