<?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>Wololo.net &#187; 2010 &#187; February</title> <atom:link href="http://wololo.net/wagic/2010/02/feed/" rel="self" type="application/rss+xml" /><link>http://wololo.net/wagic</link> <description>Wagic, Half-Byte Loader, PSP / PS Vita Programming, and Homebrews</description> <lastBuildDate>Mon, 21 May 2012 12:47:38 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <item><title>Writing a binary Loader</title><link>http://wololo.net/wagic/2010/02/27/writing-a-binary-loader/</link> <comments>http://wololo.net/wagic/2010/02/27/writing-a-binary-loader/#comments</comments> <pubDate>Sat, 27 Feb 2010 10:58:19 +0000</pubDate> <dc:creator>wololo</dc:creator> <category><![CDATA[c++]]></category> <category><![CDATA[psp dev]]></category> <category><![CDATA[security]]></category><guid isPermaLink="false">http://wololo.net/wagic/?p=1036</guid> <description><![CDATA[After studying both the Gripshift and the MOHH exploit, I now feel confident to write a little guide on creating a binary loader. What This article is about The first step to running homebrew on a PSP is to find a user mode exploit, which is done by taking control of the Ram through techniques [...]]]></description> <content:encoded><![CDATA[<p>After studying both the Gripshift and the MOHH exploit, I now feel confident to write a little guide on creating a binary loader.</p><h3>What This article is about</h3><p>The first step to running homebrew on a PSP is to find a user mode exploit, which is done by taking control of the Ram through techniques such as a <a href="http://wololo.net/wagic/2009/03/11/finding-gamesaves-exploits-on-the-psp/">buffer overflow in a game </a>or <a href="http://wololo.net/wagic/2009/04/13/eggsplanations/">crafted images</a>.<br /> Imagine that you&#8217;ve found such a vulnerability, and have full control of our beloved variable $ra. The next step for you is to create a proof of concept. The basic idea is to create a binary loader, that is, a piece of code able to load another piece of code from a file on the memory stick, then run it.<br /> Writing a binary loader is fairly simple once you know how to do it, but it relies on lots of tribal knowledge, as there is no central place that gathers that kind of information.</p><p>So there it is <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br /> <strong>Disclaimer:</strong> I just learned how to do it myself very recently. Some of the techniques I describe here might not be optimal. I also suck big time at MIPS. Oh, and I tend to write a ruby script for things that could probably go in a Makefile. As usual, take everything you read on the internet with a grain of salt.</p><p>In this guide I&#8217;m assuming you already have control of the variable $ra and can change it to whatever value you want. I&#8217;m taking the example of a savegame. Some steps are fairly different if you found a vulnerability in the XMB, but overall the principles are the same. I&#8217;m assuming you know how to use PSPLink, and have a fair knowledge on how to use a hexeditor, scripting languages, a bit of C and/or MIPS,  basic Makefiles&#8230;roughly, the kind of stuff you learn writing homebrews <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><h3>Tools you will NEED (Download links)</h3><ul><li>prxtool and psplink are part of the <a href="http://www.jetdrone.com/minpspw">minimal psp sdk</a>. Honestly you should already have this installed if you are reading this.</li><li>For windows users, <a href="http://www.cygwin.com/">cygwin</a> might be useful, and install ruby with it if you plan to run my scripts</li><li>A Hex editor (on Windows I use <a href="http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm">XIV32</a>)</li><li><a href="http://www.wololo.net/downloads/index.php/download/1255">Savegame Deemer</a> to work on savegame data easily</li><li><a href="http://www.wololo.net/downloads/index.php/download/1254">PRXDecrypter</a> to decrypt Eboots</li><li><a href="http://wololo.net/downloads/index.php/download/945">SED</a> (Savegame Encrypter/Decrypter) to encrypt your exploit once it&#8217;s ready</li><li>Silverspring&#8217;s libdoc (<a href="http://silverspring.lan.st/5.00/500_psplibdoc.zip">for 5.00</a>)</li></ul><h3>Contents</h3><p>Writing a binary loader from a savegame exploit requires the following steps:</p><ol><li>Find a place to jump to</li><li>Find the function imports</li><li>Compile a binary loader</li><li>Inject your binary loader in savegame</li><li>Write a SDK adapted to your game</li><li>Create a small &#8220;proof of concept&#8221; binary file (a.k.a. &#8220;Hello World&#8221;)</li><li>Reencrypt your savegame</li></ol><h3>Find a place to Jump to</h3><p>Run psplink and crash your game like you &#8220;usually&#8221; do. Keep that running, you&#8217;ll need it for this step.</p><p style="text-align: center;"><a href="http://wololo.net/wagic/wp-content/uploads/2010/02/x3e1w0.jpg"><img class="size-medium wp-image-1049 aligncenter" title="x3e1w0" src="http://wololo.net/wagic/wp-content/uploads/2010/02/x3e1w0-300x151.jpg" alt="" width="300" height="151" /></a></p><p style="text-align: left;">You have control of $ra, and need to have it jump to wherever you will inject your binary loader code. Basically, your code will be injected in the savegame, so you need to know where in Ram that piece of the savegame ends up. To do that, you need to visually compare your Ram and the savegame. To do a dump of your ram just after you found a crash, type <em>savemem 0&#215;08800000 200000000 memdump.bin</em> in psplink. This will create a memdump.bin file on your drive, which should be roughly 24MB.<br /> Now look for a very recognizable pattern in your savegame. A series of letters or bytes that you can easily look for. And look for these values in your Ramdump as well (with an hexeditor, obviously). In the image below, my ramdump is on the left, and the savegame is on the right.</p><p style="text-align: center;"><a href="http://wololo.net/wagic/wp-content/uploads/2010/02/dump.png"><img class="size-medium wp-image-1038 aligncenter" title="dump" src="http://wololo.net/wagic/wp-content/uploads/2010/02/dump-300x94.png" alt="" width="300" height="94" /></a></p><p>Once you&#8217;ve found them in you&#8217;re ramdump, you pretty much know where you will want to jump, AND where you will inject the code in your savegame. In this example, my pattern is at offset <em>0x43F0 </em>in the savegame, and at offset <em>0x32C3E0 </em>in the ramdump. That last one is actually <em>0&#215;8800000 + 0x32C3E0</em> (<em>0x08B2C3E0</em>) in ram since we dumped our file starting at <em>0&#215;08800000</em>. You can check if your psplink is still open: you should find your pattern if you type:  <em>memdump 0x08B2C3E0 20</em> (replace the address with whatever you chose, of course).<br /> You want to make sure the place you jump to is exactly equivalent to the pattern you chose in your savegame, over a few hundred bytes. If there are differences in this area between your savegame and the ram, it means this savegame block is not entirely loaded at this position, and it will make your code injection more difficult (you want your code to be in one block, not splattered all over the Ram <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> )<br /> So you have step one: we found a nice place to jump to (<em>0x08B2C3E0</em>), and where in the SDDATA.BIN we will inject our binary loader (<em>0x43F0)</em>.</p><h3>Find the function imports</h3><p>OK, this one sounds extremely difficult, as if it required lots of exceptional knowledge: that&#8217;s not the case. Or, rather, we have tools that do the work for us.<br /> When you write a homebrew, you call functions of the PSPSDK. The position of these functions in Ram is not known in advance in the case of a game exploit, so we need to find them and &#8220;redirect&#8221; them correctly.<br /> In the case of a game, you&#8217;ll want to extract the &#8220;EBOOT.BIN&#8221; from your game and decrypt it. The EBOOT.BIN is inside the iso of your game, so to get it you will need an iso of your game. If the game is an UMD, it&#8217;s very easy to do on any custom firmware with the &#8220;USB Drive&#8221; option that you can find in any custom firmware. (If the game is a PSN game, you&#8217;ll need NPDecryptor to create the ISO).</p><p style="text-align: center;"><a href="http://wololo.net/wagic/wp-content/uploads/2010/02/iso.png"><img class="size-medium wp-image-1040 aligncenter" title="iso" src="http://wololo.net/wagic/wp-content/uploads/2010/02/iso-300x206.png" alt="" width="300" height="206" /></a></p><p>Most likely, this &#8220;EBOOT.BIN&#8221; is encrypted, so you additionally need to decrypt it with prxdecrypter.</p><p style="text-align: left;"><img class="size-full wp-image-1037 aligncenter" title="CapPrxDecrypter23a" src="http://wololo.net/wagic/wp-content/uploads/2010/02/CapPrxDecrypter23a.jpg" alt="" width="480" height="272" /><br /> Once you have your decrypted EBOOT.BIN handy, use prxtool to retrieve information from it, with the following syntax:</p><blockquote><p style="text-align: left;">prxtool -f EBOOT.BIN</p></blockquote><p style="text-align: left;">This will give you the actual addresses of each function that the game imports and uses. These are the functions that you will be able to use in your homebrews or in the binary loader.</p><p style="text-align: left;"><img class="size-full wp-image-1042 aligncenter" title="prxtool" src="http://wololo.net/wagic/wp-content/uploads/2010/02/prxtool.png" alt="" width="425" height="670" /><br /> You&#8217;ll notice that instead of function names, you get a library name followed by hexa values. From there you can either manually do the associations, or (better) get an xml file with the nids/function names associations. Such xml files can be found on silverspring&#8217;s website (http://silverspring.lan.st/).<br /> Once you have one of those xml nids files, just type</p><blockquote><p style="text-align: left;">prxtool -f -n yourfile.xml EBOOT.BIN</p></blockquote><p style="text-align: left;">which will give you a much more readable output <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p style="text-align: left;"><a href="http://wololo.net/wagic/wp-content/uploads/2010/02/prxtool2.png"><img class="size-full wp-image-1043 aligncenter" title="prxtool2" src="http://wololo.net/wagic/wp-content/uploads/2010/02/prxtool2.png" alt="" width="409" height="674" /></a>Keep this output somewhere!<br /> If prxtool complains about your file not being a prx&#8230; you probably screwed up the decryption process at some point, or you used the wrong EBOOT.BIN (there are several of those in the ISO, most of them are dummies)</p><h3>Compile a binary loader</h3><p style="text-align: left;">For this step I suggest you download my patapon exploit SDK as it is a good example. This SDK can be found as a part of HBL, <a href="http://code.google.com/p/valentine-hbl/source/browse/#svn%2Ftrunk%2FSDK">here</a>.<br /> The binary loader itself is pretty simple to write, directly in assembly. You could write it in C based on the SDK you will create (that I describe below), but my inspiration here is the sparta_sdk which has its binary loader written in mips assembly. Assembly is a bit tougher than C/C++, but in this case, we are simply going to adapt my patapon work to fit your game, so it&#8217;s only a few replacements here and there.</p><p style="text-align: left;">Note: this work is heavily inspired by Mattiaz&#8217;s &#8220;sparta sdk&#8221;, it is recommended that you download it too if you want to see the differences, which can be educational.</p><p style="text-align: left;">Open the file &#8220;<a href="http://valentine-hbl.googlecode.com/svn/trunk/SDK/binLoader/loader.s">loader.S</a>&#8221; from the patapon binloader folder.</p><p style="text-align: left;"><a href="http://wololo.net/wagic/wp-content/uploads/2010/02/loader.png"><img class="size-medium wp-image-1041 aligncenter" title="loader" src="http://wololo.net/wagic/wp-content/uploads/2010/02/loader-282x300.png" alt="" width="282" height="300" /></a>Basically what we want to replace here are the function addresses used by the patapon binLoader. I used addresses that made sense for Patapon, but not for your game. So for the 4 functions involved (<em>sceIoOpen, sceIORead, sceIOClose, sceKernelDcacheInvalidateRange</em>) , you will take your list of imports generated earlier, and replace the &#8220;patapon&#8221; value with the value for your game. In my example, I replaces <em>0x08A69854</em> (the value from the Gripshift exploit) with <em>0x08C88590 </em>(the value from the patapon exploit) for <em>sceIoClose</em>, and so on.<br /> Additionally, you need to update the address where the filename is stored. The filename is the name of your binary, and is traditionally<em> ms0:/h.bin</em>. You need to add this string in your savefile somewhere around your jump location, and inject this address into the asm code. In my example below, I put the file name &#8220;<em>0xF0</em>&#8221; bytes after my jump point, so I changed the <em>0xC0</em> from the sparta sdk into F0. Don&#8217;t forget to put a &#8220;0&#215;00&#8243; at the end of your string!! Note that this also means that the length of my compiled binary loader has to be less than <em>F0</em> bytes, otherwise when I inject it I will overwrite my file name  :&#8217;(</p><p style="text-align: left;"><a href="http://wololo.net/wagic/wp-content/uploads/2010/02/saveplain_inject.png"><img class="size-medium wp-image-1045 aligncenter" title="saveplain_inject" src="http://wololo.net/wagic/wp-content/uploads/2010/02/saveplain_inject-299x192.png" alt="" width="299" height="192" /></a>That&#8217;s pretty much the only things you have to change. We&#8217;ll now compile this file and inject it in the SDDATA.BIN.<br /> Compiling assembly is not especially difficult as all the tools for that are provided in the PSPSDK. Again, taking inspiration from the spartaSDK, here are the needed compilation commands:</p><p style="text-align: left;"><em>psp-as loader.s<br /> psp-objcopy -O binary a.out a.bin</em></p><p style="text-align: left;">The first step compiles the code, and the second step creates a binary version of it.</p><h3>Inject the binary loader in your Savegame</h3><p style="text-align: left;">Once you&#8217;ve got a compiled version of your binLoader, it is then easy to inject it into your save file, either manually with a copy paste, or through the scripting language of your choice. The only thing to remember is that you want to inject it at the precise location matching $ra, that you found above in this article.</p><p>For the injection, I have a small ruby script that takes a valid SDDATA.BIN file and loads the exploit + the compiled binary loader into it directly. I&#8217;m only providing a picture of the code but you can also find the code <a href="http://valentine-hbl.googlecode.com/svn/trunk/SDK/binLoader/saveplain/inject.rb">here</a>. I suggest you go with the method you prefer (and the language you prefer) for injecting your code.</p><p><a href="http://wololo.net/wagic/wp-content/uploads/2010/02/ruby.png"><img class="size-medium wp-image-1044 aligncenter" title="ruby" src="http://wololo.net/wagic/wp-content/uploads/2010/02/ruby-300x279.png" alt="" width="300" height="279" /></a>Note that at this step, you already have a way to create your hello world (in asm) and inject it instead of the binary loader. It&#8217;s actually not necessarily a bad idea to try much easier code (such as calling sceKernelExitGame) before aiming for a binary loader, to make sure your thing works.</p><h3>Write a SDK</h3><p class="size-medium wp-image-1046 aligncenter" style="text-align: left;" title="sdk">This sounds difficult. It&#8217;s not. Once you have your function imports, writing the SDK is a piece of cake. What you need to do here is take the list of function imports you retrieved through prxtool, and write a file named sdk.S just like <a href="http://valentine-hbl.googlecode.com/svn/trunk/SDK/sdk.S">the one in the patapon SDK</a>. It&#8217;s pretty straight forward. In my example, I replaced <em>0x08A69854</em> with <em>0x08C88590</em> and so on, just like I did with the .S. This is assembly, but it&#8217;s dead simple, as you don&#8217;t even need to look for what the functions actually do.</p><p style="text-align: left;"><a href="http://wololo.net/wagic/wp-content/uploads/2010/02/sdk_asm.png"><img class="size-medium wp-image-1047 aligncenter" title="sdk_asm" src="http://wololo.net/wagic/wp-content/uploads/2010/02/sdk_asm-241x300.png" alt="" width="241" height="300" /></a>In my case I wrote a <a href="http://valentine-hbl.googlecode.com/svn/trunk/SDK/buildsdk.rb">simple ruby script</a> that parses my prxtool &#8220;functions imports&#8221; file into a sdk.S  function, but there probably are some options in prxtool to help you with that task.<br /> You then copy the <a href="http://valentine-hbl.googlecode.com/svn/trunk/SDK/sdk.h">sdk.h from the patapon exploit</a>, and that&#8217;s it. One .S file and one .h, and you&#8217;re done!</p><h3>Write a Hello world</h3><p style="text-align: left;">Once you&#8217;ve got your sdk, writing a Hello World is extremely simple. Actually, you can even cheat and reuse <a href="http://valentine-hbl.googlecode.com/svn/trunk/SDK/main.c">the sample provided in the patapon SDK</a>. Be sure to start with the smallest file possible, just to make sure your code actually works. A simple proof of concept is just some C code that calls &#8220;<em>sceKernelExitGame()</em>&#8220;. That&#8217;s enough for you to confirm that your SDK is roughly correct and that your binary Loader (coded previously) does its job. Additional samples can also be found in the sparta SDK.</p><p style="text-align: left;"><a href="http://wololo.net/wagic/wp-content/uploads/2010/02/hello.png"><img class="size-full wp-image-1039 aligncenter" title="hello" src="http://wololo.net/wagic/wp-content/uploads/2010/02/hello.png" alt="" width="260" height="116" /></a>The sparta_sdk makefiles might need a few changes since we are using a different way of writing the SDK(take inspiration from the Makefile from patapon rather than that from sparta in that case)<br /> The output of the compilation should be a <em>h.bin</em> file. If your binary loader loads <em>ms0:/h.bin</em>, then just put that h.bin at the root of your memory stick, put your binaryLoader SDDATA.bin in the correct subfolder of the SAVEPLAIN directory, and fire up your game (with SGDeemer and psplink enabled of course), trigger the exploit&#8230;and your hello world should appear <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><h3>TroubleShooting</h3><p style="text-align: left;">There might be several reasons for your exploit to fail at that point. Although computer programming <em>IS</em> exact science, it&#8217;s extremely easy to do stupid mistakes if your working environment is not &#8220;good&#8221; enough. At that point, PSPLink is the key to your success. If you get a crash, try to investigate the Ram. Are you actually jumping to the correct location? Is your binary loader really at that location? Is it entirely there or did it get truncated for some weird reason? Add breakpoints to your binary loader to see if it actually runs. When you are sure the binary Loader runs, make sure it really loads your hello world where you expect it to be loaded in Ram. If so, add breakpoints to your hello world as well. Or simplify it.<br /> All these steps can be extremely painful if you don&#8217;t automate some of your work. I highly recommend taking the time to write a few scripts that will automate the work for you (compile the binLoader and inject it, etc&#8230;). Choose whatever scripting language you&#8217;re confident with <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><h3>Reencrypt your savegame</h3><p style="text-align: left;">That&#8217;s the last step when you want to make sure your exploit works on official firmware. A tool called SED allows you to reencrypt your exploited savegame. To do that though, you need the savegame key. That key can be found in the SAVEPLAIN data given by SGDeemer. It&#8217;s at the very bottom of XXXX.bin where XXX is the code of your game . At the bottom of that file, the last 20 bytes should be only zeroes. you want the 16bytes before that. That&#8217;s your key <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br /> For the usage of SED&#8230; well, google for it, I&#8217;m feeling lazy. If you made it that far, SED shouldn&#8217;t be a problem for you <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://wololo.net/wagic/2010/02/27/writing-a-binary-loader/feed/</wfw:commentRss> <slash:comments>54</slash:comments> </item> <item><title>Fake exploits, real exploits (and why you shouldn&#8217;t care)</title><link>http://wololo.net/wagic/2010/02/17/fake-exploits-real-exploits-and-why-you-shouldnt-care/</link> <comments>http://wololo.net/wagic/2010/02/17/fake-exploits-real-exploits-and-why-you-shouldnt-care/#comments</comments> <pubDate>Wed, 17 Feb 2010 13:57:13 +0000</pubDate> <dc:creator>wololo</dc:creator> <category><![CDATA[security]]></category><guid isPermaLink="false">http://wololo.net/wagic/?p=1030</guid> <description><![CDATA[There&#8217;s been some kind of fever in the past weeks, with lots of people looking for exploits, sometimes finding them, sometimes claiming they found one when it wasn&#8217;t true&#8230; I&#8217;ve personally confirmed 5 game exploits over the past 2 weeks (none of them found by me, but I won&#8217;t name their authors since all they [...]]]></description> <content:encoded><![CDATA[<p>There&#8217;s been some kind of fever in the past weeks, with lots of people looking for exploits, <a href="http://wololo.net/wagic/2010/02/06/real-pspjokes-insert-game-name-here-buffer-overflow-exploit/">sometimes finding them</a>, sometimes <a href="http://wololo.net/wagic/2009/12/27/fake-jpeg-exploit-on-ofw-6-20-by-tontunaspi/">claiming they found one when it wasn&#8217;t true</a>&#8230; I&#8217;ve personally confirmed 5 game exploits over the past 2 weeks (none of them found by me, but I won&#8217;t name their authors since all they would get with that is noobspam).</p><p>I was planning to give a list of all the &#8220;exploits&#8221; of the past weeks, tell you which ones are fakes, which ones are real&#8230;but the truth is&#8230;the confusion is probably better for the time being. There&#8217;s definite proof that Sony is closely monitoring  underground websites for these exploits. Actually, one of the 5 exploits I tested last week has probably been made useless because of that.</p><p>Anyways, what happens if you find and release a game exploit? Well, pretty much nothing. You&#8217;ll be able to release a hello world (yay&#8230;), Sony will remove the game from the PSN store and improve their security in a firmware update, and we will end up with a wasted game exploit AND a system that is tougher to crack. Consider releasing a &#8220;proof of concept&#8221; as useless as drinking antibiotics when you&#8217;re not sick. It makes the bacterias stronger, for nothing.</p><p>Bottom line: if you find a game exploit, keep it for yourself and use it to improve your knowledge of the current OFW. Sadly, releasing a proof of concept that cannot be turned into an eLoader or a HEN does more harm than good to the community.</p><p>What&#8217;s left for us is hope: the last weeks have proven once again that the PSP is not 100% secure, eventually something good will happen. Oh, and if you&#8217;re looking for user mode exploits, focus on <a href="http://wololo.net/wagic/2009/11/08/psp-exploits-finding-crashes-with-fuzzing/">non game ones</a> <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://wololo.net/wagic/2010/02/17/fake-exploits-real-exploits-and-why-you-shouldnt-care/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>And&#8230;we&#8217;re back!</title><link>http://wololo.net/wagic/2010/02/14/and-were-back/</link> <comments>http://wololo.net/wagic/2010/02/14/and-were-back/#comments</comments> <pubDate>Sun, 14 Feb 2010 13:59:14 +0000</pubDate> <dc:creator>wololo</dc:creator> <category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">http://wololo.net/wagic/?p=1025</guid> <description><![CDATA[OK, so we had a system upgrade last week, and apparently our server didn&#8217;t really appreciate it, so wololo.net was down today, but we fixed it (&#8217;cause we rock!) hopefully this won&#8217;t happen too frequently. Oh, and, of course, the CFW from Mad Daemon was a fake, but that was quite obvious from the start, [...]]]></description> <content:encoded><![CDATA[<p>OK, so we had a system upgrade last week, and apparently our server didn&#8217;t really appreciate it, so wololo.net was down today, but we fixed it (&#8217;cause we rock!) hopefully this won&#8217;t happen too frequently.</p><p>Oh, and, of course, the CFW from Mad Daemon was a fake, but that was quite obvious from the start, right?</p> ]]></content:encoded> <wfw:commentRss>http://wololo.net/wagic/2010/02/14/and-were-back/feed/</wfw:commentRss> <slash:comments>10</slash:comments> </item> <item><title>Stop buying overpriced games for nothing!</title><link>http://wololo.net/wagic/2010/02/09/stop-buying-overpriced-games-for-nothing/</link> <comments>http://wololo.net/wagic/2010/02/09/stop-buying-overpriced-games-for-nothing/#comments</comments> <pubDate>Tue, 09 Feb 2010 02:06:06 +0000</pubDate> <dc:creator>wololo</dc:creator> <category><![CDATA[psp dev]]></category> <category><![CDATA[security]]></category><guid isPermaLink="false">http://wololo.net/wagic/?p=1020</guid> <description><![CDATA[People. Please. Remember what happened with Gripshift. it HAD an exploit, a Hello World, and even a SDK. you bought that very expensive copy. AND it led nowhere good for you. Now I see people buying games for a very expensive price, based on fake &#8220;hints&#8221; that this might be THE game in which pspjoke [...]]]></description> <content:encoded><![CDATA[<p>People.</p><p>Please.</p><p>Remember what happened with Gripshift. it HAD an exploit, a Hello World, and even a SDK. you bought that very expensive copy. AND it led nowhere good for you.</p><p>Now I see people buying games for a very expensive price, based on fake &#8220;hints&#8221; that this might be THE game in which <a href="http://wololo.net/wagic/2010/02/06/real-pspjokes-insert-game-name-here-buffer-overflow-exploit/">pspjoke found an exploit</a>.</p><p style="text-align: center;"><img class="size-full wp-image-1021 aligncenter" title="mgs" src="http://wololo.net/wagic/wp-content/uploads/2010/02/mgs.jpg" alt="mgs" width="498" height="430" /></p><p>Ok, clear your mind. Imagine the game is MGS (which, by the way, it&#8217;s not). Do you think buying it now for such a high price will do you any good? Based on what? A proof of concept code? What are your chances that this becomes an eLoader? And maybe an eLoader is not what you are looking for. Maybe you&#8217;re expecting a HEN? But it&#8217;s been said many times that a <a href="http://wololo.net/wagic/2009/11/26/is-your-psp-hackable/">HEN requires a kernel exploit</a>&#8230;which pspjoke and N00b81 probably don&#8217;t have.</p><p>We&#8217;ve had several examples in the past of perfectly working Game exploits that led to nothing really useful for end users: Gripshift, <a href="http://wololo.net/wagic/2010/02/06/real-pspjokes-insert-game-name-here-buffer-overflow-exploit/">Medal of Honor</a>, <a href="http://wololo.net/wagic/2009/11/22/exploit-for-the-game-archer-macleans-mercury-released-by-freeplay">Mercury</a>,&#8230;</p><p>Bottom line: don&#8217;t buy an expensive game based on hope, you will be disappointed.</p><p>But hey, let me be bold: <strong>The game in which pspjoke found an exploit is NOT MGS</strong>.</p><p>I&#8217;m thinking I should start rumors of hacks in some of the crappy games I own, I could sell them for good money <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://wololo.net/wagic/2010/02/09/stop-buying-overpriced-games-for-nothing/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Real! pspjoke&#8217;s [insert game name here] buffer overflow exploit</title><link>http://wololo.net/wagic/2010/02/06/real-pspjokes-insert-game-name-here-buffer-overflow-exploit/</link> <comments>http://wololo.net/wagic/2010/02/06/real-pspjokes-insert-game-name-here-buffer-overflow-exploit/#comments</comments> <pubDate>Sat, 06 Feb 2010 10:51:38 +0000</pubDate> <dc:creator>wololo</dc:creator> <category><![CDATA[psp dev]]></category> <category><![CDATA[security]]></category><guid isPermaLink="false">http://wololo.net/wagic/?p=1013</guid> <description><![CDATA[pspjoke and N00b81 were kind enough to contact me regarding the recent game exploit found by pspjoke. As others who&#8217;ve been trusted with this information, I swore not to reveal the game&#8217;s name  so don&#8217;t even ask. In order to test, I myself created an overflow in a savegame for that game and could confirm [...]]]></description> <content:encoded><![CDATA[<p>pspjoke and N00b81 were kind enough to contact me regarding the recent game exploit found by pspjoke. As others who&#8217;ve been trusted with this information, I swore not to reveal the game&#8217;s name  so don&#8217;t even ask.</p><p>In order to test, I myself created an overflow in a savegame for that game and could confirm the vulnerability (I&#8217;m amazed to see that it takes 10 minutes to create that overflow when I spent <a href="http://wololo.net/wagic/2009/03/15/so-what-about-the-libtiff-vulnerability/">3 months crafting mine on the libtiff back in 2009</a>, talk about wasting time <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> )</p><p><a href="http://wololo.net/wagic/wp-content/uploads/2010/02/pspjoke2.jpg"><img class="alignnone size-medium wp-image-1015" title="pspjoke2" src="http://wololo.net/wagic/wp-content/uploads/2010/02/pspjoke2-300x131.jpg" alt="pspjoke2" width="300" height="131" /></a></p><p><img class="alignnone size-full wp-image-1014" title="pspjoke" src="http://wololo.net/wagic/wp-content/uploads/2010/02/pspjoke.jpg" alt="pspjoke" width="609" height="280" /></p><p>So, people can stop asking if it&#8217;s real or fake,<strong> it&#8217;s real.</strong></p><p>The only question is: will it lead to something useful for users? Maybe, maybe not. N00b81 and pspjoke are actively <a href="http://wololo.net/wagic/2009/11/29/mooh-exploit-m0skit0s-eloader-alpha-release-devs-only/">working on an eLoader</a> (a program that would load homebrews) for this vulnerability, but it is still unclear if this will ever be publicly released.</p><p>As usual, it&#8217;s not that the devs are selfishly keeping their exploits for themselves, but rather that, as soon as the exploit is made public, the game <a href="http://wololo.net/wagic/2009/10/10/looking-for-vulnerabilities-in-the-psp-firmware/">will be removed from the PSN Store</a> by Sony, making it basically useless. In other words, PSP3000 and TA88v3 owners who can&#8217;t enjoy the power of Chickhen may hope for an eLoader in a near future&#8230;if they can afford an extensive UMD. PSPGo owners already know that there&#8217;s pretty much no hope for them in game exploits, and can try to <a href="http://wololo.net/wagic/2010/01/15/datels-action-replay-a-dead-end-for-hackers/">contact Datel and beg</a> for them to create a signed homebrew Loader, or<a href="http://wololo.net/wagic/2009/11/08/psp-exploits-finding-crashes-with-fuzzing/"> look for exploits in the firmware itself</a>.</p><p>Anyways, as long as no eLoader or HEN is ready for that exploit, knowing the name of the game is useless for most people. People who would have the knowledge to use the information should rather dig their own UMDs and start looking for their own exploits using <a href="http://wololo.net/wagic/2009/03/11/finding-gamesaves-exploits-on-the-psp/">my awesome guide</a> <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>This post is not to tease people. It&#8217;s to confirm that the exploit is real, and if you see people claiming it&#8217;s fake, tell them I said it&#8217;s real. You can quote me on that <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://wololo.net/wagic/2010/02/06/real-pspjokes-insert-game-name-here-buffer-overflow-exploit/feed/</wfw:commentRss> <slash:comments>10</slash:comments> </item> <item><title>Getting owned in Wagic. Lesson 1: Depletion</title><link>http://wololo.net/wagic/2010/02/02/getting-owned-in-wagic-lesson-1-depletion/</link> <comments>http://wololo.net/wagic/2010/02/02/getting-owned-in-wagic-lesson-1-depletion/#comments</comments> <pubDate>Tue, 02 Feb 2010 11:26:54 +0000</pubDate> <dc:creator>wololo</dc:creator> <category><![CDATA[magic]]></category> <category><![CDATA[Wagic]]></category><guid isPermaLink="false">http://wololo.net/wagic/?p=1007</guid> <description><![CDATA[One of the things I enjoy the most in Wagic is when the AI surprises me with extremely clever moves. The AI in Wagic is driven by randomness, logic, and a bit of revenge. It basically &#8220;learns&#8221; which cards in your deck are a threat to it, and tends to target these cards more than [...]]]></description> <content:encoded><![CDATA[<p><img class="alignleft" src="http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=191598&amp;type=card" alt="" width="223" height="310" /></p><p>One of the things I enjoy the most in Wagic is when the AI surprises me with extremely clever moves.</p><p>The AI in Wagic is driven by randomness, logic, and a bit of revenge. It basically &#8220;learns&#8221; which cards in your deck are a threat to it, and tends to target these cards more than others with its spells.</p><p>Today I got owned in something like 6 turns by the AI deck <em>Depletion</em>, and the moves were so good I have to talk about them.</p><p>On its first turn, the AI cast &#8220;Tome scour&#8221; on me, making me moving 5 cards from my library to my graveyard.</p><p>Unfo<img class="alignright" src="http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=192219&amp;type=card" alt="" width="223" height="310" />rtunately, the best card of my deck was in there: Ob Nixilis, the Fallen. That card is sooo unbalanced that it&#8217;s a great game finisher.</p><p>On its second turn, the AI cast Animate Dead on my beloved creature.</p><p>3 turns later, I was dead. (On top of the AI&#8217;s excellent moves, I had a very crappy starting hand, but even without it, such a powerful creature on turn 2&#8230;what can you do?)</p><p>Owing to its &#8220;revenge&#8221; mechanism, the AI in Wagic can be extremely good against combo decks, or, in my case, decks that mostly rely on one card to win <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>If you have good stories about the AI owning you in a way that seemed &#8220;clever&#8221; don&#8217;t hesitate to share them <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <img class="alignnone" src="http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=159249&amp;type=card" alt="" width="223" height="310" /></p> ]]></content:encoded> <wfw:commentRss>http://wololo.net/wagic/2010/02/02/getting-owned-in-wagic-lesson-1-depletion/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>Wagic on Mac OS</title><link>http://wololo.net/wagic/2010/02/01/wagic-on-mac-o/</link> <comments>http://wololo.net/wagic/2010/02/01/wagic-on-mac-o/#comments</comments> <pubDate>Mon, 01 Feb 2010 12:51:34 +0000</pubDate> <dc:creator>wololo</dc:creator> <category><![CDATA[c++]]></category> <category><![CDATA[Wagic]]></category><guid isPermaLink="false">http://wololo.net/wagic/?p=1000</guid> <description><![CDATA[J, the incredible mad scientist behind the port of JGE (and therefore Wagic) for Linux is back and made awesome progress on a Mac port. We&#8217;re not entirely there yet, but this screenshot shows you that it&#8217;s coming J also fixed a bunch of issues for compilation on 64bits OSes, but some of his changes [...]]]></description> <content:encoded><![CDATA[<p>J, the incredible mad scientist behind the port of JGE (and therefore Wagic) for Linux is back and made awesome progress on a Mac port. We&#8217;re not entirely there yet, but this screenshot shows you that it&#8217;s coming <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p style="text-align: center;"><a href="http://wololo.net/wagic/wp-content/uploads/2010/02/wagic_mac.png"><img class="size-medium wp-image-1001 aligncenter" title="wagic_mac" src="http://wololo.net/wagic/wp-content/uploads/2010/02/wagic_mac-300x187.png" alt="wagic_mac" width="300" height="187" /></a></p><p>J also fixed a bunch of issues for compilation on 64bits OSes, but some of his changes are not in the SVN yet. They should be there soon though. Thanks a lot Dude <img src='http://wololo.net/wagic/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>JGE++ is the only library that allows you to compile a game for the <strong>Sony PSP, Windows and Linux</strong> from the same source code. The latest version of JGE is available on our <a href="http://code.google.com/p/wagic/">SVN.</a></p> ]]></content:encoded> <wfw:commentRss>http://wololo.net/wagic/2010/02/01/wagic-on-mac-o/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 20/57 queries in 0.197 seconds using disk: basic

Served from: wololo.net @ 2012-05-21 20:27:21 -->
