tag:blogger.com,1999:blog-89416349733322600232024-03-20T00:03:37.071+05:30-۞- CЯΛCК1ИG F0Я FЏИ -۞-Welcome to T.0.R.N.A.D.0.'s world !T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.comBlogger17125tag:blogger.com,1999:blog-8941634973332260023.post-56486914951321335352010-03-09T19:28:00.002+05:302010-03-09T19:31:25.667+05:30I am back :)Hi everyone !<br /><br />After being away from cracking and stuff .. (for a really long time) .. I am back again :)<br /><br />- Submitted Solution to Obnoxious' Obnoxious Crackme. (Will be posting here soon)<br />- Reverted all "linkbuck"ed links to original :)<br />- Solving one of costy's crackmes.T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com11tag:blogger.com,1999:blog-8941634973332260023.post-56071186821541355052009-05-02T10:09:00.007+05:302010-03-09T19:17:54.904+05:30Indomit's solution to my KeyGenMe #5CrackMe Location :: <a href="http://crackmes.de/users/t.0.r.n.a.d.0./keygenme_5/">KeyGenMe #5 @ Crackmes.de</a>.<br />Solution Location :: <a href="http://crackmes.de/users/t.0.r.n.a.d.0./keygenme_5/solution/indomit">Solution</a> by <a href="http://crackmes.de/users/indomit/">indomit</a>.<br /><br /><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyBNytmTJtZZGEyFWLuOwz40eJKWxtTGnxKtyQzz31u13fePKcc5ec-52NO2wU06hnOi0OM-p_-ND2kJiwG-S6WJTl4SE4ujuZsW8K4GrR0Lh0_32r0G4F6_TDLCiZyVI_omeS2YS9pmE/s1600-h/Pic4Blog_K5_Sol.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 347px; height: 150px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyBNytmTJtZZGEyFWLuOwz40eJKWxtTGnxKtyQzz31u13fePKcc5ec-52NO2wU06hnOi0OM-p_-ND2kJiwG-S6WJTl4SE4ujuZsW8K4GrR0Lh0_32r0G4F6_TDLCiZyVI_omeS2YS9pmE/s400/Pic4Blog_K5_Sol.jpg" alt="" id="BLOGGER_PHOTO_ID_5331084649275051954" border="0" /></a>So, the main goal of crackme is win the game. As we knew in the Tic-tac-toe game (3x3 grid) the best strategy of both parties leads to a draw. So, to beat the computer there must be a weakness in algorithm. And there it is! If we put "X" in center, the computer always bring to a draw; If we put "X" in any side but not corner, the computer always win; But if we put "X" in corner, there is one weakness that helps us win:<br /><br /></div>After we put "X" in corner, computer always put "O" in center:<br />X - -<br />- O -<br />- - -<br /><br />Then, if we want win, the best way is put "X" in an opposite corner:<br />X - -<br />- O -<br />- - X<br /><br />After this, the best computer move is put "O" at any side (not corner!), but in crackme it moves into corner:<br />X - O<br />- O -<br />- - X<br /><br />At this point we have already won ;). Just put "X" in empty corner and there is fork :)<br />X - O<br />- O -<br />X - X<br /><br />Now, computer can't do anything to win or draw :)<br />This was the main logic. Read the complete solution (in my box or from crackmes.de) for further details.T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com2tag:blogger.com,1999:blog-8941634973332260023.post-52861874708672657642009-05-01T08:18:00.003+05:302009-05-02T10:11:49.330+05:30Solution to indomit's The Cattle CrackmeCrackMe Location :: <a href="http://crackmes.de/users/indomit/the_cattle_crackme/">indomit's The Cattle Crackme @ Crackmes.de</a>.<br />Solution Location :: <a href="http://crackmes.de/users/indomit/the_cattle_crackme/solutions/t.0.r.n.a.d.0."> </a><a href="http://crackmes.de/users/indomit/the_cattle_crackme/solutions/t.0.r.n.a.d.0.">Solution @ Crackmes.de</a> by me.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0Eom6MUpwQOZ8PgO2UgDPdGV2yrGuzhMc_MgvsvwSu5I2U6CcYPwJ0vjCOTtv_BKWZKwg_yFARm10I9oUxghkZhxRyOGJnYFrd_3alpc0JSH9u_Gs7pWezaverOJb9igKgB0MIwNVUso/s1600-h/Pic4Blog_iCC.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 223px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0Eom6MUpwQOZ8PgO2UgDPdGV2yrGuzhMc_MgvsvwSu5I2U6CcYPwJ0vjCOTtv_BKWZKwg_yFARm10I9oUxghkZhxRyOGJnYFrd_3alpc0JSH9u_Gs7pWezaverOJb9igKgB0MIwNVUso/s400/Pic4Blog_iCC.JPG" alt="" id="BLOGGER_PHOTO_ID_5330682681420608482" border="0" /></a>MY RATING :: <span style="font-weight: bold;">Quite Nice !</span><br />PLATFORM :: WINDOWS<br />LANGUAGE :: .NET<br />DIFFICULTY :: 3 [ Getting harder ]<br />TOOL(S) USED :: Reflector<br /><br /><span style="font-weight: bold;">Overview</span>:<br />=-=-=-=-=<br />(*) Lots of tedious equation solving and a bit of number theory make it a nice crackme to solve.<br /><br />Read the solution to find more about it. :)T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com5tag:blogger.com,1999:blog-8941634973332260023.post-28363762751444684052009-05-01T07:47:00.002+05:302009-05-01T07:56:15.182+05:30KeyGenMe #6 :: .NET :: Difficulty : 4 [HARD !]<div style="text-align: justify;"><div style="text-align: justify;">KeyGenMe Location : <a href="http://crackmes.de/users/t.0.r.n.a.d.0./keygenme_6/">KeyGenMe #6 @ Crackmes.de</a><br />Solution Location : Not Solved Yet.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjdl55P7_NDzqBsWpyj-Lf9OIa5KKTPQ30dG8hPaNNxEw2hck_g3r-S2a3naBgjV_6Wv4HCKIMxMJoiWfBenSgre0cTIkpt39xUmMlSRoqs09Y7-lYnBSPp1kSvnwDZVon29FISELenzY/s1600-h/Pic4Blog_K6.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 265px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjdl55P7_NDzqBsWpyj-Lf9OIa5KKTPQ30dG8hPaNNxEw2hck_g3r-S2a3naBgjV_6Wv4HCKIMxMJoiWfBenSgre0cTIkpt39xUmMlSRoqs09Y7-lYnBSPp1kSvnwDZVon29FISELenzY/s400/Pic4Blog_K6.JPG" alt="" id="BLOGGER_PHOTO_ID_5330676016099938482" border="0" /></a>One of my hardest KeyGenMes yet !! KeyGenMe #5. It's coded in VB.NET. <span style="font-weight: bold;">Features </span>:<br />(*) NOT Packed<br />(*) NOT Encrypted<br />(*) Kool GFX 'n' SFX<br /><br />The <span style="font-weight: bold;">Rules </span>:<br />(*) NO Patching<br />(*) NO Brute-forcing<br /><br />The <span style="font-weight: bold;">Tasks </span>:<br />1. Find the algorithm for the computations involved.<br />2. Try to get Status as ":-)".<br />3. Make keygen to VALID Key for ANY name. Please note that VALID KEYS EXIST FOR ALL NAMES.<br /> Keygens able to generate multiple keys for each name will be preferred.<br />4. Write a descent tutorial. ;)<br /><br />The <span style="font-weight: bold;">Hint</span> :<br />==========---<br />It's .NET, you've the source code ! So, no hints.. ;-)<br /><br /></div> Readers, if you solve this, please upload your solution to <a style="font-weight: bold;" href="http://crackmes.de/">CrackMes.de</a>.<br /></div>T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com0tag:blogger.com,1999:blog-8941634973332260023.post-19776682022925775122009-04-25T07:25:00.005+05:302009-05-19T08:05:07.922+05:30KeyGenMe #5 :: .NET :: Difficulty : 4 [HARD !]<div style="text-align: justify;"><div style="text-align: justify;">KeyGenMe Location : <a href="http://crackmes.de/users/t.0.r.n.a.d.0./keygenme_5/">KeyGenMe #5 @ Crackmes.de</a><br />Solution Location : <a href="http://crackmes.de/users/t.0.r.n.a.d.0./keygenme_5/solutions/indomit">Solution</a> by <a href="http://crackmes.de/users/indomit">indomit</a>.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdyzfNHWSgyh44vg-laAFyH02xHmwcOLg0OS6-9iNiCg7MJTgSOv3wZua-M_G1E-9Xl8w1bwmlXjnWTRIeldrEFx7A7-nnRlv6ODonSG6rPe0G97s9TlIZL7XSJatIblM4AGIOUr7qFjw/s1600-h/Pic4Blog_K5.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 281px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdyzfNHWSgyh44vg-laAFyH02xHmwcOLg0OS6-9iNiCg7MJTgSOv3wZua-M_G1E-9Xl8w1bwmlXjnWTRIeldrEFx7A7-nnRlv6ODonSG6rPe0G97s9TlIZL7XSJatIblM4AGIOUr7qFjw/s400/Pic4Blog_K5.jpg" alt="" id="BLOGGER_PHOTO_ID_5328443257409373730" border="0" /></a>One of my hardest KeyGenMes yet !! KeyGenMe #5. It's coded in VB.NET. <span style="font-weight: bold;">Features </span>:<br />(*) NOT Packed<br />(*) NOT Encrypted<br />(*) Kool GFX<br /><br />The <span style="font-weight: bold;">Rules </span>:<br />(*) NO Patching<br />(*) NO Brute-forcing<br /><br />The <span style="font-weight: bold;">Tasks </span>:<br />1. Try to get Status as "VALID".<br />2. Find the algorithm for the computations involved.<br />3. Make keygen to VALID Key for ANY name. Please note that VALID KEYS EXIST FOR ALL NAMES.<br />4. Write a descent tutorial. ;)<br /><br />The <span style="font-weight: bold;">Hint</span> :<br />==========---<br /><del>Think about MID(KEY,2,3) where KEY is ANY VALID KEY. ;-)</del><br /><br /></div> Readers, if you solve this, please upload your solution to <a style="font-weight: bold;" href="http://crackmes.de/">CrackMes.de</a>.<br /></div>T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com0tag:blogger.com,1999:blog-8941634973332260023.post-83717611566176608632009-04-24T07:32:00.004+05:302009-04-24T07:40:12.192+05:30Downloading Source Codes<div style="text-align: justify;">I will upload the source codes of the CrackMes / KeyGenMes that are <span style="font-weight: bold;">solved</span>. But, the sources will be packed in <span style="font-weight: bold;">password-protected</span> zips. If anyone wants to download and use them, contact me :<br />t0rnad0.b0rn.2.c0de@gmail.com; crackme.de members can PM me a request for the password.<br /><br />Hope the source codes will be helpful to some. :)<br /><br />Happy cracking...</div>T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com0tag:blogger.com,1999:blog-8941634973332260023.post-34227648532023514512009-04-24T07:09:00.003+05:302009-04-24T07:30:59.997+05:30CrackMe #1 Ver.2.00 :: C++ :: Difficulty : 2KeyGenMe Location : <a href="http://crackmes.de/users/t.0.r.n.a.d.0./crackme_1_ver.2.00/">CrackMe #1 Ver.2.00 @ Crackmes.de</a><br />Solution Location : Not Solved Yet<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGx4q_rlqY1AztGTOxBqQw-qc6mAuiw50kyx861CNINFxnfn_lcQx_hVJ3EoQmMBUtDOPwT3aDf6QbqqnDYbkX8ojyH598eRlSMlQUImgP4zEtPdV2UR3rSVAmdtGmwQS3EBVe0e99m-M/s1600-h/Pic4Blog_C1_2.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 202px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGx4q_rlqY1AztGTOxBqQw-qc6mAuiw50kyx861CNINFxnfn_lcQx_hVJ3EoQmMBUtDOPwT3aDf6QbqqnDYbkX8ojyH598eRlSMlQUImgP4zEtPdV2UR3rSVAmdtGmwQS3EBVe0e99m-M/s400/Pic4Blog_C1_2.JPG" alt="" id="BLOGGER_PHOTO_ID_5328071818188143778" border="0" /></a>So, here is my first CrackMe. It's coded in ANSI C++. <span style="font-weight: bold;">Features </span>:<br />(*) NOT Packed<br />(*) NOT Encrypted<br />(*) Nice Konsole look with Double Sided Arrow Animation.<br /><br />The <span style="font-weight: bold;">Rules </span>:<br />(*) NO Patching<br />(*) NO Brute-forcing<br /><br />The <span style="font-weight: bold;">Tasks </span>:<br />1. a) Find the secret code that would pass security phase 1.<br /> b) Find the secret code that would pass security phase 2.<br />2. Reverse the complete algorithm for checking the code.<br />3. Write a descent tutorial.<br /><br />Readers, if you solve this, please upload your solution to <a style="font-weight: bold;" href="http://crackmes.de/">CrackMes.de</a>.T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com0tag:blogger.com,1999:blog-8941634973332260023.post-78737405364463587052009-04-21T20:25:00.006+05:302009-04-25T08:43:24.585+05:30KeyGenMe #4 :: C++ :: Difficulty : 4 [HARD !]<div style="text-align: justify;"><div style="text-align: justify;">KeyGenMe Location : <a href="http://crackmes.de/users/t.0.r.n.a.d.0./keygenme_4/">KeyGenMe #4 @ Crackmes.de</a><br />Solution Location : Not Solved Yet.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvt0IJ_id0L9FHqrREay0HKsAhcboT05VHiJCmLvcUStOcUYRGPRdxv6DtRe2ioPdRwRRWXBlp9Jx-i9JUfPLOjP23W8kcEiGbO7W-OiAzCpg6zLR2qO0OZ2HjFAhQkJL6iW-AD696WBU/s1600-h/Pic4Blog_K4.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 201px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvt0IJ_id0L9FHqrREay0HKsAhcboT05VHiJCmLvcUStOcUYRGPRdxv6DtRe2ioPdRwRRWXBlp9Jx-i9JUfPLOjP23W8kcEiGbO7W-OiAzCpg6zLR2qO0OZ2HjFAhQkJL6iW-AD696WBU/s400/Pic4Blog_K4.JPG" alt="" id="BLOGGER_PHOTO_ID_5327160406370810402" border="0" /></a>My hardest KeyGenMe yet !! KeyGenMe #4. It's coded in ANSI C++. <span style="font-weight: bold;">Features </span>:<br />(*) NOT Packed<br />(*) NOT Encrypted<br /><br />The <span style="font-weight: bold;">Rules </span>:<br />(*) NO Patching<br />(*) NO Brute-forcing<br /><br />The <span style="font-weight: bold;">Tasks </span>:<br />1. Try to get Status as "VALID :) !".<br />2. Find the algorithm for the computations involved.<br />3. Make keygen to VALID Key for ANY name. Please note that VALID KEYS EXIST FOR ALL NAMES.<br />4. Write a descent tutorial. ;)<br /><br />The <span style="font-weight: bold;">Hint</span> :<br />==========---<br />Think about solving a 15-puzzle. ;)<br /><br /></div> Readers, if you solve this, please upload your solution to <a style="font-weight: bold;" href="http://crackmes.de/">CrackMes.de</a>.<br /></div>T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com0tag:blogger.com,1999:blog-8941634973332260023.post-65024270481852694132009-04-21T17:47:00.003+05:302009-04-24T07:39:36.708+05:30My Account @ Box.net<div style="text-align: justify;">Good news for those who are not registered to <a style="font-weight: bold;" href="http://www.crackmes.de/">Crackmes.de</a> ! :) Now you can download my stuffs from my box !<br /><br />I have added an <span style="font-style: italic;">swf</span> boxplorer ( box explorer ;) ) below my blog header. You can anonymously download my CrackMes, KeygenMes, their Source Codes and Solutions to other crackmes by me; and I'm not gonna charge you for that, LOL.<br /><br />So, do check my box for new CrackMes, KeygenMes and Sols.</div>T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com0tag:blogger.com,1999:blog-8941634973332260023.post-5195961162843828552009-04-21T08:45:00.005+05:302009-04-21T11:12:58.191+05:30How To #1 :: Flushing input stream in C++<div style="text-align: justify;">As I was telling in my last post (CrackMe #1), the solution by DoomsDay forced me to re-check my code for errors. I had not expected negative numbers to be valid secret codes. I had implemented the following method to reject the negative numbers from Test #1 itself. See the code below :<br /></div><span style="font-weight: bold;font-size:85%;" ><span style="font-family:courier new;"><span style="color: rgb(0, 0, 0);">ReEnterCode</span><span style="color: rgb(255, 0, 0);">:<br /></span></span><span style="font-family:courier new;"><span style="color: rgb(255, 255, 255);">XXXX</span>InKey <span style="color: rgb(255, 0, 0);">=</span> getchar<span style="color: rgb(255, 0, 0);">();</span></span><br /><span style="font-family:courier new;"><span style="color: rgb(255, 255, 255);">XXXX</span><span style="color: rgb(51, 51, 255);">while</span><span style="color: rgb(255, 0, 0);">(</span> InKey <span style="color: rgb(255, 0, 0);">!=</span> <span style="color: rgb(255, 102, 0);">'\n'</span> <span style="color: rgb(255, 0, 0);">)</span></span><br /><span style="color: rgb(255, 255, 255);">XXXX</span><span style="font-family:courier new;"><span style="color: rgb(255, 0, 0);">{<br /></span></span><span style="font-family:courier new;"><span style="color: rgb(255, 255, 255);">XXXXXXXX</span><span style="color: rgb(51, 51, 255);">if</span><span style="color: rgb(255, 0, 0);">( (</span> InKey <span style="color: rgb(255, 0, 0);">>=</span> <span style="color: rgb(255, 102, 0);">'0'</span> <span style="color: rgb(255, 0, 0);">) && (</span> InKey <span style="color: rgb(255, 0, 0);"><=</span> <span style="color: rgb(255, 102, 0);">'9'</span> <span style="color: rgb(255, 0, 0);">) )</span><br /><span style="color: rgb(255, 255, 255);">XXXXXXXX</span><span style="color: rgb(255, 0, 0);">{</span><br /><span style="color: rgb(255, 255, 255);">XXXXXXXXXXXX</span><span style="color: rgb(102, 102, 102);">// Key gets accepted and stored</span><br /><span style="color: rgb(255, 255, 255);">XXXXXXXX</span><span style="color: rgb(255, 0, 0);">}<br /></span></span><span style="font-family:courier new;"><span style="color: rgb(255, 255, 255);">XXXXXXXX</span><span style="color: rgb(51, 102, 255);">else<br /></span><span style="color: rgb(255, 255, 255);">XXXXXXXXXXXX</span><span style="color: rgb(51, 51, 255);">goto </span><span style="color: rgb(0, 0, 0);">ReEnterCode</span><span style="color: rgb(255, 0, 0);">;</span></span><br /><span style="color: rgb(255, 255, 255);">XXXXXXX</span><span style="font-family:courier new;">InKey <span style="color: rgb(255, 0, 0);">= </span><span style="color: rgb(0, 0, 0);">getchar</span><span style="color: rgb(255, 0, 0);">();<span style="color: rgb(255, 255, 255);">XXXXXXXX</span></span><span style="color: rgb(102, 102, 102);">// Get the next key from user</span></span><br /><span style="font-family:courier new;"><span style="color: rgb(255, 255, 255);">XXXX</span>}<br /></span><span style="font-family:courier new;"><span style="color: rgb(255, 255, 255);">XXXX</span><span style="color: rgb(0, 0, 0);">printf</span><span style="color: rgb(255, 0, 0);">(</span><span style="color: rgb(0, 153, 0);">"Test #1 : PASSED"</span><span style="color: rgb(255, 0, 0);">);</span></span></span><br /><br /><div style="text-align: justify;">At first sight of the code, everything seems OK. Gets a char from user, checks if it's a digit. If it is, accepts it; else prompts user for Re-Input. But, this code fails.<br /><br />Lets see why. Let's analyze for input -8.<br />Program receives '-'. Does not accept it. Goes to the label ReEnterCode.<br />There, it gets the next instruction : <span style="font-weight: bold;font-size:85%;" ><span style="font-family:courier new;">InKey </span><span style="color: rgb(255, 0, 0);font-family:courier new;" >=</span><span style="font-family:courier new;"> getchar</span><span style="color: rgb(255, 0, 0);font-family:courier new;" >();</span></span><br />And what's the next char ? '8'.<br />So, it continues execution with '8', which gets accepted later.<br /><br />The problem occurs because the input stream is not flushed before jumping to ReEnterCode. It can be solved this way :<br /></div><span style="font-weight: bold;font-size:85%;" ><span style="font-family:courier new;"><span style="color: rgb(0, 0, 0);">ReEnterCode</span><span style="color: rgb(255, 0, 0);">:<br /></span></span><span style="font-family:courier new;"><span style="color: rgb(255, 255, 255);">XXXX</span>InKey <span style="color: rgb(255, 0, 0);">=</span> getchar<span style="color: rgb(255, 0, 0);">();</span></span><br /><span style="font-family:courier new;"><span style="color: rgb(255, 255, 255);">XXXX</span><span style="color: rgb(51, 51, 255);">while</span><span style="color: rgb(255, 0, 0);">(</span> InKey <span style="color: rgb(255, 0, 0);">!=</span> <span style="color: rgb(255, 102, 0);">'\n'</span> <span style="color: rgb(255, 0, 0);">)</span></span><br /><span style="color: rgb(255, 255, 255);">XXXX</span><span style="font-family:courier new;"><span style="color: rgb(255, 0, 0);">{<br /></span></span><span style="font-family:courier new;"><span style="color: rgb(255, 255, 255);">XXXXXXXX</span><span style="color: rgb(51, 51, 255);">if</span><span style="color: rgb(255, 0, 0);">( (</span> InKey <span style="color: rgb(255, 0, 0);">>=</span> <span style="color: rgb(255, 102, 0);">'0'</span> <span style="color: rgb(255, 0, 0);">) && (</span> InKey <span style="color: rgb(255, 0, 0);"><=</span> <span style="color: rgb(255, 102, 0);">'9'</span> <span style="color: rgb(255, 0, 0);">) )</span><br /><span style="color: rgb(255, 255, 255);">XXXXXXXX</span><span style="color: rgb(255, 0, 0);">{</span><br /><span style="color: rgb(255, 255, 255);">XXXXXXXXXXXX</span><span style="color: rgb(102, 102, 102);">// Key gets accepted and stored</span><br /><span style="color: rgb(255, 255, 255);">XXXXXXXX</span><span style="color: rgb(255, 0, 0);">}</span></span><br /><span style="font-family:courier new;"><span style="color: rgb(255, 255, 255);">XXXXXXXX</span><span style="color: rgb(51, 102, 255);">else<br /><span style="color: rgb(255, 255, 255);">xxxxxxxx</span><span style="color: rgb(255, 0, 0);">{<br /><span style="color: rgb(255, 255, 255);">xxxxxxxxxxxx</span><span style="color: rgb(51, 51, 255);">while</span>( ( (<span style="color: rgb(0, 0, 0);">InKey </span>= <span style="color: rgb(0, 0, 0);">getchar</span>()) != <span style="color: rgb(255, 102, 0);">'\n'</span> ) || <span style="color: rgb(0, 0, 0);">InKey </span>!= <span style="color: rgb(0, 0, 0);">EOF </span>);<br /></span> </span><span style="color: rgb(255, 255, 255);">XXXXXXXXXXXX</span><span style="color: rgb(51, 51, 255);">goto </span>ReEnterCode<span style="color: rgb(255, 0, 0);">;<br /><span style="color: rgb(255, 255, 255);">xxxxxxxx</span>}</span></span><br /><span style="color: rgb(255, 255, 255);">XXXXXXX</span><span style="font-family:courier new;">InKey <span style="color: rgb(255, 0, 0);">= </span><span style="color: rgb(0, 0, 0);">getchar</span><span style="color: rgb(255, 0, 0);">();<span style="color: rgb(255, 255, 255);">XXXXXXXX</span></span><span style="color: rgb(102, 102, 102);">// Get the next key from user</span></span><br /><span style="font-family:courier new;"><span style="color: rgb(255, 255, 255);">XXXX</span>}<br /></span><span style="font-family:courier new;"><span style="color: rgb(255, 255, 255);">XXXX</span><span style="color: rgb(0, 0, 0);">printf</span><span style="color: rgb(255, 0, 0);">(</span><span style="color: rgb(0, 153, 0);">"Test #1 : PASSED"</span><span style="color: rgb(255, 0, 0);">);</span></span></span><br /><br />I uploaded Ver.2.00 of CrackMe #1 with this problem corrected.T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com0tag:blogger.com,1999:blog-8941634973332260023.post-23732458963919781292009-04-21T08:30:00.003+05:302009-04-21T08:43:52.233+05:30CrackMe #1 :: C++ :: Difficulty : 1KeyGenMe Location : <a href="http://crackmes.de/users/t.0.r.n.a.d.0./crackme_1/">CrackMe #1 @ Crackmes.de</a><br />Solution Location : <a href="http://crackmes.de/users/t.0.r.n.a.d.0./crackme_1/solutions/doomsday"> Solution </a>by <a href="http://crackmes.de/users/doomsday">DoomsDay</a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmht-OSiLEGITznnQ_GB1j-QuS6qovtM04-wVYUG1af3oVB7A8_fKJhgGQPbuwtmKgF9RFmV0pwpQgwJ20VjiKpm7vjwirTHQJWv9VQKOdQw6Dm1fA3AzQ1m38hPZXCsNz4s0CjNaddB8/s1600-h/Pic4Blog_C1.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 201px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmht-OSiLEGITznnQ_GB1j-QuS6qovtM04-wVYUG1af3oVB7A8_fKJhgGQPbuwtmKgF9RFmV0pwpQgwJ20VjiKpm7vjwirTHQJWv9VQKOdQw6Dm1fA3AzQ1m38hPZXCsNz4s0CjNaddB8/s400/Pic4Blog_C1.JPG" alt="" id="BLOGGER_PHOTO_ID_5326977018943089986" border="0" /></a>So, here is my first CrackMe. It's coded in ANSI C++. <span style="font-weight: bold;">Features </span>:<br />(*) NOT Packed<br />(*) NOT Encrypted<br />(*) Nice Konsole look with Double Sided Arrow Animation.<br /><br />The <span style="font-weight: bold;">Rules </span>:<br />(*) NO Patching<br />(*) NO Brute-forcing<br /><br />The <span style="font-weight: bold;">Tasks </span>:<br /> 1. Simply find the "2" secret codes that would pass ALL the tests.<br /> 2. Reverse the complete algorithm for checking the code.<br /> 3. Write a descent tutorial.<br /><br />IMPORTANT :: If you happen to find a numeric secret-code that passes Test#3 but is negative, e.g. -8, that won't be accepted. The solution by DoomsDay mentioned above considers -8 as a valid secret-code. But that's NOT acceptable. After receiving solution from DoomsDay, I checked my source code again and found that negative codes get accepted due to a problem with <span style="font-style: italic;">flushing the input</span>.<br /><br />IMPORTANT :: Explain in your solution, how you found "the" secret code that would pass Test #3. Tests #1, #2 are easy enough. NO BRUTE-FORCING.<br /><br />Readers, if you solve this, please upload your solution to <a style="font-weight: bold;" href="http://crackmes.de/">CrackMes.de</a>.T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com1tag:blogger.com,1999:blog-8941634973332260023.post-91508983892971007012009-04-20T19:05:00.003+05:302009-04-20T19:17:32.650+05:30Solution to haiklr's Saturday Night CrackmeCrackMe Location :: <a href="http://crackmes.de/users/haiklr/saturday_night_crackme/">haiklr's Saturday Night Crackme @ Crackmes.de</a>.<br />Solution Location :: <a href="http://crackmes.de/users/haiklr/saturday_night_crackme/solutions/t.0.r.n.a.d.0.">Solution @ Crackmes.de</a> by me.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCvPiAY4IFKs1yK7KJwVgrY_lA4ofbWdvOYhq676THjfUPc-bN3ZgdMImjJJohr2iX110lzkt_b3kGltXTLyU3M-iEXaxFkZ9BHRQkQUDn0w7Mod0Ewp_hJsJ9r6AfUFQL-g3RxkYinpA/s1600-h/Pic4Blog_Sol_Saturday.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 225px; height: 303px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCvPiAY4IFKs1yK7KJwVgrY_lA4ofbWdvOYhq676THjfUPc-bN3ZgdMImjJJohr2iX110lzkt_b3kGltXTLyU3M-iEXaxFkZ9BHRQkQUDn0w7Mod0Ewp_hJsJ9r6AfUFQL-g3RxkYinpA/s400/Pic4Blog_Sol_Saturday.JPG" alt="" id="BLOGGER_PHOTO_ID_5326768341432858002" border="0" /></a>MY RATING :: <span style="font-weight: bold;">Awesome !</span><br />PLATFORM :: WINDOWS<br />LANGUAGE :: Assembler<br />DIFFICULTY :: 3 [ Getting harder ]<br />TOOL(S) USED :: OllyDbg 2.0b<br /><br /><span style="font-weight: bold;">Overview</span>:<br />=-=-=-=-=<br />(*) Lots of elementary calculations and equation solving to find the Password.<br />(*) Finding hidden data inside mp3 file by MP3Stego.<br /><br />Read the solution to find more about it. :)T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com2tag:blogger.com,1999:blog-8941634973332260023.post-66999441616030481862009-04-20T18:56:00.004+05:302009-04-21T20:25:47.910+05:30KeyGenMe #2 Ver.2.00 :: C++ :: Difficulty : 3<div style="text-align: justify;"><div style="text-align: justify;">KeyGenMe Location : <a href="http://crackmes.de/users/t.0.r.n.a.d.0./keygenme_2_ver.2.00/">KeyGenMe #2 Ver.2.00 @ Crackmes.de</a><br />Solution Location : <a href="http://crackmes.de/users/t.0.r.n.a.d.0./keygenme_2_ver.2.00/solutions/obnoxious">Solution</a> by <a href="http://crackmes.de/users/obnoxious">obnoxious</a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFr9zUojTh0EYdU3MbboqiE_6fK_c608hD4m4oeGJH_upMOj-8V5iRNarrQSz0K1d5nLND6OXrYhT7955BJDnP4asjU8Y12RDhQnwWewqnUe40mx6N3JtHX2mmDYqA4KD5xDOTtyP4OJU/s1600-h/Pic4Blog_2_2.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFr9zUojTh0EYdU3MbboqiE_6fK_c608hD4m4oeGJH_upMOj-8V5iRNarrQSz0K1d5nLND6OXrYhT7955BJDnP4asjU8Y12RDhQnwWewqnUe40mx6N3JtHX2mmDYqA4KD5xDOTtyP4OJU/s400/Pic4Blog_2_2.jpg" alt="" id="BLOGGER_PHOTO_ID_5326763858097660914" border="0" /></a>My second version of KeyGenMe #2. It's coded in GNU C++. <span style="font-weight: bold;">Features </span>:<br />(*) NOT Packed<br />(*) NOT Encrypted<br />(*) C00L console look.<br /><br />The <span style="font-weight: bold;">Rules </span>:<br />(*) NO Patching<br />(*) NO Brute-forcing<br /><br />The <span style="font-weight: bold;">Tasks </span>:<br />1. Find a correct combination of RefID and License-Key.<br />2. Find the algorithm for Key and RefID calculations<br />3. Make a KEYGEN.<br />4. Write a descent tutorial. ;)<br /><br /></div> Readers, if you solve this [<span style="font-weight: bold;">in a different method than obnoxious</span>], please upload your solution to <a style="font-weight: bold;" href="http://crackmes.de/">CrackMes.de</a>.<br /></div>T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com2tag:blogger.com,1999:blog-8941634973332260023.post-75746299263008072902009-04-01T21:58:00.006+05:302009-04-21T08:44:34.749+05:30KeyGenMe #3 :: VB :: Difficulty : 3<div style="text-align: justify;"><div style="text-align: justify;">KeyGenMe Location : <a href="http://crackmes.de/users/t.0.r.n.a.d.0./keygenme_3/download">KeyGenMe #3 @ Crackmes.de</a><br />Solution Location : Not Solved Yet<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH806ZBMsQunnzfpoW296mlC7R4-SS-ebEkaj5y3DAmkUxcc1HbCSmmgcSIIdE4jyiZACsa8Gonfp4EX7PMJbNtdQhhXLMoLEgxCH1-dyJ2RQ-nM-KcvSW7mB85W5TlfpnmR2R_wAccDA/s1600-h/Pic4Blog3.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 195px; height: 133px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH806ZBMsQunnzfpoW296mlC7R4-SS-ebEkaj5y3DAmkUxcc1HbCSmmgcSIIdE4jyiZACsa8Gonfp4EX7PMJbNtdQhhXLMoLEgxCH1-dyJ2RQ-nM-KcvSW7mB85W5TlfpnmR2R_wAccDA/s400/Pic4Blog3.JPG" alt="" id="BLOGGER_PHOTO_ID_5326761683297022626" border="0" /></a>My third KeyGenMe. It's coded in VB 6.0. <span style="font-weight: bold;">Features </span>:<br />(*) NOT Packed<br />(*) NOT Encrypted<br />(*) Anti-debug routine by me.<br /><br />The <span style="font-weight: bold;">Rules </span>:<br />This KeyGenMe has 4 tasks for you.<br />Rules for Tasks #1, #2, #3 ::: (*) Patching Allowed.<br />Rules for Task #4 ::: (*) NO Brute-forcing<br /> (*) NO Patching<br /><br />The <span style="font-weight: bold;">Tasks </span>:<br />1. TASK #1 :: Defeat the <span style="font-weight: bold;">Anti-Debugger</span>.<br />2. TASK #2 :: Patch the app to run instead of closing.<br />3. TASK #3 :: Find your way to the Validation Section.<br />[[ HINT :: The form appears BLANK at this test. Make it look better ;) ]]<br />4. TASK #4 :: Enter correct validation details and pass the validation check.<br />5. Write a descent tutorial. ;)<br /><br /></div> Readers, if you solve this, please upload your solution to <a style="font-weight: bold;" href="http://crackmes.de/">CrackMes.de</a>.<br /></div>T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com0tag:blogger.com,1999:blog-8941634973332260023.post-71573463292272851812009-04-01T21:51:00.011+05:302009-04-21T20:25:27.567+05:30KeyGenMe #2 :: C++ :: Difficulty : 3<div style="text-align: justify;"><div style="text-align: justify;">KeyGenMe Location : <a href="http://crackmes.de/users/t.0.r.n.a.d.0./keygenme_2/">KeyGenMe #2 @ Crackmes.de</a><br />Solution Location : <a href="http://crackmes.de/users/t.0.r.n.a.d.0./keygenme_2/solutions/obnoxious">Solution</a> by <a href="http://crackmes.de/users/obnoxious">obnoxious</a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj82r5rUYV1yrsBKmPX2Pig2vi-gl9f6N8-n0lRN4XMhkzelKjl5KPXZiWTQvaWKR8t5973ZBiKqryEs1sXbVKXHCbOHqCCsA2iBaZHM9Ei0vchlWCCMAfwVct0BTq6KeCz8YmiZ_LJaJM/s1600-h/Pic4Blog_2.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 201px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj82r5rUYV1yrsBKmPX2Pig2vi-gl9f6N8-n0lRN4XMhkzelKjl5KPXZiWTQvaWKR8t5973ZBiKqryEs1sXbVKXHCbOHqCCsA2iBaZHM9Ei0vchlWCCMAfwVct0BTq6KeCz8YmiZ_LJaJM/s400/Pic4Blog_2.JPG" alt="" id="BLOGGER_PHOTO_ID_5326765155055494130" border="0" /></a><br />My second version of KeyGenMe #2. It's coded in GNU C++. <span style="font-weight: bold;">Features </span>:<br />(*) NOT Packed<br />(*) NOT Encrypted<br />(*) C00L console look.<br /><br />The <span style="font-weight: bold;">Rules </span>:<br />(*) NO Patching<br />(*) NO Brute-forcing<br /><br />The <span style="font-weight: bold;">Tasks </span>:<br />1. Find a correct combination of RefID and License-Key.<br />2. Find the algorithm for Key and RefID calculations<br />3. Make a KEYGEN.<br />4. Write a descent tutorial. ;)<br /><br />The <span style="font-weight: bold;">Hints</span> :<br />1. The serial can consists of the entire array of visible chracters, but<br /> only 4 different characters would also be enough.<br />2. THE 4 different characters are ( 2 * Alphabets ) + ( 2 * Numbers )<br />3. ANY set of 4 different [ even though they too may be ( 2 * Alphabets )<br /> + ( 2 * Numbers ) ] characters won't work.<br /> There exists ONLY 1 such set.<br />4. Most important HINT : Idea of this is inspired by bRaInF**k.<br /><br /></div> Readers, if you solve this [<span style="font-weight: bold;">in a different method than obnoxious</span>], please upload your solution to <a style="font-weight: bold;" href="http://crackmes.de/">CrackMes.de</a>.<br /></div>T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com0tag:blogger.com,1999:blog-8941634973332260023.post-25128788458997141142009-03-27T19:02:00.012+05:302009-04-21T08:42:58.428+05:30KeyGenMe #1 :: VB :: Difficulty : 3<div style="text-align: justify;"><div style="text-align: justify;">KeyGenMe Location : <a href="http://crackmes.de/users/t.0.r.n.a.d.0./keygenme_1/download">KeyGenMe #1 @ Crackmes.de</a><br />Solution Location : Not Solved Yet<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj77g_ElKM1wy_yovZ48O-kuK_f5FT9CZnBbpzbqZ-vK3MOqMPewaJSOUjnhyQ9IWmOB_wHbQpe4WyYUTMp2DesEIJXd_973pOFyvT-tRLp80oDApkDwMT3l5pTmEvr3rVOJ5iiocP6VHY/s1600-h/Pic4Blog.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 248px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj77g_ElKM1wy_yovZ48O-kuK_f5FT9CZnBbpzbqZ-vK3MOqMPewaJSOUjnhyQ9IWmOB_wHbQpe4WyYUTMp2DesEIJXd_973pOFyvT-tRLp80oDApkDwMT3l5pTmEvr3rVOJ5iiocP6VHY/s400/Pic4Blog.jpg" alt="" id="BLOGGER_PHOTO_ID_5326759273649103410" border="0" /></a><br />So, here is my first KeyGenMe. It's coded in VB 6.0. <span style="font-weight: bold;">Features </span>:<br />(*) NOT Packed<br />(*) NOT Encrypted<br />(*) Nice GUI with Color Code + License Key protection<br /><br />The <span style="font-weight: bold;">Rules </span>:<br />(*) NO Patching<br />(*) NO Brute-forcing<br /><br />The <span style="font-weight: bold;">Tasks </span>:<br />(*) Find algorithm for key and color calculations.<br />(*) Make KeyGen to generate key and color code for a given user-name.<br />[ The program accepts a particular color out of 9 colors for each user. The 9 colors are : RED, GREEN, BLUE, YELLOW, CYAN, MAGENTA, BLACK, WHITE, GREY. So, either your KeyGen can show the color or it can just name it. Particularly for C/C++ programmers, you can just display the color name. ]<br />(*). Write a tutorial. ;)<br /><br /></div> Readers, if you solve this, please upload your solution to <a style="font-weight: bold;" href="http://crackmes.de/">CrackMes.de</a>.<br /></div>T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com0tag:blogger.com,1999:blog-8941634973332260023.post-21624397598276091232009-03-27T07:41:00.000+05:302009-03-27T08:16:17.120+05:30My very first blog !!<div style="text-align: justify;">This is my first ever experience in blogging. So, welcome to my first blog.<br /><br /><span style="font-weight: bold;">Why did I start this blog ?</span><br />Haha, nothing special. I got myself registered at www.crackmes.de on 5th March 2009, (yeah recently !). I saw some of the blogs by andrewl.us (RCE Junk blog), obnoxious (obnoxious coder blog) and I was inspired to start one of my own. That's it and here am I -- blogging.<br /><br /><span style="font-weight: bold;">What am I going to blog about ?</span><br />I will be mainly blogging about CRACKING (as the title says). I will be discussing about my CrackMes / KeyGenMes submitted to www.crackmes.de. I would discuss about the specialty of each of my work. I would discuss about the solutions to my works. [[ Suggestions by readers are most welcome ]]<br /><br />I may not be able to maintain the blog regularly because of a wide-range of causes (workload, studies ...). So, just bear with it. ;)<br /><br />So,.. I guess that was enough introduction. Next post, I will start with my KeyGenMes...<br /></div>T.0.R.N.A.D.0.http://www.blogger.com/profile/01388870562906422543noreply@blogger.com0