<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Статьи]]></title>
    <link>https://habr.com/ru/users/codebra/publications/articles/</link>
    <description><![CDATA[Хабр: статьи пользователя codebra]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Sat, 22 Aug 2026 23:12:54 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[«Bro, what…?» #1. Первый контакт с crackme на Linux x86-64]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1068160/</guid>
      <link>https://habr.com/ru/articles/1068160/?utm_campaign=1068160&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ff4/0ae/279/ff40ae2799b80224a265528b70aa73bc.png" /><p>Вы запускаете программу, о которой ничего не знаете. Она вежливо просит строку, а в ответ на ваш ввод насмешливо отвечает: «Bro, what are you trying to do?» И правда, что мы пытаемся сделать? Пытаемся понять ее.</p><p>Перед нами crackme – программа-головоломка, написанная для тренировки навыков обратной разработки: бинарник под Linux x86-64 без исходников и документации, который издевается над каждым, кто не смог его разгадать. Это первая статья цикла из трех о гибридном анализе крякми <strong>Getting Started Keygen</strong> (Mazzottis). Мы осмотрим файл штатными утилитами, найдем <code>main</code> в Ghidra, расшифруем «бессмысленные» имена переменных в реальную раскладку стека и подтвердим гипотезы в GDB. По пути встретим оптимизированный пролог без RBP, «хитрое» беззнаковое условие и <code>std::string</code>, спрятавшийся в трех переменных, которые на первый взгляд никак не связаны.</p><p>Во второй части цикла – мутационное тестирование и реконструкция скрытой структуры, в третьей – полный разбор хеш-функции и восстановление алгоритма на Python.</p> <a href="https://habr.com/ru/articles/1068160/?utm_campaign=1068160&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать первую часть</a>]]></description>
      
      <pubDate>Sat, 08 Aug 2026 08:47:08 GMT</pubDate>
      <dc:creator><![CDATA[codebra]]></dc:creator>
      <category><![CDATA[Реверс-инжиниринг]]></category><category><![CDATA[Информационная безопасность]]></category><category><![CDATA[Assembler]]></category><category><![CDATA[Linux]]></category><category><![CDATA[CTF]]></category>
      <category><![CDATA[реверс-инжиниринг]]></category><category><![CDATA[Ghidra]]></category><category><![CDATA[GDB]]></category><category><![CDATA[ассемблер]]></category><category><![CDATA[x86-64]]></category><category><![CDATA[crackme]]></category><category><![CDATA[CTF]]></category><category><![CDATA[отладка]]></category><category><![CDATA[Linux]]></category><category><![CDATA[C++]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как программа попадает в память: от execve до main]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1036444/</guid>
      <link>https://habr.com/ru/articles/1036444/?utm_campaign=1036444&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c25/5d1/0f8/c255d10f80850b45b4cddfdbc159e403.png" /><p>Вы когда-нибудь задумывались, что происходит после того, как вы нажимаете Enter в терминале Linux? Вводите <code>./myprogram</code> и...</p><p>Что именно происходит дальше? Как ядро находит файл? Как загружает его в память? Кто вызывает <code>main</code>? И как на всё это посмотреть вживую?</p><p>Разберемся на примере пустой программы <code>empty_sleep</code>. Она ничего не делает, просто запускается и завершается через 30 секунд. В ней нет лишнего кода и мы сможем сосредоточиться только на процессе загрузки. Всё, что мы увидим, относится к большинству динамически скомпилированных программ в Linux.</p><p>В этой статье покажу как с помощью <code>strace</code> в реальном времени проследить путь программы от <code>execve</code> до <code>_start</code> и <code>main</code>.</p> <a href="https://habr.com/ru/articles/1036444/?utm_campaign=1036444&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 18 May 2026 12:15:18 GMT</pubDate>
      <dc:creator><![CDATA[codebra]]></dc:creator>
      <category><![CDATA[Linux]]></category><category><![CDATA[Реверс-инжиниринг]]></category><category><![CDATA[Информационная безопасность]]></category><category><![CDATA[Системное администрирование]]></category>
      <category><![CDATA[Linux]]></category><category><![CDATA[strace]]></category><category><![CDATA[ELF]]></category><category><![CDATA[загрузка программ]]></category><category><![CDATA[системные вызовы]]></category><category><![CDATA[execve]]></category><category><![CDATA[mmap]]></category><category><![CDATA[анализ файлов]]></category><category><![CDATA[gdb]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
