First Steps
First Steps
  • 57
  • 127 821
Ассемблер и Си для Хакера #35. Функции работы с файлами
Все функции работы с файлами - стандартные и не стандартные. Плюс дополнительные возможности и программа тестирования скорости записи данных в файл на ассемблере !
Скачиваем необходимый софт по ссылке: assembler-code.com/programmnoe-obespechenie.
Telegram "Ассемблер и Си": t.me/assembler_and_c
Эксклюзивная инфа: boosty.to/firststeps
Поддержать канал: boosty.to/firststeps/donate
00:00 Функции работы с файлами в Windows
01:14 Стандартные файловые функции Win32 Api
02:58 Классификация файловых функций
05:08 Алгоритм работы программы тестировщика
07:28 Исходный код
12:39 Тесты скорости записи в файл
14:40 Что нас ждёт впереди ?
Переглядів: 946

Відео

Ассемблер и Си для Хакера #34. Как защитить стек DEP ASLR Канарейка
Переглядів 489День тому
Без этого не построить систему компьютерной безопасности ! Эффективные методы защиты переполнения буфера. Что знают хакеры чтобы взламывать ваши операционки. Windows - под угрозой! Что делать, чтобы защититься и при чём тут Канарейка? DEP , ASLR , GS , Stack Canary - теория и практика. Ни одного шага без x64Dbg ! Защита переполнения буфера стека Канарейка на Ассемблере masm32. Надеюсь, что это ...
Ассемблер и Си для Хакера #33. Переполнение Буфера
Переглядів 1,7 тис.14 днів тому
Узнайте об опасностях атак на переполнение буфера и о том, как хакеры могут использовать их для взлома программ ! Мы рассмотрим все: от понимания того, как они работают, до изучения того, как пишутся эксплоиты и шелл-код для реализации Buffer Overflow на операционной системе Windows. Нам не потребуется устанавливать дополнительные библиотеки, Python, Perl, WSL, виртуальные машины и т.д. Всё реа...
Секреты отладки консольных программ x64dbg
Переглядів 1,7 тис.21 день тому
Изучите секреты отладки консольных программ с помощью x64dbg - мощного инструмента для обратного проектирования и программирования на ассемблере! В этом уроке мы погрузимся в мир низкоуровневого программирования и узнаем, как использовать x64dbg для анализа и понимания внутренней работы консольных приложений. От понимания ассемблерного кода до выявления уязвимостей - мы рассмотрим основные навы...
С новым 2025 годом
Переглядів 1,1 тис.Місяць тому
Всем хакерам, всем подписчикам, всем программистам , всем, всем, всем... Итоги 2025 года. Новогодние Поздравления, Пожелания и Обещания! Смотрим и плачем от счастья! Необходимый софт для практикующих по ссылке: assembler-code.com/programmnoe-obespechenie. Telegram "Ассемблер и Си": t.me/assembler_and_c Эксклюзивная инфа: boosty.to/firststeps Поддержать канал: boosty.to/firststeps/donate 00:00 П...
Ассемблер и Си для Хакера #32 Библиотека Си в Ассемблере
Переглядів 1,1 тис.Місяць тому
Функции стандартной библиотеки Си очень эффективны и популярны. Что нужно сделать, чтобы стандартная библиотека Си в Ассемблере работала как часы? Четыре способа решения вопроса. Подробные разъяснения и работающие исходники! 00:00 Чистый код 00:57 Библиотека Си в Ассемблере 01:34 Библиотеки Си в Windows 05:20 Терминальная программа 06:10 Функции Си в Ассемблере способ 1 11:44 Функции Си в Ассе...
x64Dbg UPX Reverse Engineering
Переглядів 1,5 тис.Місяць тому
Перед ревёрсингом упакованный файл распаковывают... Что такое пакер, как он работает, какой алгоритм реверсирования этой зверушки? Reverse Engineering UPX, x64Dbg - это три варианта ручной распаковки пакера UPX, используя x64Dbg и плюс ещё один - без него. Теория и практика - коротко и ясно! Скачиваем необходимый софт по ссылке: assembler-code.com/programmnoe-obespechenie. Telegram "Ассемблер и...
Ассемблер и Си для Хакера #31. Shellcode
Переглядів 1,5 тис.Місяць тому
Простое и понятное объяснение, что такое Shellcode ( Шелл-код ) и как его используют хакеры. Вся теория подкреплена работающим исходным кодом крошечной программы на masm32. Программа выдаёт себя за блокнот Windows и снимает в текстовый файл обобщённую информацию о системе. Рекомендуется программистам, хакерам и специалистам по компьютерной безопасности. 00:00 Программа с шелл-кодом на masm32 01...
Ассемблер и Си для Хакера #30 Обфускация кода и данных в программе
Переглядів 1,8 тис.Місяць тому
Обфускация кода и данных в программе необходимы для защиты от взлома, а также используется для противодействия авирям. В ролике "разжёван" один интересный приём обфускации кода и данных под кодовым названием IP Fuscation. Как всегда - рабочий код на masm32, и рабочая программа с исходниками. 00:00 Что такое обфускация 02:25 Запутывание кода - теория 03:46 Объяснение IP обфускации 07:10 Реализац...
Ассемблер и Python - Дао общих интересов
Переглядів 1,6 тис.2 місяці тому
Возможности и практическое применение Python совместно с другими языками программирования - это Дао Python . Ассемблер и Python - самые не совместимые на первый взгляд вещи. Но так ли это? Открываем новую рубрику для хакеров. Теперь к Ассемблеру, C и C добавляется Python. Решаем общие задачи, объединив усилия. Скачиваем необходимый софт по ссылке: assembler-code.com/programmnoe-obespechenie. Te...
Техника взлома и отладки программ: стек вызовов и точка останова на память
Переглядів 1,2 тис.2 місяці тому
Программа защищена парольной защитой. Все строки в коде зашифрованы! Вместо пароля в программе - хэш сумма! Никаких зацепок и вызовов MessageBox! А результат - нулевой... Как это возможно и что делать?!.. Как всегда - теория, практика, понятные объяснения без воды, исходный код! Видео полезно для пентестеров, специалистов по компьютерной безопасности, белых хакеров и всех, кто желает повысить с...
Ассемблер и Си для Хакера #29. Так прячутся трояны
Переглядів 4,2 тис.2 місяці тому
Так прячутся трояны и другие вирусы и зловреды от беспечных пользователей. Так реализуется скрытая установка программ. Так программы маскируются под другие программы. Разбор хакерской технологии " Программа в Программе ". После просмотра Вы никогда не будете запускать скаченные с торрентов фильмы и архивы с расширение *.exe. Просто необходимо посмотреть всем, кто интересуется компьютерной безоп...
Практика взлома : проект с защитой паролем на чистом c++
Переглядів 3,7 тис.2 місяці тому
Написан проект с защитой паролем на чистом c . Строки зашифрованы . Среда разработки - Microsoft Visual Studio , MFC . В рамках проекта скомпилированы две программы : с оптимизацией кода и без оптимизации кода. В видео с подробностями описан взлом защиты при помощи отладчика x64Dbg и навыков ассемблера. Скачиваем необходимый софт по ссылке: assembler-code.com/programmnoe-obespechenie. Telegram ...
Техника взлома и отладки программ : функции и перекрёстные ссылки xrefs
Переглядів 2,2 тис.3 місяці тому
Реверс-инжиниринг на практике. Хакерская техника взлома и отладки программ с использованием точек останова на функции Win32 Api. Что такое функция-обёртка. Как использовать перекрёстные ссылки xRefs при отладке . Как определять место вызова функции в основном коде по данным в стеке. Как работать с графом , другими фишками отладчика x64Dbg. Полный хакерский разбор с подробными разъяснениями смыс...
x64Dbg Точка останова
Переглядів 9103 місяці тому
x64Dbg Точка останова - полный обзор всех возможных бряков в лучшем на сегодняшний день отладчике. Где и что найти, куда нажать, на что обратить внимание чтобы уверенно себя чувствовать. Можно использовать видео как мануал к отладчику x64Dbg . Telegram "Ассемблер и Си": t.me/assembler_and_c Эксклюзивная инфа: boosty.to/firststeps Поддержать канал: boosty.to/firststeps/donate 00:00 Точка останов...
Ассемблер и Си для Хакера #28. Анти отладка программ - шифрование строк
Переглядів 2 тис.3 місяці тому
Ассемблер и Си для Хакера #28. Анти отладка программ - шифрование строк
Программная защита паролем
Переглядів 22 тис.3 місяці тому
Программная защита паролем
Ассемблер и Си для Хакера #27. Хэш
Переглядів 1,3 тис.4 місяці тому
Ассемблер и Си для Хакера #27. Хэш
Ассемблер и Си для Хакера #26. Шифр Вернама
Переглядів 6714 місяці тому
Ассемблер и Си для Хакера #26. Шифр Вернама
Ассемблер и Си для Хакера #25. Литература по Ассемблеру
Переглядів 1,1 тис.4 місяці тому
Ассемблер и Си для Хакера #25. Литература по Ассемблеру
Ассемблер и Си для Хакера #24. Кейлоггер
Переглядів 5554 місяці тому
Ассемблер и Си для Хакера #24. Кейлоггер
Ассемблер и Си для Хакера #23 Перехват клавиш WH_KEYBOARD_LL WH_KEYBOARD
Переглядів 5275 місяців тому
Ассемблер и Си для Хакера #23 Перехват клавиш WH_KEYBOARD_LL WH_KEYBOARD
Ассемблер и Си для Хакера #22 Ассемблерный код в проекте Microsoft Visual Studio C++
Переглядів 4615 місяців тому
Ассемблер и Си для Хакера #22 Ассемблерный код в проекте Microsoft Visual Studio C
Ассемблер и Си для Хакера #21 Ассемблерный код в проекте Pelles C
Переглядів 2,8 тис.5 місяців тому
Ассемблер и Си для Хакера #21 Ассемблерный код в проекте Pelles C
Ассемблер и Си для Хакера #20 Библиотеки *.dll и *.lib
Переглядів 1,5 тис.5 місяців тому
Ассемблер и Си для Хакера #20 Библиотеки *.dll и *.lib
Ассемблер и Си для Хакера #19. Соглашения о вызове функций
Переглядів 9076 місяців тому
Ассемблер и Си для Хакера #19. Соглашения о вызове функций
Мотивация
Переглядів 1 тис.6 місяців тому
Мотивация
Ассемблер и Си для Хакера #18. Регистр ebp и кадр стека
Переглядів 7686 місяців тому
Ассемблер и Си для Хакера #18. Регистр ebp и кадр стека
Ассемблер и Си для Хакера #17. Стек без push и pop
Переглядів 7967 місяців тому
Ассемблер и Си для Хакера #17. Стек без push и pop
Ассемблер и Си для Хакера #16. Дизассемблированный код : вызов функций
Переглядів 8947 місяців тому
Ассемблер и Си для Хакера #16. Дизассемблированный код : вызов функций

КОМЕНТАРІ

  • @ChoiceWS
    @ChoiceWS День тому

    Честно говоря, я понял на 5% из того, что тут произошло)) Но как положено, лайк поставлю в поддержку. Очень нравится, как вы все объясняете

    • @firststepsforward
      @firststepsforward День тому

      А я думал, что понятно объяснил :). Переполнение буфера даёт возможным взломать программу либо зайти в систему под администратором, просто введя определённую строку в программе (или даже в броузере). Эта строка называется эксплоитом или шелкодом - понятия очень расплывчаты... Я показываю как это работает, взламывая уязвимую программу (свою собственную - что хочу, то и делаю), просто введя ей в качестве аргумента определённую строку. Демонстрируется на низком уровне, как буфер переполняется и как вместо простого отображения данных или отображения ошибки начинает выполняться хакерский код... Я показываю как это делается на практике... Фишка в том, что такой инфы в инете нет. Обычно такой взлом связан с Линуксом, установкой Пайтона и использованием Линукс программы генерации шелкода, чаще всего - программа Метасплойт. Это всё усложняет суть вопроса для начинающих. Я показываю, как на Винде это сделать без всяких установок всяких там программ и всяких там Пайтонов-Метасплоитов. Нужен только ассемблер и голова... Понимая суть и алгоритм взлома, Метасплоиты и Пайтоны не нужны. Лучше постоянно иметь одну хорошую удочку и один крючёчек чем 10 килограмм форели один раз... Я думаю, всем понятно почему. Естественно - всё это для защиты программ и для того, чтобы безопасники повышали свою квалификацию и их премий не лишали:). Спасибо за интерес!

    • @ChoiceWS
      @ChoiceWS 20 годин тому

      @@firststepsforward Спасибо большое за столь развернутый комментарий!) Вы меня немного не так поняли, когда я сказал, что понял только 5%) Поймите меня правильно, не смотря на то, что вы очень хорошо и внятно все рассказываете, но сама информация, которую вы пытаетесь донести, не для каждого мозга. Это для вас кажется что все легко и понятно, а для других это совершенно по другому. Я пересмотрел очень много ваших видео и честно говоря, информация в голове не задержалась, но я смотрю их не для того, чтоб чего то знать в Ассемблере (такое знать мне уже не получится), а для того, что вы очень подробно объясняете, пытаетесь рассказать про малейшие детали, да и голос у вас спокойный, вас приятно слушать)) ЗАПИШИТЕ ПОЖАЛУЙСТА ПЛЕЙЛИСТ КУРСОВ ПО PYTHON, от начала и до конца.

    • @firststepsforward
      @firststepsforward 13 годин тому

      @@ChoiceWS Спасибо! Всё своим чередом :).

  • @rainixgd
    @rainixgd День тому

    Добрый день! На этот раз пришлось потратить намного больше времени на написание кода и понимания всего процесса (около часа) Также попробовал поставить видео на паузу и переписать код на C не подглядывая (кроме функций получения пути и получения размера файла). Даже что-то получилось. Единственная проблема, это типы данных для переменных. Работать с BOOL (а не bool) и с DWORD очень непривычно до сих пор.

    • @firststepsforward
      @firststepsforward День тому

      Подключитесь к Бусти каналу телеграм. Задайте вопрос. Я поясню на что нужно обратить внимание. На практике - всё проще чем кажется. Если кратко, то реально BOOL - это тот-же dword в 32 битной системе. True =1, False=0 Так удобнее машине работать, хотя человеку кажется. что BOOL реализовать экономичнее можно выразить вообще в байте или даже в бите. Но работает всё не так. Процессору проще работать с 32 или 64 битами. В ассемблере (в 32 битной системе) все эти HINSTANCE, wParam , lParam, HANDLE и так далее - это просто DWORD. BOOL , если вы специально его не переопределите - тоже DWORD. Просто нужно осмыслить, что все эти данные: строки, структуры, инты, и т.д. - это либо непосредственные данное в 32 битной форме, либо указатель на них (указатель - тоже 32 битное значение). Ключевой вопрос - разобраться в указателях . Существует вообще такое суеверие среди профи, что если человек понял, что такое указатели, то считай, что программист. Если не понял - то Фронтенд Пайтон разработчик (ну не будешь же совсем человека списывать:). Спасибо! ЗЫ Да, да, да... Дорогие Пайтон и не только фронтенд, разработчики :).

    • @rainixgd
      @rainixgd День тому

      @@firststepsforward Большое спасибо за развёрнутый ответ! На бусти уже подписан. Сейчас попробую подключиться в телеграм

  • @sfoninja4546
    @sfoninja4546 2 дні тому

    Годнота! Спасибо🙏

  • @ТЕЙМС123
    @ТЕЙМС123 2 дні тому

    Приветствую, видео интересное получилось! Спасибо !

  • @tg_virusexe
    @tg_virusexe 2 дні тому

    А на чем современные и самые опасные вирусы пишут?

  • @dimadavidkov3017
    @dimadavidkov3017 2 дні тому

    Трудно смотреть когда ты начинаешь коверкать на английском языке

    • @firststepsforward
      @firststepsforward 2 дні тому

      Бросайте в личку в телегу - буду исправлять.

  • @rainixgd
    @rainixgd 2 дні тому

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

    • @firststepsforward
      @firststepsforward 2 дні тому

      Это получится уже полноценное обучение. Такая мысль есть, нужно решиться и попробовать всё-таки. Что-то буду пытаться сделать, соизмеримое со свободным временем. Нужно решиться :). Спасибо за советы и интерес!

  • @al3mat
    @al3mat 2 дні тому

    Standart?

  • @ChoiceWS
    @ChoiceWS 3 дні тому

    Лайк и комментарий в поддержку канала!) Я знаю что Ассемблер - это очень и очень сложный язык. Поддерживаю ваши знания и спасибо за видео

    • @firststepsforward
      @firststepsforward 3 дні тому

      Благодарю!

    • @ChoiceWS
      @ChoiceWS 3 дні тому

      @@firststepsforward Спасибо большое за ответ! Можно вас попросить снимать видео почаще с Python? Очень интересно знать, какие меры защиты возможны + возможность его упаковки в .exe (я понимаю что он интерпретируемый), чтоб никто не смог видеть исходники. В общем хочется увидеть много видео на подобную тему. Вы очень хорошо и подробно объясняете. Спасибо большое! P.S. Вас реально приятно слушать

    • @firststepsforward
      @firststepsforward 2 дні тому

      @ Спасибо. Что-то буду думать...

  • @AvitoBot
    @AvitoBot 3 дні тому

    Всем здрасти)

  • @tg_virusexe
    @tg_virusexe 4 дні тому

    а что не так с с++

    • @firststepsforward
      @firststepsforward 4 дні тому

      Всё так. Просто, как говаривал Бьёрн Страуструп: "Си - это ассемблер для ленивых!" А вот про С++ он такого не говорил :). Благодарю за интерес!

    • @nullptr_or_null8301
      @nullptr_or_null8301 3 дні тому

      @@firststepsforward В С++ много разного мусора, который перетащили в стандарт из высокоуровневых языков, и продолжают тащить, все эти вещи на С вполне можно реализовать, без всяких стандартов, если человек владеет Computer Science, отсюда вытекает, так как язык разросся и продолжает расти, знать его весь не представляется возможным, плюс как я понял он генерирует не предсказуемый из-за компиляторов, асемблерный код, в отличии от C. Насчет высказывания Бьёрна Страуструпа он говорил и такие вещи:"С++ был создан главным образом потому, что мои друзья, да и я сам, не имели никакого желания писать программы на ассемблере, С или каком-нибудь языке программирования высокого уровня, существовашем в то время. Задача заключалась в том, чтобы сделать процесс написания хороших программ простым и более приятным для каждого программиста". Выдержка из книги Стивен Прата: "Язык программирования C++. Лекции и упражнения" P.S. Хотели как лучше, а получилось undefined behavior, еще больше чем в С.

    • @firststepsforward
      @firststepsforward 3 дні тому

      Да. Всё правильно...

  • @rainixgd
    @rainixgd 7 днів тому

    Добрый день! Спасибо за очередной отличный материал! Spy++ действительно невероятный инструмент для получения информации об окнах в window. Я провёл несколько экспериментов с отключением и включением разных окон, но столкнулся с проблемой. Практически всё работает, кроме скрытия chrome или discord. У них имя класса "Intermediate D3D Window". Это какое-то другое api для работы с окнами или почему тогда у них одинаковые классы и + на них не работают команды закрытия/открытия?

    • @firststepsforward
      @firststepsforward 7 днів тому

      Доброе время суток! Для Хром Имя класса окна будет Chrome_WidgetWin_1. Наверное более удобно искать нужные окна с помощью Windows Scaner. Программа также входит в число утилит RadAsm пакета fasm64. Фишка в том, что это базовое окно - основное родительское. Оно не видимо. Остальные - включая "Intermediate D3D Window" - дочерние. Вы сверните все окна (окна всех запущенных приложений), за исключением Хрома, окно Хрома сделайте поменьше и аккуратно перемещайте прицел Windows Scaner за область окна Хрома. Невидимое окно проявит себя. Кстати, в Windows Scaner, если инициировать "Управление" (кнопочка в нижней части), то с помощью кнопочки "Окно видимо\невидимо" в виде глаза можно протестировать верно ли найден класс. С Дискордом - по той же схеме... Благодарю за интерес к каналу!

  • @gearfear3
    @gearfear3 7 днів тому

    Это не только лучшая программа для отладки, но также и отличная обучалка по работе с машинным кодом для новичков, где все показано наглядно и интерактивно. Жаль что я не знал о её существовании когда только начинал изучать работу стека.

  • @piratkin8853
    @piratkin8853 8 днів тому

    Гидра, мне нравится

  • @Vosoo-e9r
    @Vosoo-e9r 10 днів тому

    Первые шаги в С++ были сплошные переполнения и заходы в чужие пространства. Всего то на простом небезопасном массиве )))

  • @andreyp5764
    @andreyp5764 10 днів тому

    Хех, неожиданно и, на самом деле, очень интересно. Вообще в Python есть поддержка для расширений на С, плюс также можно использовать код из скомпилированных на других языках библиотек (dll в случае с windows).

    • @firststepsforward
      @firststepsforward 10 днів тому

      Посмотрим, что будет. Пайтон напоминает мне Делфи в период расцвета. Такой хайп был! Может покруче, чем сейчас с Пайтоном... В Python есть конечно поддержка для Си и Длл-ки прикрутить можно, впрочем как и в других языках... Но это - так называемые "костыли" - не красиво, не правильно и даже смешно! Зачем мне через Пайтон писать код на Си? По-моему - глупасть на уровне дебилизма :). Я понимаю, что больше любишь то, что лучше знаешь, но ведь из-за этой "любви" ничего не становится лучше или хуже... Эти Два языка (скриптовый и низкоуровневый), эффективно реализуют абсолютно различные сферы прикладного программирования. Почему бы не попробовать найти в этом пользу?

    • @andreyp5764
      @andreyp5764 10 днів тому

      @@firststepsforward Delphi (именно связка IDE + Object Pascal) был явлением относительно новым все-таки (быстро пришел, быстро ушел), а питон появился +/- в начале 90-х. То есть он как-то жил годов до 200x наверное не особо известным, а потом бум на скорость разработки и все такое - и популярность резко пошла вверх. Сфера питона активно подъедается "новыми" языками сейчас, но в области data science он пока в топе. И вещи типа Pandas и numpy (по-сути, те самые расширения на С) весьма востребованы. В общем, очень любопытно продолжение серии. Потому что любопытно в чем может польза от подобной связки.

    • @firststepsforward
      @firststepsforward 10 днів тому

      @@andreyp5764 Да, да - всё именно так и есть... Спасибо за интерес к каналу!

  • @АндрейГоловин-л3с
    @АндрейГоловин-л3с 11 днів тому

    Будет время, выпусти видео, где будет твое мнение об ИИ, как это повлияет на рынок труда.

    • @firststepsforward
      @firststepsforward 10 днів тому

      Спасибо за интерес к каналу!

  • @Akiko_Yuuki
    @Akiko_Yuuki 11 днів тому

    break this license I DOUBT >_<:drive.google.com/file/d/1fYd-NAxBcS9LxJ0HcXQqk3eZoLt1Udij/view

    • @firststepsforward
      @firststepsforward 11 днів тому

      Прошу на телеграмм...:) Please, on telegram chat...:)

  • @sorrynomorenickname
    @sorrynomorenickname 14 днів тому

    Это очень важная тема, с которой хотелось наконец разобраться, спасибо большое!

    • @firststepsforward
      @firststepsforward 14 днів тому

      Да, важная. Этот ролик не последний про переполнение буфера стека. Заходите на канал! Благодарю за интерес.

  • @alexfisher4323
    @alexfisher4323 15 днів тому

    Это что за чудо, а не канал Мне в вузе на направлении информационной безопасности так ясно и интересно не было! Теперь я знаю, чем на каникулах после сессии займусь:) Автору спасибо Если спустя время контент будет держать планку, то обязательно подпишусь на бусти - такие каналы необходимо поддерживать

    • @firststepsforward
      @firststepsforward 15 днів тому

      Спасибо! Заходите на Телеграм чат и просматривайте ролики "Ассемблер и Си для Хакера " по-порядку - по номерам. Общая картинка раскроется более быстро и полно. Ревёрсинг без Ассемблера невозможен. Удачи!

  • @Anton16180
    @Anton16180 16 днів тому

    Как же красиво и четко всё описано. Большое спасибо автору!

  • @igorshofer4723
    @igorshofer4723 16 днів тому

    Автору видео реально большой респект. Помню, как на курсе АКС (архитектура компьютерных систем) в ВУЗе проходили данный простенький эксплойт, на специально еще заготовленной редхет линухе с полностью консольным интерфейсом, где и нужные программы стояли, штук 20 (на каждый вариант) вот таких вот небезопасных с точки зрения буфера программ, и gdb. Что лектор, что практик, хоть я этих мужчин уважаю очень сильно, не смогли так ясно и по простому объяснить переполнение буфера студентоте, что многие, чтоб просто как-то защитить лабу, чтоб закрыть ИУП, как роботы повторяли за теми, кто вроде как понял, а по итогу не могли толком ничего на защите ответить, соответственно и баллы получали такие, какие и заслужили. Я хоть этот материал и понял, и типа вроде и помню, но это освежило память, да и само объяснение очень наглядное, намного лучше, чем было в моем вузе. Я думаю - такое моим однопоточникам бы тогда показать, то все бы лабораторную на максимальный балл сдали)

    • @firststepsforward
      @firststepsforward 16 днів тому

      Благодарю! Очень приятно слышать! Заходите к нам на чат а Телеге :).

  • @ЦеЯ-ю7е
    @ЦеЯ-ю7е 16 днів тому

    Автор красавчик, и видео интересное сделал, и в комментариях зо зрителям активно общается, респект!

  • @diamov
    @diamov 18 днів тому

    Приветствую! Я не программист, но лет 20 назад изучал ассемблер, и, в принципе, ассемблерный код немного понимаю. И в своё время меня удивляло, откуда берётся переполнение буфера, если на ассемблере всегда контролируешь размер передаваемых переменных. Мне непонятно, почему буфер расположен в стеке, а не в отдельной области памяти?

    • @firststepsforward
      @firststepsforward 18 днів тому

      Стек - это и есть область памяти, просто работа с ней производится своеобразно. При желании можно работать со стековой памятью как с обыкновенной. Организация такой работы связана с экономией ресурсов памяти и процессорных мощностей для организации функционирования локальных переменных. Используемый размер памяти то растёт (входим в функцию), то уменьшается (выходим из функции). Если бы не было стековой организации работы с локальными переменными, то используемый размер памяти постоянно бы рос и она быстро бы заканчивалась. Можно было бы обойтись без стека, выделяя и освобождая память для локальных переменных - именно так иногда и делается, когда её размер можно определить только динамически - в процессе выполнения программы. В таком случае нужно было бы использовать системные функции malloc и free для выделения и освобождения памяти. Но это функции - значит будет отниматься процессорная мощность. На ассемблере не всегда контролируется размер передаваемых переменных. В коде используются функции библиотеки Си. Они уже написаны. Мы их просто вызываем с помощью ассемблерных команд, точно так, как могли бы вызвать с помощью кода на Си. Некоторые из этих функций (gets) не предусматривают ограничения количества символов строки-аргумента адрес которой передаётся функции. Поэтому и существует уязвимость. Спасибо за интерес к каналу.

    • @MrVasher
      @MrVasher 17 днів тому

      @@firststepsforward Плюс ко всему производители компов сильно любят экономить денежки, поэтому ставить лишние виртуальные машинки и песочницы им было в лом и железо тогда этого не позволяло, так что имеем то что имеем!

    • @firststepsforward
      @firststepsforward 17 днів тому

      Да. Первый процессор x86 был представлен в 1978 году. Экономия памяти тогда была очень актуальна. Внедрили стековое решение... До сих пор оно эксплуатируется. Мы живём на наработках 1978 года :).

    • @Rudes_official
      @Rudes_official 17 днів тому

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

    • @Rudes_official
      @Rudes_official 17 днів тому

      @@firststepsforward буфер - это просто область памяти, а стек - это структура данных, которая организует работу с памятью по принципу LIFO. стек используется для хранения локальных переменных и адресов возврата, но это не значит, что все локальные переменные являются буферами. рост и уменьшение стека связаны с вызовами функций, а не с работой с буферами. malloc и free используются для динамического выделения памяти в куче, а не в стеке. и да, они "отнимают процессорную мощность", как и любая другая операция. на ассемблере ты можешь контролировать все, что угодно, включая размер передаваемых переменных. gets - это плохой пример, потому что это заведомо небезопасная функция. использование gets - это ошибка программиста, а не проблема ассемблера или си. уязвимость возникает не из-за отсутствия "ограничения количества символов", а из-за того, что программист не проверяет размер данных перед записью в буфер. "экономия ресурсов" тут вообще не при чем.

  • @БубаМалина
    @БубаМалина 18 днів тому

    К сожалению этот метод не работает с тех пор как посадили кукушку на стек.

    • @firststepsforward
      @firststepsforward 18 днів тому

      Нет. Во-первых, Канарейку на стек посадили в Линуксе и очень давно. Настолько давно, что там это научились перепрыгивать уже лет 15 назад. Во-вторых - в Windows пошли сразу путём ASLR и DEP . Но это обходится - ролики на эту тему планирую выложить. В третьих - как же не работает, когда работает :).

    • @БубаМалина
      @БубаМалина 18 днів тому

      @firststepsforward тестил недавно DEP включён, пример собран msvc 2022 с включённым GS параметром. Ведёт себя по-разному то на ret выкидывает В общем трюк не проходит...

    • @firststepsforward
      @firststepsforward 18 днів тому

      Я ещё раз повторюсь. То, что изложено в видео - работает. На бусти выложен шелкод и эксплоит. В данном случае не нужно выполнять код в стеке. В данном случае в стек записываются данные - другой адрес возврата. Канарейка бы спасала в этом случае, но MS VS (у меня 2019) и gcc (Pelles C) по умолчанию не включают её в проекте для Windows. Не будет работать по этому шелкоду при ASLR (включено по умолчанию в MS VS 2019) - потому что шелкод упрощён (канал вообще-то, для начинающих) и динамически не отслеживает реальный адрес, который естественно меняется при каждом новом запуске. Возможно, конечно, что в каких-то других средах разработки ( MS VS 2022) дефолтные настройки другие. Но Вы же понимаете, что стопроцентно действующих уязвимостей не бывает. Я делал всё как на видео. Среда разработки - RadAsm, ассемблер - masm32. Настройки по шаблону Console App->WinCon.tpl по умолчанию. Шелкод запускается коммандной строкой. Всё работает. И ещё раз повторюсь: Обойти запрет на исполнение в буфере (DEP) также можно достаточно просто. Спасибо за интерес к каналу!

    • @openFrimeTv
      @openFrimeTv 18 днів тому

      @@firststepsforward я порой просто поражаюсь вашими знаниями) спасибо что делитесь

    • @firststepsforward
      @firststepsforward 17 днів тому

      Спасибо! Не преувеличивайте! Я не умею принципиальные схемы без пояснений читать... А сегодня не без помощи Ютуба с трудом прозвонил сломавшуюся кофемолку... Завтра поеду за термопредохранителем :). Так что, Вам аналогичный респект :)!

  • @AvitoBot
    @AvitoBot 18 днів тому

    Доброе утро

  • @Za-Rossiyu4
    @Za-Rossiyu4 18 днів тому

    Не потеме конечно. Но как ты относишься к linux и nasm и почему в начале говорил про fasm и masm а сейчас пишем только по masm?

    • @firststepsforward
      @firststepsforward 17 днів тому

      По теме. Хорошо я к Линуксу отношусь. Я канал начинал с Kali Linux. Даже на английском языке :). 8 Видосиков выложил... Прекратил, потому что не было посещаемости - пропал интерес. Может с языком перемудрил, может с Индусами соревноваться бестолку, а может ещё что :). Если хотите - посмотрите. Я планировал 32 битное программирование пройти на masm32, а затем перейти на 64 битное и уже с fasm. С 32 битным ещё не закончил. Думал, что закончу быстрее, но зритель считает, что реверсинг, и хакерские штучки всякие интереснее, чем просто основы программирования на ассемблере для Windows :). Если интерес не пропадёт, то дойду и до 64 битного фасма. Пока это всё на голом интузиазме. Кое-что по бусти подбрасывают, но усилий гораздо больше чем отдачи. Как-то так... Спасибо за интерес!

  • @rainixgd
    @rainixgd 20 днів тому

    Спасибо за отличный видеоурок! На этот раз даже пришлось второй раз пересмотреть. Было над чем подумать На самом деле очень непривычно давать всю обработку операционной системе. Я несколько лет пишу на C++ и для меня привычно писать всё в стиле ООП. Так получается хорошо изолировать код и в будущем переиспользовать компоненты и развивать проект. А тут просто внешняя функция и + в C/ASM даже нет классов Теперь нужно будет разобраться как писать в C и в ASM, чтобы код понятный был Я раньше занимался ревёрсингом одной игры. Остановился на патчах (простые замены jnz на jmp чтобы открывать некоторые закрытые функции в игре) и на написании простых хеддеров для некоторых классов (чтобы из C++ их вызывать), ну и + minhook для перехвата функций. Сейчас хочу углубить свои знания и в особенности научится работать с дебаггером и возможно в будущем попробовать переписать тот же minhook. я столкнулся с проблемой перехвата функций с __usercall. там как то очень странно передаются некоторые аргументы. Для этого надо понять как всё работает "под капотом". Так что начал смотреть ваш курс и даже за первые уроки успел открыть для себя много нового. Очень надеюсь, что в следующих уроках смогу ответить для себя на ещё большее количество вопросов :3

    • @firststepsforward
      @firststepsforward 19 днів тому

      Большое спасибо за интерес!

  • @РичиОЗ
    @РичиОЗ 23 дні тому

    10: Потому что это язык программирования для натуралов!

  • @Aregbejanyan
    @Aregbejanyan 24 дні тому

    Хоррор для программистов 😱

  • @flexmat579
    @flexmat579 24 дні тому

    Надо произножение подкчить, если нужна помощь, отпиши, у самого уровень B2-C1

    • @firststepsforward
      @firststepsforward 24 дні тому

      Спасибо за предложение. Я перешёл на тематику Ассемблера и Си для хакера. Платформа - Windows. Англоязычный контент не прошёл. Низкие просмотры - там Индусы засели. В ближайшей перспективе восстанавливать не собираюсь. С Рождеством и Новым Годом!

  • @openFrimeTv
    @openFrimeTv 25 днів тому

    год только начался а контент уже пошел) автор трудолюбив.

    • @firststepsforward
      @firststepsforward 25 днів тому

      Удачи на канале! С Новым годом и Рождеством!

  • @makiavellyubermensch8866
    @makiavellyubermensch8866 25 днів тому

    с Новым годом! вдохновения, мотивации, любознательности!

    • @firststepsforward
      @firststepsforward 25 днів тому

      Благодарю,Вам также всего хорошего!

    • @AvitoBot
      @AvitoBot 25 днів тому

      🎉❤

  • @ClausFalconi
    @ClausFalconi 26 днів тому

    С наступившим новым годом! Хочу попросить Roadmap по реверс инжинирингу Я ток начал интересоваться и буду благодарен за совет с чего начать и что учить, спасибо

    • @firststepsforward
      @firststepsforward 25 днів тому

      Учить реверсинг без ассемблера нельзя. Очень много важных моментов пересекается. Проходите ролики плейлиста "Ассемблер и Си для Хакера " по порядку до урока 20 - как минимум. Параллельно - выберите одну (не больше) книг по вкусу и почитывайте. О книгах ролик : ua-cam.com/video/oGARPKA0L5o/v-deo.html После этого переходите на плейлист " x64Dbg ", затем - "Reverse engineering " Всё понятно, просто и практично. Что непонятно - в Телеграм чате спрашивайте. С Новым Годом!

  • @mels8814
    @mels8814 28 днів тому

    Посоветуйте софт для ускорения работы youtube, а то goodbyedpi уже не справляется

    • @firststepsforward
      @firststepsforward 28 днів тому

      Я после Новогодних праздников продолжу заливать ролики на t.me/firststepsforward раз уж такое дело... Спасибо за интерес!

    • @mels8814
      @mels8814 28 днів тому

      @firststepsforward Хотел ещё спросить, а какие то навыки в низкоуровневом программировании нужны для старта просмотров данных видео или же вполне можно начинать с базой знаний только из высокоуровневого программирования?

    • @firststepsforward
      @firststepsforward 28 днів тому

      Можно вообще с полного нуля. Если проходить ролики по порядку. Параллельно - выберите одну (не больше) книг по вкусу и почитывайте. О книгах ролик : ua-cam.com/video/oGARPKA0L5o/v-deo.html В начале лучше Ассемблер и Си. Потом - Ревёрсинг. Всё понятно, просто и практично. Что непонятно - в телеграм чате спрашивайте. С Наступающим!

    • @mels8814
      @mels8814 28 днів тому

      @@firststepsforward Большое спасибо и вас тоже)

  • @sonicpigz
    @sonicpigz Місяць тому

    12:17 не Ctrl + Alt + Del, а Ctrl + Shift + Esc

    • @firststepsforward
      @firststepsforward Місяць тому

      не "не Ctrl + Alt + Del, а Ctrl + Shift +Esc", а "Ctrl + Alt + Del, или Ctrl + Shift +Esc"

  • @sonicpigz
    @sonicpigz Місяць тому

    qemu вроде по бодрее работает

    • @firststepsforward
      @firststepsforward Місяць тому

      Вкусовщина, но ролик не о том. Тема - Error: VT-x is disabled in the BIOS Спасибо за интерес!

  • @sonicpigz
    @sonicpigz Місяць тому

    В первом видео сказано - минимум информации для лучшего усвоения, значит в этом достаточно показать только руфус))

    • @firststepsforward
      @firststepsforward Місяць тому

      Я думаю, Вам достаточно взглянуть было на название ролика или даже канала... Для Вас в канале - минимум информации. Настоятельно рекомендую не смотреть роликов, чтобы не тратить своё драгоценное время. Канал - для начинающих, а не для профи... С наступающим!

  • @КотЩавель
    @КотЩавель Місяць тому

    Впервые набрел на этот канал... Выглядит очень интересно. Автора с наступающим

  • @DmitryY-t8o
    @DmitryY-t8o Місяць тому

    Наконец нормалтное программирование без всяких корявых библиотек. Спасибо!

  • @ridi4hgg870
    @ridi4hgg870 Місяць тому

    можно письменную версию этой речи это легендарно

    • @firststepsforward
      @firststepsforward Місяць тому

      "Кто пишет кровью и притчами, тот хочет, чтобы его не читали, а заучивали наизусть" :). Благодарю за интерес!

    • @СаидАбдуев-д2в
      @СаидАбдуев-д2в 22 дні тому

      Добрый вечер, возможно странный вопрос, архитектора х-86, на старыми и более новые процессоры ассемблер один или на каждый разный ???​@@firststepsforward

    • @firststepsforward
      @firststepsforward 22 дні тому

      @@СаидАбдуев-д2в Определённые команды - основные не меняются. В новом процессоре добавляются новые команды. Поддержка старых остаётся. Например к Pentium MMX были добавлены команды MMX расширений для работы с мультимедиа. Все старые команды остались. На основных командах можно написать любой код для любого поколения процессоров. Новые команды расширений используют для более быстрых специфических расчётов.

    • @СаидАбдуев-д2в
      @СаидАбдуев-д2в 22 дні тому

      @@firststepsforward я читал статью, где говорилось про кроссплатформенный язык Ассемблера, такой есть ???

    • @firststepsforward
      @firststepsforward 21 день тому

      @@СаидАбдуев-д2в Нет. Ассемблерные коды, написанные для одной архитектуры (например, x86), не будут работать на другой (например, ARM) без изменений. Разные операционные системы могут иметь различные системные вызовы и соглашения о вызовах, что также ограничивает возможность использования одного и того же ассемблерного кода на разных платформах. Ассемблер не является кроссплатформенным языком в полном смысле этого слова. Однако с помощью различных подходов и инструментов можно добиться некоторой степени совместимости (например условная компиляция).

  • @andreyp5764
    @andreyp5764 Місяць тому

    RadAsm +/- нормально работает. С Pelles C какая-то непонятная проблема, на любую попытку компиляции получаю: Building hello.OBJ. *** Error code: -1073741819 *** Done. Ставил Pelles как с сайта так и из архива, система Win 11, админ. права пробовал. Пробовал в том числе hello world - project (который есть сразу после установки). В чем может быть причина?

    • @firststepsforward
      @firststepsforward Місяць тому

      Проверьте не слишком ли длинный путь к Pelles C и не содержится ли в названии пути кирилица.

    • @vitaliy_harttman
      @vitaliy_harttman 5 днів тому

      установи 10-тку

    • @vitaliy_harttman
      @vitaliy_harttman 5 днів тому

      @@firststepsforward поставил в ProgramFiles 86 потом в ProgramFIles, путь не длинный, путь к проекту диск Д, потом путь проекта в самой папки Пеле.

    • @firststepsforward
      @firststepsforward 5 днів тому

      Это Вы на Телеграм чате спокойной жизни не давали :)

    • @andreyp5764
      @andreyp5764 5 днів тому

      @@firststepsforward Конкретно я не писал в чате) Заходил, но не писал. Что касается проблемы выше, то она не ушла, но как оказалось если не компилится первый раз, то скорее скомпилится во второй, а если снова нет - то уж наверняка в третий. Никогда с тамим не сталкивался но факт что компилится в целом норм, но не с первого раза) Путь у меня, кстати, максимально короткий, только латиница в пути.

  • @-mishana-
    @-mishana- Місяць тому

    Так ты не программист ты хакер ёпта¯\_(ツ)_/¯

    • @firststepsforward
      @firststepsforward Місяць тому

      Даже не знаю, для Вас эта новость как плюс или как минус? В принципе, можете рассматривать так: "Программисты - это подмножество хакеров" или так: "Хакеры - это подмножество программистов..." Как по мне - разницы нет :)... С Новым Годом!

  • @andreykalugin8075
    @andreykalugin8075 Місяць тому

    С наступающим Новым Годом! Спасибо, что продолжаете заряжать знаниями и оптимизмом

  • @openFrimeTv
    @openFrimeTv Місяць тому

    и вас с наступающим) надеюсь канал будет только расти

  • @ЭдикХомяк
    @ЭдикХомяк Місяць тому

    С наступающим новым годом! Спасибо за бесценную информацию. Здоровья и сил Вам на развитие канала.

    • @firststepsforward
      @firststepsforward Місяць тому

      Ура!!! Как же без Вас! Всего самого наилучшего!!!

  • @AvitoBot
    @AvitoBot Місяць тому

    С наступающим праздником 🎉

    • @firststepsforward
      @firststepsforward Місяць тому

      Удачи, счастья и интереса к жизни!

  • @balaclava_pentest
    @balaclava_pentest Місяць тому

    Спасибо Новому Году за то, что твой канал попался мне в реках!

    • @firststepsforward
      @firststepsforward Місяць тому

      Благодарю, всего самого наилучшего!