Reverser's notes
212 subscribers
82 photos
3 files
55 links
Канал о моей жизни как инфобез-ресечера

Мета: https://t.iss.one/AnyKeyShikMeta
Download Telegram
Интересный факт в воскресенье с утра. Не тянет на статью в блоге, поэтому будет сюда.

Итак, возьмём оператор goto. Это достаточно специфичная вещь, но, тем не менее, применяемая и используемая. То есть если быть осторожным - все будет ок, хотя для неопытного программиста код будет намного более сложночитаем (более того, goto весьма успешно используется в том же ядре Linux).
А теперь добавим треша, угара и содомии. Сделаем goto недетерминированным - то есть, он может менять точки прыжков прямо во время выполнения. Звучит сюрреалистично? Тем не менее, это реальность. В COBOL существует оператор ALTER, который позволяет менять точки прыжков goto.
То есть, к примеру, код, который выглядит вот так

IF WS-X = 2 THEN
ALTER SELECT-PATH TO PROCEED TO PATH-2.
ELSE IF WS-X = 3 THEN
ALTER SELECT-PATH TO PROCEED TO PATH-3.
END-IF.
GO TO SELECT-PATH.
SELECT-PATH.
GO TO PATH-1.

Может прыгнуть в три разных места. В зависимости от значения переменой. После такого js и python уже не кажутся нелогичными и сложными языками. И как же хорошо, что писать на коболе мне пришлось всего лишь один раз в жизни
Как и обещал, чуть больше постов про неформат. Будет немного о жизни. Начну за здравие, а закончу как обычно

1. Я наконец-то смог разобраться в том, что мне дали на работе. Штука мощная, башка распухла, но я смог. Заняло это, без малого, 4 месяца. Печально, надеялся, что я что-то понимаю в системной проге, но, как оказалось, нет. Но зато теперь шарю намного лучше. Но что разобрался - афигенно и вообще супер. Жить станет проще, это точно
(тут момент, когда за здравие заканичвается)
2. КОГДА ЖИТЬ??? Времени вообще нет
3. На свои проекты времени почти не осталось, что-то пилю, но очень-очень медленно. Но, мб, все-таки смогу к концу 2021 хоть что-то довести до релизной версии. Статьи в еще более печальном состоянии, их надо все приводить в порядок и, по-хорошему, переводить, но это такой здоровенный пласт работы, что вообще хз, когда этим заняться
4. Компьютерные игры - зло. Но зло вынужденное, потому что мозги рагружают супер. Главное, не перестараться
*шутка про обновление арха*

После очередного обновления и очередной ручной пересборки дебаг-версии libc задумался, что пора бы это автоматизировать. Ну и заодно описать процесс, может, кому-то пригодится
🤩1
Вчера забыл прикрепить аниме-девочку. Чёт совсем забегался :D

Исправляю
🥰1
Спустя энное время я все-таки открываю репу с тем, чем занимался весь сентябрь и кусок октября. Меня попросили разработать целиком CTF'ку, я сделяль. Можно было лучше, для опытных людей тут интересных тасков почти нет (а один вообще позаимствован), но тем не менее
🥰1
Чет зашел на русский стек, увидел вопрос, который является достаточно популярным у новичков и даже у некоторых опытных программистов. Решил быстренько ответить. Быстренько не получилось, получилась почти статья. Так что решил заодно выложить тут, мб кому-то будет полезно общее понимание того, как работают библиотеки и компиляция. Конечно, допущены некоторые упрощения, но в общем суть ясна
👍2
Неделю назад прошел Moscow CTF School, я обещал нескольким участникам опубликовать райтапы на два таска, которые там были:
1. Crash me. Простая задача на UB в C/C++. Программа ждет на вход два знаковых числа типа int, после чего проверяет, что делитель не 0 и выдает результат вычисления. Достаточно идеоматичная вещь - если в этих языках поделить INT_MIN на -1, то результат не влезет в знаковый int и программа упадет с SIGFPE, что и было целью задачи.
2. Zip random. Тоже достаточно тривиальная задача - дан zip-архив с программой, которая ксорит входные данные с "рандомными числами" и каким-то проксоренным текстом, который, скорее всего, является флагом. . Если внимательно изучить программу, то можно увидеть, что используется ГПСЧ из cstdlib с начальным значением time(NULL). Можно заметить, что архив формируется не в момент скачивания, а был сформирован давно. Следующее логичное предположение - архив дан, чтобы получить примерное время xor. Тогда, написав простенький декодер, можно получить флаг. Код декодера я прикладываю
#include <iostream>
#include <fstream>
#include <ctime>
#include <cstdlib>

int main()
{
std::string input_file;
std::string output_file;
time_t start_time;

std::cout << "Please enter encrypted file name: ";
std::cin >> input_file;
std::cout << "Please enter output file name: ";
std::cin >> output_file;
std::cout << "Please enter start time offset: ";
std::cin >> start_time;

std::fstream in(input_file, std::fstream::in);
std::fstream out(output_file, std::fstream::out);
if (!in || !out) {
std::cerr << "Error open files!" << std::endl;
}

std::string flag;
in >> flag;
std::string wtf;

for (auto i = 0; i < 50000; i++) {
srand(start_time - i);

out << "Attempt #" << i + 1 << ": ";
for (int j = 0; j < flag.size(); j++) {
char ch = flag[j] ^ rand() % 255;
if (!isprint(ch)) {
break;
}

wtf.push_back(ch);
}

wtf.push_back('\n');
out << wtf;
wtf.clear();
}
}
👏1
УПД. 2д-девочка опять отказалась прицепляться, так что цепляю отдельно
😱1
Ну что же, до нового года остались "считанные часы" (с) и самое время подвести

Итоги 2021

Лучшая прочитанная статья
Тут сложно определиться, в этом году я прочитал, пожалуй, больше, чем за два года до этого. На работе были ооочень интересные задачи, я получил резкий буст в развитии. К сожалению, успел далеко не все, что хотел, но буду нагонять. Я правда благодарен и людям из команды за терпение к, порой, абсолютно дурацким вопросам и за возможность так сильно вырасти. Но это только начало пути, впереди предстоит еще много чего узнать и сделать.

Итоги Pet-project'ов
Сделал меньше, чем планировал. Ощутимо меньше. Но, опять-таки, я понял, что немного переоценил себя в смысле раскидывания времени и в будущем буду это учитывать. Пока можно сказать так - сделал много, но два самых больших проекта еще только впереди. Что же, тем интереснее будет 2022 год.

Итоги публицистической деятельности
С одной стороны, наконец-то, осуществил давнюю мечту - запустил полноценный блог. С другой - написал туда крайне мало. Хотя очень о многом хочется рассказать. Скорее всего, буду восполнять все это летом, потому что все идеи я записываю, но сесть и нормально их реализовать никак не получается.

Удивление года
Ядра. Не сказать, чтобы я раньше ими не увлекался, но в этом году меня затянуло. С головой. Так что дальше буду только больше углубляться в эту тему
Плюсы. Так сложилось, что я расковырял плюсы намного глубже, чем до этого и этот язык меня удивил. Во всех смыслах - и в плохом, и в хорошем. Но это, опять-таки, тема для отдельной статьи. Так что ждем анонсов :D

Разочарование года
Я сам. Сделал намного меньше, чем хотел, прочитал меньше, чем хотел, не получил всех ачивок, которые планировал получить. Временнно перестал развиваться в сторону пентеста, ощущаю, как навыки потихоньку утекают. Но, надеюсь, смогу восстановить, пока времени не хватает. В целом, результаты года не такие суперские, как хотелось бы, но есть вещи, которые очень радуют.
Еще один немаловажный момент - я практически перестал социально взаимодействовать с людьми. Но, из реально крутых вещей, сейчас меня окружают реально хорошие и классные люди и в этом смысле я наконец-то абсолютно доволен этой стороной жизни.

Успехи года
Во-первых, работа. Да, сделал меньше. Но изначально, когда я получил задачу, я даже не представлял, как я буду ее решать. Сейчас спокойно могу оперировать понятиями, которые даже полгода назад казались чем-то сложным и непонятным. За это я крайне благодарен всем тем людям, с которыми я работаю.
Во-вторых, личностный рост как профессионала. Пожалуй, этот год был одним из самых результативных в смысле погружения в низкий уровень - я стал действительно намного лучше понимать, как наш мир работает "на уровне железа" (с).
В-третьих, личная жизнь. Скажу просто - я счастлив. И это, как я считаю, самое главное :3

Кино года
Ведьмак. Без шуток, это один из лучших сериалов, из всех, что я смотрел.
Vivy: Fluorite Eye's Song

Литература года
Хромая судьба. Наконец-то дошли руки прочитать это произведение и оно меня реально зацепило.
Понедельник начинается в субботу. Это, по-моему, 5 раз, когда я перечитываю эту книгу и, наконец-то, я увидел ту самую сатиру, про которую слышал всю свою жизнь, но никак не мог понять, что же имеется в виду.

Знакомства года
Тут два пункта. Пожалуй, оба одинаково важные
Самый лучший человек на этой планете :3
Моя команда. С моей точки зрения, лучшие из лучших. Ребят, вы сделали мой год и я счастлив работать с вами.

Пожелания на 2022
Больше времени уделять профессиональному росту, нормально отдыхать. К концу года я начал совсем умирать, потому что в какой-то момент забил на отдых. За что сейчас расплачиваюсь - последние несколько дней сплю сутками (обожаю русский язык за подобные конструкции :D). И, самое главное, стараться реализовывать тот список дел, который себе составляю. Ну и, конечно же, адекватно такие списки составлять :D

Всех с наступающим, всем спасибо, кто был со мной. Специально для вас есть новогодняя елка!
1
Как обычно, аниме-девочки идут отдельно, в последнее время перестал укладываться в лимит подписи к фотографиям :D
Наткнулся на прикольную вещь в C++. Имхо, на юзабилити и безопасность влияет слабо, но я не смог пройти мимо. Вот уж действительно, язык от программистов для программистов :D
🔥1
В arch'e наконец-то завезли дебаг-инфу. Правда, работает эта штука лучше не придумаешь, за 6 попыток я сумел ее крашнуть. И список пакетов с дебаг-инфой пока маленький. Но начинать-то с чего-то нужно? Пусть даже и в 2022 году :DD
🥰1
Я в курсе, что сайт прилёг отдохнуть. Постараюсь пофиксить как можно быстрее, но проблема ещё в контенте. Какие-то бекапы есть, но вот какие?
Собственно, спасибо русским впс-провайдерам, мне просто блокнули впс за "вредоносную активность" в тот момент, когда все люди, имеющие доступ к ней, благополучно сидели со мной за пивом. В общем, свежо предание, но верится с трудом. Буду как-то выкручиваться. Благо, сайт почти домашний, поэтому проблемы с доступом к джой-казино нему возникнут не у многих
Прошу прощения
😢3🤔1
Ну, собственно, путь начался. Привет всем из Казани :D

UPD. Мы уже не тут, держим путь в сторону Набережных Челнов, а дальше в Уфу. После поездки будет больше фоток, пока единичные экземпляры
🥰1
Итог сегодняшнего дня. После двух дней за рулём я сдох, так что отчёты будут позже :D
2🐳1
Неожиданное включение. Вообще, есть дофига чего рассказать, но времени не хватает катастрофически. Где-то ближе к середине-концу осени гонка кончится, я думаю, тогда поделюсь. Пока я пишу сюда выкинуть цитату Леннарта Поттеринга, известного затейника в ламповом мире линукса.
Сама цитата: "[...] не понимаю этого. […] В мире вообще около 50 человек понимают политики SELinux.". Как вы догадались, речь идет про многострадальный SELinux. Но заявить, что SELinux **НЕ НУЖЕН**, потому что "я этого не понимаю"? Мое мнение о нем и раньше было не особо высокое, но сейчас, определенно, стало ниже. Возможно, я что-то не так понял, но если все так, то он реально __очень интересный__ человек
Ещё один неожиданный взрыв с двух ног. Оказалось, что винда для Samba использует 445 порт, а не 139. Будьте внимательны и не тратьте на это столько времени, сколько потратил я. У меня уже даже гореть сил нет
Определённо, некромантов (или некрофилов?) с каждым годом все больше. Кто-то вспомнил про существование Winamp и, на полном серьёзе, обновил его. Если бы мне про это сказали даже ещё год назад - покрутил бы пальцем у виска. А так повод пощупать-потрогать. Ну и вспомнить детство, до кучи
👍1
Ещё, как бонус. Меня включили в программу Иванниковских чтений в Казани. Буду рассказывать про снятие трассы и последующую эмуляцию ПО и какое решение можно предложить миру. Так что если кто-то будет рядом - можно пересечься Х)
👍3
Собственно, я чуть не забыл. Ссылка на конференцию, идёт трансляция. Мой доклад будет в секции "Анализ и трансформация программ" в 17:50. Присоединяйтесь, буду всех ждать :)
🔥1