cookie

Sizning foydalanuvchi tajribangizni yaxshilash uchun cookie-lardan foydalanamiz. Barchasini qabul qiling», bosing, cookie-lardan foydalanilishiga rozilik bildirishingiz talab qilinadi.

avatar

Московия и не только

Пишем на хабр. Познавательные посты от одного до пяти раз в неделю Пятница — день мемов.

Ko'proq ko'rsatish
Reklama postlari
484
Obunachilar
+124 soatlar
-37 kunlar
+2430 kunlar

Ma'lumot yuklanmoqda...

Obunachilar o'sish tezligi

Ma'lumot yuklanmoqda...

Photo unavailableShow in Telegram
Птичка постигла технологии высокоразвитой цивилизации. Автор изображения неизвестен.
Hammasini ko'rsatish...
👍 14😁 3
ASLR Как я говорил ранее, с помощью buffer overflow нельзя загрузить свой код, можно только подменять адреса и аргументы, чтобы вызывать уже существующие в программе функции. Здесь нужно сделать важное отступление. Операционные системы предоставляют универсальный набор функций для комфортной работы внутри ОС: вывод на экран, чтение/запись файлов и так далее. Реализация этих функций лежит в виде библиотеки: user32.dll в Windows и libc.so в Linux. При запуске программы операционная система загружает в память не только код программы, но и код динамических (разделяемых) библиотек. Это значит, что даже в самой маленькой программе, которая печатает Hello, World!, доступны функции для запуска других программ. Плохому человеку нужно лишь узнать адреса и дело в шляпе. Раньше операционные системы (не специально, конечно) помогали злоумышленнику: библиотеки и их функции располагались на одних и тех же адресах. Так что один раз угадал что где и радуешься жизни. Вот тут-то на сцену выходит Address Space Layout Randomization (ASLR). Идея проста как тапок: давайте будем загружать код программы и библиотек по случайным адресам. Нет, это не панацея. С этой технологией становится сложнее стабильно находить место, где нужно переписать адрес, и на что переписывать — тоже вопрос. Но это всё ещё возможно.
Hammasini ko'rsatish...
❤‍🔥 7
Исполнение Но если вы достаточно хитры, то пойдете дальше и будете использовать особенности архитектуры компьютеров. В основе современных компьютеров лежит архитектура фон Неймана (Пристонская архитектура). Это значит, что данные, которыми оперирует программа, и сам код программы лежат в одном месте и на глазок никак не различаются. Вот пример:
1da1bff4e4394f1e989d620f90ce5e06
Что здесь закодировано? Программа и данные? Только программа? Только данные? Вот и компьютер не знает. И ему (снова!) безразлично. Он исполняет то, что ему попалось в соответствии с логикой программы. Вместо подмены каких-то данных, как номера региона в прошлом посте, вы можете изменить код программыи заставить её делать то, что нужно вам. Это называется buffer overflow shell code execution. В академических целях ограничиваются запуском калькулятора, но возможности поистине безграничны... ...могли бы быть. Возможность выполнять любой код — это слишком опасная возможность. Поэтому в современных операционных системах память «размечена» правами доступа. Код программы хранится в области, на которой флаги «можно читать и исполнять», а область данных отмечена как «можно читать и записывать». Поэтому вы не сможете изменить исполняемый код или добавить свой. Но! Аргументы для вызова функций, как и адреса этих функций, — это данные. А данные изменять можно. Получается, если мы хитрые, то мы можем выполнять любую функцию в программе с любыми аргументами. Ваш ход, защитники.
Hammasini ko'rsatish...
9
Переполнение Для объяснения следующей технологии нужна небольшая предыстория в виде теоретического введения. Приступим. Так уж сложилось, что в информационных технологиях много фундаментальных ограничений. Представьте, что вы считаете числа в столбик, а на вашей бумажке для вычислений хватает места только для трёх цифр. Вот вы складываете 999 + 2, хотите записать 1001, а но четвертый, старший разряд, не влезает. Приходится писать в ответ 001. (Пересильте свое человеческое желание «прилепить» мелкую цифру, машинам это недоступно) Этот «переход» через максимальное значение называется переполнением. В информатике проверку на переполнение можно записать таким условием:
(a + b) < a
Для математиков это неравенство не имеет решений в положительных числах, а вот в информатике вполне. Такое переполнение грозит неверным ответом, что плохо, но не катастрофа. А есть другое переполнение — переполнение буфера. Представьте, что вам дали официальный бланк, где каждый символ нужно писать в отдельной клеточке. Вам нужно записать номер документа. Только номер документа — десять букв, а клеточек всего шесть. Если действовать как компьютер, то первые шесть букв будут записаны куда надо, а оставшиеся четыре — в следующие свободные четыре клетки. Даже если следующие клетки предназначены для номера региона. На языке программирования С это можно записать так:
char document[6]; // Типа номер документа
uint16_t region_id = 74; // Номер региона

// Это одна, непрерывная, операция записи в "клеточки"
strcpy(document, "DOCUMENT10");
В примере с бумажкой и человеком возникает естественный вопрос «а то ли я делаю?», но компьютеру-то безразлично. Есть команда записывать — он записывает. Что дает это переполнение? Возможность изменить данные, которые находятся в «ячейках» дальше. Даже если эти данные назначены кем-то другим и не должны меняться. В моем примере — это некий «номер региона». В основном это ведет к непредвиденным ошибкам или экстренному завершению программы. Но если вы достаточно хитры...
Hammasini ko'rsatish...
❤‍🔥 13👍 3
Раз уж начал, то надо и завершить тему сомнительных зелий. Автор изображений: Shen (Серия BlueChair, выпуск 1038)
Hammasini ko'rsatish...
😁 5 4👍 1
Какое зелье?Anonymous voting
  • Зелье магии
  • Зелье богатства
  • Зелье пауэр
  • Причудливое зелье
  • Зелье полёта
  • Зелье скорости
  • Вариант из комментариев
0 votes
Время интерактива: какое сомнительное зелье вы бы выбрали? Давно не было потешных опросов, так что почему бы и нет. Последний слайд говорит, что автор может нарисовать ваши идеи... Вы можете ознакомиться с комментариями оригинала, а можете посмотреть комментарии к русскоязычной адаптации в ВК. Ну и будет классно, если вы что-то придумаете в комментариях. Автор изображений: Shen (Серия BlueChair, выпуск 1037)
Hammasini ko'rsatish...
Photo unavailableShow in Telegram
Ретроспектива, так сказать На протяжении жизни (почти) каждый человек взрослеет и меняет свое мировоззрение. Познанные в детстве объекты искусства с годами могут раскрываться по-другому. Ностальгия прорезалась, — подумал я и с честью принял своё желание посмотреть на Lineage 2 в 2024 году. Нет, не на современную разрекламированную и локализованную версию и даже не мобильный порт. Я хотел посмотреть на оригинал, в моем случае «Хроники Хаоса» в версиях С4 и С6. Версии C4 в этом году исполнится 19 лет с момента первого релиза в Южной Корее. Lineage 2 пришла в Россию официально в конце 2008 года, через пару версий после C6. Поэтому изначально она была на английском с кустарными переводами интерфейса, которые админы пиратских серверов где-то собирали. В некоторых случаях переводились только важные квесты, которые влияют на выбор профессии и дальнейшее развитие в игре. Но чаще не переводились совсем. А что сейчас? Сейчас можно найти активные сервера даже самых первых версий игры. С донатом, конечно :) Я заглянул на знакомые с детства локации... Огромные пустые пространства, полтора NPC и отсутствие локализации. Квесты вообще никого не интересовали. Как эта игра стала популярной? Вероятно, это просто один из вариантов интернет-социализации в те времена.
Hammasini ko'rsatish...
3
Самое сложное для меня в готовке по новому рецепту — это критерий «по готовности».
Варите картошку до готовности.
Да кто такая эта ваша готовность! Автор изображения неизвестен. Это, кстати, похоже какая-то картина, Но мой кругозор и Google Lens не справились.
Hammasini ko'rsatish...
😁 5🥰 1
Научный скам В науке очень любят научные показатели. То есть для соискания научной степени кандидата каких-нибудь наук нужно оставить свой след в истории, который оценивается количественно. Это может быть участие в научных конференциях, попытки выиграть какой-нибудь грант или написание статьей в рецензируемые журналы. И вот с последними есть нюанс, потому что есть три вида журналов. 1. Настоящие научные журналы. Они известны и поддерживают в основном высокую или очень высокую планку качества. В эту категорию входят супер-журналы Science и Nature, в которые многие ученые мира мечтают отправить свою статью. Впрочем, эти супер-журналы тоже критикуют, мол, «громкие» публикации для них приоритетнее, чем важные для науки. Но в «высшей лиге» свои конфликты. 2. Платные журналы. Ожидаемый ответ для тех, кто качество оценивает по количеству. Пишешь что-то, платишь взнос, дальше происходит имитация бурной деятельности и статья публикуется. Вот, например, статья про алгоритм сжатия deflate, написанная в 2016 году. Это вольный пересказ стандарта RFC 1951, который вышел на 20 лет раньше. Никакой новизны или научной ценности, но метрика «количество опубликованных статей» увеличена на единицу. 3. Журналы, которых нет. После публикации одной из научных статей, где я соавтор, мне пришло письмо-приглашение. Если кратко, то редакторы уважаемого журнала Wulfenia (ссылка) ознакомились с нашей статьей и приглашают опубликовать следующую статью у них. И вроде выглядит все правдоподобно, несостыковки действительно маленькие. Описание на сайте:
Wulfenia (ISSN: 1561-882X) is a multi-disciplinary, peer-reviewed international ISI journal <...>
Обратите внимание на слово «междисциплинарный», в то время как по этому номеру ISSN можно найти следующее:
Other variant title: Mitteilungen des Botanischen Gartens des Landes Kärnten
Перевод: Объявления из Ботанического сада Каринтии. А в англоязычной Википедии и вовсе есть раздел «Scam». Да, журнал Wulfenia действительно существует, но это журнал для публикации в области ботаники. Это печатный журнал, у которого нет сайта, чем и воспользовались хитрые люди. Прикрываясь чужим именем, они принимают черновики публикаций, потом просят перечислить взнос и после получения вознаграждения перестают отвечать. Эту проблему журнала освещали ещё в 2012 году, но с тех пор ничего не поменялось. Единственный ли это такой журнал? Определенно нет. В оба нужно глядеть даже в академических кругах.
Hammasini ko'rsatish...
👍 6 1🤔 1