by ROADY
05 March 1998

/* ** Fravia javascript password brutecracker ** Special version, does only work with Fravia's hints ** and what I assumed/found to be true ** Just needed a bit of luck. ** Should be fast even in java. Takes about 10 sec on my machine ** If you translate it to C I would like to see the result. ** No extensive *englishness* check. Just some to speed up tests. ** find the good one yourself it's fast. ** Hmm... as you are all crackers I didn't comment :) ** ** By ROADY/TROOPERS 1998 Roady(at)rocketmail(dot)com */ public class Fraviapass { static int f[]={80,83,93,99,113,131,159,194,346,416,619,861,1165,1649,2256, 4766,6077,9554,13713,20576,28894,65661,82386,131248,164801,262524}; static int g[]={160,163,173,179,193,211,239,274,426,496,699,941,1245,1729,2336,4846,6157, 9634,13793,20656,28974,65741,82466,131328,164881,262604,166,176,182,196,214,242,277,429, 499,702,944,1248,1732,2339,4849,6160,9637,13796,20659,28977,65744,82469,131331,164884, 262607,186,192,206,224,252,287,439,509,712,954,1258,1742,2349,4859,6170,9647,13806,20669, 28987,65754,82479,131341,164894,262617,198,212,230,258,293,445,515,718,960,1264,1748, 2355,4865,6176,9653,13812,20675,28993,65760,82485,131347,164900,262623,226,244,272,307, 459,529,732,974,1278,1762,2369,4879,6190,9667,13826,20689,29007,65774,82499,131361,164914, 262637,262,290,325,477,547,750,992,1296,1780,2387,4897,6208,9685,13844,20707,29025,65792, 82517,131379,164932,262655,318,353,505,575,778,1020,1324,1808,2415,4925,6236,9713,13872, 20735,29053,65820,82545,131407,164960,262683,388,540,610,813,1055,1359,1843,2450,4960, 6271,9748,13907,20770,29088,65855,82580,131442,164995,262718,692,762,965,1207,1511,1995, 2602,5112,6423,9900,14059,20922,29240,66007,82732,131594,165147,262870,832,1035,1277,1581, 2065,2672,5182,6493,9970,14129,20992,29310,66077,82802,131664,165217,262940,1238,1480, 1784,2268,2875,5385,6696,10173,14332,21195,29513,66280,83005,131867,165420,263143, 1722,2026,2510,3117,5627,6938,10415,14574,21437,29755,66522,83247,132109,165662,263385, 2330,2814,3421,5931,7242,10719,14878,21741,30059,66826,83551,132413,165966,263689,3298, 3905,6415,7726,11203,15362,22225,30543,67310,84035,132897,166450,264173,4512,7022, 8333,11810,15969,22832,31150,67917,84642,133504,167057,264780,9532,10843,14320,18479, 25342,33660,70427,87152,136014,169567,267290,12154,15631,19790,26653,34971,71738,88463, 137325,170878,268601,19108,23267,30130,38448,75215,91940,140802,174355,272078,27426,34289, 42607,79374,96099,144961,178514,276237,41152,49470,86237,102962,151824,185377,283100, 57788,94555,111280,160142,193695,291418,131322,148047,196909,230462,328185,164772,213634, 247187,344910,262496,296049,393772,329602,427325,525048}; static int var5=0; static int var1[]= {'j','k','q','x','y','z'}; static char var2[] = {'a', 'b', 'c', 'd', 'e', 'f','g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't','u', 'v', 'w', 'x', 'y', 'z'}; static char var3[] = {'a','a','a','b','a','c','a','d','a','e','a','f','a','g','a', 'h','a','i','a','j','a','k','a','l','a','m','a','n','a','o','a','p','a','q','a','r','a', 's','a','t','a','u','a','v','a','w','a','x','a','y','a','z','b','b','b','c','b','d','b', 'e','b','f','b','g','b','h','b','i','b','j','b','k','b','l','b','m','b','n','b','o','b', 'p','b','q','b','r','b','s','b','t','b','u','b','v','b','w','b','x','b','y','b','z','c', 'c','c','d','c','e','c','f','c','g','c','h','c','i','c','j','c','k','c','l','c','m','c', 'n','c','o','c','p','c','q','c','r','c','s','c','t','c','u','c','v','c','w','c','x','c', 'y','c','z','d','d','d','e','d','f','d','g','d','h','d','i','d','j','d','k','d','l','d', 'm','d','n','d','o','d','p','d','q','d','r','d','s','d','t','d','u','d','v','d','w','d', 'x','d','y','d','z','e','e','e','f','e','g','e','h','e','i','e','j','e','k','e','l','e', 'm','e','n','e','o','e','p','e','q','e','r','e','s','e','t','e','u','e','v','e','w','e', 'x','e','y','e','z','f','f','f','g','f','h','f','i','f','j','f','k','f','l','f','m','f', 'n','f','o','f','p','f','q','f','r','f','s','f','t','f','u','f','v','f','w','f','x','f', 'y','f','z','g','g','g','h','g','i','g','j','g','k','g','l','g','m','g','n','g','o','g', 'p','g','q','g','r','g','s','g','t','g','u','g','v','g','w','g','x','g','y','g','z','h', 'h','h','i','h','j','h','k','h','l','h','m','h','n','h','o','h','p','h','q','h','r','h', 's','h','t','h','u','h','v','h','w','h','x','h','y','h','z','i','i','i','j','i','k','i', 'l','i','m','i','n','i','o','i','p','i','q','i','r','i','s','i','t','i','u','i','v','i', 'w','i','x','i','y','i','z','j','j','j','k','j','l','j','m','j','n','j','o','j','p','j', 'q','j','r','j','s','j','t','j','u','j','v','j','w','j','x','j','y','j','z','k','k','k', 'l','k','m','k','n','k','o','k','p','k','q','k','r','k','s','k','t','k','u','k','v','k', 'w','k','x','k','y','k','z','l','l','l','m','l','n','l','o','l','p','l','q','l','r','l', 's','l','t','l','u','l','v','l','w','l','x','l','y','l','z','m','m','m','n','m','o','m', 'p','m','q','m','r','m','s','m','t','m','u','m','v','m','w','m','x','m','y','m','z','n', 'n','n','o','n','p','n','q','n','r','n','s','n','t','n','u','n','v','n','w','n','x','n', 'y','n','z','o','o','o','p','o','q','o','r','o','s','o','t','o','u','o','v','o','w','o', 'x','o','y','o','z','p','p','p','q','p','r','p','s','p','t','p','u','p','v','p','w','p', 'x','p','y','p','z','q','q','q','r','q','s','q','t','q','u','q','v','q','w','q','x','q', 'y','q','z','r','r','r','s','r','t','r','u','r','v','r','w','r','x','r','y','r','z','s', 's','s','t','s','u','s','v','s','w','s','x','s','y','s','z','t','t','t','u','t','v','t', 'w','t','x','t','y','t','z','u','u','u','v','u','w','u','x','u','y','u','z','v','v','v', 'w','v','x','v','y','v','z','w','w','w','x','w','y','w','z','x','x','x','y','x','z','y', 'y','y','z','z','z'}; static boolean func2(char param1,char param2) { char v[]={'a','e','i','o','u'}; switch(param1) { case 'j': case 'x': case 'y': case 'z': for(int i=0;i<5;i++) { if (param2==v[i]) return true; } return false; case 'q': return param2=='u'; default: return true; } } /* ** The recursive part. Find yourself how it works. ** You are crackers aren't you ? */ static void func1(long param1, int param2,String param3,int param4) { int var4=0; if (param2==1) { for (int i=0; i<351;i++) { if (param1-g[i] ==0 ) { for(int j=0;j<6;j++) { if (var3[2*i]==var1[j]) { param4++; break; }} for(int j=0;j<6;j++) { if (var3[2*i+1]==var1[j]) { param4++; break; }} if (param4<2) { System.out.println("_"+var3[2*i]+var3[2*i+1]+param3); System.out.println("_"+var3[2*i+1]+var3[2*i]+param3); var5+=2; break; }} } } else if (param2>1) { for (int i=0; i<26; i++) { if ((param1-f[i])%param2 == 0 && param1-f[i]>159) { var4=param4; for(int j=0;j<6;j++) { if (var2[i]==var1[j]) { var4++; break; }} if ((var4 <2) && func2(var2[i],param3.charAt(0))) func1((param1-f[i])/param2,param2-1,var2[i]+param3,var4); } } } } static public void main(String argv[]) { int min=1; int max=1; int total; long dummy=0; long key = 25834242042L; for (;dummy<key;min++) { dummy+=262524; dummy*=min; } for (dummy=0;dummy>key;max++) { dummy+=80; dummy*=max; } for (total=min-1;total<max;total++) { if (key %total == 0) break; } func1(((key/9)-f[17])/8,7,"r",0); System.out.println("\nMinimal total password length: "+min); System.out.println("Maximal total password length: "+max); System.out.println("Total password length: "+(total+1)); System.out.println("\nThere are "+ var5+"*26 possibilities left"); } } >/xmp> <HR ALIGN=CENTER WIDTH=100% SIZE=3> <center><i>You are deep inside Fravia's page of reverse engineering, choose your way out:</i></center> <br><center> <table><tR><td><center> <a href="javdevio.htm" tppabs="http://fravia.org/javdevio.htm" onMouseOver="window.status='Yessir, back to the other side of the fence'; return true"><IMG SRC="images/javascri.gif" tppabs="http://fravia.org/javascri.gif" ALT="entrance" ALIGN=BOTTOM WIDTH=114 HEIGHT=43 BORDER=0 VSPACE=0 HSPACE=0></a></center></td> <td><center> <a href="javfurther.htm" tppabs="http://fravia.org/javfurther.htm" onMouseOver="window.status='Back to advanced'; return true"><IMG SRC="images/javascri.gif" tppabs="http://fravia.org/javascri.gif" ALT="advanced page" ALIGN=BOTTOM WIDTH=114 HEIGHT=43 BORDER=0 VSPACE=0 HSPACE=0></a></center></td> </tr><tR> <td><center><font color=gray> Back to the entrance</fonT></center></td> <td><center><font color=gray> Back to the devious page</fonT></center></td> </tR> </table> <br> <IMG SRC="images/bulletr.gif" tppabs="http://fravia.org/bulletr.gif" ALT="red" ALIGN=BOTTOM WIDTH=13 HEIGHT=13 BORDER=0 VSPACE=0 HSPACE=0><A HREF="index.htm" tppabs="http://fravia.org/index.html">homepage</A> <IMG SRC="images/bulletr.gif" tppabs="http://fravia.org/bulletr.gif" ALT="red" ALIGN=BOTTOM WIDTH=13 HEIGHT=13 BORDER=0 VSPACE=0 HSPACE=0><A HREF="links.htm" tppabs="http://fravia.org/links.htm">links</A> <IMG SRC="images/bulletr.gif" tppabs="http://fravia.org/bulletr.gif" ALT="red" ALIGN=BOTTOM WIDTH=13 HEIGHT=13 BORDER=0 VSPACE=0 HSPACE=0><A HREF="noanon.htm" tppabs="http://fravia.org/noanon.htm">anonymity</A> <IMG SRC="images/bulletr.gif" tppabs="http://fravia.org/bulletr.gif" ALT="red" ALIGN=BOTTOM WIDTH=13 HEIGHT=13 BORDER=0 VSPACE=0 HSPACE=0><A HREF="orc.htm" tppabs="http://fravia.org/orc.htm">+ORC</A> <IMG SRC="images/bulletr.gif" tppabs="http://fravia.org/bulletr.gif" ALT="red" ALIGN=BOTTOM WIDTH=13 HEIGHT=13 BORDER=0 VSPACE=0 HSPACE=0><A HREF="student.htm" tppabs="http://fravia.org/student.htm">students' essays</A> <IMG SRC="images/bulletr.gif" tppabs="http://fravia.org/bulletr.gif" ALT="red" ALIGN=BOTTOM WIDTH=13 HEIGHT=13 BORDER=0 VSPACE=0 HSPACE=0><A HREF="academy.htm" tppabs="http://fravia.org/academy.htm">academy database</A><br> <IMG SRC="images/bulletr.gif" tppabs="http://fravia.org/bulletr.gif" ALT="red" ALIGN=BOTTOM WIDTH=13 HEIGHT=13 BORDER=0 VSPACE=0 HSPACE=0><A HREF="tools.htm" tppabs="http://fravia.org/tools.htm">tools</A> <a href="http://www.dejanews.com/" tppabs="http://www.dejanews.com/" onMouseOver="window.status='(A stalking utility :-)'; return true"><IMG SRC="images/bulletr.gif" tppabs="http://fravia.org/bulletr.gif" ALT="red" ALIGN=BOTTOM WIDTH=13 HEIGHT=13 BORDER=0 VSPACE=0 HSPACE=0></a><A HREF="cocktail.htm" tppabs="http://fravia.org/cocktail.htm" onMouseOver="window.status='An amazing useful link'; return true">cocktails</A> <IMG SRC="images/bulletr.gif" tppabs="http://fravia.org/bulletr.gif" ALT="red" ALIGN=BOTTOM WIDTH=13 HEIGHT=13 BORDER=0 VSPACE=0 HSPACE=0><A HREF="file:///C:/Documents%20and%20Settings/Administrator.EINSTEIN.000/My%20Documents/My%20Webs/fravia/ideale.htm" tppabs="http://www.fravia.org/ideale.htm">antismut CGI-scripts</A> <IMG SRC="images/bulletr.gif" tppabs="http://fravia.org/bulletr.gif" ALT="red" ALIGN=BOTTOM WIDTH=13 HEIGHT=13 BORDER=0 VSPACE=0 HSPACE=0><A HREF="searengi.htm" tppabs="http://fravia.org/searengi.htm">search_forms</A> <IMG SRC="images/bulletr.gif" tppabs="http://fravia.org/bulletr.gif" ALT="red" ALIGN=BOTTOM WIDTH=13 HEIGHT=13 BORDER=0 VSPACE=0 HSPACE=0><A HREF="info.htm" tppabs="http://fravia.org/info.htm">mail_Fravia</A><br> <IMG SRC="images/bulletr.gif" tppabs="http://fravia.org/bulletr.gif" ALT="red" ALIGN=BOTTOM WIDTH=13 HEIGHT=13 BORDER=0 VSPACE=0 HSPACE=0><A HREF="legal.htm" tppabs="http://fravia.org/legal.htm">Is reverse engineering legal?</A> </CENTER> </body> </HTML>