<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Hegzploit</title><link>https://hegzploit.github.io/</link><description>Recent content on Hegzploit</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>me (AT) this domain (Yusuf Hegazy)</managingEditor><webMaster>me (AT) this domain (Yusuf Hegazy)</webMaster><copyright>©2026, All Rights Reserved</copyright><lastBuildDate>Wed, 04 Jun 2025 00:00:00 +0000</lastBuildDate><sy:updatePeriod>weekly</sy:updatePeriod><atom:link href="https://hegzploit.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>Breaking Boolean Masking for Software AES</title><link>https://hegzploit.github.io/posts/attacking_boolean_masking/</link><pubDate>Wed, 04 Jun 2025 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Wed, 04 Jun 2025 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/posts/attacking_boolean_masking/</guid><description/><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/thumbnails/lbr.png" medium="image"><media:title type="html">featured image</media:title></media:content><category>hardware</category><category>SCA</category></item><item><title>0xL4ugh24 Hardware Challenges Official Writeups</title><link>https://hegzploit.github.io/posts/0xl4ugh24-hw-writeups/</link><pubDate>Sat, 28 Dec 2024 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Sat, 28 Dec 2024 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/posts/0xl4ugh24-hw-writeups/</guid><description>&lt;p&gt;Lately, I have been doing some hardware security research, specifically focusing on side channel stuff, this inspired me to write these challenges for the 0xL4ugh CTF.&lt;/p&gt;
&lt;div class="box"&gt;You will find all the challenge files on &lt;a href="https://github.com/hegzploit/0xL4ugh24_HW_Challs"&gt;this repo&lt;/a&gt;, at the end of the blog I will list some notable writeups by players who have completed this challenge.&lt;/div&gt;
&lt;p&gt;&lt;img src="https://hegzploit.github.io/posts/0xl4ugh24-hw-writeups/assets/challs.jpg" alt=""&gt;&lt;/p&gt;
&lt;h2 id="tempus"&gt;Tempus&lt;/h2&gt;
&lt;div class="box"&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Timing side channel attack allows us to bruteforce the pin digit by digit reducing the keyspace significantly (from 10^9 to 10*9).&lt;/div&gt;
&lt;div class="notices info" data-title="Fun fact"&gt;
Tempus is the latin word for time
&lt;/div&gt;
&lt;br&gt;
&lt;p&gt;&lt;img src="https://hegzploit.github.io/posts/0xl4ugh24-hw-writeups/assets/tempus-desc.jpg" alt=""&gt;&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/thumbnails/0xl4ugh24-hw2.jpeg" medium="image"><media:title type="html">featured image</media:title></media:content><category>hardware</category><category>SCA</category></item><item><title>Low Budget Router</title><link>https://hegzploit.github.io/posts/lbr/</link><pubDate>Sun, 03 Dec 2023 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Sun, 03 Dec 2023 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/posts/lbr/</guid><description>&lt;p&gt;In this blog post, we&amp;rsquo;ll explore three challenges from the &amp;ldquo;Not Vulnerability Research&amp;rdquo; category in CyCTF'23, held in Cairo ICT.&lt;/p&gt;
&lt;p&gt;I managed to solve the first challenge during the CTF, and solved the remaining two afterwards. Be sure to check out &lt;a href="https://wr3nchsr.github.io/cyctf-low-budget-router-trilogy-writeup/"&gt;the official writeup by the author&lt;/a&gt;. As of writing this, I haven&amp;rsquo;t read the author&amp;rsquo;s writeup to avoid being influenced by the intended solutions. Instead, I&amp;rsquo;ll guide you through my methodology and approach for solving these three challenges. Expect a long (but fun) ride, so prepare a cup of tea and enjoy the read!&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/thumbnails/lbr.png" medium="image"><media:title type="html">featured image</media:title></media:content><category>hardware</category></item><item><title>Reactive Vault 1</title><link>https://hegzploit.github.io/posts/reactive-vault-1/</link><pubDate>Sun, 05 Nov 2023 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Sun, 05 Nov 2023 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/posts/reactive-vault-1/</guid><description>&lt;p&gt;I started by installing the APK on an android phone, once opened it will show a text field to enter a key and a login button, the APK will try to navigate to &lt;code&gt;https://you-shall-not-pass&lt;/code&gt; when trying to type any key (maybe this was done to prevent bruteforcing the key?), finally, when you try to login with a random key It will show a dialog saying &amp;ldquo;BAAAD Key&amp;rdquo;&lt;/p&gt;
&lt;center&gt;
&lt;video controls loop width="320"&gt;
&lt;source src="./demo.mp4" type="video/mp4"&gt;
&lt;/video&gt;
&lt;/center&gt;
&lt;p&gt;I dropped the APK within jadx and I went to the entry point which is &lt;code&gt;com.expor4bb1t.AwesomeProject.MainActivity&lt;/code&gt;, I could see a lot of imports related to facebook and react, which along with the challenge name, started making sense. This application is built with react native.&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/thumbnails/reactive-vault.jpg" medium="image"><media:title type="html">featured image</media:title></media:content><category>CTF</category></item><item><title>An Electrical Engineer's Adventure into the Deep Dark of AI</title><link>https://hegzploit.github.io/posts/gp/</link><pubDate>Sun, 18 Jun 2023 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Sun, 18 Jun 2023 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/posts/gp/</guid><description>&lt;p&gt;This is a blog post about my graduation project, where I went for a little dive within the scary realm of AI. I had zero practical experience with AI prior and had only a minimal theoretical understanding of some concepts. While this work may not seem like much, this was a rough ride for me, and I can confidently say that it was worth it. I couldn&amp;rsquo;t have had the opportunity to do this type of work otherwise, and I will probably not touch AI at this level anytime soon. This is basically a brain dump of some of my thoughts, including an explanation of my project so I can have some peace of mind and move on.&lt;br /&gt;
&lt;figure &gt;
&lt;img data-src="https://hegzploit.github.io/images/posts/gp/honest_work.jpg" data-caption="" src="data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='500px' height='' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath fill='%23aaa' d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 16H6c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1h12c.55 0 1 .45 1 1v12c0 .55-.45 1-1 1zm-4.44-6.19l-2.35 3.02-1.56-1.88c-.2-.25-.58-.24-.78.01l-1.74 2.23c-.26.33-.02.81.39.81h8.98c.41 0 .65-.47.4-.8l-2.55-3.39c-.19-.26-.59-.26-.79 0z'/%3E%3C/svg%3E" class="lazyload" style="width:500px;height:;"/&gt;
&lt;/figure&gt;&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/thumbnails/gp.jpeg" medium="image"><media:title type="html">featured image</media:title></media:content><category>misc</category></item><item><title>Hacking the Hackathon: How We Optimized Our Way to Third Place</title><link>https://hegzploit.github.io/posts/hacking-the-hackathon/</link><pubDate>Wed, 15 Mar 2023 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Wed, 15 Mar 2023 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/posts/hacking-the-hackathon/</guid><description>&lt;p&gt;Are you ready to put your coding skills to the ultimate test? Hacktrick is the hackathon that combines AI, problem-solving, and cybersecurity to create a thrilling challenge. The landing page promises a rescue mission, but the real magic happens behind the scenes. As the competition heats up, we quickly realize that coding tricks alone won&amp;rsquo;t guarantee a win. The question is, will we figure out the winning formula before the time runs out?&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/thumbnails/dell.jpg" medium="image"><media:title type="html">featured image</media:title></media:content><category>misc</category></item><item><title>Babiersteps</title><link>https://hegzploit.github.io/writeups/babiersteps/</link><pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Sun, 01 May 2022 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/writeups/babiersteps/</guid><description>&lt;h2 id="checksec"&gt;Checksec&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Canary : ✘
NX : ✓
PIE : ✘
Fortify : ✘
RelRO : Full
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;We only care about the stack canary as we will be overflowing RIP to control execution flow, and thankfully It&amp;rsquo;s disabled.&lt;/p&gt;
&lt;h2 id="exploitation"&gt;Exploitation&lt;/h2&gt;
&lt;h3 id="1-rip-control"&gt;1. RIP Control&lt;/h3&gt;
&lt;p&gt;We overflow the binary with a cyclic pattern, however, for this being a 64-bit binary we can&amp;rsquo;t overflow RIP with a non-canonical address.&lt;/p&gt;
&lt;div class="expand"&gt;
&lt;button type="button" class="expand__button" aria-label="Expand Button"&gt;
&lt;span class="expand-icon expand-icon__right"&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"&gt;&lt;path fill="currentColor" d="M9.29 15.88L13.17 12 9.29 8.12c-.39-.39-.39-1.02 0-1.41.39-.39 1.02-.39 1.41 0l4.59 4.59c.39.39.39 1.02 0 1.41L10.7 17.3c-.39.39-1.02.39-1.41 0-.38-.39-.39-1.03 0-1.42z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
Canonical Address
&lt;/button&gt;
&lt;div class="expand__content"&gt;
An address is said to be canonical in the 64-bit world when the upper 16 bits are copies of the 48th bit.
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The easiest way to find the RIP offset without overflowing RIP is by breaking at the &lt;code&gt;ret&lt;/code&gt; instruction and searching for our pattern in &lt;code&gt;rsp&lt;/code&gt;.&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/thumbnails/babiersteps.png" medium="image"><media:title type="html">featured image</media:title></media:content><category>pwn</category><category>NahamCTF22</category></item><item><title>Babysteps</title><link>https://hegzploit.github.io/writeups/babysteps/</link><pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Sun, 01 May 2022 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/writeups/babysteps/</guid><description>&lt;h2 id="checksec"&gt;Checksec&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s an aboslute mess, nothing is turned on fortunately :)&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Canary : ✘
NX : ✘
PIE : ✘
Fortify : ✘
RelRO : Partial
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="exploitation"&gt;Exploitation&lt;/h2&gt;
&lt;h3 id="1-eip-control"&gt;1. EIP Control&lt;/h3&gt;
&lt;p&gt;We obtain our offset very easily in GEF.&lt;br /&gt;
&lt;img src="https://hegzploit.github.io/writeups/babysteps/babysteps_offset.png" alt=""&gt;&lt;/p&gt;
&lt;center&gt;
&lt;p&gt;&lt;img src="https://hegzploit.github.io/img/ach_offset.png" alt=""&gt;&lt;/p&gt;
&lt;/center&gt;
&lt;h3 id="2-exploitation"&gt;2. Exploitation&lt;/h3&gt;
&lt;p&gt;We start by analyzing the stack at the overflown state.&lt;br /&gt;
&lt;img src="https://hegzploit.github.io/writeups/babysteps/babysteps_stackstate.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Looking at the registers, It appears that only two registers point to our stack. &lt;code&gt;eax&lt;/code&gt; and &lt;code&gt;esp&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;We search for gadgets jumping to any of these registers.&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/thumbnails/babysteps.png" medium="image"><media:title type="html">featured image</media:title></media:content><category>pwn</category><category>NahamCTF22</category></item><item><title>Detour</title><link>https://hegzploit.github.io/writeups/detour/</link><pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Sun, 01 May 2022 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/writeups/detour/</guid><description>&lt;h2 id="checksec"&gt;Checksec&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Canary : ✓
NX : ✓
PIE : ✘
Fortify : ✘
RelRO : ✘
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;RelRO is completely disabled unlike any other challenge we have encountered, this means that we have write permessions to all the relocations.&lt;/p&gt;
&lt;h2 id="exploitation"&gt;Exploitation&lt;/h2&gt;
&lt;p&gt;Running the binary will let us specify an address and a value and then It will assign that value to the adderss we provided.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;hegz@pop-os$ ./detour
What: 1234
Where: 123123123213
Segmentation fault (core dumped)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I confirmed this by analyzing the binary in ghidra, below is the decompilation.&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/thumbnails/detour.png" medium="image"><media:title type="html">featured image</media:title></media:content><category>pwn</category><category>NahamCTF22</category></item><item><title>Dweeno</title><link>https://hegzploit.github.io/writeups/dweeno/</link><pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Sun, 01 May 2022 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/writeups/dweeno/</guid><description>&lt;details&gt;
&lt;summary&gt; Serial Output&lt;/summary&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;00110011
00111001
00110100
00110010
00101110
00110100
01100100
01100011
00110111
01101101
01100101
01100111
01100010
00110110
00110011
01100110
01100010
01100001
00110111
01100100
01100100
01100000
00110011
01100010
00110110
01100110
00110000
01100111
00110011
01100011
01100111
01100111
00110001
01101101
01100001
00110111
00110110
00101000
&lt;/code&gt;&lt;/pre&gt;&lt;/details&gt;
&lt;details&gt;
&lt;summary&gt; Wiring Diagram&lt;/summary&gt;
&lt;p&gt;&lt;img src="https://hegzploit.github.io/writeups/dweeno/sketch.jpg" alt=""&gt;&lt;/p&gt;
&lt;/details&gt;
&lt;details&gt;
&lt;summary&gt; Arduino Code&lt;/summary&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;span class="lnt"&gt;24
&lt;/span&gt;&lt;span class="lnt"&gt;25
&lt;/span&gt;&lt;span class="lnt"&gt;26
&lt;/span&gt;&lt;span class="lnt"&gt;27
&lt;/span&gt;&lt;span class="lnt"&gt;28
&lt;/span&gt;&lt;span class="lnt"&gt;29
&lt;/span&gt;&lt;span class="lnt"&gt;30
&lt;/span&gt;&lt;span class="lnt"&gt;31
&lt;/span&gt;&lt;span class="lnt"&gt;32
&lt;/span&gt;&lt;span class="lnt"&gt;33
&lt;/span&gt;&lt;span class="lnt"&gt;34
&lt;/span&gt;&lt;span class="lnt"&gt;35
&lt;/span&gt;&lt;span class="lnt"&gt;36
&lt;/span&gt;&lt;span class="lnt"&gt;37
&lt;/span&gt;&lt;span class="lnt"&gt;38
&lt;/span&gt;&lt;span class="lnt"&gt;39
&lt;/span&gt;&lt;span class="lnt"&gt;40
&lt;/span&gt;&lt;span class="lnt"&gt;41
&lt;/span&gt;&lt;span class="lnt"&gt;42
&lt;/span&gt;&lt;span class="lnt"&gt;43
&lt;/span&gt;&lt;span class="lnt"&gt;44
&lt;/span&gt;&lt;span class="lnt"&gt;45
&lt;/span&gt;&lt;span class="lnt"&gt;46
&lt;/span&gt;&lt;span class="lnt"&gt;47
&lt;/span&gt;&lt;span class="lnt"&gt;48
&lt;/span&gt;&lt;span class="lnt"&gt;49
&lt;/span&gt;&lt;span class="lnt"&gt;50
&lt;/span&gt;&lt;span class="lnt"&gt;51
&lt;/span&gt;&lt;span class="lnt"&gt;52
&lt;/span&gt;&lt;span class="lnt"&gt;53
&lt;/span&gt;&lt;span class="lnt"&gt;54
&lt;/span&gt;&lt;span class="lnt"&gt;55
&lt;/span&gt;&lt;span class="lnt"&gt;56
&lt;/span&gt;&lt;span class="lnt"&gt;57
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-c++" data-lang="c++"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;flag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;REDACTED&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;curr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;first&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;second&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;in1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;29&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;in2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;27&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;in3&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;in4&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;out1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;53&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;out2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;51&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;out3&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;49&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;out4&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;47&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;get_output&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;bits&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;bits&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="nl"&gt;HIGH&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;bits&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="nl"&gt;HIGH&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;bits&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="nl"&gt;HIGH&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;bits&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="nl"&gt;HIGH&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;digitalRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in1&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;digitalRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in2&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;digitalRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in3&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;digitalRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in4&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;//converts a given number into binary
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;binary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;0&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;/=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;0&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;OUTPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;OUTPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;OUTPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;OUTPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;INPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;INPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;INPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;INPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;9600&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;strlen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;flag&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;curr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;binary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;flag&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;first&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;curr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;second&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;curr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;get_output&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;first&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;get_output&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;second&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/details&gt;
&lt;p&gt;Looking at the code we can break it down into a couple of steps:&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/thumbnails/dweeno.png" medium="image"><media:title type="html">featured image</media:title></media:content><category>pwn</category><category>NahamCTF22</category><category>Hardware</category></item><item><title>Fighting counterfeit USB Flash Drives</title><link>https://hegzploit.github.io/posts/counterfeit-usbs/</link><pubDate>Sun, 10 Apr 2022 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Sun, 10 Apr 2022 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/posts/counterfeit-usbs/</guid><description>&lt;h2 id="first-impressions"&gt;First Impressions&lt;/h2&gt;
&lt;p&gt;I was really tempted to just plug that bad boy into my main PC, but I was worried It might &lt;a href="https://en.wikipedia.org/wiki/USB_Killer"&gt;do something funny&lt;/a&gt;, I didn&amp;rsquo;t rush and instead booted a trusy old HP Pavilion I had around and booted it up, and ran a quick &lt;code&gt;lsblk&lt;/code&gt; to list the devices connected.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://hegzploit.github.io/posts/counterfeit-usbs/lsblk.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;We can clearly see that &lt;code&gt;sdb1&lt;/code&gt; with 1.9TBs of storage, but is that all?&lt;/p&gt;
&lt;h2 id="digging-deeper"&gt;Digging Deeper&lt;/h2&gt;
&lt;p&gt;Fight Flash Fraud, or rather &lt;a href="https://github.com/AltraMayor/f3"&gt;f3&lt;/a&gt;, is a suite of command line utilities that aids in detecting and verifying USB flash drives.&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/thumbnails/badusb.png" medium="image"><media:title type="html">featured image</media:title></media:content></item><item><title>Emotion and Logic</title><link>https://hegzploit.github.io/posts/emotion-vs-logic/</link><pubDate>Sun, 27 Mar 2022 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Sun, 27 Mar 2022 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/posts/emotion-vs-logic/</guid><description>&lt;p&gt;A lot of people are driven by emotions, logical thinking doesn&amp;rsquo;t always result in agreement, in fact, most people are more influenced by emotions than logic, does that make logical thinking uselss.&lt;/p&gt;
&lt;p&gt;It depends on a lot of factors, you shouldn&amp;rsquo;t boldly assume that logic works with everyone, a good strategy to get your message through might be analyzing the recipient, before deciding on your means of communication.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s a useful skill If you have to deal with multitude of different people, life is all about balancing things and overdoing is never wise.&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><category>thoughts</category></item><item><title>Ways to return function values in C</title><link>https://hegzploit.github.io/posts/passing-values-in-c/</link><pubDate>Fri, 25 Mar 2022 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Fri, 25 Mar 2022 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/posts/passing-values-in-c/</guid><description>&lt;p&gt;I was having a chit-chat with a friend discussing some C language shenanigans&lt;br /&gt;
when he sent me a code snippet, he wanted me fix the code and get it to work in&lt;br /&gt;
4 different ways.&lt;/p&gt;
&lt;p&gt;Here is the snippet:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;calc&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;sum=%d &amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;mult=%d&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mul&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;calc&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;sum&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;mul&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;There are two main takeaways from the above snippet:&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator></item><item><title>My new blogging workflow</title><link>https://hegzploit.github.io/posts/new-ssg/</link><pubDate>Fri, 18 Feb 2022 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Fri, 18 Feb 2022 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/posts/new-ssg/</guid><description>&lt;p&gt;I started blogging at 2020 and was using Hugo as my go-to Static Site Generator, It was pretty fast and did the job well (Jekyll yes, I&amp;rsquo;m looking you).&lt;/p&gt;
&lt;p&gt;The process went as follows:&lt;br /&gt;
I had two repos, one for the blog config files and the markdown sources of my posts. I then build these files using &lt;code&gt;hugo build&lt;/code&gt; into static HTML pages which I push to another repo that serves my blog through github pages.&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator></item><item><title>Binary Exploitation Resources</title><link>https://hegzploit.github.io/posts/bof-resources/</link><pubDate>Tue, 27 Apr 2021 00:00:00 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Tue, 27 Apr 2021 00:00:00 +0000</atom:modified><guid>https://hegzploit.github.io/posts/bof-resources/</guid><description>&lt;p&gt;These are by far the best resources I have found and &lt;em&gt;have actually tried&lt;/em&gt; since I started learning binary exploitation.&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t waste your time choosing which is the best resource, just pick one and start digging in. They are all awesome!&lt;/p&gt;
&lt;h2 id="video"&gt;Video&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Dr. Ali Hadi&amp;rsquo;s Offensive Software Exploitation | &lt;a href="https://www.youtube.com/playlist?list=PLCS2zI95IiNybAAQ0HL88YzwRpLXje5y6"&gt;English&lt;/a&gt; - &lt;a href="https://www.youtube.com/playlist?list=PLCS2zI95IiNyo5AhbVIL2hVX7zhuSkOkz"&gt;Arabic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PL_yseowcuqYIaReP8ttfr0BAxbqZ7tmhq"&gt;Nakerah Network&amp;rsquo;s BOF Playlist - Arabic (Windows)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PL-HprVjV5ZtlPqcpwmAMD3JiFW85wQiV7"&gt;Hegzploit - Arabic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UClcE-kVhqyiHCcjYwcpfj9w"&gt;LiveOverflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/user/GynvaelEN"&gt;GynvaelEN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ippsec.rocks/"&gt;Search for topics on ippsec.rocks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PLLKT__MCUeix3O0DPbmuaRuR_4Hxo4m3G"&gt;The Cyber Mentor&amp;rsquo;s Playlist (Windows)&lt;/a&gt; - &lt;a href="https://www.youtube.com/watch?v=ncBblM920jw"&gt;New Updated Video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PLeSXUd883dhg48iGecOxvCieQas1-dsZo"&gt;PinkDraconian&amp;rsquo;s Playlist&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PL1H1sBF1VAKVg451vJ-rx0y_ZuQMHPamH"&gt;John Hammond&amp;rsquo;s Playlist&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PL1H1sBF1VAKUBfdObXv_MeS4s3n8qwgeU"&gt;John Hammond&amp;rsquo;s PicoCTF2022 Binary Exploitation Walkthroughs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=wa3sMSdLyHw&amp;amp;list=PLHUKi1UlEgOIc07Rfk2Jgb5fZbxDPec94"&gt;CryptoCat Intro to BinEx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="full-fledged-courses"&gt;Full Fledged Courses&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://pwn.college/"&gt;Pwn College&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tc.gts3.org/cs6265/2019/tut/"&gt;Georgia Institute of Technology Course&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://guyinatuxedo.github.io/"&gt;Guyintuxedo - Nightmare&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="practice-material"&gt;Practice Material&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://exploit.education"&gt;Exploit Exercises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://picoctf.org/"&gt;picoCTF&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pwnable.tw/"&gt;pwnable.tw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://pwnable.kr/"&gt;pwnable.kr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ropemporium.com/"&gt;ROP Emporium&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><dc:creator>Yusuf Hegazy</dc:creator></item><item><title>A Journey into Mathematical Logic: Diophantus of Alexandria</title><link>https://hegzploit.github.io/posts/diophantus/</link><pubDate>Thu, 01 Apr 2021 20:19:31 +0200</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Thu, 01 Apr 2021 20:19:31 +0200</atom:modified><guid>https://hegzploit.github.io/posts/diophantus/</guid><description>&lt;p&gt;In this series of blog posts, I will be discussing some of my favorite topics in math, It mostly falls under the domains of mathematical logic and computability theory.&lt;/p&gt;
&lt;h2 id="diophantus-of-alexandria"&gt;Diophantus of Alexandria&lt;/h2&gt;
&lt;p&gt;Diophantus was a Greek mathematician that flourished around 250 AD, he is most famous for his book &amp;ldquo;Arithmetica&amp;rdquo; in which he had compiled 130 algebraic problems among thirteen books where most of their solutions were positive integers, and that&amp;rsquo;s why mathematicians call such algebraic equations as &amp;ldquo;Diophantine Equations&amp;rdquo;.&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/header/diophantus_header.jpg" medium="image"><media:title type="html">featured image</media:title></media:content><category>math</category></item><item><title>Leaky Pipe - 0xL4ugh CTF</title><link>https://hegzploit.github.io/writeups/leaky-pipe/</link><pubDate>Sun, 17 Jan 2021 19:07:42 +0200</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Sun, 17 Jan 2021 19:07:42 +0200</atom:modified><guid>https://hegzploit.github.io/writeups/leaky-pipe/</guid><description>&lt;p&gt;In this challenge we recieved a binary in which we are asked to exploit and somehow retrieve the flag.&lt;br /&gt;
you can find the binary for this challenge &lt;a href="https://github.com/hegzploit/0xL4ugh-Pwn-Challs"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="initial-analysis"&gt;Initial Analysis&lt;/h2&gt;
&lt;p&gt;We start by running the binary and checking it behavior.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;./leaky_pipe
We have just fixed the plumbing systm, let&amp;#39;s hope there&amp;#39;s no leaks!
&amp;gt;.&amp;gt; aaaaah shiiit wtf is dat address doin here... 0x7ffde7760410
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA &amp;lt;--- our input
Segmentation fault (core dumped)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And as we see, we can already get a segfault by spamming some A&amp;rsquo;s in the input.&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><category>pwn</category></item><item><title>Trigger Happy - 0xL4ugh CTF</title><link>https://hegzploit.github.io/writeups/trigger-happy/</link><pubDate>Sat, 16 Jan 2021 16:33:49 +0200</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Sat, 16 Jan 2021 16:33:49 +0200</atom:modified><guid>https://hegzploit.github.io/writeups/trigger-happy/</guid><description>&lt;p&gt;It was the first ever pwn challenge I solve in a CTF and I really liked it hence I wanted to bring it to this CTF (you can even check my poorly written writeup for that challenge which I refuse to remove as It&amp;rsquo;s pretty awesome to look back and see how much did we grow).&lt;/p&gt;
&lt;p&gt;You can check my video on format string vulnerabilies as a refresher for these types of attacks (It&amp;rsquo;s in arabic tho).&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><category>pwn</category></item><item><title>Buffer Overflows for Newbies</title><link>https://hegzploit.github.io/posts/bof-for-normies/</link><pubDate>Mon, 30 Nov 2020 02:46:12 +0200</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Mon, 30 Nov 2020 02:46:12 +0200</atom:modified><guid>https://hegzploit.github.io/posts/bof-for-normies/</guid><description>&lt;p&gt;&lt;img src="https://hegzploit.github.io/posts/bof-for-normies/header.png" alt="“A picture of a leaking bucket that contains water as an analogue to buffer overflows.”"&gt;&lt;/p&gt;
&lt;h2 id="what-is-a-buffer-anyway"&gt;What is a Buffer anyway?&lt;/h2&gt;
&lt;p&gt;We can think of buffers as containers to hold our data for later use, it&amp;rsquo;s not really something specific to computer science; In fact, we have buffers in electronics, mechanics, chemistry and even politics!&lt;/p&gt;
&lt;p&gt;We can say that the word buffer is just a fancy name for a placeholder (temporary storage)!&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/header/bof_for_normies_header.png" medium="image"><media:title type="html">featured image</media:title></media:content></item><item><title>My Favorite Linux Distro</title><link>https://hegzploit.github.io/posts/distro/</link><pubDate>Sun, 27 Sep 2020 23:27:38 +0200</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Sun, 27 Sep 2020 23:27:38 +0200</atom:modified><guid>https://hegzploit.github.io/posts/distro/</guid><description>&lt;p&gt;Now, that&amp;rsquo;s a bit misleading since i have been using windows for the past 12-13 years of my keyboard smashing journey but i don&amp;rsquo;t really feel any guilt doing this, in fact windows is nothing more of a bottleneck to me &lt;em&gt;or so have i figured later&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;enough ranting, maybe this needs it&amp;rsquo;s own blog post after all &lt;em&gt;or maybe not&lt;/em&gt;, it&amp;rsquo;s a highly controversial topic whatsoever. Just believe me windows is pure evil.&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><category>linux</category></item><item><title>Optimizing Recursion</title><link>https://hegzploit.github.io/posts/recursion/</link><pubDate>Thu, 24 Sep 2020 15:52:30 +0200</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Thu, 24 Sep 2020 15:52:30 +0200</atom:modified><guid>https://hegzploit.github.io/posts/recursion/</guid><description>&lt;p&gt;In this blog post i will try to explain the basic concept of recursion and then show why recursion can be so inefficient and how to optimize it using &lt;strong&gt;Call Tail Optimization!&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="normal-recursion-a-factorial-example"&gt;Normal Recursion, A Factorial Example&lt;/h2&gt;
&lt;p&gt;Most of us tech nerds have already dealt with the good &amp;lsquo;ol recursion, let&amp;rsquo;s refresh our understanding using the iconic factorial program.&lt;br /&gt;
$$0! = 1$$&lt;br /&gt;
$$n! = n (n-1)!$$&lt;br /&gt;
Python Implementation:&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><media:content url="https://hegzploit.github.io/images/header/recursion_header.png" medium="image"><media:title type="html">featured image</media:title></media:content></item><item><title>Not Really AI - RA CTF</title><link>https://hegzploit.github.io/writeups/notreallyai/</link><pubDate>Mon, 08 Jun 2020 07:22:58 +0000</pubDate><author>me (AT) this domain (Yusuf Hegazy)</author><atom:modified>Mon, 08 Jun 2020 07:22:58 +0000</atom:modified><guid>https://hegzploit.github.io/writeups/notreallyai/</guid><description>&lt;ul&gt;
&lt;li&gt;Misusage of the libc &lt;code&gt;printf()&lt;/code&gt; function can lead to serious information leakage and even code execution.&lt;/li&gt;
&lt;li&gt;when we pass one argument (for example &lt;code&gt;printf(foo)&lt;/code&gt;) we can:
&lt;ul&gt;
&lt;li&gt;leak stack addresses using &lt;code&gt;%x&lt;/code&gt; or &lt;code&gt;%p&lt;/code&gt; format specifiers.&lt;/li&gt;
&lt;li&gt;overwrite any pointer&amp;rsquo;s value using &lt;code&gt;%n&lt;/code&gt; specifier (note that we can&amp;rsquo;t overwrite plain stack addresses as the %n format specifier can only overwrite by reference and not by value)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information on format strings please check &lt;a href="http://www.cis.syr.edu/~wedu/Teaching/cis643/LectureNotes_New/Format_String.pdf"&gt;this awesome resource&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Yusuf Hegazy</dc:creator><category>pwn</category></item></channel></rss>