Изучение системы r_keeper

return_a

Продвинутый юзер
Сообщения
224
Реакции
573
banner2.png

r_keeper - это программно-аппаратный комплекс для автоматизации кафе и ресторанов.
:Popcorn11:
Цель данной статьи - найти и показать все возможные варианты атак (если данные действия можно так назвать) на рестораны использующие систему r_keeper (далее rk) с целью получения бесплатной еды.

ВНИМАНИЕ! Данная статья не справочник по "хакингу" вашего любимого фастфуда, а является лишь моим изучением данной системы с целью выявления в ней уязвимых мест и проведением N-го количества попыток получения заветных бесплатных бургеров.

В конце статьи будут опубликованны ссылки на облачное хранилище Mega, на котором я буду публиковать файлы/дампы с различных кафешек, которые мне достались, а так же другую интересную информацию.

По поводу источников информации - часть была взята из общения с менеджерами ресторанов, часть от общения с самими сотрудниками UCS (разработчик rk), часть из мануалов и конечно-же из мировой паутины.




Для начала расскажу основные интересные моменты данной системы, которые могут быть Вам интересны и полезны (вдруг?). Данный раздел будет пополняться по мере выявления плюшек.
У всех сотрудников (которые если верить rk разделены на несколько групп - кассир, официант, менеджер) имеется своя магнитная карта rk, с помощью которой он авторизуется в системе.
1620685102200.png
  • Запись производится на второй дорожке;
  • У всех карт rk префикс (начало) записи является символом ";" (точка с запятой);
  • Окончанием же записи является "Знак ENTER";
    Карты персонала (менеджер, кассир, официант и т.д.):

    Содержат между точкой с запятой и знаком ENTER - ЛЮБЫЕ 4 ДЕСЯТИЧНЫЕ ЦИФРЫ.
    В итоге запись, которую необходимо занести на вторую дорожку магнитной карты rk, будет выглядеть так (прошиваемый код):
    ;0024«ЗНАК ENTER» - запись для карточки под номером 24

    ;0567«ЗНАК ENTER» - запись для карточки под номером 567
    Персональные дебетовые карты (CARDSERV):
    Прошиваемый код:
    ;778=XXXXXXXX=YYYYY«ENTER»
    «778» - ID, что эта карта является персональной дисконтной (дебетовой, платежной, клубной) картой.
    ЗНАК «=» - исполняет роль некоего разделителя.
    «XXXXXXXX» - восьмизначный код ресторана из SYSTEM.DB, находящимся на кассовом сервере в каталоге DATABASE. На карточку заносится без точки (в SYSTEM.DB XXXX.XXXX ). Открыть SYSTEM.DB с помощью SETCODAT.EXE, это шестой пункт.
    «YYYYY» - номер карты, который затем заносится в PCARDS.EXE. Пятизначное число.
Я замечал, что номер часто пишут на самой карте. Это можно как-то использовать.


1. Изучение rk7 и формирование различных пакетов.
Для начала, что бы изучить как именно происходит процедура покупки того или иного товара в кафе я создал несколько виртуальных машин, каждая из которых играли свою роль:
  • Машина серверов (кассовый, сервер печати, сервер справочников и т.д.). Всё в соотвтетсвии с инструкцией об запуске rk7 из дистрибутива (не из инсталлера, так как мне попался дистрибутив прямо с ресторана).
  • Машина имитирующая кассу.​
  • Машина имитирующая терминал самообслуживания.​
  • Машина Фискального принтера и имитатора POS-терминала iPP320 (но вообще есть дрова для многих терминалов).
    1620688070400.png
Все машины были связанны в локальную сеть, которая была отрезана от WWW, так как я не знал полезет ли в сеть комплекс и что будет передавать. С настройкой и запуском пришлось повозиться, но мне таки удалось все сделать так, что бы у меня всё запустилось в той же конфигурации, что и в ресторане. По сути передо мной стояла задача сделать клон всей сети ресторана, чего я и добивался.

После всех манипуляций (запуска и инициализации серверов) я наконец таки смог запустить святую-святых - Станцию Менеджера (далее СтМ). СтМ - головное ПО в управлении рестораном. В нём можно как почитать все логи (причём в любой конфигурации логирования, ДАЖЕ ЕСЛИ В CONFIG.INI СТОИТ ДРУГОЕ ЗНАЧЕНИЕ!!! учтите это!), так и наблюдать все что происходит в данный момент в ресторане, наблюдать VDU дисплей, редактировать меню, КУПОНЫ, цены и все все все остальное. Исходя из этого, можно предположить что для начала надо изучить как же работает данное приложение. Я сразу запустил Wareshark, и приготовившись увидеть там ужас стал ждать. Огромнейшее количество TCP пакетов летало между софтинами. Я не стал пока изучать пакеты и сопоставлять их с какими-то конкретными данными. Для начала я решил запустить все остальные сервера, которые были необходимы для работы - сервер печати, который непосредственно и занимается печатью нашего с вами "фантика" и сервер отчётов, который формирует отчёты (как я пока понимаю это по типу EventLogTable). Мне повезло и некоторые рестораны не закрывают доступ к серверу отчётов по непонятной мне причине и это дало мне возможность увидеть как он работает наяву. Но отложим пока сервер отчётов и вернемся к СтМ. В первую очередь советую ее сразу же русифицировать, так как имена переменных в описании каждого object все равно будут на инглише, а во вторых вся документация на русском.
При первом запуске СтМ надо будет ввести логин и пароль. Я долго искал их, пока не наткнулся
login: Администратор
pass: =
1620689362500.png
Я использую самую последнюю версию кипера, поэтому у меня обновления не было. Хотя как я позже выяснил многие заведения используют разные версии модулей/серверов. В общем то они совместимы (разница в UI). После авторизации мы попадаем в главный экран СтМ rk7.
1620691289100.png
Это заработало и ладненько.

Далее я решил набросать простенький интерфейс программы для работы с всем этим добром.
В первую очередь я сделал форму журнала отладки, куда будут посылаться все внутренние сообщения ()режим полного логирования). Вы конечно меня сейчас возможно закидаете тухлыми яйцами, но писал я всё на Borland C++ Builder.
Итак я сделал процедуру для формирования строки журнала. В качестве аргумента она принимает AnsiString и выводит её сразу в ListBox на форме журнала.
C++:
void JPS(int Inst,AnsiString Message){

AnsiString DirectSign;
if (Inst==0) DirectSign = "---"; else  // Сообщение без направления
if (Inst==1) DirectSign = "-->"; else  // Сообщение исходящие
if (Inst==2) DirectSign = "<--"; else  // Сообщение входящее
if (Inst==3) DirectSign = "<->";       // Сообщение двунаправленное (в обе стороны)

EventLogPage->LogListBox->Items->Add(+"["+Now().FormatString("hh.mm.ss.zzz")+"]  "+
DirectSign+" "+
Message);
EventLogPage->LogListBox->Perform(WM_VSCROLL,
                SB_LINEDOWN,0);
}

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

ЧТИВО :read:
Комплект мануалов по работе с rk7 -
 
Последнее редактирование:
В первую очередь надо решить, как именно будет происходить "нагиб" и как именно я заставлю их сделать мне эти чёртовы бургеры. Сделать я это собираюсь следующим образом:
- Сформировать структуру чека, которую потом отправить на печать.
- Отобразить заказ у поваров на VDU мониторе
- Отобразить заказ на экране ожидания.
В принципе этих трёх действий должно хватить. Но это я сейчас еще не изучил систему полностью и возможно добавиться что-либо еще.
Перейдём к реализации.
Реализацию я планирую провести следующим образом.
На имитотор принтера будет посылаться пакет, принтер будет просто-напросто печатать все в pdf, отдельно будет vdu монитор, на который будет просто так же посылаться информация, как и на штатный моник. Так же будет форма, имитирующая окно ожидания заказа.

Для того что бы начинать необходимо подготовить каркас программы, а именно сделать процедуру инициализации.
Я в эту процедуру включил чтение INIшника с данными для чека и основной информацией о работе программы. На главную форму я вывел кнопку INIT которую необходимо будет нажать первой (вариант автоматической инициализации меня что-то не строил).
1620693165200.png
1620693258000.png
1620693451400.png
Итак. Первым делом я решил выполнить процедуру инициализации -
C++:
//...
bool InitResult;   // Результатирующая переменная процедуры инициализации
bool AS, NS;
if(lochost->Checked)NS = 0; else NS = 1;
if(apk->Checked)AS = 1; else AS = 0;
InitResult = Init_prot(AS,NS);  // Проводим инициализацию
initi = InitResult;
if(InitResult){
JPS(0,"Процесс инициaзaции зaвершен - УСПЕШНО");
init_status->Caption="YES";
init_status->Font->Color=clLime;
} else {
JPS(0,"Процесс инициaзaции зaвершен c ошибкой!");
    // Процедуры при ошибочном завершении (добавить код ошибки!)
}
//...
C++:
bool Init_prot(bool apk_status, bool net_status){
bool init_result;
JPS(0,"Зaпуск протоколa инициaлизaции");
if(!net_status)JPS(0,"Режим LOCALHOST"); else
             { JPS(0,"Режим NET");
               JPS(0,"ВНИМАНИЕ! РАБОЧИЙ РЕЖИМ!");  }
int iResult,
    sResult,
    bResult;
LoadConf(RestorData); // Чтение фaйлa конфигурaции
JPS(0,"Подключение библиотеки r_keeper Крипто");
// Коннектим крипто-библу...
JPS(0,"Обрaщение к ПУНУ");
// Обращаемся к Программе Установки Начальных Условий (блок-схема 4.7)
    if(net_status){
JPS(0,"Подключение библиотеки сетевого обменa");
// Коннектим winsocks2 где создаем сокеты обмена со всем чем нужно. (вынести в отд.ф.)
//start default test, if return true...
    init_result=1; } //net_status  
if(init_result) return true; else return false;
}
C++:
#ifndef CONFIG
#define CONFIG
//---------------------------------------------------------------------------
#pragma hdrstop
#include "config.h"
#include <vcl.h>

//---------------------------------------------------------------------------
#pragma package(smart_init)

void LoadConf(TRData CurRestD){
JPS(0,"Загрузка конфигурации...");
AnsiString FilePath=ExtractFilePath(Application->ExeName); // Узнаём путь к программе
if(FileExists(FilePath+"\config.ini"))   // Проверяем наличие файла конфигурации
{
TIniFile *Conf = new TIniFile(FilePath+"\config.ini");
//////////////
// РЕСТОРАН //
CurRestD.id = Conf->ReadInteger("REST","id",0);
CurRestD.hash = Conf->ReadString("REST","hash",0);
CurRestD.axapta_id = Conf->ReadInteger("REST","axapta_id",0);
CurRestD.name = Conf->ReadString("REST","name",0);
CurRestD.city_id = Conf->ReadInteger("REST","city_id",0);
CurRestD.addres = Conf->ReadString("REST","addres",0);
CurRestD.phone = Conf->ReadString("REST","phone",0);
CurRestD.email = Conf->ReadString("REST","email",0);
CurRestD.inn = Conf->ReadInteger("REST","inn",0);

//////////////
// ТЕРМИНАЛ //
CTerm.ID = Conf->ReadInteger("TERMINAL","number",0);

////////////
// CLIENT //
//CCLient.
}
else JPS(0,/* "Нет файла конфигурации!" */FilePath);

}

#endif //CONFIG
C++:
//---------------------------------------------------------------------------
#include "IniFiles.hpp"
#include "MainP.h"

#ifndef configH
#define configH
//---------------------------------------------------------------------------

AnsiString BKLink2QR = "https://burgerking.ru/app";

typedef struct{
int id;
String hash;
int axapta_id;
AnsiString name;
int city_id;
AnsiString addres;
AnsiString phone;
AnsiString email;
unsigned long int inn;
}TRData;

typedef struct{
long long ID;
}TTerminal;

typedef struct{
long int t;
double s;
long fn;
unsigned int i;
unsigned long fp;
int n;
AnsiString OutString;
// OutString is
// t=20210430T1655&s=49.99&fn=00000&i=0000&fp=0000&n=1
// t=YYYYMMDDTHHNN
}TFiscal;

typedef struct{
AnsiString bank;
long int merchant;
AnsiString card_name;
}TClient;

void LoadConf(TRData CurRestD);

TIniFile *ConfF; // Config File
TRData RestorData; // Данные ресторана из конфигурации (перезаписываемое)
TTerminal CTerm;   // Данные терминала
TClient CClient;   // Данные клиента
TFiscal CFiscalD;  // Фискальные данные

#endif
Изучив несколько десятков чеков я выяснил, что некоторые данные в них статичны и относятся только к одному ресторану.
Сообщение обновлено:

А баннер вроде норм.
спасибо)) Вот освоил Paint.NET рисую иногда, бал вариант получше, но он маленький оказался
banner.png
 
Меня от туда всегда гнали, когда я туда приходил пожрать. В итоге больше там не хожу....ой блин @Rotart травишь душу пиццей, итак живот крутит)))))))))
Сколько у тебя в месяц получается зарабатывать со всеми идеями?
 
Сколько у тебя в месяц получается зарабатывать со всеми идеями?
Да нисколько))) Каникулы кончились и все ни о какой работе и речи не идёт. Я промоутером работал на каникулах, листовки раздавал. Ну эксперементировал с shell-кодом, но это так балавство. Мне до прогера еще расти и расти. Может к 20-25 начну нормально писать программы, да изучу ассемблер как надо.
А пока вообще ни начто нет)))) Но это не беда. Есть время и силы, а так же здоровье. У нас в д\д 5 человек всего не юзают, не курят и бухают. Я даже матом не ругаюсь, ну просто как-то не хочется потому-что чую что в жизни мне это точно будет не нужно. А вот С++, АСМ и т.п. прокормит меня в трудный час.
 
Нет такого что ты что-то кому-то должен лишь потому-что заработал, а остальные нет ( по аналогии с зеками и армией ) ?
Я НИЧЕГО и НИКОМУ не должен, кроме одного человека, но это только потому что я люблю этого человека...мяу мяу мяу и все дела. Все кто мне говорят что я что-то им должен получают в еб**ос. Мне то же никто не должен. Я не понимаю этих воспитателей, которые кричат что мол "мы ДОЛЖНЫ вас защищать" - нет ничего они не должны, вбили себе хрень в голову и ходят. Долг это вещь такая, за которую надо не просто отвечать. Я могу ответить лишь за одного человека что я ему должен в этой жизни и спросить с меня можно лишь за него.
Как то так, ну это сугубо лично ме мнение...как там говорится ИМХО или ИХМО не в курсе. Ну короче понял.
Сообщение обновлено:

AfterInitProc - Процедуры после инициализации.
По окончанию инициализации, если был успешно прочитан файл конфигурации, данные, записанные в нём не выходят за рамки допусков (позже добавлю соответствующий обработчик), то тогда программа переходит в рабочий режим. С этого момента оператору предоставляется возможность произвести заказ.
1620698616100.png
Где пользователь формирует заказ. Заказ формируется так же как и в приложении. Каждому блюду соответствует определенный набор переменный.
C++:
PositionNm++;    // Формируем новую позицю
tovar[PositionNm].ID = 14;
tovar[PositionNm].Rid = 1000043;
tovar[PositionNm].Code = 1;
tovar[PositionNm].AltName = "Cheesburger";
tovar[PositionNm].Name = "Чизбургер";
tovar[PositionNm].price = 49.99;
AddTovarToPos(tovar[PositionNm].Name,tovar[PositionNm].price);
По окончанию формирования выбора нажимается кнопка "оформить заказ", которая все выбранные товары формирует в другую структуру для чека (предыдущая была также и для VDU, так как туда посылается именно код продукта)
C++:
JPS(0,"Запуск процедуры оформления заказа...");
DataOnT.Summ = SummPrice;
После формирования заказа можно приступать к заключающей части подготовки пакета данных - формирования чек-структуры. Выходной буфер по всем характеристикам полностью идентичен тому, что приходит на печать. 100% я смогу сказать после нескольких проведенных тестов, потому-что пока что тесты проводились только в одном заведении.
1620698675900.png
В окне формирования и предпросмотра чека нажимается клавиша "New Data" и открывается окно ввода данных в чек.
1620698581400.png
Если в файле конфигурации были записаны данные, то они отобразятся тут, так же тут высветится Итоговая цена по сформированному заказу, хэш (рандом) и другие данные. Проверяем данные и нажимаем "Entry Data" и после проведения верефикации введенных данных загорается ОК
1620697629900.png

Можно это окно закрывать.....хотя я наверное сделаю автоматическое закрытие по завершению верефикации и записи данных в память.
Теперь можно вывести чек на предварительный просмотр. Нажимаем "MakeData" и в RitchText построчно выводится наш готовый чек.
1620698106800.png
И к примеру реальный чек из этого ресторана
1620698315800.png

Данные фискального накопителя, регистратора и т.п. думаю буду рандомные делать.
 
Последнее редактирование:
О, вы всё таки решили обокрасть фастфуды)
Ну конечно! А как еще же, дык не просто обокрасть, а тихонько их изучить полностью, вытащить максимум инфы из их бренных тел, ну а потом как жахнуть!!! Да так, что-бы за бугром слышно было!
И друзья!!! Что же я мелочюсь, ладно этот фастфуд.....вы просто прогуглите КТО использует r_keeper - все отели и рестораны дорогие. Т.е. БургерКинг это просто один элемент всего пазла.
Блин только первй урок а я уже хочу убежать к чертям собачьим.
Самое смешное, что тема урока у нас сейчас "Уголовный кодекс РФ", а я сижу и читаю методы DDoS атак))))) кеееек_)

Щас уроки пройeёт и я опишу уже начало взаимодействия BKHT (Burger King Hacking Tool) с rk7 по протоколу TCP\IP. Вроде что-то получается, но я все делаю пока в обход sql и лицензии. Ключик то оказывается в сеть просится ну я его и чик-чирикнул. Он лезет на rkeeper.com причём передавая MAC поэтому я его пока убрал. Потом посмотрю что он передает когда разберу что он посылает.
 
Читать твои статьи одно удовольствие, я конечно не такой прошареный прогер) пишу только "белые" проги и олимпиадным программированием занимаюсь. Когда читаю твои статьи даже не верится, что тебе меньше 20. В общем, ты крут! Продолжай в том же духеramp

А когда будет собственно готовая прога?
 
Читать твои статьи одно удовольствие, я конечно не такой прошареный прогер) пишу только "белые" проги и олимпиадным программированием занимаюсь. Когда читаю твои статьи даже не верится, что тебе меньше 20. В общем, ты крут! Продолжай в том же духеramp

А когда будет собственно готовая прога?
Спасибо)
Я то же не крутой, да мне до "крутого" как до Китая...Но сё будет)

По поводу проги - есть ли теневой гит, куда можно спокойно публиковать и безопасно репозитории? Или же могу выкладывать на меге и переодически обновлять.
 
Автору респект! Достойно быть перенесённым в авторские статьи либо закреплённым здесь.

Я хоть и не фанат подобных забегаловок, но испытаю эстетическое удовольствие при виде школьников и студентов, с ехидными ухмылками на щщах обжирающих на халяву эти сетевые закусочные. Подобного рода удовольствие испытывали, возможно, сами Моисей и Аарон при виде наведённых ими жаб, взошедших в спальни Фараона, и саранчи, усеявшей все деревья в его саду :-)
 
Автору респект! Достойно быть перенесённым в авторские статьи либо закреплённым здесь.

Я хоть и не фанат подобных забегаловок, но испытаю эстетическое удовольствие при виде школьников и студентов, с ехидными ухмылками на щщах обжирающих на халяву эти сетевые закусочные. Подобного рода удовольствие испытывали, возможно, сами Моисей и Аарон при виде наведённых ими жаб, взошедших в спальни Фараона, и саранчи, усеявшей все деревья в его саду :)
Спасибо за столь тёплые слова!
 
есть ли теневой гит, куда можно спокойно публиковать и безопасно репозитории?
Есть notabug.org он полностью свободный и анонимный. В торе он тоже есть вот правда я на него зайти не могу.
 
Ну что друзья! Продолжаем!
Изучение внутренней кухни rk7
Выше мы остановились на том, что я написал программу BKHT, подготовил в ней все необходимые по моему мнению на данный момент функции и процедуры и сформировал структуру чека, для ее дальнейшей отправки в систему rk.
Теперь нам нужно изучить ПО менеджерской станции, что бы выявить как происходит печать чека, а так же передача информации на мониторы, что бы потом сформировать правильный .
Для этого я запускаю серверную часть rk, в соответствии с методичкой для администраторов.
Предварительно я запустил Wareshark для послеполётного анализа пакетов, которые будут гулять.
Позже я напишу программу, которая будет ловить пакеты от серверов, сразу их расшифровывать и выводить на форму в удобном и читаемом виде.
1. Я запустил Reference Server после чего он сказал мне, что мол не могу найти Базу Данных и предложил создать новую, у меня была база Данных от ресторана, но я пока для тестов решил ее не ставить в "бой", а создать пустую.
После запуска сервера и его предварительной настройки запустил главный экран СтМ, с которой и буду работать. Проверить, что сервер запущен можно в трее
1620981412300.png

Перед запуском СтМ посмотрел что в акуле творится....
Совет - ставьте сразу фильтр ip.addr == 127.0.0.1 и фильтр по необходимым портам.
1620981604800.png

Мдаа....надо будет все это изучать. Ну ничего)))
Запускаем файл rk7man.exe вводим логин Администратор и пароль =
Загрузится главное окно.
ВНИМАНИЕ!!! Так как у вас нет диллерского пароля/логина окно можно будет запустить РОВНО ОДИН РАЗ!!! Я пока не решил эту проблему, но это вопрос времени.
При повторном запуске появляется следующая ошибка, которую прогуглить я не смог пока-что нормально.
1620982060000.png

Хотят ее решение ускорило бы работу в х100500 раз.
Сейчас я справляюсь с ней полным сносом всего дистрибутива и его повторной распаковкой на диск.
Если кто может помочь с решением проблемы 7032 или дать дилерский пароль/логин то будет супер.

Если всё хорошо, то у вас высветится вот такое сообщение-предупреждение, что мол нет SQL-БД и сконнектится я к ней немогу. Обходится выставлением значения false логической переменной обозначающей работу с SQL в файле конфигурации.
1620984408200.png

И Вауля
1620984529200.png
Давайте по быстрому изучим фискальные устройства...
Запускаем winprint...
Возвращаюсь в СтМ Options -> Printing -> Documents and Layout наблюдаю такую картину. @Маскарад ты не знаешь как называется чек, который распечатывается на фискальном принтере покупателю?
1620985004700.png
1620985260300.png
1620985712300.png

Попозже напишу изучение их пакетов, сейчас не успеваю.
 
Он так и называется фискальный чек.
Сперва распечатывают пре-чек, который можно отменить и переделать.
Покупатель ознакамливается с ним, дает деньги, вместе со сдачей получает фискальный чек,
с принтера который налоговая опечатала.
Х отчет, это отчет который можно выкатить любое число раз за торговый день, там все данные по выручке и прочей хрени.
Z отчет распечатывается по факту закрытия торгового дня.
Ебать ты хакер, я в ужасе от тебя, далеко пойдешь, если на карандаш не попадешь
Спасибо большое за информацию, я изучаю сейчас все, я же в самом верху написал об этом зачем же так))) Я сразу предупредил, что знаний в данной области у меня нет, но огромное колличество информации и времени, а так же свежий взгляд и большое желание достигнуть своей цели, а это основные составляющие успеха. Даже если неполучится, я получу огромный опыт и уже следующая система получится, хотя изучая кипер, я все больше понимаю, что в нём много чего есть, что можно поюзать, что бы реализовать свои цели.
 
Киперы очень сильно отличаются по своему устройству и функционалу, в зависимости от версии. К примеру седьмой уже поддерживает планшеты и выглядит как совсем другая прога.
У меня разные версии есть и 7-я в том числе, прямо с компуктера менеджера.
 
Верю в тебя, прови их всех, скотов этих.
Кстати, я сам не хакер и в компутер особо не умею, но видал я одного паренька ирл, который всякую дич устраивал прогой под названием интерсептер, ну или как то так, перехватчик по английски короч.
По сути я просто хочу заставить фискальный принтер печатать то, что мне нужно, а VDU и KDS выводить мой заказ. Все.
Сообщение обновлено:

@Маскарад слушай, а не знаешь как можно обойти что бы кипер каждый раз переустанавливать не приходилось из за того, что нет дилерского пароля/логина? Или может их где-то можно найти?
 
Последнее редактирование:
Здравствуйте @return_a
Я работаю инженером в UCS. Один мой знакомый дал мне ссылку на эту статью и я хочу сказать что довольно рад, что вы делаете такие успехи в столь юном возрасте. Наш отдел СБ так или иначе найдёт данную статью, что очень жаль. Я конечно попробую этого не допустить.
Если у вас будут вопросы, пишите мне в лс.
Удачи!
 
Я работаю инженером в UCS. Один мой знакомый дал мне ссылку на эту статью и я хочу сказать что довольно рад, что вы делаете такие успехи в столь юном возрасте. Наш отдел СБ так или иначе найдёт данную статью
Разводилово. Эти дубы мандавошку на своих мудях найти неспособны, а исправить свой кривой софт тем более.
 

Похожие темы

В дарк-среде годами спорят, что лучше: старый, как мир, Jabber (XMPP) или модный и навороченный Matrix? Одни топят за «дедовскую надёжность», другие — за современные фичи. Сегодня мы без фанатизма разберём оба протокола, чтобы ты сам решил, какой инструмент подходит под твою задачу. Что общего...
Ответы
1
Просмотры
225
Привет, коллеги. CyberSec RuTOR на связи. 5 лет назад я арендовал небольшой VPS для своего первого проекта. Всё работало, клиенты были довольны. А потом в один «прекрасный» день сайт просто лёг. Страницы грузились по минуте, а потом и вовсе перестали открываться. Я зашёл в терминал, набрал top...
Ответы
1
Просмотры
47
Вот и наступил февраль. Стекла разукрасило морозной живописью, температура упала за минус -25С°, а ко мне опять поутру стучится сосед - счастливый обладатель свежей Нивы "УРБАН". Мне неохото , но дело соседское и засунув ноги в теплые мохнатные тапки с хоботом и косыми глазами (если что, это...
Ответы
43
Просмотры
Привет, форумчане! Хочу поделиться инструкцией по поднятию собственного быстрого, надежного и устойчивого к блокировкам VPN для всех ваших устройств, а также устройств ваших близких. Каких-то технических навыков не потребуется. Аренда сервера Первым делом нужно арендовать сервер. Идем по ссылке...
Ответы
0
Просмотры
425
Винни-Пуха придумал не советский писатель Борис Заходер, он взял для своего мультика уже готового персонажа. Знаменитого медвежонка подарил миру английский драматург и поэт Алан Милн. Вскоре после своего триумфа автор «Винни-Пуха» писал: «Думаю, что каждый из нас втайне мечтает о бессмертии. В...
Ответы
0
Просмотры
119
Назад
Сверху Снизу