<?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>Thomas Stig Jacobsen&#039;s constant why &#187; Testing and stuff</title>
	<atom:link href="http://www.e-x-e.dk/category/testing-and-stuff/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.e-x-e.dk</link>
	<description></description>
	<lastBuildDate>Fri, 23 Sep 2011 07:52:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Looking into Hypem&#8230; and some exploits</title>
		<link>http://www.e-x-e.dk/2011/07/26/looking-into-hypem-and-some-exploits/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=looking-into-hypem-and-some-exploits</link>
		<comments>http://www.e-x-e.dk/2011/07/26/looking-into-hypem-and-some-exploits/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 00:03:00 +0000</pubDate>
		<dc:creator>Thomas Stig Jacobsen</dc:creator>
				<category><![CDATA[Internet security]]></category>
		<category><![CDATA[Testing and stuff]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[Hypem]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.e-x-e.dk/?p=90</guid>
		<description><![CDATA[Please note that this is not in any way an attack on Hypem. All work done here is done with great love to Hypem. Hypem have been notified about the exploits before this release in order to patch these. This is more of an exercise for myself. So the last couple of days I’ve been [...]]]></description>
			<content:encoded><![CDATA[<p>Please note that this is not in any way an attack on Hypem. All work done here is done with great love to Hypem. Hypem have been notified about the exploits before this release in order to patch these. This is more of an exercise for myself.</p>
<p>So the last couple of days I’ve been fooling around with Hypem, both looking into finding their mp3 files and some of the mechanics in that. Moreover I did a quick look for some simple exploits as well. I’ll present my findings starting with the mechanics of finding their mp3 files and hereafter I’ll get to some exploits and some cookie stealing/session hijacking when going over some of their javascript.</p>
<p>If you don’t know what Hypem are then you have been living under a rock. But, this is how they describe themself: <em>“The Hype Machine keeps track of what music bloggers write about. We handpick a set of kickass music blogs and then present what they discuss for easy analysis, consumption and discovery. This way, your odds of stumbling into awesome music or awesome blogs are high.”</em> - <a href="http://hypem.com/about">http://hypem.com/about</a>. Their rank on Alexa can be found here: <a href="http://www.alexa.com/siteinfo/hypem.com">http://www.alexa.com/siteinfo/hypem.com</a></p>
<hr />
<h2>Finding Hypem mp3 files</h2>
<p>So I first wanted to be able to download the awesome music from Hypem which is why I downloaded some plugin for FF in order to do so. But the plugin was bad, I had to go through every song and press download or use another plugin which messed up the naming of the files. Therefore I broke down the plugin in order to find out how they got the files in the first place.</p>
<p>Basicly the url of the mp3 files can be found in two ways (found the second one later on):</p>
<p><span style="font-family: Consolas;">http://hypem.com/serve/play/[id]/[key]</p>
<p>http://hypem.com/serve/source/[id]/[key]</span></p>
<p>The <span style="font-family: Consolas;">/serve/play</span> one will do a redirect to the mp3 file which then can be downloaded. The <span style="font-family: Consolas;">/serve/source</span> one on the other hand will give you a bit of JSON data with the id of the track, the url to the mp3 and a bool <span style="font-family: Consolas;">final</span> which allways seems to be <span style="font-family: Consolas;">true</span> (what I’ve seen so far). The JSON for one of the tracks is shown below (You don’t need to try to download the file, the link is broken on purpose)</p>
<pre class="csharpcode">{
   itemid: <span class="str">"gmef"</span>
   url: <span class="str">"http://t01a.hypem.com/sec/5e3cf3001fck75d3bb1de182b959a89b/51ed41f1/archive/614/10/1eaca15ec90abcde181efk144d146d8b.mp3"</span>
   final: <span class="kwrd">true</span>
}</pre>
<p>Getting this far is quite easy when being in a browser (which is maybe why there are no standalone programs that I could find) which takes care of cookies etc etc. But when I was doing my own program in C# as a program on the side I ran into a couple of problems.</p>
<p>I started by getting the Hypem pages after remembering to add a <span style="font-family: Consolas;">User-Agent</span> in the headers of the HTTP request. Otherwise I wouldn’t get any real content. Getting the ids and keys for the URLs was next on the agenda, luckily Hypem got all of that in their source in a format like this:</p>
<pre class="csharpcode">trackList[document.location.href].push({
   type:<span class="str">'normal'</span>,
   id:<span class="str">'ad5sf'</span>,
   postid:<span class="str">'1539980'</span>,
   posturl:<span class="str">'http://www.themusicninja.com/folk-st-vincent-surgeon/'</span>,
   time:<span class="str">'265'</span>,
   ts: <span class="str">'1311368622'</span>,
   fav:<span class="str">'0'</span>,
   key: <span class="str">'63f38d627b20d16aad38c67cbe1ed2b6'</span>,
   imeem_id:<span class="str">''</span>,
   artist:<span class="str">'St. Vincent'</span>,
   song:<span class="str">'Surgeon'</span>,
   amazon:<span class="str">''</span>,
   itunes:<span class="str">''</span>,
   emusic:<span class="str">''</span>,
   exact_track_avail:<span class="str">'0'</span>
});</pre>
<p>So I created a function which took the input in form of a Hypem HTML source and returned a list of Track objects which all had been extracted from the source. The extraction was quite simple; select all <span style="font-family: Consolas;">&lt;script&gt;</span> tags where <span style="font-family: Consolas;">trackList[document.location.href].push({</span> was to find in the tags innerText. Then parsing the innerText of the selected tags using a couple of RegEx’s to extract the values. Fx. extracting the key could be done using this RegEx (returning the hex value of into the group <span style="font-family: Consolas;">keyValue</span>):</p>
<pre class="csharpcode">\skey\:\s?\'(?&lt;keyValue&gt;([a-fA-F0-9])*)\'\,</pre>
<p>From there I just needed to download the files, right? Almost, since the keys are uniqe to the <span style="font-family: Consolas;">AUTH</span> cookie I first had to pretend being a browser by getting a <span style="font-family: Consolas;">AUTH</span> cookie on my first request to Hypem (Header <span style="font-family: Consolas;">Set-Cokokie</span> was recieved from the HTTP response) and then using it in the future requests including getting the download URLs. Here you can see the <span style="font-family: Consolas;">Set-Cookie</span> header recieved, we’ll come back to that later on:</p>
<pre class="csharpcode">Set-Cookie: AUTH=03%3Adaae3967194bfaa0232a8b0e0aa0a331%3A1311612064%3A1047226477%3A07-DK; expires=Wed, 21-Jul-2027 16:41:04 GMT; path=/; domain=hypem.com</pre>
<p>Otherwise I would get URLs that I could’t download. This is properly made in order prevent users from sharing the <span style="font-family: Consolas;">/serve/*</span> URLs or some other reason that I havn’t found yet. When getting the download URLs I used the /serve/play option then following the HTTP 302, redirecting me to the right download URL.</p>
<p>So if you want to create your own fun little program for surfing Hypem remember to</p>
<ul>
<li>Set your User-Agent header</li>
<li>Reuse your AUTH cookie</li>
</ul>
<p>Another fun little thing with Hypem’s HTTP headers is the header <span style="font-family: Consolas;">X-Hacker</span>:</p>
<pre class="csharpcode">X-hacker: Hey, if you're reading this, you should drop us an email at hypem.com/contact, maybe we can work together!</pre>
<hr />
<h2>Exploits and other fun investigation</h2>
<p>While I was at it I did a quick look for things like SQLi and XSS’s. I didn’t find any SQLi’s (so far), but I did found a couple of XSS’s:</p>
<pre class="csharpcode">http://hypem.com/soundcloud-embed.php?set=planningtorock/sets/w-hype-machine-exclusive/s-8ev0R';alert(document.cookie);var x='
http://hypem.com/search/"<span class="kwrd">&gt;&lt;</span><span class="html">script</span><span class="kwrd">&gt;</span>alert(document.cookie)<span class="kwrd">&lt;/</span><span class="html">script</span><span class="kwrd">&gt;&lt;</span>div class="/1/</pre>
<p><a class="thickbox" href="http://www.e-x-e.dk/wordpress/wp-content/2011/07/hypem-screen1.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="hypem-screen1" src="http://www.e-x-e.dk/wordpress/wp-content/2011/07/hypem-screen1_thumb.png" alt="hypem-screen1" width="244" height="205" border="0" /></a><a class="thickbox" href="http://www.e-x-e.dk/wordpress/wp-content/2011/07/hypem-screen2.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="hypem-screen2" src="http://www.e-x-e.dk/wordpress/wp-content/2011/07/hypem-screen2_thumb.png" alt="hypem-screen2" width="244" height="205" border="0" /></a></p>
<p>Well these I think speak for themselves. Easy to do a lot of fun with and with some of Hypem’s custom JS functions it’s even easier if you want to automate the process. Hypem godt a HUGE (~2600 lines beautified) JS file with their own functions, helpers etc. If you want to have a look for yourself it’s here (minified): <a href="http://static-ak.hypem.net/rev_1311597164/js/hype_functions_min.js">http://static-ak.hypem.net/rev_1311597164/js/hype_functions_min.js</a>. These are some of the most fun I think:</p>
<ul>
<li><span style="font-family: Consolas;">get_cookie(name)</span></li>
<li><span style="font-family: Consolas;">set_cookie(name, value, expires, path, domain, secure)</span></li>
</ul>
<p>You can of misuse these two functions in an XSS, using <span style="font-family: Consolas;">get_cookie(‘AUTH’)</span> (or just <span style="font-family: Consolas;">document.cookie</span>) and send it to your own server for later use. Then XSS yourself and using the <span style="font-family: Consolas;">set_cookie(…)</span> function to easily set the <span style="font-family: Consolas;">AUTH</span> cookie. The <span style="font-family: Consolas;">path</span>, <span style="font-family: Consolas;">domain</span> etc. you could find in the <span style="font-family: Consolas;">Set-Cookie</span> header gotten earlier. Mind that the <span style="font-family: Consolas;">expires</span> variable indicates how many days from the current time the cookie should be set, you can really set it to whatever. An example use of <span style="font-family: Consolas;">set_cookie(…)</span>:</p>
<pre class="csharpcode">set_cookie(<span class="str">'AUTH'</span>, <span class="str">'03:32ceca302374836fd91f11eb76e0bad9:1311506102:1047226477:07-DK'</span>, 10, <span class="str">'hypem.com'</span>, <span class="str">'/'</span>, <span class="kwrd">false</span>);</pre>
<p>Fixing the XSS’s is rather trivial, escape the strings properly in taking into account where the strings are being echoed and then that’s that. No more XSS and no more session hijacking.</p>
<p>I full list of functions you have here:</p>
<pre class="csharpcode" style="width: 623px; height: 231px;"><span class="kwrd">function</span> set_ad_vars()
<span class="kwrd">function</span> dfp_extras_var_passthru()
<span class="kwrd">function</span> dfp_extras_passback(country)
<span class="kwrd">function</span> refresh_user_menu()
<span class="kwrd">function</span> page_url_state_init()
<span class="kwrd">function</span> load_url(url, action_src)
<span class="kwrd">function</span> check_hash_change()
<span class="kwrd">function</span> rewrite_links()
<span class="kwrd">function</span> get_cookie(name)
<span class="kwrd">function</span> set_cookie(name, value, expires, path, domain, secure)
<span class="kwrd">function</span> get_visitorid_from_cookie()
<span class="kwrd">function</span> hide_notice(cookie_key)
<span class="kwrd">function</span> set_site_queue(queueItems)
<span class="kwrd">function</span> get_site_queue()
<span class="kwrd">function</span> getQueryVariable(variable)
<span class="kwrd">function</span> load_search()
<span class="kwrd">function</span> urlencode_kinda(str)
<span class="kwrd">function</span> load_random_search(forced)
<span class="kwrd">function</span> load_random_track()
<span class="kwrd">function</span> trim(str)
<span class="kwrd">function</span> get_unix_time()
<span class="kwrd">function</span> sec_to_str(nSec)
<span class="kwrd">function</span> toggleLayer(whichLayer)
<span class="kwrd">function</span> getOffX(o)
<span class="kwrd">function</span> sm_onload()
<span class="kwrd">function</span> sm_onplay()
<span class="kwrd">function</span> sm_onresume()
<span class="kwrd">function</span> sm_onpause()
<span class="kwrd">function</span> sm_onfinish()
<span class="kwrd">function</span> sm_whileplaying()
<span class="kwrd">function</span> sm_whileloading()
<span class="kwrd">function</span> sm_start_drag(evt)
<span class="kwrd">function</span> sm_follow_volume_drag(evt)
<span class="kwrd">function</span> sm_follow_progress_drag(evt)
<span class="kwrd">function</span> sm_end_drag(evt)
<span class="kwrd">function</span> sm_update_volume(evt, t_elt, morph)
<span class="kwrd">function</span> sm_update_progress(evt, t_elt)
<span class="kwrd">function</span> sm_toggle_mute()
<span class="kwrd">function</span> loadNextTrack(skip)
<span class="kwrd">function</span> retryLoadTrack()
<span class="kwrd">function</span> beginFadeTransition()
<span class="kwrd">function</span> fadeInSound(soundObj, amount, ms_delay)
<span class="kwrd">function</span> fadeOutSound(soundObj, amount, ms_delay)
<span class="kwrd">function</span> is_fade_enabled()
<span class="kwrd">function</span> is_html5_history_compat()
<span class="kwrd">function</span> update_current_play_ctrl(mode)
<span class="kwrd">function</span> togglePlayByItemid(itemid, evt)
<span class="kwrd">function</span> is_spy_page()
<span class="kwrd">function</span> is_shuffle_page()
<span class="kwrd">function</span> togglePlaySimple()
<span class="kwrd">function</span> togglePlay(id, evt)
<span class="kwrd">function</span> stopTrack()
<span class="kwrd">function</span> playTrack(skip_prompts)
<span class="kwrd">function</span> nextTrack(clicked_obj)
<span class="kwrd">function</span> prevTrack(clicked_obj)
<span class="kwrd">function</span> set_track_bg(fileid, color)
<span class="kwrd">function</span> set_now_playing_info()
<span class="kwrd">function</span> toggle_favorite(type, id, gray, skip_prompt)
<span class="kwrd">function</span> show_all_tracks(elt)
<span class="kwrd">function</span> show_buy(pos)
<span class="kwrd">function</span> expand_hyped(list_parent)
<span class="kwrd">function</span> enable_notification_check()
<span class="kwrd">function</span> check_notification()
<span class="kwrd">function</span> disable_notification_check()
<span class="kwrd">function</span> enable_playback_check()
<span class="kwrd">function</span> playback_check()
<span class="kwrd">function</span> disable_playback_check()
<span class="kwrd">function</span> toggle_item_activity(type, fileid, page)
<span class="kwrd">function</span> update_item_activity(type, fileid, page)
<span class="kwrd">function</span> load_item_activity(type, id, pos, page)
<span class="kwrd">function</span> toggle_item_graph(id, force, pos)
<span class="kwrd">function</span> load_item_graph(id)
<span class="kwrd">function</span> show_sidebar_info(uid, method, section)
<span class="kwrd">function</span> set_nav_item_active(eltid)
<span class="kwrd">function</span> setup_player_bar()
<span class="kwrd">function</span> hide_player_bar()
<span class="kwrd">function</span> show_player_bar()
<span class="kwrd">function</span> blog_search()
<span class="kwrd">function</span> blog_search_keyup()
<span class="kwrd">function</span> blog_directory_switch(tab)
<span class="kwrd">function</span> radio_update()
<span class="kwrd">function</span> load_gs_player(pos, gs_id)
<span class="kwrd">function</span> next_review(pos)
<span class="kwrd">function</span> prev_review(pos)
<span class="kwrd">function</span> show_review(pos)
<span class="kwrd">function</span> updateUrl(value)
<span class="kwrd">function</span> checkEmail()
<span class="kwrd">function</span> create_account(type, id, form_type)
<span class="kwrd">function</span> user_login(type, id)
<span class="kwrd">function</span> post_login(type, id)
<span class="kwrd">function</span> post_username_change()
<span class="kwrd">function</span> cancel_iframe_dialog(redir_to)
<span class="kwrd">function</span> checkPw()
<span class="kwrd">function</span> change_password(old_pw, newpw, key)
<span class="kwrd">function</span> change_username(pw, new_username)
<span class="kwrd">function</span> change_email(pw, email)
<span class="kwrd">function</span> user_logout()
<span class="kwrd">function</span> user_forgot()
<span class="kwrd">function</span> display_twitter_score()
<span class="kwrd">function</span> save_location()
<span class="kwrd">function</span> UploadToS3()
<span class="kwrd">function</span> lightbox_close_handler(lightbox_url)
<span class="kwrd">function</span> contact_show_tips()
<span class="kwrd">function</span> save_account()
<span class="kwrd">function</span> request_confirmation()
<span class="kwrd">function</span> unlink_twitter()
<span class="kwrd">function</span> save_twitter()
<span class="kwrd">function</span> unlink_lastfm()
<span class="kwrd">function</span> save_lastfm()
<span class="kwrd">function</span> show_lightbox(type, url, arg1)</pre>
<p>Also there is the wonderful function <span style="font-family: Consolas;">debug(q, w, e, r)</span> defined like this:</p>
<pre class="csharpcode">window.debug = <span class="kwrd">function</span>(q, w, e, r) {
    <span class="kwrd">if</span> (!document.location.href.match(/dev.hypem.com/)) {
        <span class="kwrd">return</span> <span class="kwrd">false</span>;
    }
    <span class="kwrd">try</span> {
        <span class="kwrd">if</span> (<span class="kwrd">typeof</span> console != <span class="str">'undefined'</span>) {
            console.log.apply(console, arguments);
        }
    } <span class="kwrd">catch</span>(err) {
        <span class="kwrd">if</span> (<span class="kwrd">typeof</span> console != <span class="str">'undefined'</span>) {
            console.log(q, w, e, r);
        }
    }
};</pre>
<p>This function is great, if you are a dev or someone interested in get a deeper look at the inside of Hypem. Unfortunately I’m not a Hypem dev (hint, hint) and the dev.hypem.com requires username/password, so I’ll just redefine the function with this:</p>
<pre class="csharpcode"><span class="kwrd">function</span> debug(q,w,e,r){
    <span class="kwrd">if</span> (do_debug==<span class="kwrd">false</span>) {
        <span class="kwrd">return</span> <span class="kwrd">true</span>;
    }
    <span class="kwrd">try</span>{
        <span class="kwrd">if</span>(<span class="kwrd">typeof</span> console!=<span class="str">'undefined'</span>){
            console.log.apply(console,arguments);
        }
    } <span class="kwrd">catch</span>(err){
        <span class="kwrd">if</span>(<span class="kwrd">typeof</span> console!=<span class="str">'undefined'</span>){
            console.log(q,w,e,r);
        }
    }
}</pre>
<p>I introduced the variable <span style="font-family: Consolas;">do_debug</span>, a <span style="font-family: Consolas;">bool</span> enabling the debug in the console. You should really take a look at the debug messages, a lot of fun stuff to see actually.</p>
<p>Needless to say there are a lot of fun XHR requests going on at all times on Hypem which you’ll find out when debugging the site and looking at the XHR requests. Logging action, radio fun etc. etc. etc. All of this is kind of expected with a site like Hypem where almost all of the stuff is happening via AJAX in order to keep the music playing.</p>
<p>The site also got a bit of fun variables when being logged in and logged out. Without going into depth with all of them here’s the list:</p>
<pre class="csharpcode" style="width: 644px; height: 191px;"><span class="kwrd">var</span> trackList = {};
<span class="kwrd">var</span> activeList = document.location.href;
<span class="kwrd">var</span> currentTrack = 0;
<span class="kwrd">var</span> currentPlayerObj = Array();
<span class="kwrd">var</span> activeItem;
<span class="kwrd">var</span> currentUrl;
<span class="kwrd">var</span> prevUrl;
<span class="kwrd">var</span> is_logged_in;
<span class="kwrd">var</span> logged_in_username;
<span class="kwrd">var</span> playback_allowed;
<span class="kwrd">var</span> dragging_position = <span class="kwrd">false</span>;
<span class="kwrd">var</span> dragging_x;
<span class="kwrd">var</span> isReady = 0;
<span class="kwrd">var</span> playerStatus = <span class="str">""</span>;
<span class="kwrd">var</span> playerDisplayed = <span class="str">"normal"</span>;
<span class="kwrd">var</span> playback_event_timeout = 0;
<span class="kwrd">var</span> playback_event_count = 0;
<span class="kwrd">var</span> playback_manual = 0;
<span class="kwrd">var</span> player_position;
<span class="kwrd">var</span> player_duration;
<span class="kwrd">var</span> player_volume = 50;
<span class="kwrd">var</span> page_updater;
<span class="kwrd">var</span> notificationTimeout = 0;
<span class="kwrd">var</span> updateSpy = 1;
<span class="kwrd">var</span> album_rs = Array();
<span class="kwrd">var</span> album_r_curr = Array();
<span class="kwrd">var</span> autosearch_blogs;
<span class="kwrd">var</span> radio_timeout = 0;
<span class="kwrd">var</span> radio_now_fileid = 0;
<span class="kwrd">var</span> radio_now_data = {};
<span class="kwrd">var</span> radio_counter = 0;
<span class="kwrd">var</span> radio_notificationTimeout = 0;
<span class="kwrd">var</span> master_ord;
<span class="kwrd">var</span> master_passback;
<span class="kwrd">var</span> ad_feedback_code;
<span class="kwrd">var</span> ad_feedback_position;</pre>
<p>I think all of the variable names makes so much sense that I don’t want to explain what each of them do, you’ll have to have fun with that yourself.</p>
<hr />
<h2>Domains, servers etc. etc.</h2>
<p>Here’s just a little bit of info from a quick look at the server, domains and subdomains at Hypem. Not that interesting but there you have it.</p>
<p>Hypem.com is hosted at 205.251.139.43 (US) together with 2 other domains: buymusic.org and hypem.mobi. Properly a VPS for their main stuff I guess. 5 DNS servers from dnsmadeeasy.com used, some load balancing there also. (<a href="http://www.robtex.com/dns/hypem.com.html">http://www.robtex.com/dns/hypem.com.html</a>, <a title="http://toolbar.netcraft.com/site_report?url=http://hypem.com" href="http://toolbar.netcraft.com/site_report?url=http://hypem.com">http://toolbar.netcraft.com/site_report?url=http://hypem.com</a>)</p>
<p>The subdomain dev.hypem.com is hosted at 205.251.142.11 (US). No sharing on that server, properly just an isolated test server for lulz. (<a href="http://www.robtex.com/dns/dev.hypem.com.html">http://www.robtex.com/dns/dev.hypem.com.html</a>).</p>
<p>Subdomain blog.hypem.com is over at <a href="http://www.robtex.com/ip/69.163.207.2.html">69.163.207.2</a> (US). Sharing the IP with a couple of weird domains besides from <a href="http://www.robtex.com/dns/thehypemachine.net.html">thehypemachine.net</a>.</p>
<p>Hypem uses a S3 bucket for their users profile pictures, that’s here: <a href="http://faces-s3.hypem.com/">http://faces-s3.hypem.com/</a>.</p>
<p>Furthermore they got (maybe) 8 servers for hosting their mp3 files at <a href="http://t01a.hypem.com/">http://t01a.hypem.com/</a> –&gt; <a href="http://t08a.hypem.com/">http://t08a.hypem.com/</a>. There are other hosting servers also I’m sure, maybe some soundcloud thingy.</p>
<p>&nbsp;</p>
<p>I think that’s it for now, I’m going to beeed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.e-x-e.dk/2011/07/26/looking-into-hypem-and-some-exploits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://t01a.hypem.com/sec/5e3cf3001fck75d3bb1de182b959a89b/51ed41f1/archive/614/10/1eaca15ec90abcde181efk144d146d8b.mp3" length="345" type="audio/mpeg" />
		</item>
		<item>
		<title>Choosing hash method in PHP</title>
		<link>http://www.e-x-e.dk/2010/07/03/choosing-hash-method-in-php/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=choosing-hash-method-in-php</link>
		<comments>http://www.e-x-e.dk/2010/07/03/choosing-hash-method-in-php/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 23:49:32 +0000</pubDate>
		<dc:creator>Thomas Stig Jacobsen</dc:creator>
				<category><![CDATA[Internet security]]></category>
		<category><![CDATA[Labs]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Testing and stuff]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.e-x-e.dk/2010/07/03/choosing-hash-method-in-php/</guid>
		<description><![CDATA[So the other day I wondered the consequences when choosing one hashing method over another when it comes to security. If we say that some hacker has got a hold of your (of course!) encrypted fx passwords then what will it matter that you choose a unbroken, uncommon and maybe slower encryption method? Speed I [...]]]></description>
			<content:encoded><![CDATA[<p>So the other day I wondered the consequences when choosing one hashing method over another when it comes to security. If we say that some hacker has got a hold of your (of course!) encrypted fx passwords then what will it matter that you choose a unbroken, uncommon and maybe slower encryption method?</p>
<p><b>Speed</b></p>
<p>I started with some benchmarking: <a href="http://e-x-e.dk/labs/timing/">http://e-x-e.dk/labs/timing/</a> (source: <a href="http://www.e-x-e.dk/labs/timing/source.php">http://www.e-x-e.dk/labs/timing/source.php</a>).</p>
<p>This basically creates 10000 random strings with a length of 50 and then encrypting all of these random strings with all of the hashing methods of my php installation’s disposal. This outputs a sorted list of the methods. The consequents of choosing fx a slow hashing method means that you’ll have a bit more load on your server since speed == load. But then again, choosing a slow hashing method will also mean a slower bruteforce for the hacker – buying your users (or you) more time to change their passwords and you closing the hole. But you’ll have to remember that where your bigger load/increased hashing-time caused by the slower hashing method is spread out the bruteforcers isn’t. So it’ll be a bigger hit to the bruteforcer than it will be to you.</p>
<p><b>Common vs. uncommon method</b></p>
<p>When choosing a hashing method it can also be a benefit from my point of view to choose a less common method for hashing your password/information if you have the option. And the argument is quite simple I think. With common methods like md5 which is used by the majority of sites today there are already constructed huge (HUGE) rainbow tables etc. (<a href="http://www.freerainbowtables.com/da/tables/md5/">http://www.freerainbowtables.com/da/tables/md5/</a>). Therefore by choosing a common hashing method you are also decreasing it effectiveness since a lot of the string combinations have already been computed.</p>
<p>Choosing a more uncommon hashing method will get rid of this problem, but then again, this maybe result in a slower computing of the hash as well, and for some – that’s a problem. By choosing a fx a tiger(2), SHA-1 or SHA-512 hash over fx. md5 you would decrease the effectiveness/speed of the bruteforce. </p>
<p><b>Hash method attacks</b></p>
<p>The effectiveness of a hash method is of course also influenced by if it has been fx collision attacked (<a href="http://en.wikipedia.org/wiki/Collision_attack">http://en.wikipedia.org/wiki/Collision_attack</a>) or a preimage attack (<a href="http://en.wikipedia.org/wiki/Preimage_attack">http://en.wikipedia.org/wiki/Preimage_attack</a>). Therefore you should also have this in your considerations when choosing a hashing method for your site.</p>
<p><b>Other things to consider</b></p>
<p>Things like salting your passwords etc etc is naturally also a good idea (maybe even with some HUGE salts, to ensure the length of the password extends the typical length of passwords and thereby setting the rainbow tables out of play). Some of these considerations might come in a later post.</p>
<p>I think there a lot fo pros and cons in this matter but as a general conclusion I think it’s time for the use of some more uncommon hashing methods in order to strengthen the security of information if hashed information is compromised. What do you think is the best hashing method to use and why?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.e-x-e.dk/2010/07/03/choosing-hash-method-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hacking Google Wave (XSS, XSSR)</title>
		<link>http://www.e-x-e.dk/2010/01/16/a-blogpost-about-hacking-google-wave-with-xss-and-xssr/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-blogpost-about-hacking-google-wave-with-xss-and-xssr</link>
		<comments>http://www.e-x-e.dk/2010/01/16/a-blogpost-about-hacking-google-wave-with-xss-and-xssr/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 11:47:32 +0000</pubDate>
		<dc:creator>Thomas Stig Jacobsen</dc:creator>
				<category><![CDATA[Internet security]]></category>
		<category><![CDATA[Labs]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Testing and stuff]]></category>
		<category><![CDATA[Google Wave]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.e-x-e.dk/2010/01/16/a-blogpost-about-hacking-google-wave-with-xss-and-xssr/</guid>
		<description><![CDATA[The last couple of days I’ve been fooling around with Google Wave and it’s so called “Gadgets”. In relation to this I  couldn’t help trying out some simple XSS and XSSR techniques which I’ll now show you and hopefully the Google Wave developers so they can secure the Gadgets – creating a even better product. [...]]]></description>
			<content:encoded><![CDATA[<p>The last couple of days I’ve been fooling around with Google Wave and it’s so called “Gadgets”. In relation to this I  couldn’t help trying out some simple XSS and XSSR techniques which I’ll now show you and hopefully the Google Wave developers so they can secure the Gadgets – creating a even better product. These gadget tests was made in the Google Wave preview and not in the Sandbox because I’m still waiting for being granted access to the Sandbox. When I acquire access to the Sandbox I’ll follow up on this blogpost. Lets get started with the fun shall we? <img src='http://www.e-x-e.dk/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So  I started with stealing a basic example, cleaned it down, leaving only the raw gadget. From there I used the “gadgets.util.registerOnLoadHandler(init);” functionality to load potentially malicious code onLoad of the Gadget. This can be used to prompt the viewer of the Gadget for eg. login information. The normal trusting user wouldn’t suspect this risk since it was prompted by Google Wave, right? <img src='http://www.e-x-e.dk/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Passing on I’ve created a couple of buttons in the Gadget which called a couple of Javascript function which did a couple of different things, one simple alerted the user, just to show that you could do anything.</p>
<p>One button changed window.top.location, sending the user to a completely other site, away from the “protecting” environment of Google Wave.</p>
<p>One button got the viewers Google Wave ID (an email), his/hers display name and his/hers thumbnail url. This could maybe be used to created fake accounts on websites, compromising the viewers exclusive use of his/hers email. Of course the email could also be harvested and sold to spamming bad guys with a lot of “Great deals on Viagra”. <img src='http://www.e-x-e.dk/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>The last button I created in this little Gadget example did also change the window.top.location but this time not to an url but instead to some data:text/html – base64 encoded. This could be used to show ads or propaganda to the viewer without a possibility to block a specific url, since this was content defined in the Gadget’s code itself.</p>
<p>This is what I’ve been doing the last day or two <img src='http://www.e-x-e.dk/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I have you read this and spread the word and of course leave a comment or a trackback. As said I’ll be back with more Google Wave security when I get access to the Sandbox <img src='http://www.e-x-e.dk/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>My Gadget can be viewed and tested at this URL:</p>
<p><a href="http://e-x-e.dk/labs/waveHack/hack1.xml">http://e-x-e.dk/labs/waveHack/hack1.xml</a></p>
<div id="scid:66721397-FF69-4ca6-AEC4-17E6B3208830:35b6e93e-7d55-49bd-a1f0-64bf5ff661ad" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<p>Or you can just watch the screenshots:<br />
<a style="border: 0px;" href="http://cid-32e9a60b12499ac6.skydrive.live.com/redir.aspx?page=browse&amp;resid=32E9A60B12499AC6!282&amp;ct=photos"><img style="border: 0px;" src="http://www.e-x-e.dk/wordpress/wp-content/2010/01/InlineRepresentationa8cc7e07644f4eec9357123988fa8320.jpg" alt="Vis Google Wave hack" /></a></p>
<div style="width: 400px; text-align: right;"><a href="http://cid-32e9a60b12499ac6.skydrive.live.com/redir.aspx?page=browse&amp;resid=32E9A60B12499AC6!282&amp;ct=photos">See all screenshots</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.e-x-e.dk/2010/01/16/a-blogpost-about-hacking-google-wave-with-xss-and-xssr/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Streaming multimedia content to a PS3 system from Windows, Mac or Linux</title>
		<link>http://www.e-x-e.dk/2009/12/26/streaming-multimedia-content-to-a-ps3-system-from-windows-mac-or-linux/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=streaming-multimedia-content-to-a-ps3-system-from-windows-mac-or-linux</link>
		<comments>http://www.e-x-e.dk/2009/12/26/streaming-multimedia-content-to-a-ps3-system-from-windows-mac-or-linux/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 19:54:49 +0000</pubDate>
		<dc:creator>Thomas Stig Jacobsen</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[Testing and stuff]]></category>
		<category><![CDATA[DLNA]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[PlayStation 3]]></category>
		<category><![CDATA[Streaming]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.e-x-e.dk/2009/12/26/streaming-multimedia-content-to-a-ps3-system-from-windows-mac-or-linux/</guid>
		<description><![CDATA[My brother just got a new Playstation 3 for Christmas and since he is away to London right now I thought I would also have some fun with it Anyway, I wanted to watch a movie and that’s no problem when we got a NAS at home but the DLNA server of the device is [...]]]></description>
			<content:encoded><![CDATA[<p>My brother just got a new Playstation 3 for Christmas and since he is away to London right now I thought I would also have some fun with it <img src='http://www.e-x-e.dk/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyway, I wanted to watch a movie and that’s no problem when we got a NAS at home but the DLNA server of the device is setup to only take content from the music folder on the device (for some reason the DNLA server in the NAS can only provide content from one folder). So I had to find another way to push content to the PS3 system. I knew I wanted to use the network connection since the whole house is build on this network anyway, and secondly I’m rather lazy. Furthermore I really wanted to take advantage of the build-in DNLA streamer/player in the PS3 so I had to setup some kind of DNLA server on my laptop or other kind of computer.</p>
<p>I Googled around the interwebs and found <a href="http://code.google.com/p/ps3mediaserver/" target="_blank">Java PS3 Media Server</a> at Google Code. It’s an awesome project which I hope continues. Well the project looked really nice and I downloaded and installed the server only my laptop which easily should be able to serve the content seen from a processor (Intel Core 2 Duo, 1.8 GHz) and memory (3 GB) point of view.</p>
<p>First I tried to stream some random video content and is ran smoothly but when I choose a bit more demanding kind of content the stream just couldn’t keep up with the demand. I firstly tried to lower the transcoding settings and looked at the network load at the same time. This is what I found:</p>
<p>Note that I boosted the transcode buffer maximum size up to 600.0 MB.</p>
<p><strong>Streaming audio</strong></p>
<p>I set the default quality of audio streaming down from 640 KBit/s to 320 KBit/s and I did that first of all because I wanted to keep my portability and not needing a network cable plugged into both the laptop and the PS3 which both were operating wirelessly. Secounly I didn’t need all of that quality since I rip my CD’s at 320 KBit/s and the transcoding was going into AC3 which means that even at a low bitrate I would get rather good quality out of the <a href="http://www.samsung.com/dk/consumer/tv-home-theatre/tv/lcd-tv/LE32B535P7WXXE/index.idx?pagetype=prd_detail" target="_blank">Samsung LE32B535</a> which is connected to the PS3. I also changed the number of audio channels from a whooping 5.1 (6 channels) to stereo (2 channels) again because I wanted portability and I wasn’t streaming to any surround sound system.</p>
<p>When buffering a song the network load hits properly just maxes out. When the starting buffer is full and streaming normally the network load is just around 125.000 byte/sec (0.96 Mbit/sec) which I think is really good (when filling rest of the buffer). Keeping the normal network load under 1 Mbit/sec. means that nearly every wireless setup will be able to stream smoothly.</p>
<p><strong>Streaming pictures</strong></p>
<p>Not much to say here to be quite frank. The times it takes for the pictures to load is of course dependant of the size of the pictures and of course the maximum network speed.</p>
<p><strong>Streaming video and problems</strong></p>
<p>Good software always have a butt, and this one got a bad one of those. My network connection couldn’t keep up with the request of data and therefore the video was a real pain the in ass to watch. Well this only happen with some movies. I tried ripping in different bitrates at 1800 kilobyte/sec. the video stuttered every some seconds, but at around 1150 kilobyte/sec the network connection could keep up, but only just (stutters sometimes). So the real pain in the but is the network speed, I would recommend using cables (at least 100 megabit/sec. of course) when streaming stuff to your PS3 using this software. You could use at lower bitrate but then it wouldn’t really be fun to watch on a full HD monitor, right?</p>
<p>I think you should try it out <img src='http://www.e-x-e.dk/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  In my tests both my PS3 and my laptop was in the other range of the wireless access point. When I get the time I’ll try the same tests with both devices connected to the network with cables.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.e-x-e.dk/2009/12/26/streaming-multimedia-content-to-a-ps3-system-from-windows-mac-or-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Pirate Bay trial</title>
		<link>http://www.e-x-e.dk/2009/02/19/the-pirate-bay-trial/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-pirate-bay-trial</link>
		<comments>http://www.e-x-e.dk/2009/02/19/the-pirate-bay-trial/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 16:27:48 +0000</pubDate>
		<dc:creator>Thomas Stig Jacobsen</dc:creator>
				<category><![CDATA[Testing and stuff]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[Serious]]></category>
		<category><![CDATA[The Pirate Bay]]></category>
		<category><![CDATA[Trial]]></category>
		<category><![CDATA[Unserious]]></category>

		<guid isPermaLink="false">http://www.e-x-e.dk/2009/02/19/the-pirate-bay-trial/</guid>
		<description><![CDATA[Yeah I’ve been following the trial as the rest of the internet-crowd&#160; these days. I’ll not start to write any summary or stuff like that but I’ll post some links with some serious and some unserious stuff. Unserious stuff: http://soundcloud.com/obd/obd-nu-ar-jag-en-cider-feat-hakan-roswall&#160; - A song created by some dude, really fun. If you understand it. http://spectrial.virvelvind.net/ – [...]]]></description>
			<content:encoded><![CDATA[<p>Yeah I’ve been following the trial as the rest of the internet-crowd&#160; these days. I’ll not start to write any summary or stuff like that but I’ll post some links with some serious and some unserious stuff. </p>
<p><strong>Unserious stuff:</strong></p>
<p><a title="http://soundcloud.com/obd/obd-nu-ar-jag-en-cider-feat-hakan-roswall" href="http://soundcloud.com/obd/obd-nu-ar-jag-en-cider-feat-hakan-roswall">http://soundcloud.com/obd/obd-nu-ar-jag-en-cider-feat-hakan-roswall</a>&#160; - A song created by some dude, really fun. If you understand it.</p>
<p><a title="http://spectrial.virvelvind.net/" href="http://spectrial.virvelvind.net/">http://spectrial.virvelvind.net/</a> – The place I got the song from above, here is some really fun stuff as well. More song, a Roswall-nonsense generator etc. </p>
<p><a title="http://en.wikipedia.org/wiki/King_kong_defense" href="http://en.wikipedia.org/wiki/King_kong_defense">http://en.wikipedia.org/wiki/King_kong_defense</a> – The wiki talks for it self.</p>
<p><strong>Serious stuff:</strong></p>
<p>The English translated version of all the news, twitters etc. from the case: <a title="http://74.125.19.132/translate_c?hl=da&amp;langpair=sv%7Cen&amp;u=http://live.piratpartiet.se/&amp;usg=ALkJrhiLOLGPFWYRkZspxZZMrSFEJHQ1YQ" href="http://74.125.19.132/translate_c?hl=da&amp;langpair=sv%7Cen&amp;u=http://live.piratpartiet.se/&amp;usg=ALkJrhiLOLGPFWYRkZspxZZMrSFEJHQ1YQ">http://74.125.19.132/translate_c?hl=da&amp;langpair=sv%7Cen&amp;u=http://live.piratpartiet.se/&amp;usg=ALkJrhiLOLGPFWYRkZspxZZMrSFEJHQ1YQ</a></p>
<p>The place where you can listen to the trial LIVE: <a title="http://www.sr.se/webbradio/webbradio.asp?type=live&amp;Id=SR-Extra01&amp;BroadcastDate=&amp;IsBlock" href="http://www.sr.se/webbradio/webbradio.asp?type=live&amp;Id=SR-Extra01&amp;BroadcastDate=&amp;IsBlock">http://www.sr.se/webbradio/webbradio.asp?type=live&amp;Id=SR-Extra01&amp;BroadcastDate=&amp;IsBlock</a></p>
<p>&#160;</p>
<p>Except this I’ve used my 5 minute break on this wallpaper today. It comes in 2 sizes: 1600x1200 and 1900x1200 this should suit anyone.</p>
<p><a target="_blank" href="http://www.e-x-e.dk/stuff/trial/TPB-trial-bg_1600x1200.PNG">1600x1200</a></p>
<p><a target="_blank" href="http://www.e-x-e.dk/stuff/trial/TPB-trial-bg_1900x1200.PNG">1900x1200</a></p>
<p><a target="_blank" href="http://www.e-x-e.dk/stuff/trial/TPB-trial-bg_PSD.PSD">The original PSD file for the 1600x1200 version</a></p>
<p><a target="_blank" href="http://www.e-x-e.dk/stuff/trial/cloister_black.zip">The TPB font</a></p>
<p>Please create more fun and fantastic wallpapers and such and post a comment or a ping to this post. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.e-x-e.dk/2009/02/19/the-pirate-bay-trial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My inactivity</title>
		<link>http://www.e-x-e.dk/2008/10/13/my-inactivity/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=my-inactivity</link>
		<comments>http://www.e-x-e.dk/2008/10/13/my-inactivity/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 13:38:20 +0000</pubDate>
		<dc:creator>Thomas Stig Jacobsen</dc:creator>
				<category><![CDATA[Testing and stuff]]></category>
		<category><![CDATA[sorry]]></category>

		<guid isPermaLink="false">http://www.e-x-e.dk/my-inactivity</guid>
		<description><![CDATA[So, I’m trying to get on the horse again, blogging. I’ve been busy dancing, working and with my second year as a college student. As said I’ll try to start blogging again and hopefully you’ll comment this and my future post as motivation. See ya’ all Thomas]]></description>
			<content:encoded><![CDATA[<p>So, I’m trying to get on the horse again, blogging.</p>
<p>I’ve been busy dancing, working and with my second year as a college student. As said I’ll try to start blogging again and hopefully you’ll comment this and my future post as motivation.</p>
<p>See ya’ all</p>
<p>Thomas</p>
]]></content:encoded>
			<wfw:commentRss>http://www.e-x-e.dk/2008/10/13/my-inactivity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to work @ home</title>
		<link>http://www.e-x-e.dk/2008/03/19/a-short-guide-to-work-good-home-dedicated-to-a-dear-friend/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-short-guide-to-work-good-home-dedicated-to-a-dear-friend</link>
		<comments>http://www.e-x-e.dk/2008/03/19/a-short-guide-to-work-good-home-dedicated-to-a-dear-friend/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 19:39:54 +0000</pubDate>
		<dc:creator>Thomas Stig Jacobsen</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Testing and stuff]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.e-x-e.dk/post/12</guid>
		<description><![CDATA[Well I have a good friend of mine who is starting his own company in a near future and therefore he's going to work a lot from his own home. I was just going to mail him this tips for working @ home, but I figured that a lot of you out there, would take [...]]]></description>
			<content:encoded><![CDATA[<p>Well I have a good friend of mine who is starting his own company in a near future and therefore he's going to work a lot from his own home. I was just going to mail him this tips for working @ home, but I figured that a lot of you out there, would take good use of these tips as well.</p>
<p>I'm going to write the tips in a chronology order as the day goes a long.</p>
<hr />
<p><strong>Morning:</strong> Get up early and start the day good. This could be a general tip for anyone but it's really important to get up early. In that way you'll have a whole day instead of just a half one. It's better to start early and end the day early than starting the day late and end the day very late!</p>
<p>And get really up, I mean you have to get up, take a shower, eat breakfast and get properly dressed before you work. You can't work in a pyjamas.</p>
<p><strong>Noon:</strong>Make sure you get normal breaks. One at noon for lunch and one in the afternoon. In that way you don't have to leave your work behind because your starving. </p>
<p>NOTE: Do not take your break the same place your working, otherwise it isn't really a break. Have some zones in the house with work-only and non-work. </p>
<p><strong>Afternoon and night:</strong> When the working day is about to end then end it. Don't &quot;take your work home&quot; otherwise you'll just keep working (or thinking at work).</p>
<p><strong>General tips:</strong></p>
<p>Separate your time. Don't take a hour out of your working day to raid in WoW or anything like that. You'll forget everything about work and keep playing (I've tried that one). AND: limit distractions, avoid TV, (non-)VOIP and phone calls etc.</p>
<p>Have a good working plan. Make a plan (maybe) a month ahead so you have some goals of the day. Else it can be hard to know what you've just spend a whole day working on.</p>
<p>&#160;</p>
<p>Dedicated to my dear friend Stefan Bohlin, your the greatest dude! I wish you the best of luck with your firm!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.e-x-e.dk/2008/03/19/a-short-guide-to-work-good-home-dedicated-to-a-dear-friend/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The subject for some of the future posts</title>
		<link>http://www.e-x-e.dk/2008/03/06/the-subject-for-some-of-the-future-subjects/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-subject-for-some-of-the-future-subjects</link>
		<comments>http://www.e-x-e.dk/2008/03/06/the-subject-for-some-of-the-future-subjects/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 15:11:38 +0000</pubDate>
		<dc:creator>Thomas Stig Jacobsen</dc:creator>
				<category><![CDATA[Testing and stuff]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[subject]]></category>

		<guid isPermaLink="false">http://www.e-x-e.dk/post/10</guid>
		<description><![CDATA[I have been looking for a new computer and therefore I will start to review all the things I'm going to sell, and the things I'm going to keep. In that way I can blog and still do some &#34;prework&#34; for the sales. Well I'm going to review: Club 3D - Radeon 9800 PRO Maxtor [...]]]></description>
			<content:encoded><![CDATA[<p>I have been looking for a new computer and therefore I will start to review all the things I'm going to sell, and the things I'm going to keep. In that way I can blog and still do some &quot;prework&quot; for the sales.</p>
<p>Well I'm going to review:</p>
<ul>
<li>Club 3D - Radeon 9800 PRO</li>
<li>Maxtor Onetouch 3 300GB</li>
<li>Creative X-Fi X-treme Music</li>
<li>LG Flatron L1980Q</li>
</ul>
<p>And when the new hardware has been bought and received I'll do some reviews of that to. An complete review list will be up later on.</p>
<p>Some subjects for future posts will be about the ultimate technical home, where everybody is talking to each other and working together.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.e-x-e.dk/2008/03/06/the-subject-for-some-of-the-future-subjects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m done!</title>
		<link>http://www.e-x-e.dk/2008/02/28/im-done/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=im-done</link>
		<comments>http://www.e-x-e.dk/2008/02/28/im-done/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 20:52:35 +0000</pubDate>
		<dc:creator>Thomas Stig Jacobsen</dc:creator>
				<category><![CDATA[Testing and stuff]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[homework]]></category>
		<category><![CDATA[school]]></category>

		<guid isPermaLink="false">http://www.e-x-e.dk/post/9</guid>
		<description><![CDATA[This week has been really chaotic. A lot of homework and a lot of things that hasn't been planned. But now I'm (almost) done! I've made an analyse of a Danish text and a some other assignments. But enough whining from me, I've planned some posts about me dream digital home. All the things I [...]]]></description>
			<content:encoded><![CDATA[<p>This week has been really chaotic. A lot of homework and a lot of things that hasn't been planned. But now I'm (almost) done! I've made an analyse of a Danish text and a some other assignments.</p>
<p>But enough whining from me, I've planned some posts about me dream digital home. All the things I want and need to create the perfect home for my family and I. A digital home isn't just to get the bragging rights (well a bit maybe) but also to have an easier everyday life. </p>
<p>These posts will be posted in the nearest future. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.e-x-e.dk/2008/02/28/im-done/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What this blog does and why</title>
		<link>http://www.e-x-e.dk/2008/02/22/a-post-explaning-why-this-blog-has-been-made-hope-youll-like-it/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-post-explaning-why-this-blog-has-been-made-hope-youll-like-it</link>
		<comments>http://www.e-x-e.dk/2008/02/22/a-post-explaning-why-this-blog-has-been-made-hope-youll-like-it/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 22:56:53 +0000</pubDate>
		<dc:creator>Thomas Stig Jacobsen</dc:creator>
				<category><![CDATA[Testing and stuff]]></category>
		<category><![CDATA[The first]]></category>

		<guid isPermaLink="false">http://www.e-x-e.dk/post/7</guid>
		<description><![CDATA[Yeah this is my first offcial quick (it should be) blog post. What this blog should do: Inform you on Internet security ... Computers ... Hardware ... Software ... Ballroom Dance and a lot of my dreams, everyday life and bragging. For the first dot: I'm a security geek, that's it, now it's out in [...]]]></description>
			<content:encoded><![CDATA[<p>Yeah this is my first offcial quick (it should be) blog post.</p>
<p>What this blog should do:</p>
<ul>
<li>Inform you on Internet security</li>
<li>... Computers</li>
<li>... Hardware</li>
<li>... Software</li>
<li>... Ballroom Dance <img src='http://www.e-x-e.dk/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>and a lot of my dreams, everyday life and bragging.</li>
</ul>
<p>For the first dot: I'm a security geek, that's it, now it's out in the open. I will try to have a finger on the pulse and I will post the exploits and errors I find. These exploits will be analysed and found a solution for.</p>
<p>For the 2nd, 3rd and 4th dot: I know computers is hardware and software mixed up. BUT, I will also get a perspektive on whole systems instead of just a piece of software or hardware.</p>
<p>For the 5th dot: Without thinking gay and wierdo let me explain. In my sparetime I'm a dancer with passion. I'm dancing on my ehhh... 11th yeah so this is no new thing for me. I'm not going to talk a lot about this but, it would be a good breakoff instead of computers and stuff 24/7.</p>
<p>and the last dot: This is like the 5th, a breakoff from all computers. I maybe give you a tour in my room or my home. This will give you an insigth of who I am. In this categoty I'll also be bragging about holidays and stuff. For a starter I can tell you that I'm going 1 week to Mallorca in my summer vacation.</p>
<p>Each of these dots will get a category for easy viewing what you like.</p>
<p>And now: why I'm starting this blogging thing. First off all I hope to get to learn a hole lot of people to know thogh all this. Second off all I hope my english will be better, I think it is okay now but it can allways be better!</p>
<p>Please give me some critic on everything; spelling, content, the site, impromements, you name it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.e-x-e.dk/2008/02/22/a-post-explaning-why-this-blog-has-been-made-hope-youll-like-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

