Friday, September 11, 2009
MoveIT...The New JavaScript Crackme :P
Yes i am finally putting up a new crackme after a long break. Also i have not put any recent tutorials :'(. I hope some people miss my stuff @ crackmes.de. But the good thing is heres a quick preview of my latest crackme. I hope you guys will love it when i submit it by monday :P cheers
Dont forget to get greasemonkey plugin for FireFox to try this crackme :D
Tuesday, August 18, 2009
Scripting...I love weakly typed languages :P
Hi fellas I was a bit busy these few days. I was trying to get the basics of Scripting and i have been pretty successful. So here's my first UserScript for mozilla for the site travian.com. This little script lets you select all the checkboxes on the report page for quick deletion. Have fun :)
// Use this tiny little script to select/unselect all reports on the reports page
// of travian so that you could delete them quickly.
// ==UserScript==
// @name SlectAll
// @namespace obnoxiouscoder.blogspot.com
// @decription "Select All" reports on the page with a click for deletion.
// @include http//*.travian.*/berichte.php*
// @include *.travian.*/berichte.php*
// @email obnoxiouscoder@gmail.com
// ==/UserScript==
// *********************************************************
var nbsp = document.createTextNode( "\u00A0" );
var newChkBox = document.createElement("input");
newChkBox.type = "checkbox";
newChkBox.id = "chk_box";
newChkBox.addEventListener("click",function()
{
var chkBox = document.getElementsByTagName("input");
for(i=0; i
{
if(chkBox[i].getAttribute('type') == "checkbox")
{
if(chkBox[i].getAttribute("id") != "chk_box")
{
if(chkBox[i].checked == true)
{
chkBox[i].checked =false;
}
else
{
chkBox[i].checked = true;
}
}
}
}
},false);
//CheckBox Text
var newTxt = document.createElement("b");
newTxt.setAttribute("style","color: #00CC33;");
var chkboxTxt = document.createTextNode("SelectAll");
newTxt.appendChild(chkboxTxt);
//target Button
var trgtButton = document.getElementById("btn_delete");
//insertAfter Function.
function insertAfter(newElement,targetElement)
{
var parent = targetElement.parentNode;
if (parent.lastChild == targetElement)
{
parent.appendChild(newElement);
}
else
{
parent.insertBefore(newElement,targetElement.nextSibling);
}
}
//Lets Roll Baby
insertAfter(newChkBox,trgtButton);
newChkBox.parentNode.insertBefore(nbsp,newChkBox);
insertAfter(newTxt,newChkBox);
Sunday, August 2, 2009
Obnoxious Schemeing :P(Brute Forcer in Scheme)
I am in love with scheme. To me its the best language where you can understand looping(The thing we take for granted thanks to the For Loop). Its also the best language for understanding recursion. Recursion in scheme is simply superb!!!! So here's a little implementation of that awesome bruteforcing algo in scheme translated by me.
(define sb "")
(define charlst '(#\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))
(define (Start length)
(let loop([i 0] [max length])
(cond
[(= i max) (IterateChars 0 sb length)]
[else (set! sb (string-append sb "a"))
(loop (+ i 1) max)])))
(define (IterateChars pos sb length)
(let loop([i 0] [max 26])
(cond
[(= i max) (display "")]
[else (string-set! sb pos (list-ref charlst i))
(cond
[(= pos (- length 1)) (display "\n") (display sb)]
[else (IterateChars (+ pos 1) sb length)])
(loop (+ i 1) max)])))
(Start 4)
In order to change the the length of the string just change (Start length) => length to desired choice. I must simply say that anyone who wants to understand Looping and Recursion better should give scheme a shot.
[More Details On Scheme]
en.wikipedia.org/wiki/Scheme_(programming_language)
[Get Compiler Here]
download.plt-scheme.org/drscheme/
skNiNe9's SKCrackMe #1
Its a Java crackme. I am trying to learn java so i gave it a shot. It uses DES encryption in ECB mode or rather DES decryption to verify the serial. This as how DES can be implemented in java.
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
public class DES
{
public byte[] getDES(byte[] inputbytes, byte[] keybytes) throws Exception
{
SecretKeySpec key = new SecretKeySpec(keybytes,"DES");
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] cryptedTxt = cipher.doFinal(inputbytes);
return cryptedTxt;
}
public byte[] decryptDES(byte[] inputbytes, byte[] keybytes) throws Exception
{
SecretKeySpec key = new SecretKeySpec(keybytes,"DES");
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] decryptedtxt = cipher.doFinal(inputbytes);
return decryptedtxt;
}
}
Have fun implementing DES :P
Sunday, July 5, 2009
br0ken's What is my password?
Aah its been sometime since br0ken put a crackme. I missed his last one my net connection was out then :P. br0ken's college has been keeping him too busy these days :P. It was a fun crackme. Made me do some math in a long time, also i had to dig in a bit to remind myself the Gauss-elimination, Newton Raphson , Gauss-sidel iteration methods that i learnt for solving liner equations. You guys can have a look at br0ken's password once the solution gets approved. Cheers and happy cracking.