Рекриптор
228 subscribers
88 photos
12 videos
3 files
263 links
Заметки на полях о практической безопасности и не только
Download Telegram
Поздравляем! Кстати, все желающие сотрудники Компании обучаются за счёт Компании
👍13🔥3🎉2
Солидная часть наших разработок делается на C и C++. Потому возникла идея здесь описать знания, которыми, на наш взгляд, должен владеть начинающий разработчик C++.

1. Стек. Как передаются аргументы в функцию. Адрес возврата. Форматы вызовов (cdecl, stdcall, fascall). Локальные переменные (почему они локальные и как это связано со стеком).
2. Массивы и динамические списки. Люди, утверждающие, что знают STL, иногда не понимают разницы между std::list и std::vector.
3. Память. Глобальные переменные, динамическая память, регистровая память, стек (уже было, но это реально важно). Очень хочется понимания страничной адресации памяти.
4. Наследование. Виртуальные функции. Таблица виртуальных методов.
5. Компиляция и линковка. Что это вообще такое.

Хорошие книжки по C++:
1. Стивен Прата, Язык Программирования C++
2. Скотт Майерс, Эффективное использование C++
3. Николаи Джосаттис, Стандартная библиотека C++. Справочное руководство
4. Вандевурд Дэвид, Грегор Дуглас, Шаблоны C++. Справочник разработчика.
5. Дейл Роджерсон, Основы COM (здесь очень хорошо описано наследование и таблицы виртуальных методов, такого нигде не видел больше)

Полезные советы начинающим:

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

2. Экспериментировать лучше с линуксовым стеком

#почитать #программирование
👍10
Добавлю к предыдущему посту. Почему важно понимать низкий уровень при программировании на, казалось бы, высокоуровневом языке C++? Например, статическая локальная переменная в функции. При понимании, где она на самом деле располагается, становится совершенно понятно, почему её значения сохраняются от вызова к вызову. И сразу понятно, что там с многопоточностью. Равно как понимание, чем отличается вызов статической функции-члена класса от вызова обычной функции-члена класса, сразу даст ответ на вопросы с доступностью членов класса. Понимание низкоуровневой механики происходящего позволит не заучивать все эти вещи, а понимать, почему именно так. Как и говорил выше, это экономит кучу времени и приносит меньше страданий и себе, и людям. Так что без основ реверсинга никуда :)
А пока ещё один документ, куда имеет смысл обращаться при работе. Это стандарт C++ https://isocpp.org/files/papers/N4860.pdf

#почитать #программирование
👍6
Все побежали, и я побежал (c) :)

Все стараются подвести итоги года. Мы тоже это сделаем. Однако писать много букв лень, поэтому просто приведём ссылки, картинки и видео.

https://eprint.iacr.org/2021/136
https://eprint.iacr.org/2023/1486/

Сделано много, сделано хорошо. От брингапа материнской платы с прошивкой, device tree и всем сопутствующим до трекера объектов. Мы растём во всех смыслах. Это отлично!
👍7🎉2❤1👀1
С Новосельем, Рекрипт! Сегодня официально началась новая веха в развитии Компании. Дело, конечно, не только в новых офисах гораздо более высокой площади и класса, где можно не только эффективно работать, но и отдыхать. Дело в общем росте старых направлений и появлении новых, где мы уже показываем результаты. Дело в новых талантливых лицах, которые пополняют число сотрудников Компании. Дело в общем росте наукоёмких задач, которые мы умеем решать и решаем. Это хорошо
👍23🔥2👏1
На РусКрипто сделаем два доклада. Первый - про RC4OK, о котором писали ранее.
Второй доклад будет посвящён статическому анализу исполняемых файлов с помощью ИИ - небольшой части большой, наукоёмкой, очень важной и безумно интересной работы в интересах компании Вычислительные решения
👍8❤1🔥1
Сижу на РусКрипто, слушаю доклады. Стоило приехать хотя бы ради того чтобы понять, насколько всё-таки академическая и научная среда далеки от реальной жизни. Не всегда, но ощущение пока такое... Разрыв между теоретиками и практиками мне видится большим. Но говорят все, конечно, красиво, уверенно, энергично. Так принято.
При этом много действительно интересных и умных людей, с которыми интересно и приятно кулуарно общаться. В этом плане площадка бесценна
😁10🌚1
Channel photo updated
О_статическом_анализе_исполняемых_файлов_на_содержание_вредоносного.pdf
1 MB
Презентация одного из наших докладов на РусКрипто: "О статическом анализе исполняемых файлов на содержание вредоносного кода". Это одна из многих интересных задач, решаемых нашей лабораторией VR Protect. Огромное спасибо Лавровой Дарье Сергеевне - модератору секции. Доклады были интересными как с теоретической, так и с практической точки зрения

#ии #почитать #антивирус
👍6
Channel photo updated
Ничего необычного. Просто многократно встречающийся комментарий в одном релизном Linux-драйвере:

/* FIXME We probably SHOULDN'T enable it here */
😁8🔥1👌1
RC4OK_RusCrypto-2024.pdf
817.9 KB
Презентация нашего доклада на РусКрипто-24. Идея и реализация полностью принадлежат Олегу Ховайко - основателю блокчейн-платформы Emercoin и просто хорошему человеку и прекрасному инженеру. Моя роль в этой работе аналитическая - эдакий "злой полицейский", постоянно сомневающийся и пытающийся взломать модифицированный алгоритм. Взломать текущую версию не получилось, поэтому алгоритм был опубликован. Основная "фишка" подхода - оригинальный низкоресурсный механизм добавления энтропии без механизмов синхронизации, что обеспечивает очень высокую скорость работы. При этом тесты PractRand показывают отличные результаты

#rc4ok #криптография #почитать
🔥6❤1