<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Wachter Space Blog about Security and Automated Methods on Wachter Space :rocket:</title>
    <link>https://wachter-space.de/</link>
    <description>Recent content in Wachter Space Blog about Security and Automated Methods on Wachter Space :rocket:</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sat, 27 Dec 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://wachter-space.de/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>gpg.fail</title>
      <link>https://wachter-space.de/2025/12/27/gpg/</link>
      <pubDate>Sat, 27 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2025/12/27/gpg/</guid>
      <description>&lt;p&gt;Lexi and I gave a talk about vulnerabilities in PGP implementations and related software. Find writeups and recordings on &lt;a href=&#34;https://gpg.fail&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;gpg.fail&lt;/a&gt;. Slides are &lt;a href=&#34;https://wachter-space.de/gpg.fail/&#34;&gt;here&lt;/a&gt;. The impacts reach from changing the content of signed messages without access to the private key, over tricking a user into decrypting data of the attacker&amp;rsquo;s choice, to memory corruption in the ASCII-armor decoder.&lt;/p&gt;</description>
    </item>
    <item>
      <title>DUMPLING: Fine-grained Differential JavaScript Engine Fuzzing</title>
      <link>https://wachter-space.de/2025/02/27/dumpling-ndss2025/</link>
      <pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2025/02/27/dumpling-ndss2025/</guid>
      <description>&lt;p&gt;Conference presentation (&lt;a href=&#34;https://wachter-space.de/ndss2025/&#34;&gt;slides&lt;/a&gt; | &lt;a href=&#34;https://www.youtube.com/watch?v=SXrjuJxi32I&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;recording&lt;/a&gt;) of our paper &lt;a href=&#34;https://www.ndss-symposium.org/ndss-paper/dumpling-fine-grained-differential-javascript-engine-fuzzing/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&amp;ldquo;DUMPLING: Fine-grained Differential JavaScript Engine Fuzzing&amp;rdquo;&lt;/a&gt; at NDSS 2025. It was awarded the distinguished paper award.&lt;/p&gt;&#xA;&lt;p&gt;A longer version of this talk is available (&lt;a href=&#34;https://wachter-space.de/dumpling-yt-version&#34;&gt;slides&lt;/a&gt; | &lt;a href=&#34;https://www.youtube.com/watch?v=tSAGgcyufps&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;recording&lt;/a&gt;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Deep Differential Fuzzing of JavaScript Engines</title>
      <link>https://wachter-space.de/2024/05/29/dumpling-thesis-presentation/</link>
      <pubDate>Wed, 29 May 2024 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2024/05/29/dumpling-thesis-presentation/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;https://wachter-space.de/dumpling-long-presentation/&#34;&gt;master&amp;rsquo;s thesis presentation&lt;/a&gt; of our differential JavaScript engine Fuzzer &amp;ldquo;Dumpling&amp;rdquo;. The thesis is published as a paper at &lt;a href=&#34;https://www.ndss-symposium.org/ndss-paper/dumpling-fine-grained-differential-javascript-engine-fuzzing/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;NDSS 2025&lt;/a&gt; and received the distinguished paper award.&lt;/p&gt;</description>
    </item>
    <item>
      <title>V8 Design Docs</title>
      <link>https://wachter-space.de/2023/12/03/v8-design-docs/</link>
      <pubDate>Sun, 03 Dec 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/12/03/v8-design-docs/</guid>
      <description>&lt;p&gt;V8, the JavaScript engine, is largely undocumented.&#xA;An important source for understanding V8 is design documents.&#xA;To the best of my knowledge, there is no index of all design docs.&#xA;I made an attempt to create at least a partial index, i.e. all design docs I know of.&#xA;It is not limited to design docs in the strict sense; more like &amp;ldquo;Google Doc with details about V8 development&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;This is not necessarily up-to-date. See &lt;a href=&#34;https://github.com/two-heart/v8-design-docs&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;GitHub&lt;/a&gt; for the most recent version. Feel free to contribute there.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python Jail Escape CSAW Finals 2023</title>
      <link>https://wachter-space.de/2023/11/12/csaw23-python-jail-escape/</link>
      <pubDate>Sun, 12 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/11/12/csaw23-python-jail-escape/</guid>
      <description>&lt;p&gt;Python jail escapes have evolved into their own CTF category over the past years.&#xA;I recently gave a talk and &lt;a href=&#34;https://kitctf.de/learning/python-jails&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;wrote a blog post&lt;/a&gt; for my CTF team, where I give an introduction to the topic and show some classical examples.&#xA;I played CSAW CTF finals with team polyflag, overall the CTF was pretty mid with a lot of guessing and an unacceptable required VPN setup, where we had to install some random VPN client on our machines (with &lt;code&gt;sudo curl ... | bash&lt;/code&gt; of course) and then had to authenticate with a Google, LinkedIn, Microsoft, or GitHub account.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Debugging the Technical Interview</title>
      <link>https://wachter-space.de/2023/11/11/debugging-the-technical-interview/</link>
      <pubDate>Sat, 11 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/11/11/debugging-the-technical-interview/</guid>
      <description>&lt;p&gt;This is the second part of &lt;a href=&#34;https://wachter-space.de/2023/11/06/handling-the-technical-interview/&#34;&gt;my adaptation&lt;/a&gt; of &lt;em&gt;&amp;hellip;ing the technical interview&lt;/em&gt;.&#xA;A blog series by &lt;a href=&#34;https://aphyr.com/tags/interviews&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Aphyr&lt;/a&gt; about writing programs in funny, non-standard ways.&#xA;Again this is a writeup of a CTF challenge I created.&#xA;Specifically, the &lt;em&gt;dive in the lake&lt;/em&gt; challenge of LakeCTF, organized by the CTF of EPFL &lt;em&gt;polygl0ts&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Since the last technical interview in Java was apparently not enough to get me hired as a performance engineer, I need to go to the binary level.&#xA;Also, I got the feedback that the code last time would be hard to debug.&#xA;Therefore, even though shipping a binary, let&amp;rsquo;s include debug information in the DWARF format.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Handling the Technical Interview</title>
      <link>https://wachter-space.de/2023/11/06/handling-the-technical-interview/</link>
      <pubDate>Mon, 06 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/11/06/handling-the-technical-interview/</guid>
      <description>&lt;p&gt;I really like the blog series &lt;a href=&#34;https://aphyr.com/tags/interviews&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&amp;hellip;ing the technical interview&lt;/a&gt; by &lt;a href=&#34;https://aphyr.com/about&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Aphyr&lt;/a&gt;.&#xA;Besides the humor, I enjoy seeing Turing completeness in parts of systems that many people use but that were not designed to write entire programs in.&lt;/p&gt;&#xA;&lt;p&gt;Jeg snakker lite norsk and I can&amp;rsquo;t write anything as funny as the original.&#xA;But I write &lt;a href=&#34;https://kitctf.de/about/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;CTF&lt;/a&gt; challenges from time to time.&#xA;CTF reverse engineering challenges are the perfect place for implementing such weird things and getting the joy of many people trying to figure it out.&#xA;Therefore, this is the writeup for the challenge &lt;a href=&#34;https://gpn21.ctf.kitctf.de/challenges#haskell4j-11&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;haskell4j&lt;/a&gt; that &lt;a href=&#34;https://github.com/I-Al-Istannen&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;I-Al-Istannen&lt;/a&gt;, &lt;a href=&#34;https://github.com/SirYwell&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Hannes&lt;/a&gt; and I wrote together.&#xA;But let me tell you about Java Method Handles first.&lt;/p&gt;</description>
    </item>
    <item>
      <title>BH-MEA Profile GOT overwrite</title>
      <link>https://wachter-space.de/2023/11/05/profile-got-overwrite/</link>
      <pubDate>Sun, 05 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/11/05/profile-got-overwrite/</guid>
      <description>&lt;p&gt;This is a writeup of an easy/medium pwn challenge called &amp;ldquo;Profile&amp;rdquo; featuring a type confusion, some GOT overwriting, and a funny but unnecessary one gadget exploit for the fun of it.&lt;/p&gt;&#xA;&lt;p&gt;We are given the following files:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;main.c&lt;/li&gt;&#xA;&lt;li&gt;profile (binary)&lt;/li&gt;&#xA;&lt;li&gt;Dockerfile&lt;/li&gt;&#xA;&lt;li&gt;docker-compose.yml&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s look at main.c and see if we can spot a vulnerability from the provided source code.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-c&#34; data-lang=&#34;c&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;string.h&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;time.h&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;struct&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;person_t&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; id;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; age;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;char&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;name;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;get_value&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;char&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;msg, &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;pval) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;%s&amp;#34;&lt;/span&gt;, msg);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#a6e22e&#34;&gt;scanf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;%ld%*c&amp;#34;&lt;/span&gt;, (&lt;span style=&#34;color:#66d9ef&#34;&gt;long&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;)pval) &lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;exit&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;get_string&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;char&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;msg, &lt;span style=&#34;color:#66d9ef&#34;&gt;char&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;**&lt;/span&gt;pbuf) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;size_t&lt;/span&gt; n;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;%s&amp;#34;&lt;/span&gt;, msg);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;getline&lt;/span&gt;(pbuf, &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;n, stdin);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;pbuf)[&lt;span style=&#34;color:#a6e22e&#34;&gt;strcspn&lt;/span&gt;(&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;pbuf, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;\0&amp;#39;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;struct&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;person_t&lt;/span&gt; employee &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; { &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; };&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  employee.id &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;rand&lt;/span&gt;() &lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10000&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;get_value&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Age: &amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;employee.age);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (employee.age &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;puts&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[-] Invalid age&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;exit&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;get_string&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Name: &amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;employee.name);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;----------------&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ID: %04d&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Name: %s&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Age: %d&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;----------------&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         employee.id, employee.name, employee.age);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;free&lt;/span&gt;(employee.name);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;exit&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;__attribute__&lt;/span&gt;((constructor))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;setup&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;setvbuf&lt;/span&gt;(stdin, NULL, _IONBF, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;setvbuf&lt;/span&gt;(stdout, NULL, _IONBF, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;setvbuf&lt;/span&gt;(stderr, NULL, _IONBF, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;srand&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;time&lt;/span&gt;(NULL));&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;There is not much code and most of it looks okay, except the &lt;code&gt;get_value&lt;/code&gt; function.&#xA;First of all, it is bad practice to pass &lt;code&gt;void*&lt;/code&gt; around.&#xA;In this case the function is called with a &lt;code&gt;int*&lt;/code&gt;, specifically a pointer into the &lt;code&gt;employee&lt;/code&gt; struct.&#xA;However, the &lt;code&gt;int*&lt;/code&gt; is treated as a &lt;code&gt;long*&lt;/code&gt;, by both the format string given to &lt;code&gt;scanf&lt;/code&gt; and the cast.&#xA;While &lt;code&gt;int age&lt;/code&gt; is only 32 bit, the write of attacker controlled data is 64 bits, overflowing into the &lt;code&gt;char* name&lt;/code&gt;, and overwriting the lower half.&#xA;Next, &lt;code&gt;get_string&lt;/code&gt; reads a string from &lt;code&gt;char* name&lt;/code&gt; that got partially overwritten.&#xA;This gives us a write-what-where primitive in any four byte or less address.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CSR23 simple-asm Shellcode Challenge</title>
      <link>https://wachter-space.de/2023/10/01/simple-asm/</link>
      <pubDate>Sun, 01 Oct 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/10/01/simple-asm/</guid>
      <description>&lt;p&gt;Solution to the Cyber Security Rumble Finals challenge simple-asm.&lt;/p&gt;&#xA;&lt;p&gt;The challenge is straightforward.&#xA;It defines a custom set of instructions, that get translated to x64 instructions directly and are then executed at a fixed offset, in a no-PIE binary.&#xA;The translation lacks checks, such that the instructions do more than they should at first sight, when using a specific higher register.&lt;/p&gt;&#xA;&lt;p&gt;This is the provided challenge source code, also running on the remote instance:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introduction to V8 JIT Compilation</title>
      <link>https://wachter-space.de/2023/07/27/introduction-to-v8-exploitation/</link>
      <pubDate>Thu, 27 Jul 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/07/27/introduction-to-v8-exploitation/</guid>
      <description>&lt;p&gt;A talk by &lt;a href=&#34;https://ju256.de/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;ju256&lt;/a&gt; and me about Chrome V8 internals with some case studies of common bugs.&#xA;While the &lt;a href=&#34;https://wachter-space.de/chrome-intro&#34;&gt;slides&lt;/a&gt; are okay to look at, there is a fair bit of context missing without the audio track.&#xA;Maybe we will give the talk in a similar form somewhere where it is recorded in the future.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Competitive hacking as team sport: An introduction to Capture the Flag</title>
      <link>https://wachter-space.de/2023/07/09/ctf-gpn/</link>
      <pubDate>Sun, 09 Jul 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/07/09/ctf-gpn/</guid>
      <description>&lt;p&gt;KITCTF held the CTF of the GPN conference.&#xA;Accompanying it, &lt;a href=&#34;https://mawalabs.de&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Martin&lt;/a&gt; and I gave a talk about CTFs and the CTF community.&#xA;The talk was &lt;a href=&#34;https://media.ccc.de/v/gpn21-36-competitive-hacking-as-team-sport-an-introduction-to-capture-the-flag&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;recorded&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python Jail Escapes</title>
      <link>https://wachter-space.de/2023/07/07/python-jail-escapes/</link>
      <pubDate>Fri, 07 Jul 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/07/07/python-jail-escapes/</guid>
      <description>&lt;p&gt;At the meeting of my CTF team I gave a talk about Python jail escapes.&#xA;I.e., CTF challenges where there is only a very limited execution environment and the goal is to get unrestricted code execution, e.g. executing &lt;code&gt;os.system(&#39;cat flag.txt&#39;)&lt;/code&gt;.&#xA;While I have the slides, I think reading the &lt;a href=&#34;https://kitctf.de/learning/python-jails&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;blog post on the KITCTF blog&lt;/a&gt; with all the examples I wrote for the talk is much more insightful.&#xA;It is meant to serve as a practice problem set for everyone who wants to get started with exploiting Python jails.&#xA;If you want to see a slightly more complex example of a Python jail escape, check out &lt;a href=&#34;https://wachter-space.de/2023/11/12/csaw23-python-jail-escape/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;my other blog post&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Post-hoc Concept-Based Explanations</title>
      <link>https://wachter-space.de/2023/06/28/post-hoc_concept-based_explanations/</link>
      <pubDate>Wed, 28 Jun 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/06/28/post-hoc_concept-based_explanations/</guid>
      <description>&lt;p&gt;Systematization of knowledge in the field of Post-hoc Concept-Based Explanations.&lt;/p&gt;&#xA;&lt;p&gt;Find the slides &lt;a href=&#34;https://wachter-space.de/xai-presentation/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Advanced Ghidra</title>
      <link>https://wachter-space.de/2023/04/13/advanced-ghidra/</link>
      <pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/04/13/advanced-ghidra/</guid>
      <description>&lt;p&gt;Ghidra is a fairly complex reverse engineering tool, that has a lot of great features, that are not really intuitive to use.&#xA;This talk was given together with &lt;a href=&#34;https://intrigus.org/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;intrigus&lt;/a&gt; for our CTF team KITCTF.&#xA;It touches on many interesting but not easy-to-use features, specifically:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Importing processor manuals&lt;/li&gt;&#xA;&lt;li&gt;Syncing decompiler and debugger&lt;/li&gt;&#xA;&lt;li&gt;pcode emulation&lt;/li&gt;&#xA;&lt;li&gt;Ghidra scripts in Java, and how you can use Python 3 instead of Python 2.7&lt;/li&gt;&#xA;&lt;li&gt;Function signatures, how to use them in static binaries and how they work internally&lt;/li&gt;&#xA;&lt;li&gt;Adding custom architectures&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://kitctf.de/talks/?2023-04-13-advancedGhidra#/slides-main&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;slides&lt;/a&gt; should be navigated with &lt;code&gt;n&lt;/code&gt; and &lt;code&gt;p&lt;/code&gt; instead of arrow keys, because they are 2D slides.&#xA;Furthermore, they are exported from markdown to reveal.js, messing up some alignments, but that shouldn&amp;rsquo;t matter for understanding the contents.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introduction to Reverse Engineering</title>
      <link>https://wachter-space.de/2023/04/05/introduction-to-reverse-engineering/</link>
      <pubDate>Wed, 05 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/04/05/introduction-to-reverse-engineering/</guid>
      <description>&lt;p&gt;With my CTF team KITCTF, each semester we do introductory talks about how to get started with CTFs.&#xA;I prepared an introductory talk about reverse engineering, that is meant to provide the absolute basics.&#xA;You can find the slides &lt;a href=&#34;https://wachter-space.de/revintro_talk/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rechnerstrukturen Vorlesungszusammenfassung</title>
      <link>https://wachter-space.de/2023/03/21/rechnerstrukturen/</link>
      <pubDate>Tue, 21 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/03/21/rechnerstrukturen/</guid>
      <description>&lt;style&gt;&#xA;div.page-body &gt; ul {&#xA;    list-style-type: none;&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;p&gt;Vorlesungszusammenfassung der Vorlesung Rechnerstrukturen am KIT von Prof. Dr. Karl gehalten von Dr. Lars Bauer und Übungen gehalten von Thomas Becker. Die Klausur hat typischerweise einen hohen Anteil an Wissensfragen und die Bearbeitungszeit ist sehr knapp.&lt;/p&gt;&#xA;&lt;p&gt;&lt;button id=&#34;toggleall&#34;&gt;Toggle all&lt;/button&gt;&lt;/p&gt;&#xA;&lt;script&gt;&#xA;function toggle() {&#xA;  console.log(&#39;toggle&#39;);&#xA;  const details = document.querySelectorAll(&#39;details&#39;);&#xA;  details.forEach((detail) =&gt; {&#xA;    if (detail.hasAttribute(&#39;open&#39;)) {&#xA;      detail.removeAttribute(&#39;open&#39;);&#xA;    } else {&#xA;      detail.setAttribute(&#39;open&#39;, &#39;&#39;);&#xA;    }&#xA;  });&#xA;} &#xA;const button = document.getElementById(&#39;toggleall&#39;);&#xA;button.addEventListener(&#39;click&#39;, toggle);&#xA;&lt;/script&gt;&#xA;&lt;div class=&#34;page-body&#34;&gt;&lt;h1 class=&#34;&#34; id=&#34;30eebd9b-5bff-46ff-8a5b-70a421adb2f9&#34;&gt;Grundlagen&lt;/h1&gt;&lt;h2 class=&#34;&#34; id=&#34;86de33fb-ddf8-4778-a7be-17d79d300c88&#34;&gt;Einführung&lt;/h2&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;3ee0f89b-37c0-4186-b254-ad2aee8ff6bf&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Zunächst mechanische Rechner&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;70315c58-1298-4ff0-8f6f-8634830f4b90&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Platz und Komplexität durch Dualsystem deutlich reduziert&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;toggle&#34; id=&#34;ea58ed0c-e70a-4a90-adfb-67e73f0eb9fe&#34;&gt;&lt;li&gt;&lt;details open=&#34;&#34;&gt;&lt;summary&gt;Moore’s Gesetz &lt;/summary&gt;&lt;p class=&#34;&#34; id=&#34;36e15f06-3721-417e-ba2a-cdfd793c1ce0&#34;&gt;Anzahl der Transistoren, die auf einem IC integriert werden können, verdoppelt sich alle 18 Monate. Später angepasst auf alle zwei Jahre.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Software Engineering 2 Lecture Summary</title>
      <link>https://wachter-space.de/2023/02/20/swt2/</link>
      <pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/02/20/swt2/</guid>
      <description>&lt;p&gt;Software Engineering 2 (SWT II) is the follow-up lecture to &lt;a href=&#34;https://wachter-space.de/2019/06/19/swt1/&#34;&gt;Software Engineering 1&lt;/a&gt; and is held by Prof. Dr. Reussner. It focuses on software architecture, quality and development processes. The first part of this post is a lecture summary organized as self test questions for active recall. Below there are answers to the learning goals presented in the last lecture.&lt;/p&gt;&#xA;&lt;style&gt;&#xA;div.page-body &gt; ul {&#xA;    list-style-type: none;&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;div class=&#34;page-body&#34;&gt;&lt;h1 class=&#34;&#34; id=&#34;d783e79d-b503-4fa5-a538-0145a09332f6&#34;&gt;Design &amp;amp; Realization&lt;/h1&gt;&lt;h2 class=&#34;&#34; id=&#34;01a4aaee-23d0-48e7-a4e2-8f72bd409edc&#34;&gt;Clean Coding&lt;/h2&gt;&lt;ul class=&#34;toggle&#34; id=&#34;2358d821-16e2-4838-abb2-97aed3f7e316&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;Lehman’s first law&lt;/summary&gt;&lt;p class=&#34;&#34; id=&#34;a83ecd6a-6dd1-4f04-8213-788d81337ae1&#34;&gt;A system that is used will be changed&lt;/p&gt;</description>
    </item>
    <item>
      <title>ImaginaryCTF rrng</title>
      <link>https://wachter-space.de/2023/02/01/imaginaryctf_rrng/</link>
      <pubDate>Wed, 01 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/02/01/imaginaryctf_rrng/</guid>
      <description>&lt;p&gt;Imaginary CTF is not your classical weekend CTF. Instead, they have been publishing fun challenges almost every day since April 2021 &amp;ndash; pretty impressive. I&amp;rsquo;ve been solving some of their challenges here and there. This one, from last month, is especially fun. Also I wanted to try a jupyter notebook style write-up. Let me know if this helps comprehension or maybe is too much mixing of code and text.&lt;/p&gt;&#xA;&lt;p&gt;The challenge states:&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; Reverse Engineering</title>
      <link>https://wachter-space.de/2023/01/26/reverse-engineering-cpp/</link>
      <pubDate>Thu, 26 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/01/26/reverse-engineering-cpp/</guid>
      <description>&lt;p&gt;I talked about how C++ reverse engineering is very different from C reverse engineering.&#xA;The talk touches on a research project I did at HexHive about a subtopic in that space.&#xA;However, it is meant as a general introduction.&#xA;Unfortunately, I can only provide the &lt;a href=&#34;https://kitctf.de/learning/cpprev&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;slides&lt;/a&gt; and not the live demo.&#xA;These are 2D slides so use &lt;code&gt;n&lt;/code&gt; and &lt;code&gt;p&lt;/code&gt; to navigate instead of the arrow keys.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Privacy Enhancing Technologies Summary</title>
      <link>https://wachter-space.de/2023/01/24/pets/</link>
      <pubDate>Tue, 24 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/01/24/pets/</guid>
      <description>&lt;style&gt;&#xA;div.page-body &gt; ul {&#xA;    list-style-type: none;&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;div class=&#34;page-body&#34;&gt;&lt;h1 class=&#34;&#34; id=&#34;607e117e-46ab-476f-a080-b6de35dd56ca&#34;&gt;Privacy&lt;/h1&gt;&lt;h2 class=&#34;&#34; id=&#34;e0de7c71-bec9-4029-8030-11fb047f12ac&#34;&gt;Definitions&lt;/h2&gt;&lt;ul class=&#34;toggle&#34; id=&#34;68f2c38b-468d-441f-9b72-2d9ef9a67219&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;Privacy dictionary definition&lt;/summary&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;3b587ac3-c252-4d54-b203-f1daf09add71&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;the quality or state of being apart from company or observation : seclusion&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;13f567d0-7759-47b8-a3a1-ef9d0854fc7a&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt; freedom from unauthorized intrusion &amp;lt;one&#39;s right to privacy&amp;gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class=&#34;&#34; id=&#34;ccefe2df-5800-4106-a40b-d04acd230538&#34;&gt;⇒ right to be let alone&lt;/p&gt;&lt;/details&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;toggle&#34; id=&#34;3f2080e1-508b-41d5-b905-c2c8764548f8&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;CS definition of privacy&lt;/summary&gt;&lt;blockquote class=&#34;&#34; id=&#34;b5e5502e-1fdc-4ce7-a74d-1d1c0aae2c7a&#34;&gt;the claim of individuals … to determine for themselves when, how, and what extent of information about them is communicated to others. ~ Alan Westin (1967)&lt;/blockquote&gt;&lt;/details&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;toggle&#34; id=&#34;acd2312f-8b00-493e-a79e-30b7c9f7af6b&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;Privacy Sphere model&lt;/summary&gt;&lt;p class=&#34;&#34; id=&#34;b59018e7-a54d-4938-9671-2fe7a6634c4d&#34;&gt;Modelling protection requirements (expectations) of classes of information as concentric circles of decreasing need for protection.&lt;/p&gt;</description>
    </item>
    <item>
      <title>One Pixel Adversarial Attack - RCTF catspy</title>
      <link>https://wachter-space.de/2023/01/09/rctf_catspy/</link>
      <pubDate>Mon, 09 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/01/09/rctf_catspy/</guid>
      <description>&lt;p&gt;This post is about turning a photo of a cat into a photo of a goldfish by changing only one pixel, at least according to resnet50.&#xA;With &lt;a href=&#34;https://ctftime.org/team/42934/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Organizers&lt;/a&gt; we participated in RCTF during the close race at the end 2022 to be #1 on CTFtime.&#xA;This literally meant to participate in every high rated CTF and solving every challenge, including the miscy of the misc.&#xA;The challenge &lt;em&gt;catspy&lt;/em&gt; appeared at around 2am in the misc category and the description states:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatic Unit Test Generation from Formal Verification</title>
      <link>https://wachter-space.de/2023/01/06/formal_verification_unit_tests/</link>
      <pubDate>Fri, 06 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/01/06/formal_verification_unit_tests/</guid>
      <description>&lt;p&gt;Presentation about: &lt;a href=&#34;https://wachter-space.de/fv-unit-testing&#34;&gt;Using stainless for Full Coverage Unit Test Generation&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Large Scale Empirical Ethereum Smart Contract Analysis</title>
      <link>https://wachter-space.de/2023/01/06/ethereum_analysis/</link>
      <pubDate>Fri, 06 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2023/01/06/ethereum_analysis/</guid>
      <description>&lt;div class=&#34;abstract&#34;&gt;&#xA;&lt;div class=&#34;abstract-title&#34;&gt;Abstract&lt;/div&gt;&#xA;&lt;p&gt;Ethereum smart contracts are Turing complete programs that operate on&#xA;money and derived assets. With a market capitalization in the three&#xA;digit billions, there is an interest in quantifying their usage. Despite&#xA;blockchain data being public by design, large scale analysis of smart&#xA;contracts is technically challenging to do on a large scale. We&#xA;summarize methods to analyze contract usage on the Ethereum blockchain&#xA;and categorize the most popular contracts by their application domain&#xA;and behavior. Especially, changes in behavior before and after removing&#xA;gas refunds on the Ethereum blockchain are analyzed. Furthermore, we&#xA;quantify the adoption of final Ethereum Requests for Comments (ERCs),&#xA;that standardize smart contracts for certain applications. According to&#xA;the used metrics, trading related smart contracts, are the most popular.&#xA;In that context, we explain, why using just a single metric can be&#xA;misleading. The removal of gas refunds lead to significant changes in&#xA;contract lifetime and state cleanup.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatically Reverse Engineering Ethereum Smart Contracts</title>
      <link>https://wachter-space.de/2022/09/21/ethereum_analysis_presentation/</link>
      <pubDate>Wed, 21 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2022/09/21/ethereum_analysis_presentation/</guid>
      <description>&lt;p&gt;Note: Navigate the presentation with &lt;code&gt;n&lt;/code&gt; and &lt;code&gt;p&lt;/code&gt; keys. There are 2D slides.&lt;/p&gt;&#xA;&lt;p&gt;Presentation about: &lt;a href=&#34;https://wachter-space.de/rfc-presentation/&#34;&gt;large scale empirical ethereum smart contract analysis&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;There is also a &lt;a href=&#34;https://wachter-space.de/2023/01/06/ethereum_analysis/&#34;&gt;blog post&lt;/a&gt; about the findings.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exam Questions Machine Learning for the Natural Sciences</title>
      <link>https://wachter-space.de/2022/08/24/mlforns/</link>
      <pubDate>Wed, 24 Aug 2022 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2022/08/24/mlforns/</guid>
      <description>&lt;p&gt;The lecture Machine Learning for the Natural Sciences promises to focus on applications of machine learning to natural sciences, especially physics and chemistry. However, most of the actual content is repeating machine learning basics, that are already in foundational lectures on machine learning. In the remaining time, a few interesting topics are presented, but sadly just very shallowly.&lt;/p&gt;&#xA;&lt;p&gt;There is also programming homework that counts for 1/3 of the final grade. This is nice, and I think more courses should do that. Such homework has the potential for much more learning than studying for the final exam. However, the programming exercises here are filling in blanks in jupyter notebooks of mixed quality and difficulty.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exam Anti-Patterns</title>
      <link>https://wachter-space.de/2022/08/07/exam_antipatterns/</link>
      <pubDate>Sun, 07 Aug 2022 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2022/08/07/exam_antipatterns/</guid>
      <description>&lt;p&gt;There is no such thing as the perfect university exam, but if we agree that its purpose is to give an objective score of an individual&amp;rsquo;s comprehension of the covered topics, then there is clearly a way to be less wrong when creating exams. This post lists a few DON&amp;rsquo;Ts that can be easily avoided. If you think there is an anti-pattern in this post, you can write me an email and I will add it here.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Operating System Security Lecture Summary</title>
      <link>https://wachter-space.de/2022/05/21/ossec/</link>
      <pubDate>Sat, 21 May 2022 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2022/05/21/ossec/</guid>
      <description>&lt;p&gt;Lecture summary of the lecture Operating System Security, organized with self test toggles. The lecture is concerned with binary exploitation from an offensive as well as a defensive point of view. I can really recommend the lecture, if you are interested in modern security mechanisms implemented by operating systems and hardware.&lt;/p&gt;&#xA;&lt;style&gt;&#xA;div.page-body &gt; ul {&#xA;    list-style-type: none;&#xA;}&#xA;div.page-body &gt; h1 {&#xA;    font-size: 37px;&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;div class=&#34;page-body&#34;&gt;&lt;h1 class=&#34;&#34; id=&#34;3b086c3d-e3d4-466b-9f30-2a8bdcde698e&#34;&gt;Basic Definitions&lt;/h1&gt;&lt;ul class=&#34;toggle&#34; id=&#34;46f3befa-562b-4143-b9e2-52516197bd4c&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;What is a vulnerability?&lt;/summary&gt;&lt;figure class=&#34;image&#34; id=&#34;52aea45c-022d-4f94-919c-1d3aa9122e6c&#34;&gt;&lt;a href=&#34;https://wachter-space.de/assets/ossec/Untitled.png&#34;&gt;&lt;img src=&#34;https://wachter-space.de/assets/ossec/Untitled.png&#34; style=&#34;width:1579px&#34;/&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/details&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;toggle&#34; id=&#34;9e79b897-3e19-4874-a044-19034b52533e&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;What is the definition of an exploit?&lt;/summary&gt;&lt;figure class=&#34;image&#34; id=&#34;e2cf1a5c-037b-41aa-822d-bffd4456e131&#34;&gt;&lt;a href=&#34;https://wachter-space.de/assets/ossec/Untitled%201.png&#34;&gt;&lt;img src=&#34;https://wachter-space.de/assets/ossec/Untitled%201.png&#34; style=&#34;width:1581px&#34;/&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p class=&#34;&#34; id=&#34;3f182591-19c7-481a-bb68-c6d92ca9f703&#34;&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>What are CTFs?</title>
      <link>https://wachter-space.de/2022/04/28/introduction-to-ctfs/</link>
      <pubDate>Thu, 28 Apr 2022 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2022/04/28/introduction-to-ctfs/</guid>
      <description>&lt;p&gt;With my CTF team KITCTF each semester we do introductory talks about how to get started with CTFs.&#xA;I gave the introductory talk, i.e. &amp;ldquo;What even are CTFs?&amp;rdquo;, twice.&lt;/p&gt;&#xA;&lt;p&gt;You can find the slides of the latest iteration on the KITCTF website: &lt;a href=&#34;https://kitctf.de/talks/2023-04-27-intro/slides.pdf&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Acquiring practical security knowledge through enjoyable hacking challenges&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Additionally, I wrote a &lt;a href=&#34;https://kitctf.de/learning/howto&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;blog post&lt;/a&gt; just listing great materials and updating our last blog post from 2014, so it might already be time for a slight update.&lt;/p&gt;</description>
    </item>
    <item>
      <title>b01lers CTF resnet Model Inversion</title>
      <link>https://wachter-space.de/2022/04/25/ctf_model_inversion_writeup/</link>
      <pubDate>Mon, 25 Apr 2022 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2022/04/25/ctf_model_inversion_writeup/</guid>
      <description>&lt;p&gt;With &lt;a href=&#34;https://kitctf.de/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;KITCTF&lt;/a&gt; we participated in the bo01lers CTF and finished 6th. There were some quite fun challenges. Including the resnet challenge, which is a machine learning challenge. I hope to see more machine learning challenges in the future.&lt;/p&gt;&#xA;&lt;p&gt;Challenge description:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;A naive AI startup released a new visual password system based on State-of-the-Art Neural Network technology. Wanting to save on costs they reuse the popular Resnet model to create embeddings which input password images are checked against hoping to leverage the feature extraction capabilities of Resnet. Can you crack this visual password system?&#xA;nc ctf.b01lers.com 9101&lt;/p&gt;</description>
    </item>
    <item>
      <title>Self Test Questions Data Science I</title>
      <link>https://wachter-space.de/2022/03/04/ds_self_test_questions/</link>
      <pubDate>Fri, 04 Mar 2022 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2022/03/04/ds_self_test_questions/</guid>
      <description>&lt;p&gt;Answers to self test questions for the lecture &amp;ldquo;Data Science I&amp;rdquo; at KIT. If you spot any errors, write me an e-mail or Discord message.&lt;/p&gt;&#xA;&lt;style&gt;&#xA;div.page-body &gt; ul {&#xA;    list-style-type: none;&#xA;}&#xA;div.page-body &gt; h1 {&#xA;    font-size: 37px;&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;div class=&#34;page-body&#34;&gt;&lt;h1 class=&#34;&#34; id=&#34;4fd71bb4-dca6-476d-8ae1-eb131a5cb2da&#34;&gt;Lecture 1: Introduction&lt;/h1&gt;&lt;ul class=&#34;toggle&#34; id=&#34;661180e2-5f4d-4397-a79b-b4825f86f535&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;Give examples of applications of clustering.&lt;/summary&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;2dcd7966-bfdd-4dee-9fa1-eebbbaef3007&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Customer groups clustered based on bought products&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;acedadcf-4112-44df-80d7-7a16b2a91f18&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Unsupervised malware family identification&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;dd929b4f-b711-46dc-8e76-621901a244c3&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Outlier Detection&lt;/li&gt;&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;toggle&#34; id=&#34;56dfcfbb-6655-4997-beb1-df4790a1ef93&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;Describe a scenario from natural sciences, in which classification is useful: What are the attributes/class? How would you try to solve it?&lt;/summary&gt;&lt;p class=&#34;&#34; id=&#34;888fa700-314b-4bff-99fc-87813f70f5af&#34;&gt;Flower family classification:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Self Test Questions Machine Learning</title>
      <link>https://wachter-space.de/2022/02/10/ml_self_test_questions/</link>
      <pubDate>Thu, 10 Feb 2022 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2022/02/10/ml_self_test_questions/</guid>
      <description>&lt;p&gt;Self test questions for the lecture &amp;ldquo;Machine Learning - Foundations and Algorithms&amp;rdquo; at KIT.&lt;/p&gt;&#xA;&lt;style&gt;&#xA;div.page-body &gt; ul {&#xA;    list-style-type: none;&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;div class=&#34;page-body&#34;&gt;&lt;h1 class=&#34;&#34; id=&#34;cc97a4df-53a9-49f8-8558-2ee75f957482&#34;&gt;Lecture 3: Model Selection&lt;/h1&gt;&lt;ul class=&#34;toggle&#34; id=&#34;48fa0bbb-a068-4c10-8795-585bf64296be&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;Why is it a bad idea to evaluate your algorithm on the training set?&lt;/summary&gt;&lt;p class=&#34;&#34; id=&#34;5f32e91d-e9fa-46fb-99f1-d587dbab6c55&#34;&gt;Evaluating on the training set, rewards overfitting. Overfitting means learning training points by heart, instead of approximating the distribution the training points were drawn from. A trivial algorithm that just stores and queries all training points, has 100 % accuracy on the training set.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Insomnihack Teaser 2022: Herald</title>
      <link>https://wachter-space.de/2022/01/31/insteaser22/</link>
      <pubDate>Mon, 31 Jan 2022 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2022/01/31/insteaser22/</guid>
      <description>&lt;p&gt;Read more writeups at &lt;a href=&#34;https://kitctf.de/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;kitctf.de&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Challenge description:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Our lab administrator has just passed out from a strange virus. Please help us find the password to his messaging app so we can identify what he was working on and save his life.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;We are given an apk (Android Package) starting it, it asks for username and password to enter. It does not require any network connection, so it is a classical CrackMe.&lt;/p&gt;</description>
    </item>
    <item>
      <title>hxp CTF: shitty blog</title>
      <link>https://wachter-space.de/2021/12/19/hxp_21/</link>
      <pubDate>Sun, 19 Dec 2021 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2021/12/19/hxp_21/</guid>
      <description>&lt;p&gt;Read more writeups at &lt;a href=&#34;https://kitctf.de/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;kitctf.de&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Challenge description:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Please use my shitty blog 🤎!&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;We are given a docker container running php. The only notable thing about it is that there is a &lt;code&gt;readflag&lt;/code&gt; binary on the server and that the webroot is &lt;code&gt;/var/www/html&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Other than that only &lt;code&gt;index.php&lt;/code&gt; is interesting:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;php&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// TODO: fully implement multi-user / guest feature :(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$secret &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;SECRET_PLACEHOLDER&amp;#39;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$salt &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;$6$&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;substr&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;hash_hmac&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;md5&amp;#39;&lt;/span&gt;, $_SERVER[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;REMOTE_ADDR&amp;#39;&lt;/span&gt;], $secret), &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;$&amp;#39;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;isset&lt;/span&gt;($_COOKIE[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;session&amp;#39;&lt;/span&gt;])){&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    $id &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;random_int&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;PHP_INT_MAX&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    $mac &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;substr&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;crypt&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;hash_hmac&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;md5&amp;#39;&lt;/span&gt;, $id, $secret, &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;), $salt), &lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    $session &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;explode&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;|&amp;#39;&lt;/span&gt;, $_COOKIE[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;session&amp;#39;&lt;/span&gt;]);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;( &lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;hash_equals&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;crypt&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;hash_hmac&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;md5&amp;#39;&lt;/span&gt;, $session[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;], $secret, &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;), $salt), $salt&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;$session[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;])) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;exit&lt;/span&gt;();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    $id &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $session[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    $mac &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $session[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;setcookie&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;session&amp;#39;&lt;/span&gt;, $id&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;|&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;$mac);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$sandbox &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;./data/&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;md5&lt;/span&gt;($salt&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;|&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;$id&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;|&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;$mac);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;is_dir&lt;/span&gt;($sandbox)) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;mkdir&lt;/span&gt;($sandbox);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$db &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;PDO&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;sqlite:&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;realpath&lt;/span&gt;($sandbox)&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/blog.sqlite3&amp;#39;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$db&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;setAttribute&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;PDO&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;ATTR_ERRMODE&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;PDO&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;ERRMODE_EXCEPTION&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$db&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;setAttribute&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;PDO&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;ATTR_EMULATE_PREPARES&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$schema &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name VARCHAR(255));&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    CREATE TABLE IF NOT EXISTS entry (id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER, content TEXT);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    INSERT OR IGNORE INTO user (id, name) VALUES (0, &amp;#39;System&amp;#39;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    INSERT OR IGNORE INTO entry (id, user_id, content) VALUES (0, 0, &amp;#39;Welcome to your new blog - 🚩🚩🚩 ʕ•́ᴥ•̀ʔっ🤎 🚩🚩🚩&amp;#39;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$db&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;exec&lt;/span&gt;($schema);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;get_entries&lt;/span&gt;($db){&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    $sth &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $db&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;query&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;SELECT id, user_id, content FROM entry ORDER BY id DESC&amp;#39;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; $sth&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;fetchAll&lt;/span&gt;(); &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;get_user&lt;/span&gt;($db, $user_id) &lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;string&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;foreach&lt;/span&gt;($db&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;query&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SELECT name FROM user WHERE id = &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;$user_id&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; $user) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; $user[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;name&amp;#39;&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;me&amp;#39;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;insert_entry&lt;/span&gt;($db, $content, $user_id) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    $sth &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $db&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;prepare&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;INSERT INTO entry (content, user_id) VALUES (?, ?)&amp;#39;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    $sth&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;execute&lt;/span&gt;([$content, $user_id]);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;delete_entry&lt;/span&gt;($db, $entry_id, $user_id) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    $db&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;exec&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;DELETE from entry WHERE &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;$user_id&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; &amp;lt;&amp;gt; 0 AND id = &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;$entry_id&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;isset&lt;/span&gt;($_POST[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;content&amp;#39;&lt;/span&gt;])) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;insert_entry&lt;/span&gt;($db, &lt;span style=&#34;color:#a6e22e&#34;&gt;htmlspecialchars&lt;/span&gt;($_POST[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;content&amp;#39;&lt;/span&gt;]), $id);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;header&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Location: /&amp;#39;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;exit&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$entries &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;get_entries&lt;/span&gt;($db);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;isset&lt;/span&gt;($_POST[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;delete&amp;#39;&lt;/span&gt;])) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;foreach&lt;/span&gt;($entries &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; $key &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; $entry) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;($_POST[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;delete&amp;#39;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;===&lt;/span&gt; $entry[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;id&amp;#39;&lt;/span&gt;]){&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;delete_entry&lt;/span&gt;($db, $entry[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;id&amp;#39;&lt;/span&gt;], $entry[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;user_id&amp;#39;&lt;/span&gt;]);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;header&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Location: /&amp;#39;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;exit&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;foreach&lt;/span&gt;($entries &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; $key &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; $entry) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    $entries[$key][&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;user&amp;#39;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;get_user&lt;/span&gt;($db, $entry[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;user_id&amp;#39;&lt;/span&gt;]);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;?&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;lt;!doctype html&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;lt;html lang=&amp;#34;en&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;  &amp;lt;head&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;    &amp;lt;meta charset=&amp;#34;utf-8&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;    &amp;lt;title&amp;gt;My shitty Blog&amp;lt;/title&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;    &amp;lt;link rel=&amp;#34;icon&amp;#34; type=&amp;#34;image/png&amp;#34; href=&amp;#34;/favicon.png&amp;#34;/&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;  &amp;lt;/head&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;  &amp;lt;body&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;    &amp;lt;h1&amp;gt;My shitty blog&amp;lt;/h1&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;    &amp;lt;form method=&amp;#34;post&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;        &amp;lt;textarea cols=&amp;#34;50&amp;#34; rows=&amp;#34;10&amp;#34; name=&amp;#34;content&amp;#34;&amp;gt;&amp;lt;/textarea&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;        &amp;lt;input type=&amp;#34;submit&amp;#34; value=&amp;#34;Post&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;    &amp;lt;/form&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;    &amp;lt;?php foreach($entries as $entry):?&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;        &amp;lt;div&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;            &amp;lt;p&amp;gt;&amp;lt;?= $entry[&amp;#39;content&amp;#39;] ?&amp;gt;&amp;lt;/p&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;            &amp;lt;small&amp;gt;By &amp;lt;?=  $entry[&amp;#39;user&amp;#39;] ?&amp;gt; &amp;lt;/small&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;            &amp;lt;form method=&amp;#34;post&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;                &amp;lt;input type=&amp;#34;hidden&amp;#34; name=&amp;#34;delete&amp;#34; value=&amp;#34;&amp;lt;?= $entry[&amp;#39;id&amp;#39;] ?&amp;gt;&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;                &amp;lt;input type=&amp;#34;submit&amp;#34; value=&amp;#34;Delete&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;            &amp;lt;/form&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;        &amp;lt;/div&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;        &amp;lt;hr&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;    &amp;lt;?php endforeach ?&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;  &amp;lt;/body&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;lt;/html&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On the first look, we notice that there are two obvious sql injections in &lt;code&gt;delete_entry&lt;/code&gt; and &lt;code&gt;get_user&lt;/code&gt;. Unfortunately, we do not control &lt;code&gt;$entry_id&lt;/code&gt;, because the value is read from the database. So we are left with manipulating the user ID. The user ID is the cookie and needs to have a valid MAC (Message Authentication Code, think of it as a symmetric signature) next to it. The crypto on top looks weird and despite MD5 being used there is no obvious flaw in it, as we neither know &lt;code&gt;$secret&lt;/code&gt; nor &lt;code&gt;$salt&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Self Test Questions Entrepreneurship</title>
      <link>https://wachter-space.de/2021/11/22/entrepreneurship_wiederholungsfragen/</link>
      <pubDate>Mon, 22 Nov 2021 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2021/11/22/entrepreneurship_wiederholungsfragen/</guid>
      <description>&lt;p&gt;Self test questions for the lecture entrepreneurship at KIT.&lt;/p&gt;&#xA;&lt;style&gt;&#xA;table, th, td { border: 1px solid rgba(55, 53, 47, 0.09); border-collapse: collapse; }&#xA;&#xA;table { border-left: none; border-right: none; }&#xA;&#xA;th, td { font-weight: normal; padding: 0.25em 0.5em; line-height: 1.5; min-height: 1.5em; text-align: left; }&#xA;&#xA;th { color: rgba(55, 53, 47, 0.6); }&#xA;&#xA;ol, ul { margin: 0; margin-block-start: 0.6em; margin-block-end: 0.6em; }&#xA;&#xA;li &gt; ol:first-child, li &gt; ul:first-child { margin-block-start: 0.6em; }&#xA;&#xA;ul &gt; li { list-style: disc; }&#xA;&#xA;ul.to-do-list { text-indent: -1.7em; }&#xA;&#xA;ul.to-do-list &gt; li { list-style: none; }&#xA;&#xA;.to-do-children-checked { text-decoration: line-through; opacity: 0.375; }&#xA;&#xA;ul.toggle &gt; li { list-style: none; }&#xA;&#xA;ul { padding-inline-start: 1.7em; }&#xA;&#xA;ul &gt; li { padding-left: 0.1em; }&#xA;&#xA;ol { padding-inline-start: 1.6em; }&#xA;&#xA;ol &gt; li { padding-left: 0.2em; }&#xA;&#xA;.mono ol { padding-inline-start: 2em; }&#xA;&#xA;.mono ol &gt; li { text-indent: -0.4em; }&#xA;&#xA;.toggle { padding-inline-start: 0em; list-style-type: none; }&#xA;&#xA;/* Indent toggle children */ .toggle &gt; li &gt; details { padding-left: 1.7em; }&#xA;&#xA;.toggle &gt; li &gt; details &gt; summary { margin-left: -1.1em; }&#xA;&#xA;time { opacity: 0.5; }&#xA;&#xA;.icon { display: inline-block; max-width: 1.2em; max-height: 1.2em; text-decoration: none; vertical-align: text-bottom;&#xA;margin-right: 0.5em; }&#xA;&#xA;img.icon { border-radius: 3px; }&#xA;&#xA;.page-header-icon img { border-radius: 3px; }&#xA;&#xA;&#xA;p &gt; .user { opacity: 0.5; }&#xA;&#xA;td &gt; .user, td &gt; time { white-space: nowrap; }&#xA;&#xA;input[type=&#34;checkbox&#34;] { transform: scale(1.5); margin-right: 0.6em; vertical-align: middle; }&#xA;&#xA;p { margin-top: 0.5em; margin-bottom: 0.5em; }&#xA;&#xA;&#xA;.code, code { background: rgba(135, 131, 120, 0.15); border-radius: 3px; padding: 0.2em 0.4em; border-radius: 3px;&#xA;font-size: 85%; tab-size: 2; }&#xA;&#xA;code { color: #eb5757; }&#xA;&#xA;.code { padding: 1.5em 1em; }&#xA;&#xA;.code-wrap { white-space: pre-wrap; word-break: break-all; }&#xA;&#xA;.code &gt; code { background: none; padding: 0; font-size: 100%; color: inherit; }&#xA;&#xA;blockquote { font-size: 1.25em; margin: 1em 0; padding-left: 1em; border-left: 3px solid rgb(55, 53, 47); }&#xA;&lt;/style&gt;&#xA;&lt;div class=&#34;page-body&#34;&gt;&lt;h1 class=&#34;&#34; id=&#34;684d16a9-989d-4223-b18c-9d8490e9aca8&#34;&gt;Session 1: Introduction&lt;/h1&gt;&lt;ul class=&#34;toggle&#34; id=&#34;8a1af2fe-5720-4e3f-b7a7-59c8ec662e82&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;What is the activity of an entrepreneur according to Jean Baptiste Say?&lt;/summary&gt;&lt;blockquote class=&#34;&#34; id=&#34;f44c3d76-5a4e-43f9-8ca0-9d18489a8c23&#34;&gt;The entrepreneur shifts economic resources out of an area of lower and into an area of higher productivity. 🐎&lt;/blockquote&gt;&lt;/details&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;toggle&#34; id=&#34;83225d80-9b93-4fa7-b976-fb57da5c7067&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;How does Joseph Schumpeter define “entrepreneurship”?&lt;/summary&gt;&lt;blockquote class=&#34;&#34; id=&#34;dd04fee3-d70e-4af8-9585-440f89d6e04f&#34;&gt;Entrepreneurship is about new factor combinations leading to new products, production methods or new markets. It is about creative destruction. 🤯&lt;/blockquote&gt;&lt;/details&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;toggle&#34; id=&#34;00180426-300a-4525-9947-4edeb554daa3&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;What are the career reasons of nascent entrepreneurs? Name and explain them.&lt;/summary&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;a2de2581-45e9-4071-ab95-155301d04dd0&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Independence (freedom &amp;amp; control in use of one’s tie) 🗽&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;13012c73-cdc4-471e-9832-27330a84dcea&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Self-realization (pursue self-directed goals) 🧑‍🚀&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;01acbdff-fec7-482c-941a-dc998a611f64&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Financial success (earn money, achieve financial security) 💰&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;0002388a-b0a0-49d2-b0b6-075ec98928ee&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Recognition (have status &amp;amp; approval by others) 🎖️&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;5e5e8770-3a74-4197-9031-392166741436&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Role (follow family traditions or follow example of others) 👪&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;2c077680-6a26-4272-bce8-f3453941da14&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Innovation (accomplish something new) 🚀&lt;/li&gt;&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;toggle&#34; id=&#34;2fddb393-a92f-457e-b8dd-cb9897c374f2&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;What are the motives for starting a business, according to GEM 2019?&lt;/summary&gt;&lt;h2 class=&#34;&#34; id=&#34;33bed415-bfd9-47e7-b665-34477290bb59&#34;&gt;Opportunity based entrepreneurship&lt;/h2&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;7a80df54-9ee6-47be-b8dd-fa6bb66b930f&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;To make a difference in the world 🌍&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;a73a35fe-4b69-4d4e-9e4d-4299349ba82a&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;To build great wealth or very high income &lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;dc61e861-7ea2-4460-becc-b264272c6953&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;To continue a family tradition 👪&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#34;&#34; id=&#34;f11a8e60-ab3b-4659-9de9-fefcad61a56a&#34;&gt;Necessity based entrepreneurship&lt;/h2&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;e6202061-a438-4f3e-b9ab-bdaed4d29583&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;To earn a living because jobs are scarce 📉&lt;/li&gt;&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;toggle&#34; id=&#34;dfd08cb6-131e-4e89-8c99-90133a65589c&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;Please name the listed five forms of capital and name at least one example.&lt;/summary&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;3a259516-5056-4d59-979b-9f6156b8f39f&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Financial Capital 💸&lt;ul class=&#34;bulleted-list&#34; id=&#34;b56922dc-6b24-44f9-917b-dad5e079e3ff&#34;&gt;&lt;li style=&#34;list-style-type:circle&#34;&gt;Money&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;b7dff3ba-1292-4d35-8976-834ae8c92b2a&#34;&gt;&lt;li style=&#34;list-style-type:circle&#34;&gt;Bonds &amp;amp; Security&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;2fd81d37-7ac5-4ac0-8f28-a9c28f5161ee&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Natural Capital 🏞️&lt;ul class=&#34;bulleted-list&#34; id=&#34;2aaaa328-64f3-4a60-84c3-fcde7939186c&#34;&gt;&lt;li style=&#34;list-style-type:circle&#34;&gt;Raw materials&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;e5b09cee-d60b-417a-af95-59dafb5fb2b1&#34;&gt;&lt;li style=&#34;list-style-type:circle&#34;&gt;Pollution absorption capacity&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;59f4f661-7f3c-41d2-86f6-86917447dec3&#34;&gt;&lt;li style=&#34;list-style-type:circle&#34;&gt;Land&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;18c404b1-c0e8-416c-be34-bc3c2a7500e7&#34;&gt;&lt;li style=&#34;list-style-type:circle&#34;&gt;Biological yield&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;56501325-2f75-476a-a09e-3261df12d20a&#34;&gt;&lt;li style=&#34;list-style-type:circle&#34;&gt;Energy&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;59ee1ea1-7857-4f56-84ce-895d88a3382f&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Intellectual Capital 🧠&lt;ul class=&#34;bulleted-list&#34; id=&#34;f9f89aff-1ca9-475e-919b-54f9a7cf2abc&#34;&gt;&lt;li style=&#34;list-style-type:circle&#34;&gt;Human Capital: Skills, Knowledge, Attitude&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;1d59ea71-0dba-4a69-8ca0-cf34441ea3e6&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Organizational Capital 🏢&lt;ul class=&#34;bulleted-list&#34; id=&#34;2d54333d-28cc-49b0-a354-65ece7025c57&#34;&gt;&lt;li style=&#34;list-style-type:circle&#34;&gt;Hardware &amp;amp; Machines&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;2f189f27-1c59-433d-8918-4a75fcb985dd&#34;&gt;&lt;li style=&#34;list-style-type:circle&#34;&gt;Software &amp;amp; Databases&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;9578a87d-2e8d-4a7d-ab38-1a921df83189&#34;&gt;&lt;li style=&#34;list-style-type:circle&#34;&gt;Patents&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;4aa7bfbe-c53f-4c5b-b825-b73215658847&#34;&gt;&lt;li style=&#34;list-style-type:circle&#34;&gt;Processes &amp;amp; methods&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;bulleted-list&#34; id=&#34;40712a32-1fc5-4732-a18f-4814cdb9e500&#34;&gt;&lt;li style=&#34;list-style-type:disc&#34;&gt;Social Capital 🫂&lt;ul class=&#34;bulleted-list&#34; id=&#34;0128040e-00cc-408b-a1e7-4817c1979b74&#34;&gt;&lt;li style=&#34;list-style-type:circle&#34;&gt;Quality of stakeholder relationship&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#34;toggle&#34; id=&#34;764fe474-52f6-47b6-86d7-05971e87314b&#34;&gt;&lt;li&gt;&lt;details&gt;&lt;summary&gt;Please give one example of “Creative Destruction” related to entrepreneurship.&lt;/summary&gt;&lt;p class=&#34;&#34; id=&#34;667d900b-606c-4d48-8691-848eb8c37a6e&#34;&gt;A company realizing a customer need not served in the current market. E.g. Apple&#39;s IPod: Portable, easy to use, mobile music and podcast consumption.&lt;/p&gt;</description>
    </item>
    <item>
      <title>hack.lu CTF 2021 Writeups</title>
      <link>https://wachter-space.de/2021/11/17/hacklu_ctf_2021_writeup/</link>
      <pubDate>Wed, 17 Nov 2021 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2021/11/17/hacklu_ctf_2021_writeup/</guid>
      <description>&lt;h2 id=&#34;tenbagger&#34; class=&#34;relative group&#34;&gt;Tenbagger &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#tenbagger&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Challenge description:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I think I took it too far and made some trades and lost everything. My only chance to fix my account balance is a tenbagger.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;We are given a pcap and open in Wireshark. It contains a lot of what looks like normal web browsing. But somewhere in there are a few FIX messages. FIX is the Financial Information eXchange protocol. First, I thought that we need to get the credentials from the FIX login, but there are no such packages. It is much simpler than that. In the text field, spread over multiple packages, there is the flag in plain text:&lt;/p&gt;</description>
    </item>
    <item>
      <title>ASIS CTF 2021 Writeups</title>
      <link>https://wachter-space.de/2021/11/16/asis_ctf_2021_writeup/</link>
      <pubDate>Tue, 16 Nov 2021 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2021/11/16/asis_ctf_2021_writeup/</guid>
      <description>&lt;p&gt;These are writeups for the first CTF I participated in during a weekend. Before that I only solved some picoctf, pwn.college, and Google Beginners quest challenges after the events. I played with &lt;a href=&#34;https://kitctf.de/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;KITCTF&lt;/a&gt; the CTF team of the Karlsruhe Institute of Technology.&lt;/p&gt;&#xA;&lt;h2 id=&#34;factory&#34; class=&#34;relative group&#34;&gt;Factory &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#factory&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Challenge description&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;In the simplest terms, factory misco-graphy is the ratio of output to input!&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The challenge file is only one pdf. Opening it only shows the text &amp;ldquo;Real-World Misco-graphy&amp;rdquo;. Checking the metadata with &lt;code&gt;exiftool&lt;/code&gt; and doing &lt;code&gt;binwalk&lt;/code&gt; to search for a file in the file did not yield any interesting results. After that I wanted to linearize the pdf with &lt;code&gt;qpdf&lt;/code&gt;, but it gave me the error:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mitschrift Vertragsgestaltung am KIT</title>
      <link>https://wachter-space.de/2021/09/21/vertragsgestaltung_mitschrift/</link>
      <pubDate>Tue, 21 Sep 2021 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2021/09/21/vertragsgestaltung_mitschrift/</guid>
      <description>&lt;p&gt;Mitschrift der Vorlesung &lt;em&gt;Vertragsgestaltung&lt;/em&gt; am KIT, die von &lt;a href=&#34;https://www.bartsch-rechtsanwaelte.de/rechtsanwaelte/leipert-stephan/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Rechtsanwalt Stephan Leipert&lt;/a&gt; als Gastdozent gehalten wird. Schaut auch auf seinem &lt;a href=&#34;https://www.youtube.com/channel/UCs8BHnRyNn_vfsWDEKfHf9Q&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;YouTube-Kanal&lt;/a&gt; vorbei.&lt;/p&gt;&#xA;&lt;p&gt;Markus Bilz hat ebenfalls eine Mitschrift auf seiner &lt;a href=&#34;https://edu.markusbilz.com/vertragsgestaltung/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Webseite&lt;/a&gt; erstellt.&lt;/p&gt;&#xA;&lt;p&gt;Die Wiederholungsfragen habe ich in einem anderen &lt;a href=&#34;https://wachter-space.de/2021/09/13/vertragsgestaltung_wiederholungsfragen/&#34;&gt;Post&lt;/a&gt; beantwortet.&lt;/p&gt;&#xA;&lt;h2 id=&#34;allgemeines&#34; class=&#34;relative group&#34;&gt;Allgemeines &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#allgemeines&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Klausur am 23.09.2021 12:00&lt;/li&gt;&#xA;&lt;li&gt;Wissensfragen + Fälle (40/60)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fälle müssen nicht zwingend im Gutachtenstil. Aber gute Strukturierung&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Gesetze&#xA;&lt;ul&gt;&#xA;&lt;li&gt;BGB&lt;/li&gt;&#xA;&lt;li&gt;HGB/GmbHG gegen Ende, wird aber im Gesetz abgedruckt&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Literatur: Vertiefend, nicht zwingend&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Schmittat, Einführung in die Vertragsgestaltung&lt;/li&gt;&#xA;&lt;li&gt;Moes, Grundlagen der Vertragsgestaltung&lt;/li&gt;&#xA;&lt;li&gt;Aderhold/Koch/Lenkaitis, Vertragsgestaltung&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Folien werden mit Passwort auf Anwaltshomepage&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Jedes mal ein anderes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Überblicksvorlesung, keine Details&lt;/li&gt;&#xA;&lt;li&gt;Folien auf &lt;a href=&#34;https://www.bartsch-rechtsanwaelte.de/rechtsanwaelte/leipert-stephan/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Webseite&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;1-stunde-15042021-einführung-und-überblick&#34; class=&#34;relative group&#34;&gt;1. Stunde (15.04.2021) Einführung und Überblick &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#1-stunde-15042021-einf%c3%bchrung-und-%c3%bcberblick&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&lt;figure&gt;&lt;img src=&#34;https://wachter-space.de/assets/vertragsgestaltung/Untitled.png&#34; alt=&#34;Untitled&#34; class=&#34;mx-auto my-0 rounded-md&#34; /&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wiederholungsfragen für Vertragsgestaltung am KIT</title>
      <link>https://wachter-space.de/2021/09/13/vertragsgestaltung_wiederholungsfragen/</link>
      <pubDate>Mon, 13 Sep 2021 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2021/09/13/vertragsgestaltung_wiederholungsfragen/</guid>
      <description>&lt;p&gt;Antworten auf die Wiederholungsfragen der Vorlesung &lt;em&gt;Vertragsgestaltung&lt;/em&gt; am KIT, die von &lt;a href=&#34;https://www.bartsch-rechtsanwaelte.de/rechtsanwaelte/leipert-stephan/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Rechtsanwalt Stephan Leipert&lt;/a&gt; als Gastdozent gehalten wird. Schaut auch auf seinem &lt;a href=&#34;https://www.bartsch-rechtsanwaelte.de/rechtsanwaelte/leipert-stephan/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;YouTube-Kanal&lt;/a&gt; vorbei.&#xA;Die Antworten stammen von mir und können Fehler enthalten. Falls solche auffallen sollten oder es andere Ergänzungen geben sollte, schreibt mir eine Mail an die Adresse im &lt;em&gt;About&lt;/em&gt;. Die Antworten erscheinen mit einem Klick auf die Frage.&lt;/p&gt;&#xA;&lt;p&gt;Markus Bilz hat ebenfalls die Fragen auf seiner &lt;a href=&#34;https://edu.markusbilz.com/vertragsgestaltung/selbsttestfragen&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Webseite&lt;/a&gt; beantwortet.&lt;/p&gt;&#xA;&lt;p&gt;Eine Mitschrift der Vorlesung findet sich in einem anderen &lt;a href=&#34;https://wachter-space.de/2021/09/13/vertragsgestaltung_wiederholungsfragen/&#34;&gt;Post&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Algorithmen für planare Graphen am KIT</title>
      <link>https://wachter-space.de/2021/09/08/planare_graphen/</link>
      <pubDate>Wed, 08 Sep 2021 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2021/09/08/planare_graphen/</guid>
      <description>&lt;p&gt;Übersicht über die Themen. &#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&lt;figure&gt;&lt;img src=&#34;https://wachter-space.de/assets/apg.svg&#34; alt=&#34;Themen&#34; class=&#34;mx-auto my-0 rounded-md&#34; /&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;ressourcen&#34; class=&#34;relative group&#34;&gt;Ressourcen &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#ressourcen&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.overleaf.com/read/gkknbnmwhnym&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;LaTeX Mitschrieb SS2021&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jgleitz.github.io/AfpG-Skript/Inoffizielles%20Skript.pdf&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;LaTeX Mitschrieb SS2016&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/c/SaradaHerke&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Graph Theorie YT Kanal von Sarada Herke&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Always Visible Deadlines</title>
      <link>https://wachter-space.de/2021/08/16/gnome_deadlines/</link>
      <pubDate>Mon, 16 Aug 2021 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2021/08/16/gnome_deadlines/</guid>
      <description>&lt;p&gt;To not get surprised by an upcoming deadline the day before, I like having them in sight regularly.&#xA;The solution for me is to have them in the upper right corner of my computer screen at all times.&#xA;I am using Gnome, but this approach works for macOS.&#xA;It is possible to develop for the Gnome shell directly, but this requires interaction with some complex and poorly documented APIs.&#xA;For simply counting down numbers in the top bar this seems overkill.&#xA;Luckily &lt;a href=&#34;https://github.com/p-e-w/argos&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;argos&lt;/a&gt; got me covered, and simplifies this task enormously.&#xA;For macOS there is xbar, which is compatible with argos.&#xA;Argos itself is a Gnome shell extension, for developing simple text display and shortcut applications, that live in the top bar.&#xA;All I have to do for displaying text, is to create any type of executable, that prints to &lt;code&gt;stdout&lt;/code&gt;.&#xA;I opted for a python script, but shell scripts, C programs, or anything else works just as well.&#xA;The script should calculate the remaining time until the upcoming deadlines, easy right, right!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Programmierparadigmen am KIT</title>
      <link>https://wachter-space.de/2021/04/20/propa/</link>
      <pubDate>Tue, 20 Apr 2021 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2021/04/20/propa/</guid>
      <description>&lt;p&gt;Übersicht über die Themen. &#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&lt;figure&gt;&lt;img src=&#34;https://wachter-space.de/assets/Programmierparadigmen.png&#34; alt=&#34;Themen&#34; class=&#34;mx-auto my-0 rounded-md&#34; /&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;(&lt;a href=&#34;https://wachter-space.de/assets/Programmierparadigmen.html&#34;&gt;Textform für Sehgeschädigte&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;Zur Klausurvorbereitung habe ich viele der &lt;a href=&#34;https://wiki.haskell.org/H-99:_Ninety-Nine_Haskell_Problems&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Ninety-Nine Haskell Problems&lt;/a&gt; und der &lt;a href=&#34;https://sites.google.com/site/prologsite/home&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Ninety-Nine Prolog Problems&lt;/a&gt; gemacht. Sehr ähnliche Probleme waren bereits in Altklausuren dran.&lt;/p&gt;&#xA;&lt;p&gt;Für alle die sich weitergehend mit dem Lambdakalkül auseinandersetzen wollen, sind &lt;a href=&#34;http://www.cse.chalmers.se/research/group/logic/TypesSS05/Extra/geuvers.pdf&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Introduction to Lambda Calculus&lt;/a&gt; von Henk Barendregt und Erik Barendsen, sowie &lt;a href=&#34;https://www.mscs.dal.ca/~selinger/papers/lambdanotes.pdf&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Lecture Notes on the Lambda Calculus&lt;/a&gt; von Peter Selinger lesenswert.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Regelkonformes Verhalten im Unternehmensbereich am KIT</title>
      <link>https://wachter-space.de/2021/03/30/governance_compliance/</link>
      <pubDate>Tue, 30 Mar 2021 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2021/03/30/governance_compliance/</guid>
      <description>&lt;p&gt;Die Vorlesung „Regelkonformes Verhalten im Unternehmensbereich“ am KIT gehört zum Modul „Governance, Risk &amp;amp; Compliance“&#xA;(Nebenfach Recht, Informatik Bachelor) und ist einziger Pflichtbestandteil, um spannende Vorlesungen wie Internetrecht hören zu können.&#xA;Es besteht jedoch kein inhaltlicher Zusammenhang zwischen den Vorlesungen. Die Dozenten sind Berater bei Deloitte.&lt;/p&gt;&#xA;&lt;p&gt;Wichtig ist vor allem, den Zusammenhang zwischen verschiedenen Normen und Regelungen zu kennen. Hier der Versuch der&#xA;Darstellung einiger Zusammenhänge in einem Bild.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&lt;figure&gt;&lt;img src=&#34;https://wachter-space.de/assets/rvu-map.png&#34; alt=&#34;Zusammenhang der Regelungen&#34; class=&#34;mx-auto my-0 rounded-md&#34; /&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Telematics at KIT</title>
      <link>https://wachter-space.de/2021/03/12/telematik/</link>
      <pubDate>Fri, 12 Mar 2021 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2021/03/12/telematik/</guid>
      <description>&lt;style&gt;&#xA;table, th, td { border: 1px solid rgba(55, 53, 47, 0.09); border-collapse: collapse; }&#xA;&#xA;table { border-left: none; border-right: none; }&#xA;&#xA;th, td { font-weight: normal; padding: 0.25em 0.5em; line-height: 1.5; min-height: 1.5em; text-align: left; }&#xA;&#xA;th { color: rgba(55, 53, 47, 0.6); }&#xA;&#xA;ol, ul { margin: 0; margin-block-start: 0.6em; margin-block-end: 0.6em; }&#xA;&#xA;li &gt; ol:first-child, li &gt; ul:first-child { margin-block-start: 0.6em; }&#xA;&#xA;ul &gt; li { list-style: disc; }&#xA;&#xA;ul.to-do-list { text-indent: -1.7em; }&#xA;&#xA;ul.to-do-list &gt; li { list-style: none; }&#xA;&#xA;.to-do-children-checked { text-decoration: line-through; opacity: 0.375; }&#xA;&#xA;ul.toggle &gt; li { list-style: none; }&#xA;&#xA;ul { padding-inline-start: 1.7em; }&#xA;&#xA;ul &gt; li { padding-left: 0.1em; }&#xA;&#xA;ol { padding-inline-start: 1.6em; }&#xA;&#xA;ol &gt; li { padding-left: 0.2em; }&#xA;&#xA;.mono ol { padding-inline-start: 2em; }&#xA;&#xA;.mono ol &gt; li { text-indent: -0.4em; }&#xA;&#xA;.toggle { padding-inline-start: 0em; list-style-type: none; }&#xA;&#xA;/* Indent toggle children */ .toggle &gt; li &gt; details { padding-left: 1.7em; }&#xA;&#xA;.toggle &gt; li &gt; details &gt; summary { margin-left: -1.1em; }&#xA;&#xA;time { opacity: 0.5; }&#xA;&#xA;.icon { display: inline-block; max-width: 1.2em; max-height: 1.2em; text-decoration: none; vertical-align: text-bottom;&#xA;margin-right: 0.5em; }&#xA;&#xA;img.icon { border-radius: 3px; }&#xA;&#xA;.page-header-icon img { border-radius: 3px; }&#xA;&#xA;&#xA;p &gt; .user { opacity: 0.5; }&#xA;&#xA;td &gt; .user, td &gt; time { white-space: nowrap; }&#xA;&#xA;input[type=&#34;checkbox&#34;] { transform: scale(1.5); margin-right: 0.6em; vertical-align: middle; }&#xA;&#xA;p { margin-top: 0.5em; margin-bottom: 0.5em; }&#xA;&#xA;&#xA;.code, code { background: rgba(135, 131, 120, 0.15); border-radius: 3px; padding: 0.2em 0.4em; border-radius: 3px;&#xA;font-size: 85%; tab-size: 2; }&#xA;&#xA;code { color: #eb5757; }&#xA;&#xA;.code { padding: 1.5em 1em; }&#xA;&#xA;.code-wrap { white-space: pre-wrap; word-break: break-all; }&#xA;&#xA;.code &gt; code { background: none; padding: 0; font-size: 100%; color: inherit; }&#xA;&#xA;blockquote { font-size: 1.25em; margin: 1em 0; padding-left: 1em; border-left: 3px solid rgb(55, 53, 47); }&#xA;&lt;/style&gt;&#xA;&lt;p&gt;In this post I give a visual overview of the lecture “Telematik” at KIT and share my answers to the comprehension questions and the poll questions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[German] Jugend hackt Community Talk: Informatikstudium</title>
      <link>https://wachter-space.de/2020/12/28/jh-infostudium/</link>
      <pubDate>Mon, 28 Dec 2020 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2020/12/28/jh-infostudium/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve participated in many Jugend hackt events, and later helped others as a mentor.&#xA;The talks of my projects were given with far too little sleep to link them here.&#xA;However, during the CCC congress 2020 &lt;a href=&#34;https://www.linkedin.com/in/elisabeth-schiele/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Elisabeth&lt;/a&gt;, &lt;a href=&#34;https://www.linkedin.com/in/jana-zeller-9875291a1/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Jana&lt;/a&gt;, Malte and I gave a talk in German about studying computer science, geared towards high school students deciding what to do after school.&#xA;If that fits your situation, this talk may still be relevant.&#xA;The talk was &lt;a href=&#34;https://media.ccc.de/v/rc3-282568-jugend_hackt_community_talk&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;recorded&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fuzzing Schutzmaßnahmen</title>
      <link>https://wachter-space.de/2020/09/01/fuzzing_mitigations/</link>
      <pubDate>Tue, 01 Sep 2020 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2020/09/01/fuzzing_mitigations/</guid>
      <description>&lt;p&gt;Dieser Blogeintrag ist eine Seminararbeit, die ich im Sommersemester 2020 im Rahmen des Seminars Schwachstellensuche am KIT geschrieben habe. Ich habe das LaTeX einmal durch &lt;code&gt;pandoc&lt;/code&gt; gejagt, sodass ich es hier auf meinen Blog schmeißen kann. Möglicherweise leidet die Formatierung darunter.&lt;/p&gt;&#xA;&lt;p&gt;Das Seminar selbst war wie einen Konferenz gestaltet, inklusive Peer-Reviews von anderen Teilnehmern des Seminars mit HotCRP. Dabei habe ich über das Inhaltliche hinaus noch viel über den Prozess des Peer-Review gelernt.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rollenbasierte Modellierung für das Domain-driven Design</title>
      <link>https://wachter-space.de/2020/08/30/ddd_rbm/</link>
      <pubDate>Sun, 30 Aug 2020 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2020/08/30/ddd_rbm/</guid>
      <description>&lt;p&gt;Dieser Blogpost ist meine Proseminararbeit mit dem Titel „Nutzbarkeit von Rollenbasierter Modellierung im Domain-driven Design“ aus dem Sommersemester 2020. Während das KIT noch einiges an der Vergabe der Proseminare verbessern sollte, habe ich im Nachhinein viel über wissenschaftliches Schreiben und Software-Entwurf gelernt. (Trotz kompliziertem und intransparentem Vergabesystem ist es letztendlich gefühlter Zufall, ob und welches Thema man bekommt.)&#xA;Es gab ein Peer-Review durch zwei andere Teilnehmende des Seminars, allerdings lagen die Themengebiete sehr weit auseinander. Die nicht optimale Formatierung dieses Blogposts liegt daran, dass ich die Quelldateien in zwei Schritten mit &lt;code&gt;pandoc&lt;/code&gt; umgewandelt habe.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Übungsblattabgabeskript</title>
      <link>https://wachter-space.de/2020/08/07/numerik/</link>
      <pubDate>Fri, 07 Aug 2020 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2020/08/07/numerik/</guid>
      <description>&lt;p&gt;In Numerik (Sommersemester 2020) sind digitale Abgaben erlaubt. Um nicht viel Zeit mit scannen, komprimieren, Deckblatt etc. zu verbringen, habe ich dieses kleine Skript geschrieben, dass die Software noteshrink benutzt, um aus Handyphotos eine fertige Abgabe zu erstellen. Aus dem gleichen Grund ist dieses Skript nicht sehr durchdacht, hat aber für mich sehr gut funktioniert.&lt;/p&gt;&#xA;&lt;p&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/bin/bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# format: $1=number of assignment $2=files to be included&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# warning this script is not safe by any means and will potentially overwrite existing&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# pdfs and remove pngs based on filename pattern&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;set -e &lt;span style=&#34;color:#75715e&#34;&gt;# fail on error&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo $2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python3 ./noteshrink/noteshrink.py &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$2&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;/*.jpg&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm page*.png&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pandoc -s -o title-tmp.pdf &amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;# Numerische Mathematik&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;## Blatt &lt;/span&gt;$1&lt;span style=&#34;color:#e6db74&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;Mein Name&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;Mat. Nmr...&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gs -dNOPAUSE -sDEVICE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;pdfwrite -sOUTPUTFILE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;blatt$1.pdf -dBATCH title-tmp.pdf output.pdf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm output.pdf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm *-tmp.pdf&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;Alle benutzten Programme müssen installiert sein und die Security Policy von ImageMagick muss angepasst werden.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Machine Learning for Computer Security at KIT</title>
      <link>https://wachter-space.de/2020/08/06/mlforsec/</link>
      <pubDate>Thu, 06 Aug 2020 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2020/08/06/mlforsec/</guid>
      <description>&lt;style&gt;&#xA;details {&#xA;&#x9;font-size: 1em;&#xA;&#x9;margin: 1.5em auto;&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css&#34;&gt;&#xA;&lt;script defer src=&#34;https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script defer src=&#34;https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/contrib/auto-render.min.js&#34; onload=&#34;renderMathInElement(document.body);&#34;&gt;&lt;/script&gt;&#xA;&lt;script&gt;&#xA;    document.addEventListener(&#34;DOMContentLoaded&#34;, function() {&#xA;        renderMathInElement(document.body, {&#xA;            delimiters: [&#xA;                {left: &#34;$$&#34;, right: &#34;$$&#34;, display: true},&#xA;                {left: &#34;$&#34;, right: &#34;$&#34;, display: false}&#xA;            ]&#xA;        });&#xA;    });&#xA;&lt;/script&gt;&#xA;&lt;h2 id=&#34;overview&#34; class=&#34;relative group&#34;&gt;Overview &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#overview&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Topics from the lecture. I use mind maps like this before exam preparation to see what I can remember from during the semester. During learning, I expand on the topics. Later I use color coding of the nodes to visualize what topics I know well and what still need practice.&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&lt;figure&gt;&lt;img src=&#34;https://wachter-space.de/assets/Machine-Learning-for-Computer-Security.png&#34; alt=&#34;Concepts&#34; class=&#34;mx-auto my-0 rounded-md&#34; /&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sicherheit am KIT</title>
      <link>https://wachter-space.de/2020/08/06/sicherheit/</link>
      <pubDate>Thu, 06 Aug 2020 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2020/08/06/sicherheit/</guid>
      <description>&lt;p&gt;Für die Vigenère-Chiffre sind mir spontan diese Einzeiler eingefallen, es gibt sicherlich schöneren Pythoncode, aber zum schnellen ausprobieren in der Python-Shell sind die Funktionen ganz praktisch. In der Vorlesung und der Übung besteht der Unterschied von 1 in der Definition.&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;encrypt&lt;/span&gt;(k, m):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;join([chr(((ord(k[i &lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt; len(k)]) &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; ord(x) &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;26&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; ord(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;A&amp;#39;&lt;/span&gt;)) &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; i, x &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; enumerate(m)])&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;decrypt&lt;/span&gt;(k, c):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;join([chr(((ord(x) &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; ord(k[i &lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt; len(k)]) &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;26&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; ord(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;A&amp;#39;&lt;/span&gt;)) &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; i, x &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; enumerate(c)])&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;p&gt;Themenübersicht&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&lt;figure&gt;&lt;img src=&#34;https://wachter-space.de/assets/Sicherheit.png&#34; alt=&#34;Themen&#34; class=&#34;mx-auto my-0 rounded-md&#34; /&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>KIT Opencast Podcast Feed</title>
      <link>https://wachter-space.de/2020/04/10/opencast/</link>
      <pubDate>Fri, 10 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2020/04/10/opencast/</guid>
      <description>&lt;p&gt;I created a flask server to create podcast feeds for &lt;a href=&#34;https://opencast.informatik.kit.edu/engage/ui/index.html?s=1&amp;amp;p=1&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;KIT Opencast&lt;/a&gt; on demand.&lt;/p&gt;&#xA;&lt;p&gt;Even though the opencast software has a feature for RSS-Feeds the KIT has not activated this feature. Therefore you can run the flask server to provide a podcast feed for you.&lt;/p&gt;&#xA;&lt;p&gt;Feel free to host this. I don&amp;rsquo;t want to commit to hosting it permanently. I provide this software for free use under MIT license. Note that this license of course does not apply to the obtained content.&lt;/p&gt;</description>
    </item>
    <item>
      <title>useful command line tools for uni</title>
      <link>https://wachter-space.de/2020/03/26/uniscripts/</link>
      <pubDate>Thu, 26 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2020/03/26/uniscripts/</guid>
      <description>&lt;p&gt;This blog post is a collection of useful (linux) tools for PDFs, like slides or problem sheets at university. For every use case I give one example that should make the usage clear. Make sure to have the tools installed.&lt;/p&gt;&#xA;&lt;p&gt;Concatenate two or more PDFs:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combine.pdf -dBATCH 1.pdf 2.pdf 3.pdf n.pdf&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Concatenate all PDFs in one folder.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combine.pdf -dBATCH *.pdf &amp;gt; /dev/null&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;JPEGs to pdf.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;img2pdf *.jpg -o submission.pdf&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Add white margin to a pdf. Negative values mean to add and positive values remove margin.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wahrscheinlichkeitstheorie und Statistik am KIT</title>
      <link>https://wachter-space.de/2020/03/16/wahrscheinlichkeitstheorie/</link>
      <pubDate>Mon, 16 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2020/03/16/wahrscheinlichkeitstheorie/</guid>
      <description>&lt;p&gt;Wahrscheinlichkeitstheorie und Statistik wird typischerweise im 3. Semester des Informatikstudiums am KIT gehört.&lt;/p&gt;&#xA;&lt;p&gt;Zur Klausur bei uns waren quasi alle Hilfsmittel zugelassen, ausgenommen vernetzbare Taschenrechner und Altklausur-/Übungsblattlösungen.&#xA;Es ist daher sinnvoll sich eingehend mit Taschenrechner und Skript zu beschäftigen.&#xA;Ein Taschenrechner mit vielen Funktionen ist durchaus von Vorteil.&lt;/p&gt;&#xA;&lt;p&gt;Wie für jede Vorlesung habe ich auch hier wieder Anki Karten erstellt.&#xA;Da die Folien der enthaltenen Folienscreenshots unter CC-BY-Lizenz stehen, kann ich diese &lt;a href=&#34;https://wachter-space.de/Grundlagen_der_Wahrscheinlichkeitstheorie_und_Statistik.apkg&#34;&gt;hier&lt;/a&gt; teilen.&#xA;Die Folien stammen aus der Vorlesung von Dr. Sebastian Lerch und wurden von Prof. Dr. Norbert Henze erstellt.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My favorite Anki addons</title>
      <link>https://wachter-space.de/2020/02/14/anki_plugins/</link>
      <pubDate>Fri, 14 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2020/02/14/anki_plugins/</guid>
      <description>&lt;p&gt;A list of anki plugins I like. This list is in no particular order. I use anki primarily for my studies of computer science. For more detail, check the official pages of the plugins @ AnkiWeb.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;DrawingPad: Simple drawing tool made by a good friend of mine. Useful for highlighting stuff in pictures, e.g., screenshots of lecture slides. Note that you have to select an image before editing it. (Code: 370778248)&lt;/li&gt;&#xA;&lt;li&gt;Syntax Highlighting for Code: Pretty code snippets in anki. Supports many languages and looks good on mobile, since formatting is done in HTML. (Code: 1972239816)&lt;/li&gt;&#xA;&lt;li&gt;ReMemorize Rescheduler: Reschedule cards to a specific date or x days from now. Very useful before exams. I use this plugin in combination with a countdown of days to an exam on my desktop. (Code: 323586997)&lt;/li&gt;&#xA;&lt;li&gt;Mini Format Pack: Simple way to add simple formatting, like bullet points. You may want to change the shortcuts. (Code: 295889520)&lt;/li&gt;&#xA;&lt;li&gt;Review Heatmap: A github style activity grid. Purely for motivational purposes. (Code: 1771074083)&lt;/li&gt;&#xA;&lt;li&gt;Spelling Police: spell check for anki. It&amp;rsquo;s great especially when doing a lot of manual card creation in shared decks. Setup is not straightforward so make sure to read their instructions. (Code: 1410276506)&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Use Firefox on Ubuntu with touchscreen</title>
      <link>https://wachter-space.de/2020/01/27/firefox_touch/</link>
      <pubDate>Mon, 27 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2020/01/27/firefox_touch/</guid>
      <description>&lt;p&gt;By default Firefox had pretty bad touch support for me. E.g. no scrolling or zooming. But this was easy to change.&#xA;Go to &lt;code&gt;about:config&lt;/code&gt; in Firefox and set &lt;code&gt;dom.w3c_touch_events.enabled=1&lt;/code&gt;.&#xA;Then test this by running the following:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;env MOZ_USE_XINPUT2=1 firefox&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Change this as the default when starting Firefox.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo sed -i &amp;#34;s|Exec=|Exec=env MOZ_USE_XINPUT2=1 |g&amp;#34; /usr/share/applications/firefox.desktop&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>e-mails for new assignments in Ilias</title>
      <link>https://wachter-space.de/2019/11/01/ilias_notification/</link>
      <pubDate>Fri, 01 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2019/11/01/ilias_notification/</guid>
      <description>&lt;p&gt;The online learning platform Ilias is used at a number of universities including the KIT.&lt;/p&gt;&#xA;&lt;p&gt;Oftentimes assignments for lectures are distributed to the students by uploading them into a specific folder in the Ilias course. At least I think it is quite annoying to regularly check for new assignments: Logging in, navigating to the course and check if something has changed.&lt;/p&gt;&#xA;&lt;p&gt;I solved this problem by discovering the rss feed of Ilias. While this feed is way too cluttered to use for itself, since it contains &lt;em&gt;every&lt;/em&gt; event/change in all courses, with the right filtering it can be quite useful.&#xA;What I did is probably the simplest solution, but there are certainly other ways.&#xA;I just entered the feed url and the keyword I want to filter for, it has the form &lt;code&gt;[COURSE NAME &amp;gt; ASSIGNMENT_FOLDER]&lt;/code&gt; in this &lt;a href=&#34;https://ifttt.com/applets/326276p-if-rss-filter-match-then-email&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;ifttt applet&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lösungswege für HM-Klausuren</title>
      <link>https://wachter-space.de/2019/08/09/hm/</link>
      <pubDate>Fri, 09 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2019/08/09/hm/</guid>
      <description>&lt;script type=&#34;text/javascript&#34; src=&#34;https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default&#34;&gt;&lt;/script&gt;&#xA;&lt;p&gt;Lösungen für Höhere Mathematik Klausuren am KIT, für die keine offizielle Lösung existiert.&lt;/p&gt;&#xA;&lt;p&gt;Gerne können weitere Lösungen als LaTeX Snippets gesendet werden.&lt;/p&gt;&#xA;&lt;h1 id=&#34;frühjahr-2012&#34; class=&#34;relative group&#34;&gt;Frühjahr 2012 &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#fr%c3%bchjahr-2012&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h3 id=&#34;hm1&#34; class=&#34;relative group&#34;&gt;HM1 &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#hm1&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 id=&#34;aufgabe-2&#34; class=&#34;relative group&#34;&gt;Aufgabe 2 &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#aufgabe-2&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;a) (i) Sandwichkriterium $$|\lim_{x\to \infty}(\sqrt{3x-2}-\sqrt{3x+1})|\leq \lim_{x\to \infty}(\sqrt{3x}-\sqrt{3x}) = 0 \Rightarrow \lim_{x\to \infty}(\sqrt{3x-2}-\sqrt{3x+1}) = 0$$&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lineare Algebra 2 am KIT</title>
      <link>https://wachter-space.de/2019/08/01/la2/</link>
      <pubDate>Thu, 01 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2019/08/01/la2/</guid>
      <description>&lt;p&gt;Übersicht der Themen aus der letzten Übung:&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&lt;figure&gt;&lt;img src=&#34;https://wachter-space.de/assets/la2.png&#34; alt=&#34;overview&#34; class=&#34;mx-auto my-0 rounded-md&#34; /&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Außerdem kann ich &lt;a href=&#34;https://www.youtube.com/watch?v=ggWYkes-n6EA&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;dieses Video&lt;/a&gt; und&#xA;&lt;a href=&#34;https://www.youtube.com/watch?v=rwLOfdfc4dw&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;seinen zweiten Teil&lt;/a&gt; vom MIT empfehlen. Es wird ein guter Überblick gegeben&#xA;und die zahlreichen in LA I und II behandelten Themen in ihren Zusammenhang gesetzt.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Die ATIS am KIT, drucken vom Laptop</title>
      <link>https://wachter-space.de/2019/07/16/atis/</link>
      <pubDate>Tue, 16 Jul 2019 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2019/07/16/atis/</guid>
      <description>&lt;p&gt;Die &lt;a href=&#34;https://www.atis.informatik.kit.edu/index.php&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Abteilung Technische Infrastruktur (ATIS)&lt;/a&gt; gehört zur Fakultät für Informatik am KIT und ist unter Informatikstudenten hauptsächlich für das kostenlose Drucken beliebt. Anders als im SCC (da muss man lange warten und zahlen) hat man in der ATIS 200 Freidrucke pro Semester auf den direkt zugänglichen Druckern. Außerdem gibt es dort Rechner mit Linux und Windows mit denen man bei Bedarf arbeiten kann.&lt;/p&gt;&#xA;&lt;p&gt;Sobald man sich einen ATIS Account beantragt hat, bekommt man einen Zugang mit denen man sich an den Rechnern des ATIS-Rechnerpools einloggen kann &amp;ndash; von dort aus kann man dann auch drucken. Allerdings gibt es auch eine leider nicht gut dokumentierte Möglichkeit auch vom eigenen Handy oder Laptop aus zu drucken. Hier möchte ich diese Möglichkeit inklusive einigen Optimierungen beschreiben.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How I stopped my Ubuntu from waking up from suspend</title>
      <link>https://wachter-space.de/2019/06/21/wakeup/</link>
      <pubDate>Fri, 21 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2019/06/21/wakeup/</guid>
      <description>&lt;p&gt;My Ubuntu 19.04 Laptop had the annoying property to wake up about 1 second after being suspended (e.g the lid was closed). It took me some wasted battery charges to fix this problem. So for everyone who has similar problems (and for future me) here is how I fixed it.&lt;/p&gt;&#xA;&lt;p&gt;Open &lt;code&gt;/proc/acpi/wakeup&lt;/code&gt; in your favorite editor.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo vim /proc/acpi/wakeup&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Which looked like this:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Device&#x9;S-state&#x9;  Status   Sysfs node&#xA;LANC&#x9;  S5&#x9;*enabled   pci:0000:00:19.0&#xA;EHC1&#x9;  S3&#x9;*enabled  pci:0000:00:1d.0&#xA;EHC2&#x9;  S3&#x9;*enabled  pci:0000:00:1a.0&#xA;XHC&#x9;  S3&#x9;*enabled  pci:0000:00:14.0&#xA;PCIB&#x9;  S5&#x9;*disabled&#xA;RP02&#x9;  S4&#x9;*disabled&#xA;ECF0&#x9;  S4&#x9;*disabled&#xA;RP03&#x9;  S4&#x9;*enabled   pci:0000:00:1c.2&#xA;RP06&#x9;  S5&#x9;*disabled&#xA;NIC&#x9;  S5&#x9;*disabled&#xA;RP07&#x9;  S4&#x9;*disabled&#xA;RP08&#x9;  S4&#x9;*disabled&#xA;HST1&#x9;  S5&#x9;*disabled&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Changing EHC1, EHC2 and XHC to &lt;code&gt;*disabled&lt;/code&gt; fixed the problem, but only until the next reboot, since &lt;code&gt;/proc/acpi/wakeup&lt;/code&gt; is not persistent across reboots.&#xA;The solution is putting a little script in &lt;code&gt;/etc/rc.local&lt;/code&gt; (taken from &lt;a href=&#34;https://askubuntu.com/questions/598236/ubuntu-wakes-up-after-few-seconds-of-sleep&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;here&lt;/a&gt;)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Softwaretechnik 1 am KIT</title>
      <link>https://wachter-space.de/2019/06/19/swt1/</link>
      <pubDate>Wed, 19 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2019/06/19/swt1/</guid>
      <description>&lt;h2 id=&#34;hilfreichen-materialien-als-ich-die-vl-gehört-habe&#34; class=&#34;relative group&#34;&gt;hilfreichen Materialien (als ich die VL gehört habe) &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#hilfreichen-materialien-als-ich-die-vl-geh%c3%b6rt-habe&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Ausführliche Zusammenfassung und Beispiele zu den SWT1 Themen: &lt;a href=&#34;https://github.com/adrianleh/SWT1_Revision&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;SWT1 Revision by example&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://lukasbach.com/edu/recaps&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Hier ist eine gute Zusammenfassung von Lukas Bach&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://wachter-space.de/swt1.apkg&#34;&gt;Meine Anki Karten&lt;/a&gt;, &lt;a href=&#34;https://apps.ankiweb.net/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Was ist Anki?!&lt;/a&gt; (Passwortgeschützt, da Folien nicht unter freier Lizenz)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;mein-tutorium-im-ss20&#34; class=&#34;relative group&#34;&gt;mein Tutorium im SS20 &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#mein-tutorium-im-ss20&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Meine LaTeX-Folien: &lt;a href=&#34;https://gitlab.com/95p/swt-tutorium&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Gitlab&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Aus diesem Git Repo nehme ich einige meiner Beispiele zum Thema Design Pattern: &lt;a href=&#34;https://github.com/iluwatar/java-design-patterns&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Design patterns implemented in Java&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Später habe ich auch noch &lt;a href=&#34;https://www.sourcecodeexamples.net/p/core.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;sourcecodeexamples.net&lt;/a&gt; gefunden&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Gute Übung zum Thema Git: &lt;a href=&#34;https://learngitbranching.js.org/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Learn Git Branching&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Gute Übung zum Thema Parallelität: &lt;a href=&#34;https://deadlockempire.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Deadlock Empire&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;entwurfsmuster&#34; class=&#34;relative group&#34;&gt;Entwurfsmuster &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#entwurfsmuster&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&lt;figure&gt;&lt;img src=&#34;https://wachter-space.de/assets/entwurfsmuster.png&#34; alt=&#34;Entwurfsmuster&#34; class=&#34;mx-auto my-0 rounded-md&#34; /&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Grundbegriffe der Informatik am KIT</title>
      <link>https://wachter-space.de/2019/06/18/gbi/</link>
      <pubDate>Tue, 18 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2019/06/18/gbi/</guid>
      <description>&lt;p&gt;GBI ist ein netter Rundumschlag der theoretischen Informatik (mit ein klein wenig Rechnerorganisation): Sprachen, Graphen, Automaten, Bits, Bytes, Turingmaschinen, Huffman-Codierungen, …&lt;/p&gt;&#xA;&lt;p&gt;In GBI hat es mir immer Spaß gemacht die Aufgaben nicht nur auf dem Papier zu lösen, sondern auch kleine Skripte zu schreiben. Viele der Aufgaben lassen sich wunderbar in wenigen Zeilen Haskell Code ausdrücken. Kleines Beispiel:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;iletter &amp;#34;&amp;#34; = &amp;#34;&amp;#34;&#xA;iletter w = iterate tail (reverse w) !! ((length w) - 1)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Im Rückblick kann man sicher viele schöne Tools benutzen, um sich Dinge zu veranschaulichen. Zum Beispiel DebuggX für reguläre Ausdrücke und Automaten, JFLAP für Automaten und einen der vielen Simulatoren für die MIMA (der kleine µP in der VL).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Programmieren am KIT</title>
      <link>https://wachter-space.de/2019/06/18/kit_prog/</link>
      <pubDate>Tue, 18 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2019/06/18/kit_prog/</guid>
      <description>&lt;p&gt;Im ersten Semester des Informatikstudiums am KIT besucht man üblicherweise die Vorlesung Programmieren. Diese soll grundlegende Konzepte der Programmierung am Beispiel von Java einführen.&lt;/p&gt;&#xA;&lt;p&gt;Hier ein paar Tipps von mir:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Benutzt git&lt;/li&gt;&#xA;&lt;li&gt;Schreibt viele Tests. Zum Beispiel durch Erweitern der Terminalklasse, sodass diese Textdateien einliest in denen Eingaben und erwartete Ausgaben stehen. Außerdem gibt es: Eine &lt;a href=&#34;https://codetester.ialistannen.de/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Onlinetestumgebung&lt;/a&gt; in der mehrere User Testfälle beitragen können.&lt;/li&gt;&#xA;&lt;li&gt;An vielen Stellen ist sinnvoll reguläre Ausdrücke zu verwenden. Diese werden schnell unübersichtlich. Mit dem Onlinetool &lt;a href=&#34;https://www.debuggex.com/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;DebuggEx&lt;/a&gt; kann man sie testen und visualisieren.&lt;/li&gt;&#xA;&lt;li&gt;Benutzt möglichst abstrakte Datentypen, also z.B. Collection und nicht LinkedList wo immer möglich.&lt;/li&gt;&#xA;&lt;li&gt;Trennt UI und Logik (Stichwort Entwurfsmuster Fassade), am besten in zwei Paketen.&lt;/li&gt;&#xA;&lt;li&gt;Benutzt keine Magic-Numbers und lagert Ausgabetext in extra Klassen aus. Man kann sich einen Checkstyle bauen, sodass so etwas erkannt wird.&lt;/li&gt;&#xA;&lt;li&gt;Verzichtet auf Plagiate, es findet auch eine automatisierte Prüfung statt.&lt;/li&gt;&#xA;&lt;li&gt;Es gibt keine extra Punkte für besonders „anspruchsvolle“ Lösungen, sondern nur Abzug für Fehler. Es ist deshalb zu empfehlen genau das zu machen, was in den Aufgaben steht und was an Hinweisen zu Stil und Aufbau in der Vorlesung, den Tutorien, dem Wiki, etc. gegeben wurde.&lt;/li&gt;&#xA;&lt;li&gt;Versucht möglichst viele Fehlerarten automatisch erkennen zu lassen, zum Beispiel durch Erweitern des Checkstyles oder durch den Code Inspector von IntelliJ.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Um einen Eindruck vom Umfang der Abschlussaufgaben zu bekommen hier meine Lösungen aus dem Wintersemester 18/19.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lineare Algebra 1 am KIT</title>
      <link>https://wachter-space.de/2019/02/25/la/</link>
      <pubDate>Mon, 25 Feb 2019 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2019/02/25/la/</guid>
      <description>&lt;p&gt;Meine Anki Karten für wichtige Begriffe der Linearen Algebra 1:&lt;/p&gt;&#xA;&lt;p&gt;Falls jemandem Fehler auffallen oder ein zentraler Begriff vergessen wurde, schreibt mir eine Nachricht (z.B per Mail siehe About Page).&lt;/p&gt;&#xA;&lt;p&gt;Die Folienscreenshots stammen aus dem Foliensatz von Prof. Roman Sauer und stehen unter CC-BY-Lizenz.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://wachter-space.de/la1.apkg&#34;&gt;Anki Karten&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Außerdem weiter, hoffentlich hilfreiche Ressourcen:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Die Lineare Algebra behandelt mathematische Objekte für die es in den allermeisten Fällen keine gute Veranschaulichung gibt, deshalb ist es wichtig den Stoff formal mathematisch anwenden zu können. In einigen Fällen gibt es jedoch schöne Veranschaulichungen. Diese werden allerdings selten in der Vorlesung vorgestellt, können aber durchaus, z.B für Beweisideen, hilfreich sein. Deshalb möchte ich hier auf eine sehr gute Videoserie hinweisen, die bei der Vorstellung helfen kann: &lt;a href=&#34;https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;3Blue1Brown – Essence of linear algebra&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Ich kann nicht aus Erfahrung sprechen, habe aber von Kommiliton:innen gehört, dass der Prüfungsvorbereitungskurs vom MINT-Kolleg hilfreich sei. Von externen Kursen hat man noch selten Gutes gehört.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Hi and welcome</title>
      <link>https://wachter-space.de/2019/01/24/test/</link>
      <pubDate>Thu, 24 Jan 2019 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/2019/01/24/test/</guid>
      <description>&lt;p&gt;Hi, this is my first blog post here. This blog is where I write about stuff I find interesting.&lt;/p&gt;&#xA;&lt;p&gt;I can put code snippets in here. E.g. java code.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; bla &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; 42;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;System.&lt;span style=&#34;color:#a6e22e&#34;&gt;out&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;println&lt;/span&gt;(bla);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;p&gt;Quote clever people.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;“We can only see a short distance ahead, but we can see plenty there that needs to be done.”&lt;/p&gt;&#xA;&lt;p&gt;&lt;cite&gt;Alan Turing&lt;/cite&gt;&#xA;{: title=&amp;ldquo;clever quote.&amp;rdquo;}&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;Link to interesting sites like &lt;a href=&#34;https://en.wikipedia.org/wiki/Special:Random&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;a random wikipedia article&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://wachter-space.de/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wachter-space.de/about/</guid>
      <description>&lt;p&gt;This site is somewhere between a personal notebook and a way of not repeating myself.&lt;/p&gt;&#xA;&lt;p&gt;You can reach me at: wachter[punkt]blog[ätt]habmalnefrage[punkt]de&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
