Nexon Captcha Cracker

01/20/2012 17:16 Lawliet#1
[Only registered and activated users can see links. Click Here To Register...]


Hallo,
Beim Anmelden bei Nexon muss jeder eines dieser Bildchen "lösen":
[Only registered and activated users can see links. Click Here To Register...]
Wenn man aber etwas pöses vor hat, z.B. das Nexon Forum zu spammen (op "caeureporter") und nicht nach jedem gebannten Account wieder selbst einen erstellen zu müsse, dann macht es Sinn dafür ein Tool zu schreiben.
Gedacht, nach langer Zeit getan :)
[Only registered and activated users can see links. Click Here To Register...]

Das Tool ließt das Captcha ein, entfernt alle Farben, außer die 7, die in den Buchstaben enthalten sind und gleicht dann jeden Buchstaben mit seiner Datenbank ab. Sollte sich mal etwas an der Schriftart/Farbe etc. änder, ist im Sourcecode auch eine Funktion enthalten, welche das Tool die neue Situation lernen lässt.
Code:
Func _WriteToArray2($Anfang, $End, $Mid, $oldarry)
	$if = 0
	$i = 0
	$x = 0
	Dim $array[1][1]
	For $iX = $Anfang To $End Step 1
		For $iY = 0 To 49 Step 1
			If Dec($oldarry[$iY][$iX]) = 0 Then
				If Dec($oldarry[$iY][$iX - 1]) = 0 Then
					If Dec($oldarry[$iY][$iX + 1]) = 0 Then
						If $iY < 36 And Dec($oldarry[$iY + 1][$iX]) = 0 Then
							If $iY > 15 And Dec($oldarry[$iY - 1][$iX]) = 0 Then
								$if += 1
								ReDim $array[$if + 1][2]
								$array[$if][0] = $iX - $Mid
								;_ArrayDisplay($array)
								$array[$if][1] = $iY - 25
								$array[0][0] = $if

							Endif
						EndIf
					EndIf
				EndIf
			EndIf



			;If Dec($oldarry[$iY][$iX]) <> 0 Then
			;If Dec($oldarry[$iY][$iX + 1]) <> 0 Then
			;If Dec($oldarry[$iY][$iX - 1]) <> 0 Then
			;MsgBox(0, "Efs", "Y: " & $iY & " X: " & $iX & "MID: " & $Mid & "l" & 25)
			;FileWrite("C:\Code.txt", "If Dec($bild[$MidY +" & $iY - 25 & "][$MidX +" & $iX - $Mid & "]) <> 0 Then" & @CRLF)
			;FileWrite("C:\Code.txt", 'ConsoleWrite("' & StringTrimLeft(StringTrimRight($file_in, 4), 19) & '" & @crlf)' & @CRLF)
			;$if += 1
			;EndIf
			;EndIf
			;EndIf
			$i += 1
		Next
		$i = 0
		$x += 1
	Next
	;_ArrayDisplay($array)
	FileWrite("C:\Code2.txt", "Dim $"& StringTrimLeft(StringTrimRight($file_in, 4), 19) &"XArray[" & $Array[0][0] & "] = [")
For $k2 = 1 to $array[0][0] step 1
	FileWrite("C:\Code2.txt", ",'" & $array[$k2][0] & "'")
Next
FileWrite("C:\Code2.txt","]" & @CRLF)

FileWrite("C:\Code2.txt", "Dim $"& StringTrimLeft(StringTrimRight($file_in, 4), 19) &"YArray[" & $Array[0][0] & "] = [")
For $k2 = 1 to $array[0][0] step 1
	FileWrite("C:\Code2.txt", ",'" & $array[$k2][1] & "'")
Next
FileWrite("C:\Code2.txt","]" & @CRLF)
FileWrite("C:\Code2.txt", "For $ia" & StringTrimLeft(StringTrimRight($file_in, 4), 19) & "= 0 to " & $Array[0][0] & " step 1" & @crlf & "If Dec($bild[$MidY + $"& StringTrimLeft(StringTrimRight($file_in, 4), 19) &"YArray[$ia" & StringTrimLeft(StringTrimRight($file_in, 4), 19) & "]][$MidX + $"& StringTrimLeft(StringTrimRight($file_in, 4), 19) &"XArray[$ia" & StringTrimLeft(StringTrimRight($file_in, 4), 19) & "]]) then" & @crlf & "$ia" & StringTrimLeft(StringTrimRight($file_in, 4), 19) &"="& $Array[0][0] & @crlf & "Else" & @crlf & "if $ia" & StringTrimLeft(StringTrimRight($file_in, 4), 19) & "= "& $Array[0][0]-1 & " Then Return '" & StringTrimLeft(StringTrimRight($file_in, 4), 19) & "'" & @CRLF & "EndIf" & @CRLF & "Next"& @CRLF)
	start()
EndFunc   ;==>_WriteToArray2

Hier noch der ganze Sourcecode:

01/20/2012 18:28 RezChams#2
Good Job - wie lang hats gedauert
01/20/2012 18:51 Lawliet#3
Gestern bin ich auf die Idee gekommen, das Programm selbst den Code zum prüfen der einzelnen Pixel erstellen zu lassen, da war ich von 14-2:00 Uhr beschäftigt und heute hab ich nomma 1,5h oder so den Code verbessert:D
Loht sich aber^^ Damit kann ich was krasses machen.

Irgendwas stimmt hier mit der Rechschreibung ned :D Bin grad voll verpeilt
01/20/2012 19:31 RezChams#4
Du bist nur betrunken oder so.

Naja gut gemacht - auch wenn ich nicht weis was mir persönlich so viele Acc´s bringen - wobei wir n paar Epvp Spam Bots machen könnten