HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг > Задания/Квесты/CTF/Конкурсы
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 23.07.2024, 16:32
Chthon
Новичок
Регистрация: 22.07.2024
Сообщений: 0
С нами: 954935

Репутация: 0
По умолчанию

  • Название: Автокража
  • Категория: Разное
  • Платформа: Antichat.games
Добрый день друзья. Хочу поделиться с вами решением таска "Автокража".



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



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



И так, у нас есть игровой сервер с кучей машин, но нам надо найти одну единственную. Из описания задания у нас есть подсказка, что машина имеет инфернальное название. Если посмотреть список техники из 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(Это тоже важно)

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



Пишем скрипт такого содержания (Не смотрите что у код оформлен как Perl, просто для lua нет оформления. А так хотя бы красочнее)

Perl:


Код:
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 помеченный красной надписью, а это значит что двери авто заблокированы, чтобы авто не угнали.



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

 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.