

<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://www.debugxp.com/</id>
  <title>Z0F</title>
  <subtitle>Technical research and education focusing on C/C++, Windows, reverse engineering, binary exploitation, and development. Reverse engineering course. Z0F 0xZ0F.</subtitle>
  <updated>2025-03-01T12:54:41-05:00</updated>
  <author>
    <name>0xZ0F</name>
    <uri>https://www.debugxp.com/</uri>
  </author>
  <link rel="self" type="application/atom+xml" href="https://www.debugxp.com/feed.xml"/>
  <link rel="alternate" type="text/html" hreflang="en"
    href="https://www.debugxp.com/"/>
  <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator>
  <rights> © 2025 0xZ0F </rights>
  <icon>/assets/img/favicons/favicon.ico</icon>
  <logo>/assets/img/favicons/favicon-96x96.png</logo>


  
  <entry>
    <title>WinAFL EXE Fuzzing</title>
    <link href="https://www.debugxp.com/posts/WinAFL_EXE_Fuzzing/" rel="alternate" type="text/html" title="WinAFL EXE Fuzzing" />
    <published>2025-03-01T07:00:00-05:00</published>
  
    <updated>2025-03-01T07:00:00-05:00</updated>
  
    <id>https://www.debugxp.com/posts/WinAFL_EXE_Fuzzing/</id>
    <content src="https://www.debugxp.com/posts/WinAFL_EXE_Fuzzing/" />
    <author>
      <name>0xZ0F</name>
    </author>

  
    
    <category term="Blog" />
    
    <category term="Research" />
    
  

  
    <summary>
      





      
  The relevant code for this post can be found here: https://github.com/0xZ0F/WinAFLEXEHarness


There are a handful of great guides on performing fuzzing using WinAFL (and various other fuzzers). The article written by Angelystor has been particularly helpful, as well as this one by 2ourc3 and this one by Antonio Morales. The major issue I was running into, however, is that existing guides fo...
    </summary>
  

  </entry>

  
  <entry>
    <title>Extending PE Sections</title>
    <link href="https://www.debugxp.com/posts/ExtendingPESections/" rel="alternate" type="text/html" title="Extending PE Sections" />
    <published>2024-05-07T09:00:00-04:00</published>
  
    <updated>2024-05-07T09:00:00-04:00</updated>
  
    <id>https://www.debugxp.com/posts/ExtendingPESections/</id>
    <content src="https://www.debugxp.com/posts/ExtendingPESections/" />
    <author>
      <name>0xZ0F</name>
    </author>

  
    
    <category term="Blog" />
    
    <category term="Research" />
    
  

  
    <summary>
      





      
  A basic understanding of the PE header is assumed.



  Source code referenced can be found under my “PESENT” project on GitHub.


I was recently looking into post-build configuration for binaries and I was curious about the modification of PE sections. I already knew how to enlarge the last section of the PE, but I wanted more. I didn’t like having to search my own binary for data that I pu...
    </summary>
  

  </entry>

  
  <entry>
    <title>RE Course - 8.04 - GetElement()</title>
    <link href="https://www.debugxp.com/posts/RECourse_CH08_04_GetElement/" rel="alternate" type="text/html" title="RE Course - 8.04 - GetElement()" />
    <published>2024-05-06T20:08:04-04:00</published>
  
    <updated>2024-05-06T20:08:04-04:00</updated>
  
    <id>https://www.debugxp.com/posts/RECourse_CH08_04_GetElement/</id>
    <content src="https://www.debugxp.com/posts/RECourse_CH08_04_GetElement/" />
    <author>
      <name>0xZ0F</name>
    </author>

  
    
    <category term="Course" />
    
    <category term="RE" />
    
  

  
    <summary>
      





      Now let’s look at a function that has to do with looking data up in the table. Remember, it doesn’t matter which functions we reverse first. I’m choosing based on what I think will be a good order to go in.

Multiple functions might get something from the table: RtlEnumerateGenericTable, RtlGetElementGenericTable, RtlLookupElementGenericTable, and some others. Based on the names, I think RtlGet...
    </summary>
  

  </entry>

  
  <entry>
    <title>RE Course - 8.03 - IsGenericTableEmpty()</title>
    <link href="https://www.debugxp.com/posts/RECourse_CH08_03_IsGenericTableEmpty/" rel="alternate" type="text/html" title="RE Course - 8.03 - IsGenericTableEmpty()" />
    <published>2024-05-06T20:08:03-04:00</published>
  
    <updated>2024-05-06T20:08:03-04:00</updated>
  
    <id>https://www.debugxp.com/posts/RECourse_CH08_03_IsGenericTableEmpty/</id>
    <content src="https://www.debugxp.com/posts/RECourse_CH08_03_IsGenericTableEmpty/" />
    <author>
      <name>0xZ0F</name>
    </author>

  
    
    <category term="Course" />
    
    <category term="RE" />
    
  

  
    <summary>
      





      Next up let’s take a look at RtlIsGenericTableEmpty. This is yet another potentially easy function to reverse that may give us valuable information.

Once again, let’s try to predict how it could work. The table may contain a member that is set or changed when it’s not empty. Another possibility is that it uses the member we found previously that has to do with the number of table elements, wha...
    </summary>
  

  </entry>

  
  <entry>
    <title>RE Course - 8.02 - NumberGenericTableElements()</title>
    <link href="https://www.debugxp.com/posts/RECourse_CH08_02_NumberGenericTableElements/" rel="alternate" type="text/html" title="RE Course - 8.02 - NumberGenericTableElements()" />
    <published>2024-05-06T20:08:02-04:00</published>
  
    <updated>2024-05-06T20:08:02-04:00</updated>
  
    <id>https://www.debugxp.com/posts/RECourse_CH08_02_NumberGenericTableElements/</id>
    <content src="https://www.debugxp.com/posts/RECourse_CH08_02_NumberGenericTableElements/" />
    <author>
      <name>0xZ0F</name>
    </author>

  
    
    <category term="Course" />
    
    <category term="RE" />
    
  

  
    <summary>
      





      We’ve taken a look at the initialization function and have a good idea of the base layout. Let’s continue with what are probably the more simple functions to gather as much easy information as possible, then work on the more complicated functions. Let’s start with RtlNumberGenericTableElements.

Think about how this function could work. One possible way is that the function will loop over the t...
    </summary>
  

  </entry>

</feed>


