Chthon

Chthon

На Пикабу
Дата рождения: 8 марта
33К рейтинг 21 подписчик 20 подписок 98 постов 17 в горячем
Награды:
10 лет на Пикабу
3

Миссия "Автокража": как я решал необычное задание CTF

Привет, Pikabu!

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

CTF, или Capture The Flag, — это вид соревнований по кибербезопасности, где участники решают различные задачи из области информационной безопасности, криптографии, веб-безопасности, программирования и многих других дисциплин. Задачи могут варьироваться от простых до крайне сложных, и каждое решение приносит команде очки. Обычно соревнования делятся на два основных формата: "Jeopardy", где участники выбирают задачи по интересующим категориям, и "Attack-Defense", где каждая команда защищает свою сеть и атакует сети противников

Само задание выглядит так

Инопланетяне украли мой автомобиль! Нашедшему вознаграждение в виде флага! Особые приметы: инфернальное название, цвет оранжевый, золотые диски, последний раз был замечен где-то в Bone County

Инопланетяне украли мой автомобиль! Нашедшему вознаграждение в виде флага! Особые приметы: инфернальное название, цвет оранжевый, золотые диски, последний раз был замечен где-то в Bone County

На первый взгляд не очень понятно что надо сделать и где начинать искать. Но давайте начнем по порядку. В тексте задания упоминается какая то локация Bone Country, если погуглить, то станет понятно что это локация из игры Grand Theft Auto: San Andreas.

У GTA:SA есть мультиплеерная составляющая - SAMP. Неужели это отдельный игровой сервер где надо найти ctf флаг? Да, это он. Ah shit, here we go again

И так, у нас есть игровой сервер с кучей машин, но нам надо найти одну единственную. Из описания задания у нас есть подсказка, что машина имеет инфернальное название. Если посмотреть список техники из GTA:SA, то можно найти машину с названием Infernus, ну собственно она нам и нужна.

Теперь остается вопрос, где ее искать на такой большой площади? Если вы вдруг знакомы с лором и пасхалками из GTA:SA, то наверняка поняли эту отсылку про инопланетян.

Собственно в Bone Country только 2 места связанных с НЛО, это военная база и придорожная закусочная с летающей тарелкой. Ну собственно место для поиска понятно. Но это слишком просто, а задание помечено как среднее, значит давайте решим его более сложным способом.

Представим, что вы нормальный, адекватный человек и никогда не играли в GTA и все это время тратили с пользой для общества. Мы можем написать скрипт, который будет опрашивать всю технику в поле загрузки игрока и искать необходимую машину. Благо, за все это время в для GTA:SA был разработан мод MoonLoader, который позволяет загружать свои lua-скрипты.

И так, нам понадобится, сам MoonLoader, библиотека SAMPFUNC, версия SAMP 0.3.7-R3(Это важно) и версия GTA:SA v1.0.0 US(Это тоже важно)

И если после установки вы видите такой загрузочный экран, значит все установлено верно

Тогда приступим к написанию скрипта

wm = require 'windows.message'

font_flag = require('moonloader').font_flag

font = renderCreateFont('Arial', 11, font_flag.SHADOW + font_flag.BOLD)

local infernusModelId = 411 -- ID модели Infernus в GTA:SA

local vrender = false -- переменная для переключения отображения

function main()

if not isSampLoaded() or not isSampfuncsLoaded() then return end

while not isSampAvailable() do wait(0) end

addEventHandler('onWindowMessage', function(msg, wparam, lparam)

if msg == wm.WM_KEYDOWN or msg == wm.WM_SYSKEYDOWN then

if wparam == VK_F3 then

vrender = not vrender

end

end

end)

while true do

wait(0)

if vrender then

local vehicles = getAllVehicles() -- Получаем список всех транспортных средств в игре

for i, vehicle in ipairs(vehicles) do

if getCarModel(vehicle) == infernusModelId and isCarOnScreen(vehicle) then

displayInfernusInfo(vehicle) -- Отображение информации о Infernus

end

end

end

end

end

function displayInfernusInfo(vehicle)

-- Получаем координаты транспортного средства

local cx, cy, cz = getCarCoordinates(vehicle)

-- Конвертируем координаты в позицию на экране

local x, y = convert3DCoordsToScreen(cx, cy, cz)

-- Строка, которую хотим отобразить

local model = "Infernus (" .. tostring(getCarModel(vehicle)) .. ')'

-- Получаем длину и высоту текста для отрисовки

local length = renderGetFontDrawTextLength(font, model, true)

local height = renderGetFontDrawHeight(font)

-- Установим цвет текста

local textcolor = 0xFF00B811 -- Зелёный

if getCarDoorLockStatus(vehicle) == 2 then

textcolor = 0xFFEC0000 -- Красный, если двери заблокированы

end

-- Отрисовываем текст

renderFontDrawText(font, model, x - (length + 5) / 2, y - (height + 7) / 2, textcolor, true)

end

И так, скрипт готов. Скрипт активируется на клавишу F3. Сохраняем его в папку и заходим на сервер. Быстрее всего будет найти машину с воздуха, поэтому отправляемся в аэропорт Las Venturas и садимся в вертолет. Убеждаемся что наш скрипт работает, так как Infernus рядом с аэропортом прекрасно виден.

Начинаем облетать заданную локацию с севера на юг и в скором времени заметим Infernus помеченный красной надписью, а это значит что двери авто заблокированы, чтобы авто не угнали.

Похоже это наш пациент. Подходим к нему ближе и да, это он, а сверху флаг. Осталось только вбить его в форму и задание выполнено

Всем спасибо за внимание.

Показать полностью 9
7

Как угнать машину за 61 секунду

Собственно, что произошло.

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

Его подельник механически взламывает дверь (1OOgramm уточнил) открывает дверь и нажимает кнопку старт-стоп, заводит двигатель.

Показать полностью
3508

Подборка фото с протестов из Чили и Гонконга. Выглядит как кадры киберпанка

Протестующие слепят лазерами камеры и дроны

Студенты - лучники  занимают позицию в боях с полицией

Натан-роуд, Гонконг

Снайперская винтовка с лазерной указкой

Чимсачёй - газовая атака

Показать полностью 5
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества