1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Чем защититься на сервере?

Тема в разделе "Оффтопик", создана пользователем Kvaizer, 27 авг 2015.

  1. Автор темы
    Kvaizer

    Kvaizer Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    Kvaizer
    Всем привет, я пишу свой лаунчер на C# и тут я реализовал все методы защиты которые есть на высших проектах, но так подумал что сломать можно все и тут мне в голову пришла мысль защититься на сервере но вот думаю как строить огороды нет это мне не надо. Подкиньте идею для реализации.
    Всем привет из Нижнего Новгорода:)
     
  2. Автор темы
    Kvaizer

    Kvaizer Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    Kvaizer
    Серверную защиту, обойти не реально.
     
  3. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    Что-то не верится. @HoShiMin
    И ещё раз @HoShiMin
     
  4. Автор темы
    Kvaizer

    Kvaizer Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    Kvaizer
    Лаунчер все-равно для паблика.
     
  5. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    Тем более не верится
     
  6. appl3_w0rm

    appl3_w0rm Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    appl3_w0rm
    Ага, государство просто так тратит миллионы и миллиарды на такую защиту, компании тратят, но их ломают.
     
  7. Автор темы
    Kvaizer

    Kvaizer Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    Kvaizer
    Увидим на реализации.
    Мне кажется или ньюби, тут не доверяют?
     
  8. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    Угу. Ссылку скинуть не забудь
     
  9. Автор темы
    Kvaizer

    Kvaizer Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    Kvaizer
    Ваш сарказм здесь увы не уместен, я попросил мне подкинуть идею для реализации защиты на сервере, а не критиковать мои действия, накинулась как пираньи.
     
  10. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    Раз уж меня тут вызвали... Интересна техническая сторона вопроса. От редакторов памяти как защитился? Надеюсь, не поиском по имени окна или процесса?
     
  11. Автор темы
    Kvaizer

    Kvaizer Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    Kvaizer
    Нет, скоро реализация через пару тройку дней, вы все сами увидите будет 2 версии лаунчера Бесплатная и Платаня.
     
  12. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    Просто не пойми меня неправильно, но судя по тому, что это C#, грамотно реализовать защиту процесса от внешнего вмешательства очень проблематично.
     
  13. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    А вдруг? Может он за пару дней накидает дров и будет защищаться из Ring0?
     
  14. 11dimonchik22

    11dimonchik22 Активный участник Пользователь

    Баллы:
    76
    Тебе тоже:lol:
     
  15. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Сомневаюсь что он хотя бы jni осилит. И без jni и смысла нет защищать процесс лаунчера.
    На Ring0 ему сертификат потребуется. Форточка не запустит неподписанный драйвер, по причине настройки безопасности системы из коробки.
     
  16. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    Раз уж он пишет защиту от редакторов памяти, и претендует на какое-то качество и надёжность, то логично предположить, что будет защищаться на основе инъекций, по-другому никак. А такую защиту можно без проблем распространить и на java(w).exe, так что по большому счёту уже не важно, запускаешь через JNI или классическим способом. С такой защитой JNI больше как вау-эффект. Чем больше непонятных сокращений или слов - тем круче.
    Там осиливать-то нечего, тем более для диеза есть jni4net, бери и пользуйся. Это в дэльфи пришлось повозиться, да и то из-за невероятной кривости реализации JVM, которая обязательно требует stdcall-функцию, из которой собираемся её запускать, а не fastcall, который по-умолчанию стоит в дельфине. Было бы это где-то документировано - не пришлось бы долгими зимними вечерами перебирать каждую строчку и безуспешно искать ошибку, которой нет.
    Ну, вообще тоже не обязательно. Если упарываться по вирусной защите, то можно без зазрения совести юзануть любой уязвимый дров, типа старого дрова от виртуальной коробки, чтобы сбросить один единственный байтик, отвечающий за проверку подписи, а дальше свободно грузить свой дров.
     
    Последнее редактирование: 27 авг 2015
  17. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    Архитекторам таких приложений надо руки отрывать.

    Если ты про самовыгрузку dll'ки (когда она выгружает сама себя), то так:
    Код:
    uses
      ..., Windows;
    
    procedure SelfUnload;
    begin
      FreeLibraryAndExitThread(GetModuleHandle(nil), 0);
    end;
    
    Вызывать внутри библиотеки, когда убедишься, что больше никто из неё никакой код вызвать не может. Или экспортируешь, создаёшь в приложении поток, из которого и вызываешь эту функцию. Именно создаёшь новый поток для выгрузки, т.к. в процессе этот поток будет закрыт системой.

    Нельзя выгружать либу в DllMain при событиях DLL_PROCESS_ATTACH и DLL_PROCESS_DETACH.

    Но правильнее выгружать либу из приложения, которое её подгрузило: там обычный FreeLibrary(GetModuleHandle('Имя либы'));

    Если нужно выгрузить dll'ку из чужого процесса, юзай UnloadDll из моего HookAPI.
     
    Последнее редактирование: 27 авг 2015
  18. log_inil

    log_inil Активный участник Пользователь

    Баллы:
    88
    А как мне тогда делать? если лююди могут просто не загрузить библиотеку и этот функционал не включится и антивири не заревут.(Модульная система очень нужна(ключевая часть проги))

    Вот в чем прикол? т.е поток... я то все в на ходу делаю. а если обычно FreeLibrary( h) в отдельном потоке? сработает? я вообще не знал о том что это важно (прикол в том что на семерке все "ок",а на восьмерке ****ык....)
    Эмммм, перестало... я даже ничего не трогал....
    ____
    В любом случае СПАСИБО!
     
  19. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    Просто скинь свой код. Я так и не понял, что же конкретно тебе надо, и зачем вообще нужна модульность.
    Если ты вызываешь FreeLibrary внутри либы, которую собрался выгрузить (передаёшь во FreeLibrary свой же хэндл), то разумеется такой способ работать не будет и твоё приложение рухнет: система выгружает либу и освобождает память, но поток, в котором ты вызвал её освобождение, всё ещё существует и пытается исполнять код. Код, которого уже нет. А FreeLibraryAndExitThread сначала остановит поток, и только затем корректно выгрузит либу. Именно для самовыгрузки эту функцию и сделали.
     
  20. log_inil

    log_inil Активный участник Пользователь

    Баллы:
    88
    не не
    ))))EXE((((((
    есть json в нем массив он в функцию
    массив[номер элемента] (Длл есть с таким именем? есть -> проверяем наличее функции -> выполнение )
    конец ... выгрузка длл через FreeLibrary ( h )
    зависание...

    )))DLL(((
    простая функция... .... с ShellObj :oops: ( "....");
    что то....
    без ошибок... каждую строчку прошмонал
     

Поделиться этой страницей