УЯЗВИМОСТЬ USE AFTER FREE UAF С/C++

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 24

  • @lL0rduSs_Fortnite
    @lL0rduSs_Fortnite 27 дней назад +1

    пушка бро ! очень классное видео!

  • @ghtrtjshs
    @ghtrtjshs 25 дней назад

    Думал, речь будет про запись нулями (memset) перед освобождением, а тут вон как всё просто :)

  • @ЦвмфвафваВфвафвсфв
    @ЦвмфвафваВфвафвсфв 27 дней назад +1

    Ниче не понял, но спасибо ютубу за рекомендации

    • @findme5513
      @findme5513  27 дней назад

      @@ЦвмфвафваВфвафвсфв да это немного не простые темы :), но я уверен со временем ты поймешь

    • @ЦвмфвафваВфвафвсфв
      @ЦвмфвафваВфвафвсфв 27 дней назад

      @ да суть уязвимости понятна, не понятно зачем это ютуб мне рекомендует. Я вообще на свифте пишу😂

  • @XACKAPb
    @XACKAPb 27 дней назад +1

    Спасибо за ролик 👍

  • @Re_Pixel
    @Re_Pixel 27 дней назад +1

    42 БРАТУХА

  • @VanJej
    @VanJej 26 дней назад

    Бло эщкерембус, скажи каким образом ты учишься через книги или как, и скок часов в день?

    • @findme5513
      @findme5513  26 дней назад

      зависит от цели что нужно изучить, сначала можно гуглить, если тема обширная как ООП или паттерны проектирования - книги, если связанное с кибер безом - hack the box (платный ) или portswigger (бесплатный )сайты, ютуб тоже помогает местами, а так учеба по методу колба, можешь по гуглить про него, пару часов в день иногда больше иногда меньше, главное каждый день, с паузами и комбинировать активности

  • @просточеловек-я3ъ
    @просточеловек-я3ъ 27 дней назад

    В чем прикол объяснять уязвимость если современные компиляторы всё равно её детектят? (не в обиду автору, спасибо за ролик :D )

    • @просточеловек-я3ъ
      @просточеловек-я3ъ 27 дней назад

      Хотя ладно, от части я понимаю, это как объяснять паттерны, не все знают как они устроены, но все знают о их существовании (я джавист, лол)

    • @findme5513
      @findme5513  27 дней назад

      @@просточеловек-я3ъ я это делаю потому что лично сам испытываю к этому интерес, ну и если посмотришь мой контент, мне нужен был легенький ролик разбавить курс по sqlmap, ну и просто люблю разные уезвимости мне интересно как они работают и все такое, и может вдруг кому то тоже поэтому почему бы и нет :)

    • @findme5513
      @findme5513  27 дней назад

      и дополню, компилятор поможет но не всегда! это оч популярная уязвимость и о ней говорят не просто так, ее допускают часто ) я рассмотрел оч basic случии там конечно просто

  • @FeelUs
    @FeelUs 26 дней назад

    Как asan использовать под маком? Или хоть какие-то аналоги

    • @findme5513
      @findme5513  26 дней назад

      Установите Xcode из App Store или через команду xcode-select --install в терминале. и юзай clang -fsanitize=address -g -o my_program my_program.c
      для компиляции

  • @vadimirnov5211
    @vadimirnov5211 26 дней назад +2

    глупый вопрос от глупого человека: почему free(ptr*) не делает ptr=NULL автоматически

    • @findme5513
      @findme5513  26 дней назад +1

      это не глупый вопрос! Это распространённое недоразумение. В C функция free() освобождает память, на которую указывает указатель, но не изменяет сам указатель. Это происходит по следующим причинам: 1) Сохранение значения указателя: Если free() автоматически присваивала бы NULL освобожденному указателю, это могло бы привести к путанице, особенно если указатель используется в нескольких местах кода. Программисты часто хотят знать, что указатель указывает на освобождённую память.
      потом еще 2) Указатель остаётся валидным: После вызова free() указатель всё ещё существует и может быть использован (но не следует его разыменовывать, так как память уже освобождена). Изменение указателя на NULL сделало бы невозможным использование его в дальнейшем, если это необходимо.
      и последние но не мало важное это управление памятью: В C программист сам отвечает за управление памятью. Если вам нужно обнулить указатель после вызова free(), это нужно сделать вручную, чтобы избежать проблем с висячими указателями (dangling pointers).

    • @vadimirnov5211
      @vadimirnov5211 26 дней назад +2

      короче
      #define (nullfree(ptr*);) (free(ptr*); ptr=NULL;)

    • @findme5513
      @findme5513  26 дней назад

      @@vadimirnov5211 да, в многих случиях это может быть хорошим решением!

    • @Lipton-b4e
      @Lipton-b4e 25 дней назад

      Всё сильно проще. Накладные расходы. По этим же причинам [] не смотрит, выходите ли вы за границы массива.

    • @IronBruh
      @IronBruh 25 дней назад

      ​@@findme5513всë куда проще: в функцию free() мы передаем копию объекта, содержащего указатель. Если бы надо было присваивать объекту NULL, функция free() должна была бы выглядеть так: free(void**)

  • @wandhvh
    @wandhvh 26 дней назад

    С C++ видео никак не связано. В плюсах давно абстрагировались от того же оператора new за идиомой RAII и std::allocator. Не пишите на Си.

    • @findme5513
      @findme5513  26 дней назад

      я python разработчик, меня просто попросили сделать обзор на эту vuln, так что пишу на том на чем можно это покозать :) но всеравно спасибо что обьеснил !

    • @Zxcsexer1228
      @Zxcsexer1228 22 дня назад

      ​​@@findme5513стоит ли к python и Go подучить C++?