tag:blogger.com,1999:blog-20971358830390849892008-07-06T16:53:40.702-07:00chaotic tuxedo-es.orgJohn Doenoreply@blogger.comBlogger17125tag:blogger.com,1999:blog-2097135883039084989.post-7217941060915759942007-11-15T01:56:00.000-08:002007-11-15T02:59:06.967-08:00A few reasons to avoid socializing at work<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_IByYxkRXjxE/RzweAobakmI/AAAAAAAAAD4/9L1KUso8KX0/s1600-h/180px-Fallingdown.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_IByYxkRXjxE/RzweAobakmI/AAAAAAAAAD4/9L1KUso8KX0/s400/180px-Fallingdown.jpg" alt="" id="BLOGGER_PHOTO_ID_5133010671496761954" border="0" /></a><br />... or why you should avoid messing with your co-workers and stick to your old school friends. While some people prefer to go all way liberal and social, chit chat loving hipsters et al, some find out that work is really meant to be for work and skip the social crap.<br /><br />Here we go with a few reasons for avoiding (in general) socializing at work:<br /><br /><ol><li>Your coworkers are far more likely to develop envy and other vicious feelings towards your persona.</li><li>Your coworkers are there for the paycheck, probably as much as you are, if not more.</li><ol><li>They will most likely do whatever comes around for getting a better one.</li><li>That means selling <span style="font-weight: bold;">your</span> ass out. <span style="font-weight: bold;">Really</span>.</li></ol><li>It's human nature when it comes to money to fuck up things. Especially confidence.</li><ol><li> Everyone has a price.</li><li>Sadly, the world is full of cheap people.</li></ol><li>They will usually engage in so-called 'social chat':</li></ol><ul><li>Buddy X: Hey dude, I'm just back from the gym!</li><li>Buddy Y: Yo, I bench press 140 pounds, lol!</li></ul>Let's go on the analysis of the conversation above:<br /><ol><li>Buddy X is ingenuous e¡to enough to talk about gym. You know, it's about 2% of the world population that truly care about their fitness and shape. People out there think bioimpedance machines tell the truth (you seriously think you have 12% bodyfat if you can't even see the joint point between your chest and abs!?).</li><li>Buddy Y knows what anyone who was watched a cheap sitcom knows: there's a thing called bench press. Pushing it further, you get him to know about the Guido work out! (Evil grin).</li><li>Buddy X afterwards thinks Buddy Y is a moron. If you weight 200 pounds and you think lifting 140 is quite an accomplishment, you seriously need therapy. Now, if you weight 140 and lift 200, it's not yet an accomplishment but you are more likely to achieve one. Hah.</li><li>Buddy Y claims he goes to the gym 'on regular basis'. Buddy X suddenly has to live together with Buddy Y and finds out that Mr. 200 pounds is a bedroom worm. Wake yourself up, soldier! Hah.<br /></li></ol>Let's continue with more reasons and suggestions...<br /><ol><li>Never cook at work. Especially in IT jobs, that's like a serious curse on your persona. You are supposed to grow the mandatory belly. That gives you a coolness factor of seventy-five chin-up coupons. Or fast food discounts, whatever comes first.</li><li>Your co-workers will hate you if you are able to fit more than just work in your life.</li><ol><li>Example 1: Look at Buddy X, he's leaving at 4pm! - a 9pm-regular whispers...</li></ol><li>Your co-workers might be a bunch of liberal asses like most commie imitators around the globe. This is fairly usual at Europe nowadays. Now, they wear Levis too.</li></ol>The solution is simple: quit and kick their butts afterwards. For real and great justice. Army way.John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-82613201120317217432007-10-09T08:19:00.000-07:002007-10-09T09:03:22.647-07:00A simple trick to improve Firefox securityFirefox can run with add-ons disabled and what not, but if you run Firefox under Gentoo Linux, using the hardened profile, you can use a simple trick to have two different instances of Firefox available, with different enforcement of memory permissions and the usual PaX features:<br /><br />PaX features disabled via <code>PT_PAX_FLAGS</code>, will allow most plugins to run without issues (although, for example acroread will require specific permissions on its own binary to run):<br /><br /><code>paxctl -pemrxs /usr/lib/mozilla-firefox/firefox-bin</code><br /><br />Recommended settings (that might slow down Firefox in some systems, with noticeable overhead when there's a heavy use of Javascript or AJAX functionality):<br /><br /><code>paxctl -PEmRXs /usr/lib/mozilla-firefox/firefox-bin</code><br /><br />For Acrobat Reader (only Address Space Layout Randomization -ASLR- can be enabled without affecting the functionality, blame the poorly compiled binary):<br /><br /><code>paxctl -pemRXs /opt/Acrobat7/Reader/intellinux/bin/acroread</code><br /><br />You should try to use a different PDF application anyway, if you really trust any of them :)<br /><br />Description of the <code>PT_PAX_FLAGS</code> flags:<br /><pre><br />PaX control v0.4<br />Copyright 2004,2005,2006 PaX Team <pageexec@freemail.hu><br /><br />usage: paxctl <options> <files><br /><br />options:<br /> -p: disable PAGEEXEC -P: enable PAGEEXEC<br /> -e: disable EMUTRMAP -E: enable EMUTRMAP<br /> -m: disable MPROTECT -M: enable MPROTECT<br /> -r: disable RANDMMAP -R: enable RANDMMAP<br /> -x: disable RANDEXEC -X: enable RANDEXEC<br /> -s: disable SEGMEXEC -S: enable SEGMEXEC<br /><br /> -v: view flags -z: restore default flags<br /> -q: suppress error messages -Q: report flags in short format<br /> -c: convert PT_GNU_STACK into PT_PAX_FLAGS (see manpage!)<br /> -C: create PT_PAX_FLAGS (see manpage!)<br /></files></options></pageexec@freemail.hu></pre><p>Simply copy the <code>firefox-bin</code> binary to <code>firefox-secure</code> and apply the different flags as necessary.<br /></p>John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-92220558098006208822007-09-29T02:37:00.000-07:002007-09-29T02:40:39.076-07:00Darth Vader: today we dine with Jesus!<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IByYxkRXjxE/Rv4dWTo3BTI/AAAAAAAAAA4/NpXRSgOEhdo/s1600-h/starwars_supper.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_IByYxkRXjxE/Rv4dWTo3BTI/AAAAAAAAAA4/NpXRSgOEhdo/s400/starwars_supper.jpg" alt="" id="BLOGGER_PHOTO_ID_5115558495805441330" border="0" /></a><br />"Your lack of Vodka supplies is disturbing."<br /></div>John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-57142612450602658162007-09-29T02:33:00.000-07:002007-10-09T13:04:53.742-07:00dynamips (Cisco 7200 Simulator) on Mac OS X<p>It runs <a href="http://hacki.at/7200emu/viewforum.php?f=6">pretty decently</a> so far, just need to get couple things installed manually or via ports if available:</p><p><br /><pre> $ curl 'http://www.mr511.de/software/libelf-0.8.6.tar.gz' -o libelf.tgz<br />$ tar -zxf libelf.tgz<br />$ cd libelf-0.8.6<br />$ ./configure --prefix=/usr/local<br />$ make<br />$ sudo make install ...<br />$ cd ../dynamips-0.2.5 &amp;&amp; make<br />$ ./dynamips ../../c7200-ik9su2-mz.124-13b.bin<br />Cisco 7200 Simulation Platform (version 0.2.5-x86)<br />...<br />Cisco IOS Software, 7200 Software (C7200-IK9SU2-M), Version 12.4(13b), RELEASE SOFTWARE (fc3)<br />Technical Support: http://www.cisco.com/techsupport<br />Copyright (c) 1986-2007 by Cisco Systems, Inc.<br />Compiled Wed 25-Apr-07 03:18 by prod_rel_team<br />Image text-base: 0x60008F10, data-base: 0x6258C180<br />...<br />Router></pre><br /></p><p>Find about <a href="http://www.ipflow.utc.fr/index.php/Cisco_7200_Simulator">dynamips</a> and the <a href="http://www.ipflow.utc.fr/blog">development blog</a>. You already know about Cisco, no link loving for them today. ;-)</p>John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-24506314056183122972007-09-23T09:12:00.000-07:002007-09-29T02:46:43.021-07:00Those games never end<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IByYxkRXjxE/RvaRrTo3BPI/AAAAAAAAAAU/l_eYJXoRHWY/s1600-h/jamp-scores.PNG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_IByYxkRXjxE/RvaRrTo3BPI/AAAAAAAAAAU/l_eYJXoRHWY/s400/jamp-scores.PNG" alt="" id="BLOGGER_PHOTO_ID_5113434600117830898" border="0" /></a><br />One of the most amazing things about gaming, is to find out that a game is still being played after years of its release date. Maybe this is the usual practice for someone used to the likes of old gaming platforms and the availability of emulation software, but we also have the usual late-to-mid 90s "PC game" which became a cult. <a href="http://www.idsoftware.com/games/quake/quake3-arena/">Quake 3</a> is still active and many other fun <a href="http://www.lucasarts.com/">LucasArts </a>games are also actively played in public servers. This is the case of Jedi Academy and a bunch other titles from the same company. The interesting point is how things are shifting towards more massive multi-player games and the role-playing genre, instead of the good old FPS. LucasArts has a rather exciting title (<a href="http://www.lucasarts.com/games/theforceunleashed/">Force Unleashed</a>) in the works which may be only available for consoles, and many other game development companies are doing the same.<br /><br />Something changed in the game industry that makes most companies release the best games primarily for gaming-oriented platforms. If the graphic drivers for Vista didn't suck...John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-58355733858791590542007-09-23T09:06:00.000-07:002007-09-23T09:12:20.508-07:00Back!<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_IByYxkRXjxE/RvaP9Do3BOI/AAAAAAAAAAM/2o_pNz1f6UQ/s1600-h/Picture+1+%282%29.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_IByYxkRXjxE/RvaP9Do3BOI/AAAAAAAAAAM/2o_pNz1f6UQ/s320/Picture+1+%282%29.png" alt="" id="BLOGGER_PHOTO_ID_5113432706037253346" border="0" /></a><br />Hopefully the old content will come up soon, it just takes some time to re-format it for Blogger. Until that is completed, enjoy the usual humor from <a href="http://en.wikipedia.org">Wikipedia</a> <span style="font-style: italic;">free-for-all</span> policy and the amusing changes made to <a href="http://www.openbsd.org">OpenBSD</a>'s head Theo.John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-2611825748002453022006-08-31T02:09:00.000-07:002007-09-29T02:14:19.750-07:00Improving propagation with ionized meteor trails<p>From the <strong>Wikipedia</strong> definition of "Meteor Burst Communications":<br /></p><blockquote><p><strong>Meteor burst communications</strong>, or <strong>MBC</strong> for short, is a <a title="Radio" href="http://en.wikipedia.org/wiki/Radio">radio</a> <a title="Propagation mode" href="http://en.wikipedia.org/wiki/Propagation_mode">propagation mode</a> that exploits the <a title="Ionization" href="http://en.wikipedia.org/wiki/Ionization">ionized</a> trails of <a title="Meteors" href="http://en.wikipedia.org/wiki/Meteors">meteors</a> during <a title="Atmospheric entry" href="http://en.wikipedia.org/wiki/Atmospheric_entry">atmospheric entry</a> to establish brief communications paths between <a title="Radio station" href="http://en.wikipedia.org/wiki/Radio_station">radio stations</a> up to 2200 <a title="Kilometers" href="http://en.wikipedia.org/wiki/Kilometers">kilometers</a> (1400 <a title="Mile" href="http://en.wikipedia.org/wiki/Mile">miles</a>) apart. It is also referred to as <strong>meteor scatter communications</strong> in some documents.</p><p>As the <a title="Earth" href="http://en.wikipedia.org/wiki/Earth">earth</a> moves along its orbital path, tens of thousands of particles known as meteors enter the <a title="Upper atmosphere" href="http://en.wikipedia.org/wiki/Upper_atmosphere">upper atmosphere</a>. When these meteors enter the atmosphere and begin to burn up, they create a trail of ionized particles that can persist for up to several seconds. The ionization trails can be very dense, and used to reflect <a title="Radio wave" href="http://en.wikipedia.org/wiki/Radio_wave">radio waves</a>. The frequencies that can be reflected by any particular ion trail are determined by the intensity of the ionization created by the meteor, often a function of the initial size of the particle, and is generally between 20 MHz and 500 MHz.</p><p>The distance over which communications can be established is determined by the <a title="Altitude" href="http://en.wikipedia.org/wiki/Altitude">altitude</a> at which the ionization is created, the location over the surface of the <a title="Earth" href="http://en.wikipedia.org/wiki/Earth">earth</a> where the meteor is falling, the angle of entry into the atmosphere, and the relative locations of the stations attempting to establish communications. Because these ionization trails only exist for fractions of a second to as long as a few seconds in duration, they create only brief windows of opportunity for communications.</p></blockquote><p>A nice read for anyone interested on radio communications. The <em>known</em> origins go back to 1929 when a Japanese individual, Hantaro Nagaoka, reported the interaction between meteors and radio waves propagation. Later in 1931, it was noticed that long distance propagation occurred at times of major meteor showers for a short time.</p>John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-50931242999474876312006-08-16T20:44:00.000-07:002007-09-29T01:55:33.556-07:00ServerBeach: a highly recommended dedicated hosting provider<p><span lang="EN-US">Sometimes things look like they're not going to work. This often happens when there's a <em>rare</em> condition in place which automatically turns to be a show stopper. When a company has a strict policy (not about the usual encumbrances like file sharing, copyrighted work, etc), it often discourages few potential customers from actually paying for truly nice services. Maybe the company offers competitive pricing and quality of service, but the barrier is just set too <em>low</em> and customers leave in the middle of the process. This isn't the case of <a target="_blank" href="ttp://www.serverbeach.com/catalog/?REF=XETJPJU45K">ServerBeach</a>, originally a Texas-based (thanks Richard for pointing this out) dedicated <a target="_blank" href="http://www.webhostingsearch.com/">hosting</a> provider with probably the <a target="_blank" href="http://www.serverbeach.com/catalog/why_serverbeach.php?REF=XETJPJU45K">most competitive pricing</a> in the market, now owned by the Canadian company <a target="_blank" href="http://www.peer1.net/en/ourcompany.asp">Peer1</a>.</span></p><p><span lang="EN-US">The <strong>balance between costs and quality doesn't get hurt with this company</strong>. Without unnecessary buzz wording, our very recent experience with them shows that the guys in the sales and customer service team can handle very concrete, exceptional requests, which may require handling of serious documentation and other formalities (ex. legal documentation, information that should be handled discretely as confidential, etc).</span></p><p><span lang="EN-US">While the so-called (and nowadays widespread) "sales live-chat" may be the only way for others out there, with these people you can actually <strong>get your phone</strong>, <strong>dial their number and get in touch with the team</strong>. If at first time you think you aren't going to get what you want, you just have to ask them over the phone and discuss on the possibilities. Don't be afraid of explaining your needs, if they handled ours, they can do the same with yours for sure ;).</span></p><p class="MsoNormal"><span lang="EN-US">They are very prompt at giving you possible solutions with your problems, and it’s not the typical sales conversation about the pricing and "extremely good services" of the company. There’s no buzz. <strong>They tell you what you need and what they need and want from you</strong>.</span></p><p class="MsoNormal"><span lang="EN-US">The pricing is the lowest we’ve found so far and it allows you to customize the order and make it suitable for your needs. For a monthly fee (without setup costs!) of <a target="_blank" href="http://www.serverbeach.com/catalog/powerline_2.php?os=redhat&amp;proc=2600&amp;REF=XETJPJU45K">US </a></span><span class="price"><a target="_blank" href="http://www.serverbeach.com/catalog/powerline_2.php?os=redhat&amp;proc=2600&amp;REF=XETJPJU45K">$129.00 you get a pretty decent server</a>, and they allow you (and also support) running game servers, </span><span class="price">good thing for gamers out there seeking decent ping times/latency</span><span class="price">. At such a low price, it’s not wise to avoid giving it a try.</span></p><p class="MsoNormal"><!--more--></p><p class="MsoNormal"><span class="price"><span lang="EN-US">And more when they offer <a target="_blank" href="http://www.serverbeach.com/catalog/index.php?REF=XETJPJU45K"><strong>a discount of US $100</strong></a> (follow the link or use the coupon/referral code: </span><strong><span lang="EN-US">XETJPJU45K)</span></strong><span class="price"><span lang="EN-US"> from their referral program. This helps both the new customer and the referral (by using the coupon you support us and our infrastructure), and it’s a great opportunity for testing their services. If you don’t like it, you can quit at any time.</span></span></span></p><p class="MsoNormal"><span class="price"><span lang="EN-US">They offer a wide variety of possibilities, in both <a target="_blank" href="http://www.serverbeach.com/catalog/powerline.php?os=redhat&amp;REF=XETJPJU45K">GNU/Linux</a> and <a target="_blank" href="http://www.serverbeach.com/catalog/powerline.php?os=win2k3&amp;REF=XETJPJU45K">Microsoft Windows</a>. For GNU/Linux servers you can choose <a target="_blank" href="http://www.centos.org/">CentOS</a>, Red Hat Enterprise Linux 4, Fedora Core 3 or Debian Sarge, and for Windows platforms you have the 2003 series (Web edition, etc) with SQL Server 2000. They offer also many so-called ‘control panel’ options. In the end it’s up to you, you have a wide range of possibilities to choose from.</span></span></p><p class="MsoNormal"><span class="price"><span lang="EN-US">Their administration interface integrates a versatile DNS management tool as well as access to invoices, order history, services ordering, upgrades, tutorials, forums and support tickets. It lets you manage your servers easily and keep track of the financial and technical stuff, all in one place.</span></span></p><p class="MsoNormal"><span class="price"><span lang="EN-US">We highly recommend it, and would like to thank the prompt response from the sales and customer service team.</span></span></p>John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-18461273363198086952006-08-10T02:14:00.000-07:002007-09-29T02:16:56.687-07:00Light over Ruby on Rails "critical security upgrade" 1.1.5<p>Yesterday, the core development team of the Ruby on Rails framework, <a target="_blank" href="http://weblog.rubyonrails.org/2006/8/9/rails-1-1-5-mandatory-security-patch-and-other-tidbits">announced in their weblog</a> a critical security upgrade (1.1.5) which should be applied immediately.</p><blockquote><p>*1.1.5* (August 8th, 2006)<br /><br />* Mention in docs that config.frameworks doesn't work when getting Rails via Gems. #4857 [Alisdair McDiarmid]<br /><br />* Change the scaffolding layout to use yield rather than @content_for_layout. [Marcel Molina Jr.]<br /><br />* <strong>Includes critical security patch</strong></p></blockquote><p>Without <a target="_blank" href="http://en.wikipedia.org/wiki/Full_disclosure">giving details</a> on the issue ("<em>The issue is in fact of such a criticality that we’re not going to dig into the specifics. No need to arm would-be assalients</em>") some people started reviewing the diff between the 1.1.5 and 1.1.4 releases, right away from the Subversion repository. A few hot spots have been indentified so far, one of them being a clear example of a potentially exploitable condition:<br /><code><br /><br />@@ -268,7 +273,7 @@<br />$LOAD_PATH.select do |base|<br /><br />base = File.expand_path(base)<br /><br />extended_root = File.expand_path(RAILS_ROOT)<br /><br />- base[0, extended_root.length] == extended_root || base =~ %r{rails-[\d.]+/builtin}<br /><br />+ base.match(/\A#{Regexp.escape(extended_root)}\/*#{file_kinds(:lib) * '|'}/)<br /><br />|| base =~ %r{rails-[\d.]+/builtin}<br /><br />end<br /><br />else<br /><br />$LOAD_PATH<br /></code></p><p>Some already <a target="_blank" href="http://blog.evanweaver.com/articles/2006/08/10/explanation-of-the-rails-security-vulnerability-in-1-1-4-others">have</a> <a target="_blank" href="http://blog.koehntopp.de/archives/1367-Das-geheimnisvolle-Ruby-On-Rails-Update.html">explained</a> the issue (thanks Brandon for the links), although the <a target="_blank" href="http://groups.google.com/group/ror2ru/browse_thread/thread/e654a6ddedc29e7e/7b90204e50bd7974">development of a proof of concept by some Russian folks</a> brought new issues to the attention of some RoR users. Basically, the fix introduced new problems, apparently.</p><p>The original issue was about the possibility of forcing Ruby to load arbitrary code after uploading a file and injecting a path to the <code>LOAD_PATH</code> variable through the <code>HTTP_LOAD_PATH</code> header (which is managed client-side... thus the user has control over it). The flaw in the routing code would allow this file (ex. a controller) to be loaded and executed. This would happen when requesting an URL with the controller name and one of it's methods, leadind the routing engine to <em>walk</em> through <code>LOAD_PATH</code> for the file and then executing it: <code>http://railshost.tld/evil_controller/the_method</code>.</p><p>Side-note: If <code>$SAFE</code> mode is enabled, at it's lowest level it's supposed to prevent code from being executed from world-writable directories, thus it shouldn't work from directories like <code>/tmp</code>. This probably doesn't apply to certain win32 installations anyways.</p><p>The <em>newly discovered</em> issues are related to <strong>loading built-in</strong> (already available) <strong>code through the autorouting engine</strong>, this causes <strong>different kinds of situations</strong>, <strong>from crashes to infinite recursion bugs</strong> (leading to the infamous '<em>Stack level too dee</em>p' error).</p><blockquote><p>Nope, guys, the <strong>routing problems aren't fully fixed</strong>, and one still can require about 500 .rb files from standard Rails vendor/* directories just typing some text as URL in browser.</p></blockquote><p>Apparently, a bug report ticket was submitted time ago:<br /></p><blockquote><p>Where is test code for that "patch"?<br /><br />And there was already a ticket "<strong>#5408 Unhandled urls can cause loading of arbitrary ruby files</strong>" on Rails TRAC from <strong>06/16</strong> about mentioned issues...</p></blockquote><p>Although, a follow-up comments that <strong>1.1.5 upgrade fixes the situation for everything except Webrick</strong>:</p><blockquote><p>The rails team is trying to contain damage. The fix works on everything except for webrick.</p></blockquote><p>While the current status might have a lower immediate risk, controllers are expected to work all-together with other code, thus managing to execute methods within this controllers could still lead to exploitable conditions (ex. methods involved on filesystem-related operations) and such cases might be waiting for someone to take advantage of them.<!--more--></p><p>Some light over the whole story comes with a <a target="_blank" href="http://www.ruby-forum.com/topic/76671#120473">new follow-up</a>, explaining that actually, directories containing 'lib' will be used for the loading procedure, leading to an exploitable condition (but just a bit more complicated than the original one). This applies if <code>HTTP_LOAD_PATH</code> is still exposed and has direct influence over <code>LOAD_PATH</code>.</p><blockquote><p>actionpack-1.12.4\lib\action_controller\routing.rb: 276<br /><br />base.match(/\A#{Regexp.escape(extended_root)}\<strong>/*#{file_kinds(:lib) * '|'}/</strong>) || base =~ %r{rails-[\d.]+/builtin}<br /><br />base.match(/\A#{Regexp.escape(extended_root)}\<strong>/*(?:#{file_kinds(:lib) * '|'})/</strong>) || base =~ %r{rails-[\d.]+/builtin}</p></blockquote><p>An <a target="_blank" href="http://www.ruby-forum.com/topic/76671#120478">user reported that it affected</a> his <a target="_blank" href="http://mongrel.rubyforge.org/">Mongrel</a> installation too (Maybe <a target="_blank" href="http://www.webrick.org/">Webrick</a> isn't the only one affected? and what about <a target="_blank" href="http://www.lighttpd.net/">Lighttpd</a>?).</p><p><span style="font-weight: bold;">Regular expressions <strike>can be</strike> are evil</span>.</p><p>Another comment on the original announcement refers to the ticket number 3030 (nice one...), but right now the machine serving the RoR development Trac installation seems to be offline or failing to handle requests. Fortunately, <a target="_blank" href="http://66.102.9.104/search?q=cache:bKoCtXO-TykJ:dev.rubyonrails.org/ticket/3030+&amp;hl=en&amp;gl=en&amp;ct=clnk&amp;cd=1">Google cache entry exists</a>.</p><blockquote><p>[PATCH] method_missing exposes private and protected actions</p><p>I was recently trying to create a page that shows something other than the default "Unknown Action" message when a user calls an action that isn't defined in the controller. I <strong>used the method_missing method</strong> to do so which <strong>worked as advertised</strong>. However, I <strong>created an action declared as private in that same controller and the private action is available to anyone including via the web</strong>.</p></blockquote><p>While some people might argue that this makes RoR not suitable for production, every so-called <em>web application framework</em> is affected by security flaws at some point (ex. now). Even those considered to be in a <em>mature state of development</em>. Some issues might be known, others might have <em>gone wild</em>.<br /><br />Anyways, probably a 1.1.6 upgrade is coming soon. Hopefully next time everything will be documented properly, thus users won't have to figure out the problem by themselves, in order to decide if the fix is truly necessary.</p><p>The RoR team has already done a great job for bringing such a flexible and nice framework, not even mentioning the Ruby guys. Please, keep up the nice work ;-)</p>John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-2556295048067862212006-07-30T02:04:00.000-07:002007-09-29T02:07:10.756-07:00A brief look over the crazy domain names business<p>Seems like this "<strong>virtual real-state</strong>" business is getting some publicity this month, after some news and interesting overviews appeared around on blogs and news sites. One of them is written by Dennis Forbes, with title "<strong>Interesting Facts About Domain Names</strong>". He checked thousands of domain names, with different number and word combinations, and surpisingly finding that most if not all, have been taken already. Do they have developed content? Seems like they don't. People starting a web-based business can have a tough time for finding a really good brand they can market and use for word-of-mouth advertisement, as they need to look for more complicated names, hyphen-based ones, using <em>not so nice TLDs</em> (ex. no .com, no .net, no .org).</p><p>Dennis did a certainly nice job for creating charts to show the statistics, one of them on the different possible length letter sequences:</p><div style="text-align: center;"><img alt="Registered letter sequences domain names" title="Registered letter sequences domain names" src="http://www.yafla.com/dforbes/images/domains_registered_letter_sequences.gif" /></div><p>Most companies go for a <strong>domain name broker</strong> or<strong> speculator</strong> to do the job for them, find a <strong>potentially brandable name</strong> and then starting the negotiations with the owner and finally doing the proper transaction via a escrow agent. The point is, <strong>How much do these brokers get out of each operation?</strong> The <strong>usual commission</strong> is around <strong>10-5% of the final value</strong>.</p><p><strong>How much does the owner get?</strong> Well, here we go with the interesting stuff.</p><p><!--more--></p><p>Magazines and blogs that track and report domain name sales exist, one of the most known is <a target="_blank" href="http://www.dnjournal.com/domainsales.htm">DNJournal</a>. Normally these sales are done via brokers or specific sites like <a target="_blank" href="http://sedo.com/?partnerid=25334">Sedo</a> which is recommended by most people working on the business. Let's see some of the sales:</p><p align="center"><strong>Nasty.com</strong> for <strong>US $200,000</strong> at <a target="_blank" href="http://sedo.com/?partnerid=25334">Sedo</a></p><p align="center"><strong>Tonight.de</strong> for <strong>US $14,464</strong> at <a target="_blank" href="http://sedo.com/?partnerid=25334">Sedo</a></p><p align="center"><strong>Mapper.com</strong> for <strong>US $13,500</strong> at <a target="_blank" href="http://sedo.com/?partnerid=25334">Sedo</a></p><p align="center"><strong>MadisonAvenue.com</strong> for <strong>US $23,500</strong> on <strong>private sale</strong></p><p align="left">Everyone wants a <a target="_blank" href="http://www.problogger.net/archives/2005/02/25/earning-a-six-figure-income-from-blogging/">six figure income</a>, but you may think it's difficult as hell to get a brand-able domain name, and then sell it somewhere else. Well, you just need to be creative, expect to spend an initial budget of a couple of bucks and have patience. You're pretty much done. Just a couple of bucks? Nowadays, you can register a domain name for really low prices, for example at <a href="http://www.anrdoezrs.net/click-2072012-10378406">GoDaddy.com </a> <img src="http://www.awltovhc.com/image-2072012-10378406" border="0" height="1" width="1" />with offers of US $1 for each domain name, and <strong>discounts for bulk registering</strong> which is the most used facility by the annoying domain name business guys.</p><br /><p align="left">The next step would be opening an account on <a target="_blank" href="http://sedo.com/?partnerid=25334">Sedo</a> and starting promoting them, listing for sale, or just manage your way to find potential buyers and contact them. An usual recommendation is to stay out of the <em>bad guys</em>, or brokers and individuals which look to be alone but <strong>actually work for a company that "snipes" domain names</strong>.</p><br /><p align="left">There are tools out there that create permutations of words, take keywords and word lists and work upon such data for automatically checking WHOIS information and availability, then reporting each available domain name ready for <em>speculation</em> ;).</p><br /><p align="left">Although, as <a target="_blank" href="http://www.stylegala.com/articles/choosing_a_good_domain_name.htm">the Stylegala article</a> says, it's the brand that matters, not just the keyword. Find something easy to pronounce, easy to write and remember, and most important: something that plays well with marketing. Could people spread the word on your site easily? "<em>Hey mate, google for this stuff</em>!". So, that's it.</p><br /><p align="left">Keyword-based domain names may help for SEO, but in the end people won't buy <em>MyBrand</em> cars. They'll buy <em>just cars</em>... dot com.</p><br /><p align="left">For a <strong>well brandable domain name</strong>, an individual could get <strong>more than US $1,000</strong> always, but it all depends on the buyer and the patience of the seller. <strong>Like in real-state business, time matters</strong>. The benefit is evident, <strong>buy for one or few bucks, sell for thousands</strong>.</p><br /><p align="center"></p><br /><ol><br /> <li><a target="_blank" href="http://www.yafla.com/dforbes/2006/03/29.html#a302">Interesting Facts About Domain Names</a> by Dennis Forbes.</li><br /> <li><strong><a target="_blank" href="http://www.jdoqocy.com/14100lnwtnvADBIDBCDACBEIJFKE" onmouseover="window.status='http://www.godaddy.com';return true;" onmouseout="window.status=' ';return true;">GoDaddy.com Domains Only $1.99</a> <img src="http://www.tqlkg.com/jj101z15u-yJMKRMKLMJLKNRSOTN" border="0" height="1" width="1" /></strong></li><br /> <li><a target="_blank" href="http://www.yafla.com/dennisforbes/Domain-Name-Analysis-More-Fascinating-But-Entirely-Useless-Charts/Domain-Name-Analysis-More-Fascinating-But-Entirely-Useless-Charts.html">Domain Name Analysis - More Fascinating But Entirely Useless Charts</a> by Dennis Forbes</li><br /> <li><a target="_blank" href="http://techdirt.com/articles/20060518/1342242.shtml">93% Of Domain Reigistrations For Scam Sites?</a> at Techdirt.com</li><br /> <li><a target="_blank" href="http://hardware.slashdot.org/hardware/06/07/28/2222244.shtml">Best Brands, Innovative Products</a> at Slashdot</li><br /></ol>John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-75515575178540199542006-07-14T02:02:00.000-07:002007-09-29T02:45:29.548-07:00The other side of VirtualProtect() and friends: DEP evasionAs some people may think that the regression tests which involve <code>VirtualProtect()</code> usage for evading DEP, are wrongly implemented and present a legitimate feature as a potential risk, the images below show "hot spots" in the disassemble of Microsoft Windows Media Player and Skype. The first, as most multimedia applications in either GNU/Linux or Microsoft Windows, needs to generate code on run-time and this requires access to executable memory. Skype was known to break with Data Execution Prevention (DEP) enabled, until it was <em>fixed</em>...<p>Image below shows Skype allocating memory with <code>PAGE_EXECUTE_RADWRITE</code> access:</p><p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_IByYxkRXjxE/Rv4elDo3BXI/AAAAAAAAABY/czcTZ0EPhBA/s1600-h/dep-useless-skype-1.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_IByYxkRXjxE/Rv4elDo3BXI/AAAAAAAAABY/czcTZ0EPhBA/s400/dep-useless-skype-1.png" alt="" id="BLOGGER_PHOTO_ID_5115559848720139634" border="0" /></a></p><blockquote><p><code><strong>PAGE_EXECUTE_READWRITE</strong> 0x40</code><br /><br /><strong>Enables execute, read, and write access to the committed region of pages</strong>.</p></blockquote><p>Allocating memory with such a nice permission is for sure an easy way to get around DEP-related compatibility issues. Basically, DEP will be useless. If the memory area allocated, receives some-how user input (or at least is partially controlled by another process), code could be written and then executed without any barrier, including DEP <em>protection</em>.<br /></p><blockquote><p><strong> 19.01.2006 version 2.0.0.73</strong><br /></p><ul><li>bugfix: crashes when DEP is supported in hardware</li></ul></blockquote><p>Now let's look over Windows Media Player....</p><p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_IByYxkRXjxE/Rv4eFDo3BUI/AAAAAAAAABA/ibzW3SJ3oWg/s1600-h/dep-useless-wmplayer-1.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_IByYxkRXjxE/Rv4eFDo3BUI/AAAAAAAAABA/ibzW3SJ3oWg/s400/dep-useless-wmplayer-1.png" alt="" id="BLOGGER_PHOTO_ID_5115559298964325698" border="0" /></a></p><p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_IByYxkRXjxE/Rv4eQDo3BVI/AAAAAAAAABI/Fvjy2ewW1rI/s1600-h/dep-useless-wmplayer-2.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_IByYxkRXjxE/Rv4eQDo3BVI/AAAAAAAAABI/Fvjy2ewW1rI/s400/dep-useless-wmplayer-2.png" alt="" id="BLOGGER_PHOTO_ID_5115559487942886738" border="0" /></a></p><p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IByYxkRXjxE/Rv4eXTo3BWI/AAAAAAAAABQ/bpP0cl50E7A/s1600-h/dep-useless-wmplayer-3.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_IByYxkRXjxE/Rv4eXTo3BWI/AAAAAAAAABQ/bpP0cl50E7A/s400/dep-useless-wmplayer-3.png" alt="" id="BLOGGER_PHOTO_ID_5115559612496938338" border="0" /></a></p><p>It doesn't matter if we allocate memory with RWX (Read-Write-Execute) access or we just allocate it with write access and then change it to be executable. In any case, <strong>if memory becomes executable after writing from user-input or similar unsafe sources, DEP will be unable to protect against it</strong>, as <strong>there's no enforcement in place for memory access permissions</strong>. You just have to rely on the vendor, and trust that they didn't go the easy way and didn't fix their code, but just applied a workaround.</p><p><strong> For further information:</strong><br /></p><ol><li><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/virtualprotect.asp">MSDN Memory Management functions: VirtualProtect()</a></li> <li><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/virtualalloc.asp">MSDN Memory Management functions: VirtualAlloc()</a></li> <li><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/memory_protection_constants.asp">MSDN Memory Protection Constants</a></li> <li><a href="http://woct-blog.blogspot.com/2005/01/dep-evasion-technique.html">Blog on Cyberterror: A DEP evasion technique</a></li> <li><a href="http://blogs.zdnet.com/Ou/?p=148">ZDnet blogs: Skype 2.0 looked like a virus</a></li> <li><a href="http://www.skype.com/download/skype/windows/changelog.html">Skype change-log</a></li> <li><a href="http://www.ngssoftware.com/papers/xpms.pdf">Buffer Underruns, DEP, ASLR and improving the Exploitation Prevention Mechanisms (XPMs) on the Windows platform. By David Litchfield, NGSSoftware Insight Security Research (NISR).</a></li><br /></ol>John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-561498884283389972006-07-11T02:00:00.000-07:002007-09-29T02:02:02.080-07:00Browser fun everyday<p>The people from the <a href="http://metasploit.com/">Metasploit</a> project came up with a certainly <a href="http://metasploit.blogspot.com/2006/07/month-of-browser-bugs.html">nice idea</a>: a blog-style publication for releasing web browser bugs and security flaws on a daily basis for one month. A rush of issues have been <a href="http://browserfun.blogspot.com/">published</a>, affecting a wide range of browsers,<strong> from Microsoft Internet Explorer to Safari</strong>. Just for the shake of <strike><em>mayhem</em></strike> and <strike><em>destruction</em></strike>, some issues will get published over here as well, discovered using either their tools (<a href="http://metasploit.com/users/hdm/tools/domhanoi/domhanoi.html">DOM-Hanoi</a>, etc) or the under-going project for developing an easy to use QA and vulnerability assessment framework, <strong>QANUM</strong> (<a href="http://pearls.tuxedo-es.org/win32/qanum-demo-1/">first show-case is out</a>...).Today's one is a simple and <span style="font-style: italic;">not-really-useful</span> NULL pointer dereference in the Macromedia Flash ActiveX component function <code>LoadMovie()</code>:</p><p><code> a = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');<br /><br />try { a.LoadMovie(-1, "bogus.swf") } catch(e) { } </code></p><p>The bug is triggered by passing a non-zero value to the first parameter (which represents the layer for the loaded movie). Nothing really interesting, right? It seems already fixed in Flash 9 (finally after remaining in 8 for quite a bit of time), and it seems there was <a href="http://www.securitytracker.com/alerts/2004/Apr/1009674.html">previous knowledge of the bug</a>, two years ago. Nice timing.</p>John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-49277817725084502922006-06-14T01:55:00.000-07:002007-09-29T02:00:05.518-07:00Zero-day buzz and unpatched, even ancient security flaws<p><a target="_blank" href="http://portal.spidynamics.com/blogs/msutton/default.aspx">Michael Sutton</a> on the 0day buzz. An interesting read about how old vulnerabilities can be a serious problem to lazy administrators, or for those who get distracted by the rush of so-called advisories and other linenoise. It's nothing new but it doesn't matter how many times you tell the <span style="font-style: italic;">monkey</span> to stop throwing the banana peel to the floor. <span style="font-style: italic;">Monkeys</span> only care on the banana itself.<br /></p><blockquote><p>The point is, that <strong>new vulnerabilities draw attention</strong>. <strong>The ones that scare me are the old ones, the ones that have been forgotten about</strong>. Targeted attacks require specific vulnerabilities but many, if not most attacks, choose not to discriminate. The attacker simply wants control of as many machines as possible to send spam, phish for credit card numbers, etc. In this case, any old vulnerability will do, so long as a multitude of machines remain unpatched.</p></blockquote><p>HD already talked on similar stuff in the <strong>Metasploit Project</strong> blog, how old and relatively new web browser flaws are being used to spread malware (well, adware would be more appropriate).<br /></p><blockquote><p>This combination of automated fingerprinting followed by a targeted attack should serve as <strong>wake-up call to anyone who believes that a patched flaw is no longer a significant threat</strong>. The <strong>Java ByteVerifier bug used in this script was fixed in April of 2003</strong>, <strong>over three years ago</strong>, yet <strong>still works well enough to be a key component of this malware installer</strong>. The fact is that an advanced malware installer is capable of attacking almost any browser or operating system and still succeed against enough people to make money for the attacker.</p></blockquote><p>The mandatory links to the news and references:</p><ol><li><a target="_blank" href="http://portal.spidynamics.com/blogs/msutton/archive/2006/09/01/222.aspx">Why all the hype about 0day?</a> Michael Sutton's Blog</li><br /> <li><a target="_blank" href="http://www.metasploit.com/research/misc/webattacker/">Internet Drive-By Shootings</a> from The Metasploit Project</li><br /> <li><a target="_blank" href="http://metasploit.blogspot.com/2006/07/internet-drive-by-shootings.html">Internet Drive-By Shootings</a> in the Metasploit Project blog</li><br /> <li><a target="_blank" href="http://it.slashdot.org/article.pl?sid=06/09/01/2146243">Why all the hype about 0day?</a> at Slashdot.org</li><br /> <li><a href="http://www.eweek.com/article2/0,1895,1987275,00.asp">WebAttacker Unseats WMF as Most Popular Exploit</a></li><br /></ol>John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-61277006252171514662006-06-13T02:07:00.000-07:002007-09-29T02:09:43.092-07:00Microsoft Windows Vista beta-2build 5384: ASLR testing<p>Only heap is randomized and it's just around 7 bits (some times reported 5, 4, none and at most 8 bits), DLL base randomization only takes place in boot time and it seems to be just incremental in most cases (and affects only core system libraries like <code>kernel32.dll</code>), thus likely predictable:</p><p><code> kernel32.dll: GetTickCount()<br />774A910E<br />[reboot]<br />774F910E<br />[reboot]<br />77B6910E<br /></code></p><p>No <code>VirtualProtect()</code> restrictions exist, thus all tests of that category fail. With DEP policy set to <code>OptOut</code>, the basic memory permissions enforcement tests have all positive results.<br /></p><blockquote><p>Looking forward to test the stack randomization and other improvements in post-beta-2. Right now, the results show the <strong>effects of a weak implementation</strong>, the <strong>heap randomization is too low for being considered truly effective</strong> and the fact that DLL base randomization is performed on boot time doesn't <strike>help</strike>. Basically, this is <em>the same as a <strong>Windows XP Service Pack 2</strong> system with DEP policy set to OptOut and hardware support for the NX bit</em>.</p></blockquote><p>Vista Probe reports "No Randomization" for the DLL base test due to the way it's done. It expects the executable to perform runtime randomization of the base address, but this is obviously not the case. It will work fine for both stack and heap randomization, as well as EXE base randomization (if it can be enabled on third-party applications).</p><p>A new article by Michael Howard, but still no information available with an in-depth explanation of how ASLR is implemented in Vista:<br /></p><ul><li><a href="http://blogs.msdn.com/michael_howard/archive/2006/06/12/628207.aspx">Windows Vista Security – A Bigger Picture</a></li></ul>John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-53636324814376124792006-06-11T02:23:00.000-07:002007-09-29T02:28:55.977-07:00Microsoft Windows Vista: Measuring the security enhancements.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_IByYxkRXjxE/Rv4aKjo3BRI/AAAAAAAAAAk/bKBf6k2dAM8/s1600-h/vistaprobe-beta2-5384.PNG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_IByYxkRXjxE/Rv4aKjo3BRI/AAAAAAAAAAk/bKBf6k2dAM8/s400/vistaprobe-beta2-5384.PNG" alt="" id="BLOGGER_PHOTO_ID_5115554995407095058" border="0" /></a>A few days ago, Michael Howard, a member of the Microsoft Security Engineering group, made available a short description of what's supposed to be Address Space Layout Randomization (ASLR) in Vista.<br /><blockquote><p>• Stacks and Heap are randomized (stack-randomization is on post-Beta 2)</p><p>• EXEs and DLLs shipping as part of the operating system are randomized</p><p>• All other EXEs and DLLs will need to explicitly opt-in via a new PE header flag; by default they will not be randomized. 'Note that DLLs marked for randomization, such as system DLLs, will be randomized in every process (regardless of whether other binaries in that process have opted-in or not.</p></blockquote><blockquote><p><a href="http://blogs.msdn.com/michael_howard/archive/2006/06/06/619163.aspx">http://blogs.msdn.com/michael_howard/archive/2006/06/06/619163.aspx</a></p></blockquote><p>As an experiment, the enhancements were tested by using a modified version of the paxtest tool, originally developed by Peter Buser and used for testing the capabilities of PaX and other projects, as a regression test suite capable of guessing how many bits are currently being randomized in a concrete section of memory, for example one allocated in the heap; among other tests (ie. return-to-function, etc). While the tests are pretty simple, they provide <strong>unbiased proof of the strength or weakness of the implementation being examinated</strong>. The information disclosed by Michael, days before the above quoted article, commented on the "probability" of guessing the right address on exploitation time:<br /></p><blockquote><p>In the case of Windows Vista Beta 2, a DLL or EXE could be loaded into any of <strong>256 locations</strong>, which means an attacker has a <em>1/256</em> chance of getting the address right. In short, this makes it harder for exploits to work correctly.</p></blockquote><p>It's worth noting that no snake-oil is present. He points out that, actually, ASLR makes successful exploitation of memory corruption-related issues harder. And that's completely true. Although, we are missing something here. <strong>The point is how difficult exploitation will be</strong>. And definitely, the current approach implemented for Vista is, with no offense meant to anyone (and again, no <strike>bias</strike> here), useless.</p><p>For an application that suddenly dies as of an attack or repeated attempts of exploitation, ASLR is a good option. Although, if we look over applications that actually re-spawn child processes and the like, the lower the randomization is, the higher the probability of successful exploitation in less time. What applications behave in such a suicide way? Apache is a good example :)<br /></p><p>A GUI, user-friendly regression test suite is in development, which will also properly test the "<span id="ctl00_LibFrame_MainContent"><em>Security Enhancements in the CRT</em> " introduced in Visual Studio 2005. It could be, to make an analogy, the IBM Stack Smashing Protector (aka ProPolice) for Windows-based systems.<br /></span></p><p>Some references for further information:<br /> </p><ol><li><a href="http://msdn2.microsoft.com/en-us/library/8ef0s5kh.aspx">Security Enhancements in the CRT</a></li> <li><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncode/html/secure03102004.asp">Saying Goodbye to an Old Friend</a></li> <li><a href="http://msdn2.microsoft.com/en-us/library/wd3wzwts.aspx">Security-Enhanced Versions of CRT Functions</a></li> <li><a href="http://blogs.msdn.com/michael_howard/">Michael Howard's Web Log</a></li> <li><a href="http://pax.grsecurity.net/docs/aslr.txt">Address Space Layout Randomization</a></li> <li><a href="http://blogs.msdn.com/michael_howard/archive/2006/06/06/619163.aspx">Windows Vista Address Space Layout Randomization – What is Randomized?</a></li> <li><a href="http://blogs.msdn.com/michael_howard/archive/2006/05/26/608315.aspx">Address Space Layout Randomization in Windows Vista</a></li></ol>John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-75346061374079343552006-06-10T02:30:00.000-07:002007-09-29T02:33:41.411-07:00Game bugs?: Jedi Academy, gravity out<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_IByYxkRXjxE/Rv4bvDo3BSI/AAAAAAAAAAs/YL7cCacQ4Z8/s1600-h/ja-gravity-zero.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_IByYxkRXjxE/Rv4bvDo3BSI/AAAAAAAAAAs/YL7cCacQ4Z8/s400/ja-gravity-zero.png" alt="" id="BLOGGER_PHOTO_ID_5115556721983948066" border="0" /></a>Playing multi-player online games is fun. No one else doubts that, well, no average human at least. But some people, as it happens mostly everywhere, also have fun making the experience of others the worst possible. From so-called "<strong>spawn killers</strong>" (yes, those who don't let you play even a second, throwing thermal detonators right next to you when you get "spawned" in the area) to spammers (those who should keep out of playing for a while, as announcing their new kill record gets boring for most of us) and the more-than-hated <em>h4x0rs.</em> Those are the real problem. Either an <strong>unfair administrator</strong> or a <strong>player with some skills and knowledge</strong>, <strong>can take advantage of specific problems inside the game engine to do all shorts of tricks</strong>.<p>Today's episode is about a little trick that will make most Jedi Academy players out there smile the first time they see it in action. Beware of bugs, <em>gravity</em> doesn't seem to affect them.</p><blockquote><p><strong>Short explanation</strong>: gravity value is used to calculate the height you can gain when jumping, the velocity needed to get back to the ground, etc. The problem is that, <u>if gravity value changes when a player is jumping or "flying"</u>, <strong>the new constants are applied immediately</strong>. The result in this case, is first putting the player characters at the highest height and then literally crunching them into the ground.</p></blockquote>John Doenoreply@blogger.comtag:blogger.com,1999:blog-2097135883039084989.post-1514303124017727712006-06-06T02:17:00.000-07:002007-09-29T02:20:34.418-07:00Smells like... snake-oil?<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IByYxkRXjxE/Rv4YyTo3BQI/AAAAAAAAAAc/M9xMlclluH4/s1600-h/snake-oil.gif"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_IByYxkRXjxE/Rv4YyTo3BQI/AAAAAAAAAAc/M9xMlclluH4/s400/snake-oil.gif" alt="" id="BLOGGER_PHOTO_ID_5115553479283639554" border="0" /></a><br /><ul><li><a href="http://www.interhack.net/people/cmcurtin/snake-oil-faq.html">Snake Oil Warning Signs: Encryption Software to Avoid</a></li> <li><a href="http://www.guillermito2.net/stegano/index.html">Steganography snake-oil exposed</a></li> <li><a href="http://www.philzimmermann.com/EN/essays/SnakeOil.html">Beware of Snake Oil</a></li> <li><a href="http://www.schneier.com/crypto-gram-9902.html#snakeoil">Crypto-Gram Newsletter: Snake Oil</a></li> <li><a href="http://www.metasploit.com/research/vulns/pgp_slackspace/">PGP Desktop Wipe Free Space Flaw</a></li></ul>John Doenoreply@blogger.com