| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Шпион Клавиатуры |
| Автор: Kirgston 13.9.2008, 13:12 |
| Как можна программно заблокировать клавишы Alt+tab, ctr+c, ctr+v ? Я просто делаю античит. Но там есть уязвимости. И мне например надо чтоб пользователи немогли скопировать один файл. Как это можна сделать? Помогите пожалуйста! |
| Автор: SneG0K 13.9.2008, 13:24 |
| Kirgston, не думаю, что хорошим выходом антикопирования будет заблокировать клавиши ctrl-v и ctrl-c. Как же тогда копирование с помощью контекстного меню? или тотал командер? Это однозначно не выход. Что из себя этот файл представляет? |
| Автор: Kirgston 13.9.2008, 13:35 |
| Дело в том что мы ставим сервер. И нам надо сделать так чтоб на него можна было зайти только через лаунчер, в котором вмонтирован античит. При нажатии в лаунчере кнопки "Старт" происходит разпаковка из лаунчера в папку игры игрового запускающего файла. И сразу идет запуск. Сорцов от того файла у меня нет. И нам надо както сделать чтоб лаунчер ( в котором висит античит) всегда был запущен когда запущена игра. В принцепе все хорошо. Но любой может свернуть игру (когда она уже запущена) и скопировать этот файл. А после вобще не запускать лаунчер, и играть с читами. Потому я и хочу чтоб както запретить копирование запускного файла. И сделать чтоб игру без лаунчера нельзя было запустить |
| Автор: Kirgston 13.9.2008, 14:09 |
| Да можна и таким путем.... но понимаете это такая игра... вобщем конструкция у нее тупая. Это единственная игра где читера доминируют. Тоисть есть программа которая умеет делать оконный режим. Да и очень многим не нравиться когда игра не сворачивается. Ну представте вы играете (там есть такое понятие как АФК - нажимаете кнопочку и можете уйти от компютера, персонаж будет прокачиватся без вас) и тут вам стучат в Асю, надо чтото найти в интернете или ещо чтото, а члены вашей команды ушли от компютера. А если вы выйдете из команды - щитайте что все пропало... вам надо искать другую команду. Это крайне неудобно ! И темболее там оконный режим весит в реестре. И я думаю что любая другая программа написаная дядей читером может изменить значение с 0 на 1 и игра будет в оконном режиме. P.S. Тот кто видел MuOnline меня поймет |
| Автор: RA 14.9.2008, 09:53 |
| Kirgston, скинь этот файлик, есть идея .. |
| Автор: Mayk 14.9.2008, 10:09 |
| винда позволяет а) удалять запущенный .exe'шник или б) пускать .exe из памяти? (вот http://www.security.org.sg/code/loadexe.html нечто подобное рассматривается) ? я бы копал в эту сторону. |
| Автор: Kirgston 14.9.2008, 16:08 |
| RA, Какой именно? Запускной игры? Вот --- http://letitbit.net/download/a389a337294/main.rar.html Или вы имели ввиду сам лаунчер? |
| Автор: SneG0K 14.9.2008, 21:51 |
| Kirgston, самый хороший вариант предложил Мяук. Так что копай в сторону запуска файла из памяти. Или сразу после запуска сотри его нафик! |
| Автор: Kirgston 15.9.2008, 06:41 |
| Да... но там на С++ :( а я его пока не знаю. Только Делфи. Удалять файл нельзя. Ето же онлайн ММО. Удалиш-вылетиш с игры. Можете както помочь? С файлом из памяти или что? Просто это ММО. Я не знаю как оно будет общатся с сервером... |
| Автор: RA 15.9.2008, 07:34 |
| Kirgston, не получилось файл портится от вмешательств из вне. :( |
| Автор: Kirgston 15.9.2008, 08:35 |
| Смотря как вмешаться )))))) Если поменять порт + ип + серийник - можна. Я спокойно открываю НЕХ едитором и переписываю. Разве что попробовать вмешаться из "вне" с помощью дебаггера. А что вы хотели сделать? |
| Автор: dumb 15.9.2008, 08:48 |
| Kirgston, launcher с анти-читом показывай. |
| Автор: Kirgston 15.9.2008, 09:40 |
| Сорц или ехе? |
| Автор: Virtuals 15.9.2008, 09:50 |
| имхо все это изврат, потому что: 1. любой файл запущенный в системе, независимо как в памяти или с диска, вполне реально скопировать, это неоспоримый факт! 2. если этот файлик появился у одного, то он, рано или поздно окажется у всех. ЗЫ нужно идти проверенным путем* многие античиты это програ висящая в памяти и: с одной стороны, следит за ситемой пользователя с другой, ведет постоянный обмен с серверной частью игрового сервера. как только замечено что либо подозрительное или пропал коннект то, кик на сервере, текущего клиента. |
| Автор: Kirgston 15.9.2008, 10:11 |
| Да я так с начала хотел. Запускаеш не челер лаунчер - кик. Но! Архитиктура игры такая что можна сделать дисконект только вручную. Программой которая скомпилированя. И все. Люди уже более 5ти лет пытаются решить эту проблему, но все напрмасно. Может както банить ИП на 1 секунду на сервере? |
| Автор: Virtuals 15.9.2008, 10:21 |
| Kirgston, не может быть чтоб с сервера нельзя было кикнуть клиента, че нет типа админской консоли? накрайняк можно и файрволом доступ прикрывать |
| Автор: dumb 15.9.2008, 10:25 |
| а. ланчер сами писали? а анти-чит? и что он из себя представляет этот анти-чит - отдельный .exe или как? |
| Автор: Virtuals 15.9.2008, 10:29 |
| Kirgston, если совсем нет никакой возможности програмно рулить сервером, ну хотя-бы програмно кнопки жать то изврат но попробовать стоит такое: клиент античита передает серваку что клиент чист и можно играть сервер античита сравнивает ид клиента по своей базе, получает его IP (по свойствам соединения от клиента), и открывает доступ в файрволе для такоготоИП и такогото порта. как тока серверу че не понравилорсь так сразу рубить разрешающее_правило из файрвола (если лень писать свой фаер, то смотри в сторону консольного файрвола WIPFW) |
| Автор: Kirgston 15.9.2008, 10:53 |
| Virtuals, Нет нету там консоли. Там только Коннект Сервер. Программно там ничего не зделаеш. Только кликами мышки. dumb, Да сам. Это один файл. Который загружаеться, после чего создаються потоки. Которые сканируют на наличие в процессах и приложения именных программ - читов. Если находят то через tlhealp32 завершают процесс. Virtuals, Ну у меня разве такая идея... чтоб настроить файрволл так чтоб если от него ответа 3 секунды то заблокировать на 1 секунду ИП с которого был коннект. Но как это сделать? |
| Автор: Virtuals 15.9.2008, 11:11 | ||
поправь предложение не понял что хотел сказать. /// вбей в поисковик WIPFW почитай... это консольный фаер, и управлять им сможеш просто start ipfw действие номер_правила тело |
| Автор: Kirgston 15.9.2008, 13:01 |
| Все я нашол статейку (очень не маленькую) ну хорошо. Допустим я тогда прочту что и как мне можна изменять в файрволле. Но а как его прикрутить к Делфям? И работать Клиент-Сервер? Добавлено через 11 минут и 25 секунд Все я нашол статейку (очень не маленькую) ну хорошо. Допустим я тогда прочту что и как мне можна изменять в файрволле. Но а как его прикрутить к Делфям? И работать Клиент-Сервер? |
| Автор: dumb 15.9.2008, 15:38 | ||
| Kirgston, держи временный вариант: http://ifolder.ru/8137229 чтобы он запустился, в своем ланчере ты должен сделать:
ps. не проверял, ибо игры самой у меня нет, а ставить - бэ. |
| Автор: Virtuals 15.9.2008, 15:55 |
| Kirgston, http://wipfw.sourceforge.net/index-ru.html почитай пока, дабы хоть какое то представление иметь... Добавлено через 5 минут и 18 секунд dumb, батенька да вы хакер |
| Автор: Kirgston 15.9.2008, 22:19 | ||||
о_О Да вы ШАЙТАН! Что вы зделали? Очень благодарен! |
| Автор: dumb 16.9.2008, 03:19 | ||
![]() этот .exe выглядит весьма потрепанным: изначально он был запакован asprotect'ом, потом его сняли, потом "вкрыжили" подгрузку zend.dll, потом еще и muforeva.dll, потом "закоротили" вывод ошибки в случае отсутствия zend.dll. а я вставил проверку существования мьютекса(писал "на коленке", поэтому даю копирку "с коленки"):
никакие "навесные" прибамбасы(вроде крипторов) естественно не будут влиять на работу нашего кода. |
| Автор: Kirgston 16.9.2008, 13:20 | ||
еммммм а вы откуда узнали что там был АС Пак? Как мне узнать или был криптор или его сняли и т.д.? Просто я только учусь ... и до ассемблера...
Если я не ошибаюсь именно тут вы вставили Mutexa. А что это такое? и после чего его надо вставлять? Большое спасибО! |
| Автор: Virtuals 16.9.2008, 18:08 | ||||
| Kirgston, качай DRKB, полезно будет
по русски, флаг в системе, типа ктот тут флажек поставил значит можно...
.по коду узнать можно много чего, особо если при взломе не подчищали за собой (разного рода кряки этим не заморачиваются) .без знания асма (и еще много чего) вам такое недоступно, но со временем возможно, при желании учится но еще раз повторюсь! весь этот дзен с кодом безпользы если пользователь найдет оригинал файла!!! тупо "погуглив" так что прислушайся \\ а. клиенсткая часть античита следит за всем чем можно (список процессов, список подгруженных длл, разного рода хуки для контроля роботов клавы, и т.д) и все шлет серверной части б. серверная састь постоянно отслеживает клиентов и при мальейшем подозрении гасит пользователя, тем или иным методом, (файрволом, управлением игрой, и т.д.) // несколько заметок, желательно канал связи с клиент сервером шифрованный возможность смены исполняемых модулей клиента, на код с серверной части, налету. ЗЫЗЫ это все не мои идеи, а опыт анализа античитов, самых популярных игр |
| Автор: Kirgston 16.9.2008, 19:28 | ||||||
Большое вам спасибо!!! Щас уже качаю библиотеку. Дело в том что я учу асм.... но просто мы только 1 неделю назад (в институте) начали изучать. Там все не так просто... ну тоисть не очень сложно но много заморочек З.Ы. Ждем ответа товарища dumb Добавлено через 6 минут и 17 секунд Ой да... и забыл )))))) извените за дабл пост. Вобщем загуглиться не получится )))))) там идет серийник с помощю которого можна залазить на серв. Скачать скачает. Но там надо будет менять ип, порт, серийник. Поменяет если откроет НЕХ редактором )))))))) когда криптуеш то там уже ничего не поменяеш. Убеш код. Так что с загуглением отпадает ;) |
| Автор: Virtuals 16.9.2008, 20:01 |
| хм... Х86 платформа изначально 16бит, потом идет 32бит расширение, далее защищенный режим, разного рода расширения типа ммх, и т.д. ЗЫ асм= система комманд процессора, первооснова, а разные си и дельфи это надстройка для ленивых, более высокоуровневый язык ЗЫЗЫ я слился до поры до времени |
| Автор: Kirgston 27.9.2008, 08:52 |
| Ув. dumb, а каким дизассемблером или чем вы пользовались? Я чтото немогу найти тот код... |
| Автор: dumb 27.9.2008, 18:28 |
| в данном случае - hiew. о каком коде идет речь? |
| Автор: Kirgston 27.9.2008, 21:34 |
| Спасибо буду искть Ну код где вы создаете мутекс. Искал строку и ненашол :( Там надо просто криейт мутекс или с ещо всякими прибамбасами? И в Делфи я могу поставить любую строку создания мутекса? или именно ту что вы дали? Спасибо !!! |
| Автор: Kirgston 28.9.2008, 09:17 | ||
Ув. Только этот код
Отвечает за создание мутекса? Или ещо какието ? |
| Автор: Kirgston 28.9.2008, 11:08 |
| Очень прошу напишыте пожалуйста как приблезительно делать мутекс. Буду очень благодарень. Я перечитал много литературы. Всюду есть мутекс в делфи\С++\юниксе и т.д. но нету как делать связь асм и делфи. Помогите ОЧЕНЬ прошу!!! БОЛЬШОЕ СПАСИБО!!! |
| Автор: Virtuals 29.9.2008, 06:28 | ||
Kirgston, в DRKB сходи, там все разжевано
|
| Автор: Kirgston 29.9.2008, 08:10 |
| Да читал ;) уже давно скачал ДРКБ |
| Автор: Virtuals 29.9.2008, 11:47 | ||
| Kirgston, какая разница на каком языке создается Mutex?, хоть дельфи хоть си да что угодно,... в конечном итоге оно станет вида:
а вот куда вложить это, то в каждом конкретном случае смотреть нуна. ЗЫ не обижайтесь, но може пока рано заниматся кодпатчингом?, тут явно нужен, мягкоговоря, другой уровень программирования. ЗЫЗЫ + еще раз повторюсь, это бесполезно!, рано или поздно (боюсь что очень рано) геймеры узнают про ваш мьютекс, и за 3 минуты в любом компиляторе его сваяют. (так что ваша защита сымается на раз, и нужно на порядок меньше знаний и времени чтоб ее снять) да и код дизасмить эллементарно, даже если все закриптуете (нет ничего невозможного в коде физически доступном на своем компе, аксиома), а правильный путь уже подсказал выше (придуман не мной, подсмотрен у античитов достаточно популярных игр) |
| Автор: Virtuals 29.9.2008, 12:12 | ||
| -- да вот тебе картинка для понимания что есть, предложенное тебе
|
| Автор: Virtuals 29.9.2008, 12:15 | ||
| -- да вот тебе картинка для понимания что есть, предложенное тебе
|
| Автор: Kirgston 30.9.2008, 16:26 |
| Да я понимаю )))) я знаю как его сделать ;) но незнаю как и куда поставить флажок на проверку есть ли мутекс. Это елементарная защита )))) конешно потом надо будет делать защиту на уровне файрволла. Но щас нету времени :( быстрее думаю сделать мутекс... да и не каждый юзер додумается сделать мутекс самому, темболее некаждый знает слово программирование... |
| Автор: Virtuals 30.9.2008, 19:55 | ||||||
| Kirgston, как? уже описано выше с помощью любого редактора hiew рулит куда? учим асм и анализируем где есть свободное место в коде, далее пихаем туда свое, и делаем джамп из основного кода
имхо на уровне файрвола быстрее и надежней //заодно и научитесь эллементарным правилам для безопасности.
зато большинство умеют пользовать гугл, и у некоторых найдутся друзья кто
а если один нашел то через неделю будут знать все! |
| Автор: Kirgston 3.10.2008, 10:56 |
| Хорошо будем копать в ту сторону )))) Но вопросик ещо один... вот например есть программа для читов. Скажем имеет название cheat.exe и сидит в памяти так. Я её удаляю с процессов. Или с приложений. Если её переименовать в cheat2.exe то она уже будет в процессах и в приложениях висеть именно под cheat2.exe . Есть какие то способы "убить" такие программки которые меняются от имени программы. |
| Автор: Kirgston 4.10.2008, 17:28 |
| Ребята подскажите пожалуйста. Чит программа изменяет имя процесса на то которое данно пользователем. Ну тоисть я назвал прогу чит.ехе и в процесах она также будет названа, и в приложениях тоже - как с таким чудом боротся? Ведь если переименовать прогу то простое удаление с процесса не поможет... :( |
| Автор: Virtuals 5.10.2008, 12:53 |
| Kirgston, самый простой способ большинству для работы нужно окно! (это-ж винда и все заточено под окна), соответственно если этот чит имеет окна (видимые или нет, неважно) то его можно отловить через наличие окна с опр классом или названием, ну или какими либо другими признаками окна сложнее но надежней, это открытие каждого процеса, и поиск в коде опр последовательностей (поиск по сигнатурам в памяти) Добавлено через 2 минуты и 21 секунду еще один совет, не стоит удалять чит из процессов, стоит лочить и баннить пользователя, пусть сам живет со своими читами |
| Автор: Kirgston 5.10.2008, 15:03 |
| Да он конешно имеет свои окна, но я же говорю что окно меняется от имени программы. Я переименовал програму в чит.ехе и сразу окно переименовалось в чит.ехе. Я смотрел на WIPFW ... )))) С++ )))) а я там ещо не бум-бум. Делфи покачто изучаю... ну..... логично что надо чтоб блочить тогда видеть какие пакеты чит отсылает, но как? О_о |
| Автор: Virtuals 5.10.2008, 16:43 |
за код ногами небить, чисто тесто, для понимания что есть окна Добавлено через 2 минуты и 50 секунд WIPFW есть готовый к употреблению файрвол, в самом простом случае управляется с коммандной строки типа ipfw номерправила тело... |
| Автор: Kirgston 5.10.2008, 17:57 |
| Да я понял ))))) я в курсе что они есть )))) но я же говорю что если я создам ..... еееее ладно щас попробую сам написать )))) Просто я закрываю чит по определьонному окну. А как его закрыть если он постоянно меняется? )))) |
| Автор: Virtuals 5.10.2008, 18:11 | ||
Kirgston, ну тогда
|
| Автор: Kirgston 5.10.2008, 18:13 |
| Ну вобщем если нажать правой кнопкой на будущий ехешник и зайти в вив сорц, то там с самого верху красуется program ***** так вот это значение устанавливется как := Application.ExeName; И тогда у тебя получается в процессах друге название программы и в окнах такоеже. Как тогда отследить если чит если программа будет названа asdasd.exe??? Также она будет красоватся в приложениях ))) и команда WM_Close явно не подойдет т.к. мне что тогда переберать все возможные комбинации кнопок на клавиатуре? ))))))) Добавлено через 6 минут и 7 секунд Тоисть ты предлогаеш.... например выводить список процессов, тогда заглядывать внутрь каждого из них и проверять или в нем нету совпадающего кода? ))))) |
| Автор: Virtuals 5.10.2008, 18:39 | ||
| Kirgston, 1. мой пример посмотри, не важно как называется запускаемый файл, фажно признаки его окон 2.
именно так, и самое главное пофиг будет как его закриптовали, в памяти будет исходник |
| Автор: ConstantinXXX 5.10.2008, 22:24 |
| Можно написать программку которая будет при поевлении или в определенный момент дампить твой файлик в другую папку и там уж запрещай сворачивать прогу, отключай ctrl+v and ctrl+c это все непоможет! Надо написать драйвер который будет на уровне системы сидеть и блочить любое постороненние обращение к файлу. |
| Автор: Kirgston 6.10.2008, 08:59 |
| ConstantinXXX, а вы не подскажете как написать именно такую программу чтоб на системном уровне запрещала любые обращения к файлу? |