предлагаю сделать так. правила: 1) ось любая из линейки NT (т.е. не использовать никаких специфических приемов) 2) работа под эмулятором типа VMWare или QEMU (чтобы не тестировать на живой машине чужие exe) 3) процесс-хищник знает pid-жертвы 4) процесс-жертва ничего не знает о хищнике 5) ни хищник, ни тем более жертва не должны нарушать нормальную работу оси (например, вызывать постоянную 100% загрузку ЦП) 6) хищник должен внедрить в адресное пространство жертвы свой код и передать на него управление (для простоты разрешается EB FE, чтобы не возиться с api-функциями типа MessageBox, хотя это и вызовет 100% загрузку ЦП, все ок) 7) необходимо предоставить либо исходники, либо словестное описание используемой технологии 8) права могут быть любыми, но в равных весовых категориях (хотя если хищник-юзер уложит жертву-админа это гуд) какие будут еще предложения? то у меня накопилось много интересных идей по внедрению в чужие процессы и защите от них, а реализовать их негде...
ну это как раз несложно. у меня например есть комп (используется для отладки) на нем уже есть vmware. ~80% времени не используется. так что проблема тут скорее в отсутвии игроков...
Согласен с Кропаликом - у меня тож есть на чём погонять. Вопрос только в том как предоставить доступ другим к этой машине, чтобы посмотреть результат?
а в чём проблема? Пусть присылают тебе программы, ты запускаешь, на сайт вывешиваешь результаты. Только никому это нафиг не нужно :-J
Имхо, такая игрушка может заинтересовать, только нужно проработать два момента: 1. Веб-интерфейс реального времени, выводящий список процессов в полигоне. 2. Четкая система правил ведения игры.
может обыкновенный vnc ? двоим дается полный доступ остальным - view only. как только кто нибудь проигрывает - его дисконнектит и еще кто нибудь другой может попробовать справиться с победителем.... да это как раз в первую очередь нужно. тут было уже несколько предложений но похоже последнее слово останется за тем чей комп...
Я тут на днях заинтересовался, стал писать веб-интрефейс к полигону, то бишь демона: сидит и слушает порт, если кто-то приконнекчивается, выдает ему список процессов. Но столкнулся с фундаментальной проблемой: а как этот список формировать, собсно? Ведь первоочередной задачей любого боевого процесса будет скрыть себя как можно лучше, чтобы не убили. Отсюда и затруднение. Был вариант такой: каждый процесс обязан создавать раз в Н секунд файл под своим именем в определенной директории, а демон эту директорию должен парсить, и таким путем будет видно, кто жив а кто помер. Однако при этом любой процесс сможет просто потереть все файлы кроме своего, а реально процессы будут работать... Какие есть соображения?
А я предлагаю игрушку "Атака на жесткий диск". Показан вращающийся жесткий диск, по которому производится стрельба из некоего вирусоносного орудия, снаряды могут быть разной степени вредоносности - от уничтожающих бутовый сектор, до полиформов, инфектирующих файлы. На жестком диске создается логическая структура и образ операционной системы, а также всевозможные прикладные системы (например, случайным образом куда-то инсталлируется Word, Excel и др. программы, на которые у юзера руки чешутся). Снаряд попадает в случайное место на диске и начинает там гадить в соответствии с некоторыми правилами, чтобы игра не заканчивалась слишком быстро. При попадании в красиво оформленных окнах появляются сообщения о разрушении тех или иных частей файловой системы или заражении файлов. В системе может быть установлен антивирус, который при неудачном попадании в диск восстанавливает часть разрушений. И так далее, и тому подобное...
Не совсем в курсе происходящего, но думаю, что нужно взять пример с реальных вирусов и слежением за их работой. Научные работники разглядывают организмы в микроскоп, при этом не взаимодействуя с ними. Микроорганизмы даже не знают, что их изучают. Потому, нужно навереное сделать ограничения на "свободу" самовыражения организмов и следить за нимим также как это делает SoftIce. В определённые моменты времени делать "снимки" чего-то в системе. Это чего-то должно явно указывать на присутствие того или иного процесса, может даже делать это в нескольких местах. Потом делается отчёт и по сети обновляется некий файл html, где каждый может посмотреть за тем, что делается на арене. Как такие соображения?
Да, можно было бы взять какой-нибудь из способов обнаружения скрытых процессов, например из phunter'a((c)MsRem), но тут вопрос в другом. Либо процесс виден, либо нет, третьего не дано. А если процесс хочет скрыть себя (что вполне понятно при данных условиях игры), то как тогда его регистрировать в списке? Парадокс получается: с одной стороны мы хотим наблюдать за вирусами, но с другой идеальный вирус - это тот, которого не видно и не слышно. Нужен такой способ, когда каждый процесс сам сообщает о себе, но чтобы при этом его "сообщение" (я не имею в виду конкретно сообщения винды), не могло быть перехвачено по пути к "начальнику полигона".
Вариант: на VMWare ставится винда, заведомо с уязвимостями для которых доступны шаровые эксплоиты (либо с дополнительными уязвимыми сервисами). Контакт с ней - только через впн-ку (чтоб её не раздолбали из инета не участники игры). Сообщение - через порт "VMX" Другое дело, что это нафиг ни кому не надо