<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>1. Semester (M. Sc.) Archive - Maximilian Krieg</title>
	<atom:link href="https://maximiliankrieg.de/category/studium/master-of-science/1-semester-m-sc/feed/" rel="self" type="application/rss+xml" />
	<link>https://maximiliankrieg.de/category/studium/master-of-science/1-semester-m-sc/</link>
	<description>Wissen, Technik &#38; Erfahrungen</description>
	<lastBuildDate>Mon, 08 Jun 2026 17:51:23 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://maximiliankrieg.de/wp-content/uploads/2026/05/cropped-20260524_logo_2_512-2-32x32.png</url>
	<title>1. Semester (M. Sc.) Archive - Maximilian Krieg</title>
	<link>https://maximiliankrieg.de/category/studium/master-of-science/1-semester-m-sc/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Computer Forensik (Abschlussbericht)</title>
		<link>https://maximiliankrieg.de/2015/08/computer-forensik-abschlussbericht/</link>
					<comments>https://maximiliankrieg.de/2015/08/computer-forensik-abschlussbericht/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Fri, 14 Aug 2015 06:10:00 +0000</pubDate>
				<category><![CDATA[Computer Forensik]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1555</guid>

					<description><![CDATA[<p>Nachdem ich die letzten vier Abschlussberichte erledigt habe, folgt nun das Fazit zum letzten Modul meines ersten Master-Semesters. Im Gegensatz zu&#160;Diskrete Strukturen&#160;und&#160;Biometric Systems&#160;sind hier meine&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/08/computer-forensik-abschlussbericht/">Computer Forensik (Abschlussbericht)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Nachdem ich die letzten vier Abschlussberichte erledigt habe, folgt nun das Fazit zum letzten Modul meines ersten Master-Semesters. Im Gegensatz zu&nbsp;<em>Diskrete Strukturen</em>&nbsp;und&nbsp;<em>Biometric Systems</em>&nbsp;sind hier meine Notizen bereits vollständig hochgeladen und abgesehen von den Praktikumsaufgaben öffentlich verfügbar.</p>



<h3 class="wp-block-heading">Prüfungsvorleistung</h3>



<p class="wp-block-paragraph">Die Prüfungsvorleistung in&nbsp;<em>Computer Forensik</em>&nbsp;besteht aus fünf aufeinander aufbauenden Praktikumsterminen. Man beginnt mit einem Festplatten-Image, das aus mehreren Partitionen mit unterschiedlichen Dateisystemen besteht. In diesem Rahmen wird die Partitionierung analysiert, gelöschte Dateien rekonstruiert, versteckte Dateien gesucht und die Benutzung seitens Anwender untersucht. Zum Abschluss werden alle Erkenntnisse in einem finalen Abschlussbericht zusammengetragen. Der Aufwand und Schwierigkeitsgrad der Praktika ist im regulären Rahmen. Die Betreuer des Praktikums sind dahingehend sehr gut vorbereitet und können hilfreiche Ratschläge geben.</p>



<h3 class="wp-block-heading">Prüfung</h3>



<p class="wp-block-paragraph">Die Klausur schneidet alle Inhalte der Vorlesung an. In das Themengebiet der Hash-Funktionen müssen sich die Studenten in Eigeninitiative einarbeiten, was notwendig ist, da mehrere Aufgaben zu Hashes in der Klausur zu finden sind. Das Umrechnen von binären, dezimalen und hexadezimalen Werten sollte auch verinnerlicht sein, da Hexdumps ausgewertet werden müssen. Benötigt man hier zuviel Zeit, wird es mit der restlichen Klausur eng. Die Klausur ist in meinen Augen sehr umfangreich, mit einem moderaten Schwierigkeitsgrad. Die Aufgaben waren in erster Linie anwendungsbezogen und konnten daher auch keine komplexen Fragestellungen beinhalten, immerhin wird die Zeit für Rechnungen, Konvertierungen und Interpretationen benötigt.</p>



<h3 class="wp-block-heading">Gesamtfazit</h3>



<p class="wp-block-paragraph"><em>Computer Forensik</em>&nbsp;hat mir dieses Semester den meisten Spaß bereitet. Ich blicke mit Freude auf ein kniffliges, spannendes Praktikum, informative Vorlesungen sowie eine faire Klausur zurück.&nbsp;<em>Computer Forensik</em>&nbsp;bei Professor Baier ist in meinen Augen sehr empfehlenswert.</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/08/computer-forensik-abschlussbericht/">Computer Forensik (Abschlussbericht)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2015/08/computer-forensik-abschlussbericht/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Biometric Systems (Abschlussbericht)</title>
		<link>https://maximiliankrieg.de/2015/08/biometric-systems-abschlussbericht/</link>
					<comments>https://maximiliankrieg.de/2015/08/biometric-systems-abschlussbericht/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Fri, 14 Aug 2015 01:36:00 +0000</pubDate>
				<category><![CDATA[Biometric Systems]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1331</guid>

					<description><![CDATA[<p>Die Klausurphase ist bereits seit einigen Tagen vorbei und ich schließe nun die letzten Berichte für das erste Semester ab. Ich beginne mit&#160;Biometric Systems&#160;und gebe&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/08/biometric-systems-abschlussbericht/">Biometric Systems (Abschlussbericht)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Die Klausurphase ist bereits seit einigen Tagen vorbei und ich schließe nun die letzten Berichte für das erste Semester ab. Ich beginne mit&nbsp;<em>Biometric Systems</em>&nbsp;und gebe einen kleinen Einblick in die Anforderungen an das Fach, den Ablauf und ein persönliches Fazit zu dem Modul.</p>



<h3 class="wp-block-heading">Prüfungsvorleistungen</h3>



<p class="wp-block-paragraph">Im Gegensatz zu anderen Fächern muss für&nbsp;<em>Biometric Systems</em>&nbsp;eine Hausarbeit verfasst werden, deren Aufgabenstellung bereits seitens Dozent vordefiniert ist. Die Studierenden können dann auf einen Pool zugreifen und sich für ein Thema ihrer Wahl entscheiden. Es gibt jedoch Einschränkungen. Jedes Thema darf nur einmal bearbeitet werden und es sind maximal zwei Gruppenmitglieder zugelassen. Weiterhin müssen die Richtlinien der&nbsp;<em>GI-Edition Lecture Notes in Informatics (LNI)</em>&nbsp;eingehalten werden. Der Umfang und die Komplexität der einzelnen Themen sind&nbsp;unterschiedlich, was bei der Bewertung aber auch berücksichtigt wird. Abschließend wird die Hausarbeit noch vor dem Plenum auf Englisch präsentiert.</p>



<h3 class="wp-block-heading">Prüfung</h3>



<p class="wp-block-paragraph">An der Prüfung selbst haben noch acht von ehemals vierundzwanzig Studenten teilgenommen, was ich als&nbsp;bedauerlich erachte. Die Klausur ist zeitlich gut dimensioniert und hat ein gutes Maß zwischen Wissensabfrage, anwendungsorientierten Aufgaben und Transferleistungen. Wer an der Vorlesung teilnimmt und sich die Folien gründlich durchliest hat gute Chancen zu bestehen. Die Aufgaben dürfen auch auf Deutsch beantwortet werden, was eine immense Erleichterung ist. Thematisch wird das gesamte Spektrum der Vorlesung abgedeckt, weshalb ein Lernen auf Lücke riskant ist. Durch die breite Fächerung gehen&nbsp;dafür die Aufgaben nicht allzu sehr in die Tiefe.</p>



<h3 class="wp-block-heading">Gesamtfazit</h3>



<p class="wp-block-paragraph">Professor Busch unterrichtet dieses Fach auf Englisch und tut dies ausgesprochen gut. Zu Stundenbeginn wird ein anonymes Online-Quiz veranstaltet, dessen Fragen auf den Inhalten der vorherigen Vorlesung beruhen. Eine spannendere Art der Wiederholung kann ich mir nicht vorstellen, zumal es stets eine Packung Goldbären als Belohnung für den Sieger gibt. Obwohl es einige Schnittpunkte zu dem Fach&nbsp;<em>Graphische Datenverarbeitung (GDV)</em>&nbsp;gibt, muss man dieses nicht mit einer Spitzenleistung absolviert haben, um Anschluss zu halten. Die größte Herausforderung in diesem Fach ist meines Erachtens nach die Prüfungsvorleistung, da sich ihr Abgabetermin mit vielen anderen Fächern überschneidet, aber es ist machbar.&nbsp;<em>Biometric Systems</em>&nbsp;ist somit ein solides Fach mit einem sympathischen und begeisterten Professor. Es hat uns sogar so viel Spaß gemacht, dass wir unsere Hausarbeit in den&nbsp;<em>LNI</em>&nbsp;(<a href="https://www.gi.de/service/publikationen/lni.html">Link</a>) veröffentlichen lassen.</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/08/biometric-systems-abschlussbericht/">Biometric Systems (Abschlussbericht)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2015/08/biometric-systems-abschlussbericht/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Computer Forensik (Praktikum 4)</title>
		<link>https://maximiliankrieg.de/2015/07/computer-forensik-praktikum-4/</link>
					<comments>https://maximiliankrieg.de/2015/07/computer-forensik-praktikum-4/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Sat, 11 Jul 2015 17:50:00 +0000</pubDate>
				<category><![CDATA[Computer Forensik]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=2859</guid>

					<description><![CDATA[<p>Im vierten Praktikum üben wir uns an der Analyse von NTFS-Dateisystemen und der Untersuchung der Windows-Registry. Skript-Anfang Praktikum 4 &#8211; Seite 1 Skript-Ende Praktikum 4&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/07/computer-forensik-praktikum-4/">Computer Forensik (Praktikum 4)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Im vierten Praktikum üben wir uns an der Analyse von NTFS-Dateisystemen und der Untersuchung der Windows-Registry.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Skript-Anfang</th><td>Praktikum 4 &#8211; Seite 1</td></tr><tr><th>Skript-Ende</th><td>Praktikum 4 &#8211; Seite 1</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">NTFS-Analyse</h3>



<p class="wp-block-paragraph">Sie untersuchen hierfür das in Praktikum 2 erstellte Image partition_1.dd. Bestätigen Sie zunächst die Unverändertheit der Partition.</p>



<p class="wp-block-paragraph">Wir bestimmen die Unverändertheit der Partition, indem wir die Hashsumme berechnen und mit unseren Notizen abgleichen.</p>



<pre class="wp-block-code"><code>$ sha256sum partition_1.dd 
cc224419f690065a653efa9cb58dbf546b72e7db752fe71229bfb4d11dd8e685  partition_1.dd</code></pre>



<p class="wp-block-paragraph">Die Hashsummen stimmen überein. An partition_1.dd ist somit keine Veränderung vorgenommen worden.</p>



<p class="wp-block-paragraph">Schreiben Sie anschließend den ersten Block der Partition nach partition_1_boot.dd und vermerken Sie dessen Hashwert.</p>



<pre class="wp-block-code"><code>$ dd if=partition_1.dd of=partition_1_boot.dd bs=512 count=1
1+0 Datensätze ein
1+0 Datensätze aus
512 Bytes (512 B) kopiert, 4,2755e-05 s, 12,0 MB/s

$ sha256sum partition_1_boot.dd 
3465621fa66dfbebd42a10e53473eeee45ed10916de4980dc4799c2b08c043f6  partition_1_boot.dd</code></pre>



<p class="wp-block-paragraph">Da wir in den folgenden Aufgaben den Hexdump benötigen, geben wir ihn an dieser Stelle gleich vollständig aus.</p>



<pre class="wp-block-code"><code>$ xxd partition_1_boot.dd 
0000000: eb52 904e 5446 5320 2020 2000 0208 0000  .R.NTFS    .....
0000010: 0000 0000 00f8 0000 3f00 ff00 0008 0000  ........?.......
0000020: 0000 0000 8000 8000 ff17 9c00 0000 0000  ................
0000030: 0000 0400 0000 0000 0200 0000 0000 0000  ................
0000040: f600 0000 0100 0000 4e70 500e 9b50 0e5c  ........NpP..P.\
0000050: 0000 0000 fa33 c08e d0bc 007c fbb8 c007  .....3.....|....
0000060: 8ed8 e816 00b8 000d 8ec0 33db c606 0e00  ..........3.....
0000070: 10e8 5300 6800 0d68 6a02 cb8a 1624 00b4  ..S.h..hj....$..
0000080: 08cd 1373 05b9 ffff 8af1 660f b6c6 4066  ...s......f...@f
0000090: 0fb6 d180 e23f f7e2 86cd c0ed 0641 660f  .....?.......Af.
00000a0: b7c9 66f7 e166 a320 00c3 b441 bbaa 558a  ..f..f. ...A..U.
00000b0: 1624 00cd 1372 0f81 fb55 aa75 09f6 c101  .$...r...U.u....
00000c0: 7404 fe06 1400 c366 601e 0666 a110 0066  t......f`..f...f
00000d0: 0306 1c00 663b 0620 000f 823a 001e 666a  ....f;. ...:..fj
00000e0: 0066 5006 5366 6810 0001 0080 3e14 0000  .fP.Sfh.....&gt;...
00000f0: 0f85 0c00 e8b3 ff80 3e14 0000 0f84 6100  ........&gt;.....a.
0000100: b442 8a16 2400 161f 8bf4 cd13 6658 5b07  .B..$.......fX&#91;.
0000110: 6658 6658 1feb 2d66 33d2 660f b70e 1800  fXfX..-f3.f.....
0000120: 66f7 f1fe c28a ca66 8bd0 66c1 ea10 f736  f......f..f....6
0000130: 1a00 86d6 8a16 2400 8ae8 c0e4 060a ccb8  ......$.........
0000140: 0102 cd13 0f82 1900 8cc0 0520 008e c066  ........... ...f
0000150: ff06 1000 ff0e 0e00 0f85 6fff 071f 6661  ..........o...fa
0000160: c3a0 f801 e809 00a0 fb01 e803 00fb ebfe  ................
0000170: b401 8bf0 ac3c 0074 09b4 0ebb 0700 cd10  .....&lt;.t........
0000180: ebf2 c30d 0a41 2064 6973 6b20 7265 6164  .....A disk read
0000190: 2065 7272 6f72 206f 6363 7572 7265 6400   error occurred.
00001a0: 0d0a 4e54 4c44 5220 6973 206d 6973 7369  ..NTLDR is missi
00001b0: 6e67 000d 0a4e 544c 4452 2069 7320 636f  ng...NTLDR is co
00001c0: 6d70 7265 7373 6564 000d 0a50 7265 7373  mpressed...Press
00001d0: 2043 7472 6c2b 416c 742b 4465 6c20 746f   Ctrl+Alt+Del to
00001e0: 2072 6573 7461 7274 0d0a 0000 0000 0000   restart........
00001f0: 0000 0000 0000 0000 83a0 b3c9 0000 55aa  ..............U.</code></pre>



<p class="wp-block-paragraph">Ermitteln Sie Sektor- und Clustergröße.</p>



<ul class="wp-block-list">
<li>Sektorgröße (<em>Offset 11-12</em>): 0002 = 0x0200 = 512 Byte pro Sektor</li>



<li>Clustergröße (<em>Offset: 13</em>): 08 = 0x08 = 8 Sektoren pro Cluster</li>
</ul>



<p class="wp-block-paragraph">Wir verfizieren unsere Berechnung durch&nbsp;<code>fsstat</code>.</p>



<pre class="wp-block-code"><code>$ fsstat partition_1.dd

&#91;...]

METADATA INFORMATION
--------------------------------------------
First Cluster of MFT: 262144
First Cluster of MFT Mirror: 2
Size of MFT Entries: 1024 bytes
Size of Index Records: 4096 bytes
Range: 0 - 16832
Root Directory: 5

&#91;...]</code></pre>



<p class="wp-block-paragraph">Wie ist die Größe des Dateisystems in Byte?</p>



<ul class="wp-block-list">
<li>Dateisystemgröße (<em>Offset 40-47</em>): ff17 9c00 0000 0000 = 0x9c17ff = 10.229.759 HDD-Blöcke</li>



<li>10.229.759 HDD-Blöcke = 5.237.636.608 Byte</li>



<li>5.237.636.608 Byte ≈ 5.114.879 KiB ≈ 4.995 MiB ≈ 4,9 GiB</li>
</ul>



<p class="wp-block-paragraph">Wir verfizieren unsere Berechnung durch&nbsp;<code>fsstat</code>.</p>



<pre class="wp-block-code"><code>$ fsstat partition_1.dd

&#91;...]

CONTENT INFORMATION
--------------------------------------------
Sector Size: 512
Cluster Size: 4096
Total Cluster Range: 0 - 1278718
Total Sector Range: 0 - 10229758

&#91;...]</code></pre>



<p class="wp-block-paragraph">In welchem Cluster liegt der Beginn der MFT?</p>



<ul class="wp-block-list">
<li>Clusterbeginn (<em>Offset 48-55</em>): 0000 0400 0000 0000 = 0x40000 = 262.144</li>
</ul>



<p class="wp-block-paragraph">Wir verifizieren unsere Berechnung durch&nbsp;<code>fsstat</code>.</p>



<pre class="wp-block-code"><code>$ fsstat partition_1.dd

&#91;...]

METADATA INFORMATION
--------------------------------------------
First Cluster of MFT: 262144
First Cluster of MFT Mirror: 2
Size of MFT Entries: 1024 bytes
Size of Index Records: 4096 bytes
Range: 0 - 16832
Root Directory: 5

&#91;...]</code></pre>



<p class="wp-block-paragraph">Wie lässt sich mittels&nbsp;<code>dd</code>&nbsp;ein 10 Byte langes Passwort in den letzten 10 Byte des MFT-Eintrags der $MFT verstecken? Wie lautet dieser Befehl fur $MFTMirr?</p>



<p class="wp-block-paragraph">Zunächst schauen wir uns die letzten Bytes des MFT-Eintrags an, um später die Ergebnisse nachvollziehen zu können.</p>



<pre class="wp-block-code"><code>$ xxd  -skip 1073741824 -l 1024 partition_1.dd 

&#91;...]

400003e0:0000 0000 0000 0000 0000 0000 0000 0000  ................
400003f0:0000 0000 0000 0000 0000 0000 0000 6600  ..............f.</code></pre>



<p class="wp-block-paragraph">Die letzten beiden Bytes des MFT-Eintrags sind bereits belegt. Diese dürfen wir nicht verändern, daher überspringen wir nun 1073742836 Bytes (<em>262144*4096+1012</em>).</p>



<pre class="wp-block-code"><code>$ dd if=passwort.txt of=partition_1.dd seek=1073742836 bs=1 count=10 conv=notrunc
10+0 Datensätze ein
10+0 Datensätze aus
10 Bytes (10 B) kopiert, 6,3537e-05 s, 157 kB/s</code></pre>



<p class="wp-block-paragraph">Wir überprüfen nun unsere Arbeit, indem wir uns den Hexdump am Ende nochmals anschauen.</p>



<pre class="wp-block-code"><code>$ xxd  -skip 1073741824 -l 1024 partition_1.dd 

&#91;...]

400003e0:0000 0000 0000 0000 0000 0000 0000 0000  ................
400003f0:0000 0000 3150 4153 5357 4f52 4431 6600  ....1PASSWORD1f.</code></pre>



<p class="wp-block-paragraph">Das Kopieren war also erfolgreich. Für $MFTMirr müssten wir den Offset lediglich weitere 1024 Byte weiterschieben, um die Änderung dort ebenfalls vorzunehmen.</p>



<p class="wp-block-paragraph">Wie lassen sich die ersten 100 MFT-Einträge herausschreiben?</p>



<p class="wp-block-paragraph">Hierfür müssen wir zunächst bestimmen, wie groß ein MFT-Eintrag ist. Die Information dazu steht am Offset 64 im MFT.</p>



<pre class="wp-block-code"><code>$ xxd -skip 64 -l 1 partition_1.dd 
0000040: f6</code></pre>



<p class="wp-block-paragraph">Als Dezimalzahl würde dies 246 bedeuten. Das macht auf den ersten Blick keinen großen Sinn. Nach einer kurzen Recherche hat sich ergeben, dass diese Zahl vorzeichenbehafted (<em>signed</em>) ist und daher erstmal umgewandelt werden muss. Hierfür invertieren wir alle Bits und addieren 1 darauf. Danach verwenden wir das Resultat als Exponent für 2<sup>n</sup>, um die Eintragsgröße zu ermitteln.</p>



<ol class="wp-block-list">
<li>11110110 → 00001001</li>



<li>00001001 + 1 = 00001010</li>



<li>00001010 = 10</li>



<li>2<sup>10</sup> = 1024 Byte</li>
</ol>



<p class="wp-block-paragraph">Wir wissen nun, dass ein Record 1024 Byte groß sein muss. Für&nbsp;<code>dd</code>&nbsp;bedeutet dies, dass wir 102400 Byte herausschreiben müssen für 100 Records.</p>



<pre class="wp-block-code"><code># icat partition_1.dd 0 | dd of=einhundert.dd bs=1024 count=100
100+0 Datensätze ein
100+0 Datensätze aus
102400 Bytes (102 kB) kopiert, 0,00724432 s, 14,1 MB/s</code></pre>



<p class="wp-block-paragraph">Was ist ein ADS?</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">NTFS ermöglicht sogenannte Alternate Data Streams (ADS). Mit dieser Funktion können Daten vom Benutzer unsichtbar fest an eine Datei gebunden gespeichert werden. An jede Datei können beliebig viele andere Dateien angehängt werden, die nicht sichtbar sind, aber – solange der Vorgang innerhalb von NTFS-Laufwerken stattfindet – zusammen mit der Datei verschoben und kopiert werden. Der Zugriff auf die versteckten Dateifragmente findet mit einem Doppelpunkt statt: beispiel.txt:meinedatei.txt kennzeichnet einen zu der Datei beispiel.txt gehörigen Datenstrom namens meinedatei.txt. Neben Dateien können auch Ordner zusätzliche Datenströme enthalten..https://de.wikipedia.org/wiki/Alternativer_Datenstrom</p>
</blockquote>



<p class="wp-block-paragraph">Wie lasst sich unter Zuhilfenahme des Sleuthkit herausfinden, ob eine Datei einen ADS verwendet?</p>



<p class="wp-block-paragraph">Mit&nbsp;<code>fls</code>&nbsp;können wir uns alle Dateien auf dem Dateisystem anzeigen lassen. Ein ADS ist am Doppelpunkt zwischen den Dateinamen zu erkennen. Beispielhaft suchen wir nun nach einer Datei, die auf g endet und einen ADS besitzt.</p>



<pre class="wp-block-code"><code>$ fls -f ntfs -r partition_1.dd | grep g:
+ r/r 7821-128-5:	Edoofy.jpeg:PasswortSteganos</code></pre>



<p class="wp-block-paragraph">Wollen wir uns den Inhalt des ADS ansehen, müssen wir diesen über die Metadata Address ansprechen. Die 7821 steht für die Inode, die 128 für den Attribute Type und die 5 für eine einzigartige ID.</p>



<pre class="wp-block-code"><code>$ icat -f ntfs partition_1.dd 7821-128-5
"W)5S_DXitLN" </code></pre>



<p class="wp-block-paragraph">Welche Informationen über die Datei mit der Inode-Nummer 3727 können Sie aus der MFT gewinnen?</p>



<pre class="wp-block-code"><code>$ icat partition_1.dd 0 | xxd -l 1024 -skip 3816448
03a3c00: 4649 4c45 3000 0300 ada3 a002 0000 0000  FILE0...........
03a3c10: 0300 0200 3800 0100 2002 0000 0004 0000  ....8... .......
03a3c20: 0000 0000 0000 0000 0500 0000 8f0e 0000  ................
03a3c30: 0200 0000 0000 0000 1000 0000 6000 0000  ............`...
03a3c40: 0000 0000 0000 0000 4800 0000 1800 0000  ........H.......
03a3c50: 06f7 5f0e 5a4b cf01 00fd d9ba f507 c901  .._.ZK..........
03a3c60: 06f7 5f0e 5a4b cf01 06f7 5f0e 5a4b cf01  .._.ZK...._.ZK..
03a3c70: 2000 0000 0000 0000 0000 0000 0000 0000   ...............
03a3c80: 0000 0000 9901 0000 0000 0000 0000 0000  ................
03a3c90: 0000 0000 0000 0000 3000 0000 7800 0000  ........0...x...
03a3ca0: 0000 0000 0000 0300 5a00 0000 1800 0100  ........Z.......
03a3cb0: 8e0e 0000 0000 0300 06f7 5f0e 5a4b cf01  .........._.ZK..
03a3cc0: 06f7 5f0e 5a4b cf01 06f7 5f0e 5a4b cf01  .._.ZK...._.ZK..
03a3cd0: 06f7 5f0e 5a4b cf01 0000 0000 0000 0000  .._.ZK..........
03a3ce0: 0000 0000 0000 0000 2000 0000 0000 0000  ........ .......
03a3cf0: 0c02 5700 4900 4e00 4400 4f00 5700 7e00  ..W.I.N.D.O.W.~.
03a3d00: 3100 2e00 4a00 5000 4700 6900 7200 6100  1...J.P.G.i.r.a.
03a3d10: 3000 0000 c000 0000 0000 0000 0000 0200  0...............
03a3d20: a600 0000 1800 0100 8e0e 0000 0000 0300  ................
03a3d30: 06f7 5f0e 5a4b cf01 06f7 5f0e 5a4b cf01  .._.ZK...._.ZK..
03a3d40: 06f7 5f0e 5a4b cf01 06f7 5f0e 5a4b cf01  .._.ZK...._.ZK..
03a3d50: 0000 0000 0000 0000 0000 0000 0000 0000  ................
03a3d60: 2000 0000 0000 0000 3201 5700 6900 6e00   .......2.W.i.n.
03a3d70: 6400 6f00 7700 7300 2000 5800 5000 2000  d.o.w.s. .X.P. .
03a3d80: 5000 6900 7200 6100 7400 6500 6400 2000  P.i.r.a.t.e.d. .
03a3d90: 4500 6400 6900 7400 6900 6f00 6e00 2000  E.d.i.t.i.o.n. .
03a3da0: 2d00 2000 3400 3b00 3300 2000 5300 6300  -. .4.;.3. .S.c.
03a3db0: 7200 6500 6500 6e00 2000 4600 6f00 7200  r.e.e.n. .F.o.r.
03a3dc0: 6d00 6100 7400 2e00 6a00 7000 6700 0000  m.a.t...j.p.g...
03a3dd0: 8000 0000 4800 0000 0100 0000 0000 0400  ....H...........
03a3de0: 0000 0000 0000 0000 3000 0000 0000 0000  ........0.......
03a3df0: 4000 0000 0000 0000 0010 0300 0000 0200  @...............
03a3e00: 8603 0300 0000 0000 8603 0300 0000 0000  ................
03a3e10: 3131 f452 0200 0100 ffff ffff 8279 4711  11.R.........yG.
03a3e20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
&#91;...]
03a3ff0: 0000 0000 0000 0000 0000 0000 0000 0200  ................</code></pre>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Offset</th><th>Zweck</th><th>Auswertung</th></tr></thead><tbody><tr><td>0-3</td><td>Signature: either FILE or BAAD, which denotes a bad entry</td><td>4649 4c45 = 0x454c4946 =&#8220;FILE&#8220;</td></tr><tr><td>4-5</td><td>Offset to fixup array</td><td>3000 = 0x0030 = Fixup array beginnt ab Byte 0x30 (<em>=0400</em>)</td></tr><tr><td>6-7</td><td>Number of entries in fixup array</td><td>0300 = 0x0003 = 3 Einträge</td></tr><tr><td>8-15</td><td>$LogFile sequence number</td><td>ada3 a002 0000 0000 = 0x02a0a3ad = Sequenznummer 44082093</td></tr><tr><td>16-17</td><td>Sequence number</td><td>0300 = 0x0003 = Sequemznummer 3</td></tr><tr><td>18-19</td><td>Link count</td><td>0200 = 0x0002 = 2 Links</td></tr><tr><td>20-21</td><td>Offset to first attribute</td><td>3800 = 0x0038 = 56</td></tr><tr><td>22-23</td><td>Flags</td><td>0100 = 0x0001 = 0x01 (<em>0x01: record in use, 0x02 directory</em>)</td></tr><tr><td>24-27</td><td>Used size of MFT entry</td><td>2002 0000 = 0x0220 = 533 (<em>0x</em><em>03a3c00 + 0x220 = 0x3a3e20</em>)</td></tr><tr><td>28-31</td><td>Allocated size of MFT entry</td><td>0004 0000 = 0x0400 = 1024</td></tr><tr><td>32-39</td><td>File reference to base record</td><td>0000 0000 0000 0000 = 0x0= 0</td></tr><tr><td>40-41</td><td>Next attribute identifier</td><td>0500 = 0x0005 = 5</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Welche Bedeutung hat das Resident-Flag?</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">When a file&#8217;s attributes can fit within the MFT file record, they are called resident attributes. For example, information such as filename and time stamp are always included in the MFT file record. When all of the information for a file is too large to fit in the MFT file record, some of its attributes are nonresident. The nonresident attributes are allocated one or more clusters of disk space elsewhere in the volume.http://ntfs.com/ntfs-files-types.htm</p>
</blockquote>



<p class="wp-block-paragraph">Wenn die Attribute einer Datei kleiner als 700KiB sind, werden sie im MFT Record abgelegt. Sollten sie nicht mehr in den Record passen, werden sie als nonresident gekennzeichnet und werden anderweitig abgelegt. Zugriffe auf solche Attribute erzeugen folglich Performanzverluste.</p>



<p class="wp-block-paragraph">Welche Bedeutung hat das Attribut $LOGGED_UTILITY_STREAM?</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The $LOGGED_UTILITY_STREAM Attribute: Type 0x100 &#8212; layout and treatment is similar to $DATA attribute. Every EFS encrypted file will have this attribute to store the file encryption key used during encryption/de.http://www.c-jump.com/bcc/t256t/Week04NtfsReview/W01_0500_the_loggedutilitys.htm</p>
</blockquote>



<p class="wp-block-paragraph">Dieses Attribut wird scheinbar von einem Encrypting File System (EFS) genutzt, um darin die verwendeten Schlüssel während der Verschlüsselung abzulegen. Folglich besitzt jede verschlüsselte Datei dieses Attribut.</p>



<p class="wp-block-paragraph">Ist Cluster 45904 alloziert?</p>



<p class="wp-block-paragraph">Die Informationen zu den allozierten Clustern können wir $Bitmap entnehmen. Dafür brauchen wir aber noch etwas mehr Hintergrundwissen.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">This file keeps track of all of the used and unused clusters on an NTFS volume. Each bit in the Bitmap represents 1 cluster, if that bit is “1” then the cluster is in use. For example if a byte in the BitMap is “F”, this means that 4 clusters are in use as F (hex) = 1111 in binary.https://whereismydata.wordpress.com/2009/06/01/forensics-what-is-the-bitmap/</p>
</blockquote>



<p class="wp-block-paragraph">Dank dieser Information wissen wir nun, dass jedes Bit ein Cluster repräsentiert. In der Binärdarstellung eines Bytes steht ganz rechts das kleinste Cluster und links das größte Cluster.</p>



<pre class="wp-block-code"><code>$ icat partition_1.dd 6 | xxd -skip 5738 -l 1
000166a: fe</code></pre>



<p class="wp-block-paragraph">0xfe entspricht wird binär als 11111110 dargestellt. Gemäß unserer Definition steht rechts das kleinste Cluster. Cluster 45904 ist daher nicht alloziert.</p>



<h3 class="wp-block-heading">Anwendungsforensik</h3>



<p class="wp-block-paragraph">In dieser Aufgabe sollen Sie ein paar Fragen zur Windows Registry beantworten. Bitte verwenden Sie im Folgenden partition_1.dd.</p>



<p class="wp-block-paragraph">Welche Anwendungen werden beim Start des Systems aufgerufen?</p>



<p class="wp-block-paragraph">Microsoft beschreibt, dass Informationen zum Autostart an den folgenden Stellen in der Registry gefunden werden kann.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">List of common autorun locations: HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components HKLM\SOFTWARE\Wow6432Node\Classes\*\ShellEx\ContextMenuHandlers HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects HKLM\System\CurrentControlSet\Services HKLM\System\CurrentControlSet\Control\Terminal Server HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce.https://support.microsoft.com/de-de/kb/2647300/de</p>
</blockquote>



<p class="wp-block-paragraph">Mithilfe von&nbsp;<code>regripper</code>&nbsp;werten wir die Registry aus.</p>



<pre class="wp-block-code"><code>user_run v.20130329

(NTUSER.DAT) &#91;Autostart] Get autostart key contents from NTUSER.DAT hive

  Software\Microsoft\Windows\CurrentVersion\Run
    CTFMON.EXE: C:\WINDOWS\system32\ctfmon.exe
    Skype: "C:\Program Files\Skype\Phone\Skype.exe" /minimized /regrun
    SSS15 Browser Monitor: "C:\Program Files\Steganos Privacy Suite 15\SteganosBrowserMonitor.exe"
</code></pre>



<pre class="wp-block-code"><code>soft_run v.20130329
(Software) &#91;Autostart] Get autostart key contents from Software hive

  Microsoft\Windows\CurrentVersion\Run
  LastWrite Time Tue Apr  1 01:24:26 2014 (UTC)
    DWQueuedReporting - "C:\PROGRA~1\COMMON~1\MICROS~1\DW\dwtrig20.exe" -t
    BluetoothAuthenticationAgent - rundll32.exe bthprops.cpl,,BluetoothAuthenticationAgent
    Steganos HotKeys - "C:\Program Files\Steganos Privacy Suite 15\SteganosHotKeyService.exe"
    PHIME2002ASync - C:\WINDOWS\system32\IME\TINTLGNT\TINTSETP.EXE /SYNC
    CoolSwitch - C:\WINDOWS\system32\taskswitch.exe
    PHIME2002A - C:\WINDOWS\system32\IME\TINTLGNT\TINTSETP.EXE /IMEName
    SSS15 Chrome Autofill Relay - "C:\Program Files\Steganos Privacy Suite 15\passwordmanagercom.exe"
    SSS15 File Redirection Starter - "C:\Program Files\Steganos Privacy Suite 15\fredirstarter.exe"
    IMJPMIG8.1 - "C:\WINDOWS\IME\imjp8_1\IMJPMIG.EXE" /Spoil /RemAdvDef /Migration32</code></pre>



<p class="wp-block-paragraph">Welche Dateien wurden zuletzt verwendet?</p>



<pre class="wp-block-code"><code>recentdocs v.20100405
(NTUSER.DAT) Gets contents of user's RecentDocs key

  RecentDocs
  **All values printed in MRUList\MRUListEx order.
  Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
  LastWrite Time Sun Mar 30 17:38:32 2014 (UTC)
    1 = Startup
    0 = Microsoft .NET Framework v4 - Slow Windows XP Boot Fix.vbs
    3 = My Pictures
    9 = 4.jpeg
    8 = 3.jpeg
    7 = 2.jpeg
    5 = index.jpeg
    6 = Edoofy.jpeg
    4 = images.jpeg
    2 = imgres.htm

  Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\.htm
  LastWrite Time Sun Mar 30 17:08:51 2014 (UTC)
  MRUListEx = 0
    0 = imgres.htm

  Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\.jpeg
  LastWrite Time Sun Mar 30 17:15:37 2014 (UTC)
  MRUListEx = 5,4,1,3,2,0
    5 = 4.jpeg
    4 = 3.jpeg
    1 = 2.jpeg
    3 = index.jpeg
    2 = Edoofy.jpeg
    0 = images.jpeg

  Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\.vbs
  LastWrite Time Tue Apr  1 02:58:37 2014 (UTC)
  MRUListEx = 0
    0 = Microsoft .NET Framework v4 - Slow Windows XP Boot Fix.vbs

  Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\Folder
  LastWrite Time Tue Apr  1 02:58:37 2014 (UTC)
  MRUListEx = 0,2
    0 = Startup
    2 = My Pictures</code></pre>



<p class="wp-block-paragraph">Welche Anwendungen wurden zuletzt über den Common-Dialog aufgerufen?</p>



<pre class="wp-block-code"><code>comdlg32 v.20121008

  Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32
  LastWrite Time Sun Mar 30 16:53:10 2014 (UTC)
  LastVisitedMRU
  LastWrite: Sun Mar 30 17:14:43 2014
    MRUList = bca
    b -&gt; EXE: firefox.exe
      -&gt; Last Dir: C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures
    c -&gt; EXE: Skype.exe
      -&gt; Last Dir: C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures
    a -&gt; EXE: IEXPLORE.EXE
      -&gt; Last Dir: C:\Documents and Settings\Owner\Local Settings\My Documents

  OpenSaveMRU\*
  LastWrite Time: Sun Mar 30 17:15:37 2014 Z
    MRUList = ihgefdcba
    i -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\4.jpeg
    h -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\3.jpeg
    g -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\2.jpeg
    e -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\index.jpeg
    f -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\Edoofy.jpeg
    d -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\images.jpeg
    c -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\imgres.htm
    b -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\SkypeSetup.exe
    a -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\Firefox Setup Stub 28.0.exe

  OpenSaveMRU\exe
  LastWrite Time: Sun Mar 30 16:54:29 2014 Z
    MRUList = ba
    b -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\SkypeSetup.exe
    a -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\Firefox Setup Stub 28.0.exe

  OpenSaveMRU\htm
  LastWrite Time: Sun Mar 30 17:08:51 2014 Z
    MRUList = a
    a -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\imgres.htm

  OpenSaveMRU\jpeg
  LastWrite Time: Sun Mar 30 17:15:37 2014 Z
    MRUList = fedbca
    f -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\4.jpeg
    e -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\3.jpeg
    d -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\2.jpeg
    b -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\index.jpeg
    c -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\Edoofy.jpeg
    a -&gt; C:\Documents and Settings\Owner\Local Settings\My Documents\My Pictures\images.jpeg</code></pre>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/07/computer-forensik-praktikum-4/">Computer Forensik (Praktikum 4)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2015/07/computer-forensik-praktikum-4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Didaktik der Informatik (Abschlussbericht)</title>
		<link>https://maximiliankrieg.de/2015/07/didaktik-der-informatik-abschlussbericht/</link>
					<comments>https://maximiliankrieg.de/2015/07/didaktik-der-informatik-abschlussbericht/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Fri, 10 Jul 2015 06:12:00 +0000</pubDate>
				<category><![CDATA[Didaktik der Informatik]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1559</guid>

					<description><![CDATA[<p>Vor einigen Tagen hatten wir bereits die letzte Vorlesung im Fach&#160;Didaktik der Informatik. Heute möchte ich einen kleinen Rückblick auf die Modalitäten des Moduls und&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/07/didaktik-der-informatik-abschlussbericht/">Didaktik der Informatik (Abschlussbericht)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Vor einigen Tagen hatten wir bereits die letzte Vorlesung im Fach&nbsp;<em>Didaktik der Informatik</em>. Heute möchte ich einen kleinen Rückblick auf die Modalitäten des Moduls und ein persönliches Fazit geben.</p>



<h3 class="wp-block-heading">Prüfungsvorleistungen</h3>



<p class="wp-block-paragraph">Die Prüfungsvorleistung setzt sich zu gleichen Teilen aus der Präsentation eines didaktischen Themas, dem konzeptionellen Entwurf einer Schulungseinheit und der Bewertung einer anderen Kurseinheit zusammen. Die Herausforderung bei allen drei Vorleistungen liegt darin, dass man aus den Fehlern und Stärken der Vorgruppen lernen muss, da die Messlatte konsequent angehoben wird. Eine direkte Vergleichbarkeit in der Benotung ist bei den Vorleistungen daher nur schwer möglich.</p>



<h3 class="wp-block-heading">Prüfung</h3>



<p class="wp-block-paragraph">Die Durchführung einer Schulungseinheit ersetzt in diesem Modul eine mündliche oder schriftliche Prüfung. Pauschal lässt sich jedoch nicht sagen, dass es dadurch leichter oder schwerer wird. Der tendenzielle Vorteil dieses Verfahrens liegt darin, dass es eine Gruppenarbeit ist, welche im Voraus durchdacht und geplant werden kann. Es gilt das anzuwenden, was in den letzten Wochen vorgestellt, thematisiert und diskutiert wurde. Besondere Hindernisse, wie mangelnde Teilnehmerzahlen, absichtlich georderte Störer oder zurückhängende Teilnehmer, müssen erfolgreich bewältigt werden. Unsere Einheit&nbsp;<em>Einfügen von Objekten, Theme Wizard und verteiltes Arbeiten</em>&nbsp;wurde&nbsp;sehr gut von&nbsp;den Teilnehmern angenommen und hat uns zugleich Spaß gemacht.</p>



<h3 class="wp-block-heading">Gesamtfazit</h3>



<p class="wp-block-paragraph">Wir haben das Fach bei Professor Erbs belegt, der einen sehr offenen und ehrlichen Umgang mit den Studenten pflegt. Die Stimmung im Kurs war durchgehend gut, worauf er auch viel Wert legt. Gut gemeinte Kritik und Hinweise für Verbesserungspotenziale werden dennoch direkt und nicht beschönt angebracht, was ich im Bachelor-Studium so noch nicht erleben durfte, aber als sehr erfrischend und sinnvoll empfinde. Der Aufwand für die Vorleistungen und die Schulung halten sich im Rahmen und stehen in einem absolut fairen Verhältnis zur Endnote. Das vermittelte Wissen ist in der Praxis definitiv anwendbar und daher empfehle ich diesen Kurs zu belegen.</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/07/didaktik-der-informatik-abschlussbericht/">Didaktik der Informatik (Abschlussbericht)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2015/07/didaktik-der-informatik-abschlussbericht/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Diskrete Strukturen (Abschlussbericht)</title>
		<link>https://maximiliankrieg.de/2015/07/diskrete-strukturen-abschlussbericht/</link>
					<comments>https://maximiliankrieg.de/2015/07/diskrete-strukturen-abschlussbericht/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Wed, 08 Jul 2015 06:11:00 +0000</pubDate>
				<category><![CDATA[Diskrete Strukturen]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1557</guid>

					<description><![CDATA[<p>Heute haben wir die Klausur in Diskrete Strukturen geschrieben. Ich möchte daher einen kleinen Rückblick über die Praktika und die Klausur geben. Wie in meinen&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/07/diskrete-strukturen-abschlussbericht/">Diskrete Strukturen (Abschlussbericht)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Heute haben wir die Klausur in Diskrete Strukturen geschrieben. Ich möchte daher einen kleinen Rückblick über die Praktika und die Klausur geben. Wie in meinen anderen Abschlussberichten gebe ich natürlich noch ein Gesamtfazit bezüglich des Dozenten und des Moduls.</p>



<h3 class="wp-block-heading">Prüfungsvorleistungen</h3>



<p class="wp-block-paragraph">Vergleichbar zu Modulen aus dem Bachelor-Studium, gibt es in Diskrete Strukturen ein normales Praktikum mit mehreren Terminen und Aufgaben. Die Besonderheit liegt jedoch darin, dass es nur drei Praktika gibt, die zu einem beliebigen Zeitpunkt vor der Prüfung abgegeben werden können. Aufgrund der vielen Hausarbeiten und Präsentationen in diesem Semester hat sich diese Freiheit als äußerst nützlich erwiesen. Die Aufgaben haben einen starken Bezug zur Vorlesung und helfen durch die Bearbeitung beim weiterführenden Verständnis. Im Rahmen des Praktikums werden die Ergebnisse als Präsentation vorgestellt und mit dem Dozenten diskutiert.</p>



<h3 class="wp-block-heading">Prüfung</h3>



<p class="wp-block-paragraph">In der Klausur werden alle Themengebiete des Skripts angeschnitten. Die Aufgaben beziehen sich auf (Unter-)Gruppen, Gruppenoperationen, k-Teilmengen, Permutationen, Graphen sowie Transversale und Bahnen. Viele Aufgaben sind bereits im Skript aufgeführt oder in der Beispielklausur vorhanden. Es ist auf jeden Fall sinnvoll&nbsp;sich das Skript, den Fragenkatalog und die Beispielklausur im Detail anzusehen und zu bearbeiten, um eine gute Basis für die eigentliche Klausur zu haben. Die Durchfallquote belegt dies ebenfalls. Trotz guter Vorbereitung ist der Schwierigkeitsgrad der Klausur relativ anspruchsvoll. Vermutlich liegt dies auch daran, dass es sich um ein Theoriefach handelt.</p>



<h3 class="wp-block-heading">Gesamtfazit</h3>



<p class="wp-block-paragraph">Professor Braun gibt sich alle Mühe mit diesem Fach und der Vermittlung der teilweise sehr abstrakten Inhalte. Er verzichtet auf einen Foliensatz und schreibt alle Inhalte an die Tafel, was sich größtenteils mit dem Skript deckt. Bei seinen Rückfragen gibt es oftmals nur sehr zögerliches Feedback, da die Studierenden noch am Grübeln und Nachvollziehen sind, wenn er mal wieder einen komplexen Beweis einfach aus dem Kopf an die Tafel geschrieben hat. Die regelmäßigen Wiederholungen zu Unterrichtsbeginn, die vertiefenden Praktika und die Tatsache, dass man einige Wochen vor der letzten Vorlesungen mit dem Stoff bereits durch ist, helfen jedoch massiv und sorgen dafür, dass dieses Theoriefach zu bewältigen ist. Rückblickend hat es mir viel Spaß gemacht über die Sachverhalte zu Knobeln und ist auch mit einer dem Aufwand gerechten Note honoriert worden.</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/07/diskrete-strukturen-abschlussbericht/">Diskrete Strukturen (Abschlussbericht)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2015/07/diskrete-strukturen-abschlussbericht/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Wissensmanagement (Abschlussbericht)</title>
		<link>https://maximiliankrieg.de/2015/07/wissensmanagement-abschlussbericht/</link>
					<comments>https://maximiliankrieg.de/2015/07/wissensmanagement-abschlussbericht/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Fri, 03 Jul 2015 01:13:00 +0000</pubDate>
				<category><![CDATA[Wissensmanagement]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1302</guid>

					<description><![CDATA[<p>Heute haben wir die mündliche Prüfung im Modul Wissensmanagement absolviert. In diesem Eintrag berichte ich kurz über die Prüfungsthemen, stelle das Resultat unserer Gruppenarbeit zur&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/07/wissensmanagement-abschlussbericht/">Wissensmanagement (Abschlussbericht)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Heute haben wir die mündliche Prüfung im Modul Wissensmanagement absolviert. In diesem Eintrag berichte ich kurz über die Prüfungsthemen, stelle das Resultat unserer Gruppenarbeit zur Verfügung und gebe ein Gesamtfazit zu diesem Modul.</p>



<h3 class="wp-block-heading">Prüfungsvorleistung</h3>



<p class="wp-block-paragraph">Als Teil der Prüfungsvorleistungen muss jede Gruppe einen Wiki-Artikel verfassen. Meine Gruppe bearbeitet das Thema&nbsp;<em>Persönliches Wissensmanagement</em>. Dieses wird sowohl im beruflichen als auch im privaten Umfeld zur Strukturierung und Verwaltung persönlicher Wissensbestände eingesetzt. Persönliches Wissensmanagement hilft, die Effizienz der eigenen Arbeitsweise zu steigern sowie durch eine gezielte Selektion der stetig zunehmenden Informationsflut des digitalen Zeitalters entgegenzuwirken.</p>



<p class="wp-block-paragraph">[<a href="http://maximiliankrieg.de/mycloud/index.php/s/LNnH47lJF0B2fyy">Download</a>]</p>



<h3 class="wp-block-heading">Prüfung</h3>



<p class="wp-block-paragraph">Im Rahmen der Prüfung werden&nbsp;einer Gruppe mehrere inhaltliche Wissensfragen gestellt. Diese Fragen erfordern fundierte Kenntnisse zu Modellen, Definitionen und Verfahren.&nbsp;Thematisch werden&nbsp;diesmal&nbsp;<em>TOM-Modell</em>,&nbsp;<em>Wissenstreppe</em>,&nbsp;<em>Wissensspirale</em>&nbsp;und das&nbsp;<em>Vorgehensmodell&nbsp;vom Frauenhofer IPK</em>&nbsp;abgefragt.&nbsp;Weiterhin versetzen sich die Studenten in die Rolle eines Beraters, der Empfehlungen und Einschätzungen zu Sachverhalten des organisationalen und persönlichen Wissensmanagements treffen&nbsp;soll. Die Noten werden jedoch erst im Anschluss zur letzten Prüfungsgruppe&nbsp;eingetragen. Obwohl es sich um eine mündliche Prüfung handelt, verläuft diese in einem sehr freundlichen Umgangston.</p>



<h3 class="wp-block-heading">Gesamtfazit</h3>



<p class="wp-block-paragraph">Das gesamte Modul profitiert maßgeblich von den Professoren Bleimann und Karczewski, die immense Begeisterung für dieses Fach demonstrieren. Die Aufwände für die Erstellung der Wiki-Artikel, den Präsentationen und den Fallstudien liegen im gleichen Umfang, den ein reguläres Praktikum erfordert hätte. Die von den Studenten präsentierten Inhalte sind jedoch so gut aufbereitet, dass der abschließende Lernaufwand für die Prüfung vergleichsweise gering ist. Im Rückblick kann ich dieses Modul jederzeit weiterempfehlen.</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/07/wissensmanagement-abschlussbericht/">Wissensmanagement (Abschlussbericht)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2015/07/wissensmanagement-abschlussbericht/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Biometric Systems (Vorlesung 11)</title>
		<link>https://maximiliankrieg.de/2015/07/biometric-systems-vorlesung-11/</link>
					<comments>https://maximiliankrieg.de/2015/07/biometric-systems-vorlesung-11/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Wed, 01 Jul 2015 01:35:00 +0000</pubDate>
				<category><![CDATA[Biometric Systems]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1328</guid>

					<description><![CDATA[<p>Heute behandeln wir sicherheitsrelevante Aspekte von biometrischen Systemen. Der Schwerpunkt liegt dabei darauf, wie Informationen sicher gespeichert und verglichen werden können. Skript-Anfang bio-M-security &#8211; Seite&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/07/biometric-systems-vorlesung-11/">Biometric Systems (Vorlesung 11)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Heute behandeln wir sicherheitsrelevante Aspekte von biometrischen Systemen. Der Schwerpunkt liegt dabei darauf, wie Informationen sicher gespeichert und verglichen werden können.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Skript-Anfang</th><td>bio-M-security &#8211; Seite 1</td></tr><tr><th>Skript-Ende</th><td>bio-M-security &#8211; Seite 79</td></tr></tbody></table></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a51e9a272446&quot;}" data-wp-interactive="core/image" data-wp-key="6a51e9a272446" class="wp-block-image size-full wp-lightbox-container"><img fetchpriority="high" decoding="async" width="800" height="881" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://maximiliankrieg.de/wp-content/uploads/2026/02/20150629-bios-1.png" alt="" class="wp-image-1329" title="Seite 1 der Mitschrift" srcset="https://maximiliankrieg.de/wp-content/uploads/2026/02/20150629-bios-1.png 800w, https://maximiliankrieg.de/wp-content/uploads/2026/02/20150629-bios-1-272x300.png 272w, https://maximiliankrieg.de/wp-content/uploads/2026/02/20150629-bios-1-768x846.png 768w" sizes="(max-width: 800px) 100vw, 800px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/07/biometric-systems-vorlesung-11/">Biometric Systems (Vorlesung 11)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2015/07/biometric-systems-vorlesung-11/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Wissensmanagement (Vorlesung 9)</title>
		<link>https://maximiliankrieg.de/2015/07/wissensmanagement-vorlesung-9/</link>
					<comments>https://maximiliankrieg.de/2015/07/wissensmanagement-vorlesung-9/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Wed, 01 Jul 2015 01:12:00 +0000</pubDate>
				<category><![CDATA[Wissensmanagement]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1300</guid>

					<description><![CDATA[<p>Heute werden die letzten vier Fallstudien zum Thema Wissensmanagement in der Praxis präsentiert. Bei den befragten Unternehmen handelt es sich um die Pass Consulting Group (Link), MRM // McCann (Link) und die Controlware GmbH (Link).&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/07/wissensmanagement-vorlesung-9/">Wissensmanagement (Vorlesung 9)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Heute werden die letzten vier Fallstudien zum Thema <em>Wissensmanagement in der Praxis</em> präsentiert. Bei den befragten Unternehmen handelt es sich um die <em>Pass Consulting Group</em> (<a href="http://www.pass-consulting.com/">Link</a>), <em>MRM // McCann</em> (<a href="http://www.mrm.de/">Link</a>) und die <em>Controlware GmbH</em> (<a href="http://www.controlware.de/">Link</a>). Das verbleibende Unternehmen hat seine Informationen nur anonymisiert zur Verfügung gestellt. Es wird keine detaillierte Mitschrift angefertigt, da die vorgestellten Inhalte stark unternehmensbezogen sind.</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/07/wissensmanagement-vorlesung-9/">Wissensmanagement (Vorlesung 9)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2015/07/wissensmanagement-vorlesung-9/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Diskrete Strukturen (Klausurvorbereitung)</title>
		<link>https://maximiliankrieg.de/2015/06/diskrete-strukturen-klausurvorbereitung-2/</link>
					<comments>https://maximiliankrieg.de/2015/06/diskrete-strukturen-klausurvorbereitung-2/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Mon, 29 Jun 2015 18:57:00 +0000</pubDate>
				<category><![CDATA[Diskrete Strukturen]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1997</guid>

					<description><![CDATA[<p>Am heutigen Termin werden organisatorische&#160;Fragen zur Klausur beantwortet. Skript-Anfang Skript &#8211; Seite 1 Skript-Ende Skript &#8211; Seite 84 Klausur Wie sind die organisatorischen Rahmenbedingungen?</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/06/diskrete-strukturen-klausurvorbereitung-2/">Diskrete Strukturen (Klausurvorbereitung)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Am heutigen Termin werden organisatorische&nbsp;Fragen zur Klausur beantwortet.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Skript-Anfang</th><td>Skript &#8211; Seite 1</td></tr><tr><th>Skript-Ende</th><td>Skript &#8211; Seite 84</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Klausur</h3>



<p class="wp-block-paragraph">Wie sind die organisatorischen Rahmenbedingungen?</p>



<ul class="wp-block-list">
<li>Es wird 5 Aufgaben mit jeweils 10 Punkten geben, davon müssen 50% zum Bestehen erreicht werden</li>



<li>Es sind keinerlei Notizen und Hilfsmittel erlaubt</li>



<li>Da Multiple Choice-Aufgaben in den vorherigen Klausuren aufgrund von zahlreichen Falschantworten keine Punkte erbracht haben, wird es keine mehr geben</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/06/diskrete-strukturen-klausurvorbereitung-2/">Diskrete Strukturen (Klausurvorbereitung)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2015/06/diskrete-strukturen-klausurvorbereitung-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Diskrete Strukturen (Praktikum 3)</title>
		<link>https://maximiliankrieg.de/2015/06/diskrete-strukturen-praktikum-3/</link>
					<comments>https://maximiliankrieg.de/2015/06/diskrete-strukturen-praktikum-3/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Mon, 29 Jun 2015 10:03:00 +0000</pubDate>
				<category><![CDATA[Diskrete Strukturen]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=2007</guid>

					<description><![CDATA[<p>Das dritte Praktikum baut auf den Erkenntnissen des zweiten Praktikums auf und behandelt nun die Erzeugung von Bahnen. Zur Validierung der Korrektheit gibt es in&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/06/diskrete-strukturen-praktikum-3/">Diskrete Strukturen (Praktikum 3)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Das dritte Praktikum baut auf den Erkenntnissen des zweiten Praktikums auf und behandelt nun die Erzeugung von Bahnen. Zur Validierung der Korrektheit gibt es in der zweiten Aufgabe Testparameter, die erreicht werden müssen. Der hier beschriebene Quellcode stellt nur den für die Abgabe präsentierten Code dar. Weitere Resultate und Funktionen sind im Original-Code zu finden.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Skript-Anfang</th><td>Praktikum 3 &#8211; Seite 1</td></tr><tr><th>Skript-Ende</th><td>Praktikum 3 &#8211; Seite 2</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Erzeugung von Bahnen und Transversale</h3>



<p class="wp-block-paragraph">Schreiben Sie ein Programm, welches bei Eingabe einer Permutationsgruppe (über die Erzeuger) \(G=\left \langle \gamma_0,\cdots ,\gamma_{l-1} \right \rangle \leq S_n\) die Bahnen G\\X auf der Menge X der k-Teilmengen der n elementigen Menge {0, &#8230; , n &#8211; 1} berechnet. Das Programm soll für jede Bahn einen Repräsentanten angeben.</p>



<h4 class="wp-block-heading">Includes und Deklarationen</h4>



<pre class="wp-block-code"><code>#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;sstream&gt;
#include &lt;math.h&gt;
#include &lt;assert.h&gt;
#include &lt;algorithm&gt;
using namespace std;
 
void multiply_subset_permutation(vector&lt;unsigned int&gt;&amp; vSubset, vector&lt;unsigned int&gt;&amp; vPermutation, vector&lt;unsigned int&gt;&amp; vResult);
bool inResult(vector&lt;unsigned int&gt;&amp; v1, vector&lt;unsigned int&gt;&amp; v2);
int binkoeff(int n, int k);
int kSubsetRevDoorRank(vector&lt;unsigned int&gt;&amp; vVec, int k);
vector&lt;unsigned int&gt; kSubsetRevDoorUnrank(int r, int k, int n);
void generate_orbits_new(vector&lt;vector&lt;unsigned int&gt; &gt;&amp; vErzeuger, int n, int k);
vector&lt;unsigned int&gt; bit_to_list(vector&lt;unsigned int&gt;&amp; vBitlist);
string output_list(vector&lt;unsigned int&gt;&amp; vVector, int iOffset);</code></pre>



<h4 class="wp-block-heading">Main()</h4>



<pre class="wp-block-code"><code>int main() {

     // Set 1
     vector&lt;vector&lt;unsigned int&gt; &gt; vErzeuger;
     static const int arr1&#91;] = { 0, 3, 4, 1, 2, 5 };
     static const int arr2&#91;] = { 3, 4, 0, 5, 1, 2 };
     vector&lt;unsigned int&gt; vTmp1(arr1, arr1 + sizeof(arr1) / sizeof(arr1&#91;0]));
     vector&lt;unsigned int&gt; vTmp2(arr2, arr2 + sizeof(arr2) / sizeof(arr2&#91;0]));
     vErzeuger.push_back(vTmp1);
     vErzeuger.push_back(vTmp2);
     generate_orbits_new(vErzeuger, 6, 3);

     // Set 2
     vector&lt;vector&lt;unsigned int&gt; &gt; vErzeuger;
     static const int arr1&#91;] = { 5, 4, 3, 2, 1, 0, 7, 6 };
     static const int arr2&#91;] = { 1, 0, 7, 6, 5, 4, 3, 2 };
     vector&lt;unsigned int&gt; vTmp1(arr1, arr1 + sizeof(arr1) / sizeof(arr1&#91;0]));
     vector&lt;unsigned int&gt; vTmp2(arr2, arr2 + sizeof(arr2) / sizeof(arr2&#91;0]));
     vErzeuger.push_back(vTmp1);
     vErzeuger.push_back(vTmp2);
     generate_orbits_new(vErzeuger, 8, 4); 
 
     // Set 3
     vector&lt;vector&lt;unsigned int&gt; &gt; vErzeuger;
     static const int arr1&#91;] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0 };
     static const int arr2&#91;] = { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
     vector&lt;unsigned int&gt; vTmp1(arr1, arr1 + sizeof(arr1) / sizeof(arr1&#91;0]));
     vector&lt;unsigned int&gt; vTmp2(arr2, arr2 + sizeof(arr2) / sizeof(arr2&#91;0]));
     vErzeuger.push_back(vTmp1);
     vErzeuger.push_back(vTmp2);
     generate_orbits_new(vErzeuger, 14, 5);

    // Set 4
    vector&lt;vector&lt;unsigned int&gt; &gt; vErzeuger;
    static const int arr1&#91;] = { 19, 0, 20, 1, 21, 2, 22, 3, 15, 4, 16, 5, 17, 6, 18, 7, 27, 8, 28, 9, 29, 10, 30, 11, 23, 12, 24, 13, 25, 14, 26, 31 };
    static const int arr2&#91;] = { 21, 9, 27, 0, 22, 10, 28, 3, 17, 13, 23, 4, 18, 14, 24, 15, 5, 25, 11, 16, 6, 26, 12, 19, 1, 29, 7, 20, 2, 30, 8, 31 };
    vector&lt;unsigned int&gt; vTmp1(arr1, arr1 + sizeof(arr1) / sizeof(arr1&#91;0]));
    vector&lt;unsigned int&gt; vTmp2(arr2, arr2 + sizeof(arr2) / sizeof(arr2&#91;0]));
    vErzeuger.push_back(vTmp1);
    vErzeuger.push_back(vTmp2);
    generate_orbits_new(vErzeuger, 31, 5);
   
    return 0;
}</code></pre>



<h4 class="wp-block-heading">Bahnerzeugung</h4>



<pre class="wp-block-code"><code>void generate_orbits_new(vector&lt;vector&lt;unsigned int&gt; &gt;&amp; vErzeuger, int n, int k) {
    vector&lt;vector&lt;vector&lt;unsigned int&gt; &gt; &gt; vOrbits;
 
    // Erzeugung der Menge
    cout &lt;&lt; "n: " &lt;&lt; n &lt;&lt; endl;
    cout &lt;&lt; "k: " &lt;&lt; k &lt;&lt; endl;
    cout &lt;&lt; "Subset size: " &lt;&lt; binkoeff(n, k) &lt;&lt; endl;
 
    // Erzeugung des Vergleichsarrays
    int iElements = binkoeff(n, k);
    vector&lt;bool&gt; isUsed(iElements, false);
 
    for (int i = 0; i &lt; iElements; i++) {
        // Ist die Teilmenge bereits genutzt?
        if (isUsed.at(i) == true)
            continue;
 
        // Noch nicht genutzt
        isUsed.at(i) == true;
 
        // Neue Bahn anlegen
        vector&lt;vector&lt;unsigned int&gt; &gt; vResult;
        vOrbits.push_back(vResult);
 
        // Schlange erzeugen
        vector&lt;vector&lt;unsigned int&gt; &gt; vSchlange;
        vector&lt;unsigned int&gt; vNoName = kSubsetRevDoorUnrank(i, n, k);
        vNoName = bit_to_list(vNoName);
        vSchlange.push_back(vNoName);

        // Laufe solange noch Elemente in der Schlange sind
        while (vSchlange.size() &gt; 0) {
 
            // Durchlaufe alle Erzeuger
            for (unsigned int j = 0; j &lt; vErzeuger.size(); j++) {
 
                // Temporärer Vektor
                vector&lt;unsigned int&gt; vTmp;
 
                multiply_subset_permutation(vSchlange.at(0), vErzeuger.at(j), vTmp);
                sort(vTmp.begin(), vTmp.end());
 
                // Neues Element?
                bool bNew = true;
 
                // Element schon in irgendeiner Bahn?
                for (unsigned int l = 0;
                        l &lt; vOrbits.at(vOrbits.size() - 1).size(); l++) {
                    if (inResult(vTmp, vOrbits.at(vOrbits.size() - 1).at(l))) { // Bereits bekannte Permutation?
                        bNew = false;
                        break;
                    }
                }
 
                if (bNew == true) { 
                    // Nicht bekannt -&gt; Hinzufuegen
                    vSchlange.push_back(vTmp);
                    vOrbits.at(vOrbits.size() - 1).push_back(vTmp);
                    
                    // "Benutzt" setzen --&gt; rank holen
                    int iPos = kSubsetRevDoorRank(vTmp, k);
                    isUsed.at(iPos) = true;
                }
 
            } // for
            vSchlange.erase(vSchlange.begin());
        } // while
    } // for
    
    // Ausgabe
    for (unsigned int m = 0; m &lt; vOrbits.size(); m++) {
        cout &lt;&lt; "Bahn " &lt;&lt; m + 1 &lt;&lt; ": " &lt;&lt; vOrbits.at(m).size() 
                &lt;&lt; " Elemente, Repraesentant: "
                &lt;&lt; output_list(vOrbits.at(m).at(0), 0) &lt;&lt; endl;
    }
}

int kSubsetRevDoorRank(vector&lt;unsigned int&gt;&amp; vVec, int k) {
    int i, r, s;
    r = 0;
    if ((k % 2) == 1)
        r = r - 1;
    s = 1;
    for (i = k; i &gt;= 1; i = i - 1) {
        //cout &lt;&lt; "i= " &lt;&lt; i &lt;&lt; endl;
        r = r +binkoeff(vVec.at(i - 1) + 1, i) * s;
        s = -s;
    }
    return (r);
}
 
vector&lt;unsigned int&gt; kSubsetRevDoorUnrank(int r, int n, int k)
{
    vector&lt;unsigned int&gt; vResult(n);
    //cout &lt;&lt; "Size: " &lt;&lt; vResult.size() &lt;&lt; endl;
    int x, i, y;
    x = n;
    for (i = k; i &gt;= 1; i = i - 1) {
        y = binkoeff(x, i);
        while (y &gt; r) {
            x = x - 1;
            y = binkoeff(x, i);
        }
        vResult.at(x) = 1;
        r = binkoeff(x + 1, i) - r - 1;
    }
    return vResult;
}</code></pre>



<h4 class="wp-block-heading">Hilfsfunktionen</h4>



<pre class="wp-block-code"><code>int binkoeff(int n, int r) {
    int i, b;
    if ((r &lt; 0) || (n &lt; r))
        return (0);
    if ((2 * r) &gt; n)
        r = n - r;
    b = 1;
    if (r &gt; 0)
        for (i = 0; i &lt;= (r - 1); i = i + 1)
            b = (b * (n - i)) / (i + 1);
    return (b);
}
 
bool inResult(vector&lt;unsigned int&gt;&amp; v1, vector&lt;unsigned int&gt;&amp; v2) {
    if (v1.size() != v2.size())
        return false;
 
    for (unsigned int i = 0; i &lt; v1.size(); i++) {
        if (v1.at(i) != v2.at(i))
            return false;
    }
    return true;
}

vector&lt;unsigned int&gt; bit_to_list(vector&lt;unsigned int&gt;&amp; vBitlist) {
    vector&lt;unsigned int&gt; vList;
    for (unsigned int i = 0; i &lt; vBitlist.size(); i++) {
        if (vBitlist.at(i) == 1) {
            vList.push_back(i);
        }
    }
 
    return vList;
}
 
void multiply_subset_permutation(vector&lt;unsigned int&gt;&amp; vSubset,
        vector&lt;unsigned int&gt;&amp; vPermutation, vector&lt;unsigned int&gt;&amp; vResult) {
    for (unsigned int i = 0; i &lt; vSubset.size(); i++) {
        vResult.push_back(vPermutation&#91;vSubset&#91;i]]);
    }
}

bool isId(vector&lt;unsigned int&gt;&amp; vTmp) {
    for (unsigned int i = 0; i &lt; vTmp.size(); i++) {
        if (i != vTmp&#91;i]) {
            return false;
        }
    }
    return true;
}
 
string output_list(vector&lt;unsigned int&gt;&amp; vVector, int iOffset) {
    stringstream ss;
 
    if (isId(vVector) == true) {
        ss &lt;&lt; "id" &lt;&lt; vVector.size();
    } else {
        ss &lt;&lt; "&#91;";
        for (unsigned int i = 0; i &lt; vVector.size(); i++) {
            ss &lt;&lt; vVector&#91;i] + iOffset;
            if (i &lt; vVector.size() - 1) {
                ss &lt;&lt; ",";
            }
        }
        ss &lt;&lt; "]";
    }
    return ss.str();
}</code></pre>



<h3 class="wp-block-heading">Eingabe von Testparametern</h3>



<p class="wp-block-paragraph">Testen Sie das Programm für folgende Parameter.</p>



<p class="wp-block-paragraph">Set 1</p>



<p class="wp-block-paragraph">n=6</p>



<p class="wp-block-paragraph">k=3</p>



<p class="wp-block-paragraph">γ<sub>0</sub>&nbsp;= (1, 3)(2, 4)</p>



<p class="wp-block-paragraph">γ<sub>1</sub>&nbsp;= (0, 3, 5, 2)(1, 4)</p>



<pre class="wp-block-code"><code>n: 6 
k: 3 
Subset size: 20  
Bahn 1: 4 Elemente, Repraesentant: &#91;0,3,4] 
Bahn 2: 12 Elemente, Repraesentant: &#91;0,1,4]  
Bahn 3: 4 Elemente, Repraesentant: &#91;0,1,3]</code></pre>



<p class="wp-block-paragraph">Set 2</p>



<p class="wp-block-paragraph">n=8</p>



<p class="wp-block-paragraph">k=4</p>



<p class="wp-block-paragraph">γ<sub>0</sub>&nbsp;= (0, 5)(1, 4)(2, 3)(7, 6)</p>



<p class="wp-block-paragraph">γ<sub>1</sub>&nbsp;= (0, 1)(2, 7)(3, 6)(4, 5)</p>



<pre class="wp-block-code"><code>n: 8  
k: 4  
Subset size: 70 
Bahn 1: 4 Elemente, Repraesentant: &#91;2,3,4,5]  
Bahn 2: 4 Elemente, Repraesentant: &#91;1,2,4,5]  
Bahn 3: 2 Elemente, Repraesentant: &#91;1,2,3,4]  
Bahn 4: 4 Elemente, Repraesentant: &#91;1,2,3,5]  
Bahn 5: 4 Elemente, Repraesentant: &#91;1,3,4,5]  
Bahn 6: 1 Elemente, Repraesentant: &#91;0,1,4,5]  
Bahn 7: 4 Elemente, Repraesentant: &#91;0,1,3,5]  
Bahn 8: 4 Elemente, Repraesentant: &#91;0,1,2,5]  
Bahn 9: 2 Elemente, Repraesentant: &#91;0,2,3,5]  
Bahn 10: 2 Elemente, Repraesentant: &#91;0,3,4,7] 
Bahn 11: 4 Elemente, Repraesentant: &#91;0,3,5,7] 
Bahn 12: 4 Elemente, Repraesentant: &#91;0,2,3,7] 
Bahn 13: 4 Elemente, Repraesentant: &#91;0,2,4,7] 
Bahn 14: 4 Elemente, Repraesentant: &#91;0,2,5,7] 
Bahn 15: 2 Elemente, Repraesentant: &#91;0,1,2,7] 
Bahn 16: 4 Elemente, Repraesentant: &#91;0,1,3,7] 
Bahn 17: 2 Elemente, Repraesentant: &#91;1,3,5,7] 
Bahn 18: 4 Elemente, Repraesentant: &#91;1,2,3,7] 
Bahn 19: 2 Elemente, Repraesentant: &#91;2,4,5,7] 
Bahn 20: 4 Elemente, Repraesentant: &#91;2,3,4,7] 
Bahn 21: 4 Elemente, Repraesentant: &#91;2,3,5,7]
Bahn 22: 1 Elemente, Repraesentant: &#91;2,3,6,7]</code></pre>



<p class="wp-block-paragraph">Set 3</p>



<p class="wp-block-paragraph">n=14</p>



<p class="wp-block-paragraph">k=5</p>



<p class="wp-block-paragraph">γ<sub>0</sub>&nbsp;= (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)</p>



<p class="wp-block-paragraph">γ<sub>1</sub>&nbsp;= (0, 13)(1, 12)(2, 11)(3, 10)(4, 9)(5, 8)(6, 7)</p>



<pre class="wp-block-code"><code>n: 14 
k: 5  
Subset size: 2002 
Bahn 1: 14 Elemente, Repraesentant: &#91;1,2,3,4,5] 
Bahn 2: 28 Elemente, Repraesentant: &#91;1,2,3,5,6] 
Bahn 3: 28 Elemente, Repraesentant: &#91;1,3,4,5,6] 
Bahn 4: 28 Elemente, Repraesentant: &#91;1,2,3,6,7] 
Bahn 5: 28 Elemente, Repraesentant: &#91;1,3,4,6,7] 
Bahn 6: 14 Elemente, Repraesentant: &#91;1,2,4,6,7] 
Bahn 7: 28 Elemente, Repraesentant: &#91;1,4,5,6,7] 
Bahn 8: 28 Elemente, Repraesentant: &#91;1,3,5,6,7] 
Bahn 9: 14 Elemente, Repraesentant: &#91;1,3,4,5,7] 
Bahn 10: 28 Elemente, Repraesentant: &#91;1,2,3,7,8] 
Bahn 11: 28 Elemente, Repraesentant: &#91;1,3,4,7,8]  
Bahn 12: 28 Elemente, Repraesentant: &#91;1,2,4,7,8]  
Bahn 13: 28 Elemente, Repraesentant: &#91;1,4,5,7,8]  
Bahn 14: 28 Elemente, Repraesentant: &#91;1,3,5,7,8]  
Bahn 15: 28 Elemente, Repraesentant: &#91;1,5,6,7,8]  
Bahn 16: 28 Elemente, Repraesentant: &#91;1,4,6,7,8]  
Bahn 17: 28 Elemente, Repraesentant: &#91;1,3,6,7,8]  
Bahn 18: 28 Elemente, Repraesentant: &#91;1,3,4,6,8]  
Bahn 19: 28 Elemente, Repraesentant: &#91;1,4,5,6,8]  
Bahn 20: 28 Elemente, Repraesentant: &#91;1,2,3,8,9]  
Bahn 21: 28 Elemente, Repraesentant: &#91;1,3,4,8,9]  
Bahn 22: 28 Elemente, Repraesentant: &#91;1,2,4,8,9]  
Bahn 23: 28 Elemente, Repraesentant: &#91;1,4,5,8,9]  
Bahn 24: 28 Elemente, Repraesentant: &#91;1,3,5,8,9]  
Bahn 25: 14 Elemente, Repraesentant: &#91;1,2,5,8,9] 
Bahn 26: 28 Elemente, Repraesentant: &#91;1,5,6,8,9]  
Bahn 27: 28 Elemente, Repraesentant: &#91;1,4,6,8,9]  
Bahn 28: 28 Elemente, Repraesentant: &#91;1,3,6,8,9]  
Bahn 29: 28 Elemente, Repraesentant: &#91;1,6,7,8,9]  
Bahn 30: 28 Elemente, Repraesentant: &#91;1,5,7,8,9]  
Bahn 31: 28 Elemente, Repraesentant: &#91;1,4,7,8,9]  
Bahn 32: 28 Elemente, Repraesentant: &#91;1,3,7,8,9]  
Bahn 33: 28 Elemente, Repraesentant: &#91;1,3,4,7,9]  
Bahn 34: 28 Elemente, Repraesentant: &#91;1,4,5,7,9]  
Bahn 35: 14 Elemente, Repraesentant: &#91;1,3,5,7,9]  
Bahn 36: 28 Elemente, Repraesentant: &#91;1,5,6,7,9]  
Bahn 37: 28 Elemente, Repraesentant: &#91;1,4,6,7,9]  
Bahn 38: 14 Elemente, Repraesentant: &#91;1,4,5,6,9]  
Bahn 39: 28 Elemente, Repraesentant: &#91;1,3,4,9,10] 
Bahn 40: 28 Elemente, Repraesentant: &#91;1,4,5,9,10] 
Bahn 41: 28 Elemente, Repraesentant: &#91;1,3,5,9,10] 
Bahn 42: 28 Elemente, Repraesentant: &#91;1,2,5,9,10] 
Bahn 43: 28 Elemente, Repraesentant: &#91;1,5,6,9,10] 
Bahn 44: 28 Elemente, Repraesentant: &#91;1,4,6,9,10] 
Bahn 45: 28 Elemente, Repraesentant: &#91;1,3,6,9,10] 
Bahn 46: 14 Elemente, Repraesentant: &#91;1,6,7,9,10] 
Bahn 47: 28 Elemente, Repraesentant: &#91;1,5,7,9,10] 
Bahn 48: 28 Elemente, Repraesentant: &#91;1,4,7,9,10] 
Bahn 49: 28 Elemente, Repraesentant: &#91;1,3,7,9,10] 
Bahn 50: 28 Elemente, Repraesentant: &#91;1,6,8,9,10] 
Bahn 51: 28 Elemente, Repraesentant: &#91;1,5,8,9,10] 
Bahn 52: 28 Elemente, Repraesentant: &#91;1,4,8,9,10] 
Bahn 53: 14 Elemente, Repraesentant: &#91;1,3,8,9,10] 
Bahn 54: 28 Elemente, Repraesentant: &#91;1,3,4,8,10] 
Bahn 55: 28 Elemente, Repraesentant: &#91;1,4,5,8,10] 
Bahn 56: 28 Elemente, Repraesentant: &#91;1,3,5,8,10] 
Bahn 57: 28 Elemente, Repraesentant: &#91;1,5,6,8,10] 
Bahn 58: 28 Elemente, Repraesentant: &#91;1,4,6,8,10] 
Bahn 59: 28 Elemente, Repraesentant: &#91;1,5,7,8,10] 
Bahn 60: 28 Elemente, Repraesentant: &#91;1,4,7,8,10] 
Bahn 61: 28 Elemente, Repraesentant: &#91;1,4,5,7,10] 
Bahn 62: 28 Elemente, Repraesentant: &#91;1,5,6,7,10] 
Bahn 63: 14 Elemente, Repraesentant: &#91;1,5,6,10,11]  
Bahn 64: 28 Elemente, Repraesentant: &#91;1,4,6,10,11]  
Bahn 65: 28 Elemente, Repraesentant: &#91;1,5,7,10,11]  
Bahn 66: 28 Elemente, Repraesentant: &#91;1,4,7,10,11]  
Bahn 67: 28 Elemente, Repraesentant: &#91;1,3,7,10,11]  
Bahn 68: 28 Elemente, Repraesentant: &#91;1,5,8,10,11]  
Bahn 69: 28 Elemente, Repraesentant: &#91;1,4,8,10,11]
Bahn 70: 14 Elemente, Repraesentant: &#91;1,5,9,10,11]  
Bahn 71: 14 Elemente, Repraesentant: &#91;1,3,5,9,11] 
Bahn 72: 28 Elemente, Repraesentant: &#91;1,4,6,9,11] 
Bahn 73: 14 Elemente, Repraesentant: &#91;1,3,6,9,11] 
Bahn 74: 14 Elemente, Repraesentant: &#91;1,5,7,9,11] 
Bahn 75: 28 Elemente, Repraesentant: &#91;1,4,7,9,11] 
Bahn 76: 28 Elemente, Repraesentant: &#91;1,5,8,9,11] 
Bahn 77: 28 Elemente, Repraesentant: &#91;1,4,5,8,11] 
Bahn 78: 14 Elemente, Repraesentant: &#91;1,4,6,8,11] 
Bahn 79: 14 Elemente, Repraesentant: &#91;1,4,7,10,12]  
</code></pre>



<p class="wp-block-paragraph">Set 4</p>



<p class="wp-block-paragraph">n=31</p>



<p class="wp-block-paragraph">k=5</p>



<p class="wp-block-paragraph">γ<sub>0</sub>&nbsp;= (0, 19, 9, 4, 21, 10, 16, 27, 13, 6, 22, 30, 26, 24, 23, 11, 5, 2, 20, 29, 14, 18, 28, 25, 12, 17, 8, 15, 7, 3, 1)</p>



<p class="wp-block-paragraph">γ<sub>1</sub>&nbsp;= (0, 21, 26, 7, 3)(1, 9, 13, 14, 24)(2, 27, 20, 6, 28)(4, 22, 12, 18, 11)(5, 10, 23, 19, 16)(8, 17, 25, 29, 30)</p>



<pre class="wp-block-code"><code>n: 31
k: 5
Subset size: 169911  
Bahn 1: 155 Elemente, Repraesentant: &#91;0,1,19,20,21]
Bahn 2: 155 Elemente, Repraesentant: &#91;0,2,19,20,21]

...

Bahn 1098: 155 Elemente, Repraesentant: &#91;1,4,7,8,20]
Bahn 1099: 155 Elemente, Repraesentant: &#91;6,7,8,20,22]
Bahn 1100: 155 Elemente, Repraesentant: &#91;2,6,8,20,22]
Bahn 1101: 31 Elemente, Repraesentant: &#91;0,5,8,15,20] </code></pre>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2015/06/diskrete-strukturen-praktikum-3/">Diskrete Strukturen (Praktikum 3)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2015/06/diskrete-strukturen-praktikum-3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
