Chthon

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

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

Привет, Pikabu!

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

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

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

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

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

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

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

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

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

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

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

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

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

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

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

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

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

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

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

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 рядом с аэропортом прекрасно виден.

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

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

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

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

Миссия "Автокража": как я решал необычное задание CTF GTA: San Andreas, Хакеры, Ctf, Длиннопост

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подборка фото с протестов из Чили и Гонконга. Выглядит как кадры киберпанка Киберпанк, Гонконг, Акции протеста, Чили, Длиннопост
Подборка фото с протестов из Чили и Гонконга. Выглядит как кадры киберпанка Киберпанк, Гонконг, Акции протеста, Чили, Длиннопост
Показать полностью 5
Отличная работа, все прочитано!