kann jemand das in autoit umsetzten könnte
will das in einem netzwerktool einbauen, weil manchmal die normale Passwort nicht nicht vom Beriebssystem an erkannt und muss als hash in die regestry eingetragen werden
ich beherrsch autoit nicht gut genug
kann jemand das in autoit umsetzten könnte
will das in einem netzwerktool einbauen, weil manchmal die normale Passwort nicht nicht vom Beriebssystem an erkannt und muss als hash in die regestry eingetragen werden
ich beherrsch autoit nicht gut genug
Das solltest du nicht in AutoIt machen sondern in einer hochsprache oder in ASM, weil du sonst ewig brauchst.
http://pastebin.com/yPJvFNbF
Das ist das Script von der Website. Das sollte eig auch für einen Anfänger möglich sein das zu übersetzen, denn google ist dein Freund.
wenn du mit einem gewissen Abschnitt hilfe brauchst posts einfach hier und wir werden dir sicher helfen können.
Ich denke nicht, dass das hier jemand machen möchte, weil es sehr viel Arbeit ist. Unud wenn du es selbst machst lernst du nicht nur AutoIt sonder auch ein bisschen Javascript.
So einen Teil hab ich schon kann du mir jetzt helfen mit den | und << >> >>> <<< oeratoren kann ich nicht um gehen und was das ~ oder das ? machen checke ich auch nicht.
danke das du mir helfen willst ich hoffe du kannst ein bischen weiter machen ...
Func stringtowords($s, $padi)
Dim $z[80], $j = -1, $k = 0, $n = StringLen($s) ; bis zeile 8
For $i = 0 To 64 Step 1
$c = 0
If $i < $n Then
$c = Asc(StringMid($s, $i, $i + 1))
ElseIf $padi Then
If $i == $n Then
$c = $padi > >> 24 & 0xff ;fehler orginal: c = (padi >>> 24) & 0xff;
ElseIf $i == $n + 1 Then
$c = $padi > >> 16 & 0xff ;fehler orginal: c = (padi >>> 16) & 0xff;
ElseIf $i == $n + 2 Then
$c = $padi > >> 8 & 0xff ;fehler orginal: c = (padi >>> & 0xff;
ElseIf $i == $n + 3 Then
$c = $padi & 0xff
ElseIf $i == $n + 4 Then
$c = 0x80
EndIf
EndIf
If $k == 0 Then
$j += 1
$z[$j] = 0
$k = 32
EndIf
$k -= 8
$z[$j] = $z[$j] Or $c < < $k ; fehler orginal: z[j] = z[j] | (c << k);
Next
If $padi Then $z[15] = 8 * (64 + $n + 4)
Return $z
EndFunc ;==>stringtowords
Func initsha($w, $padbyte) ; Bit operatoren und |brauche ich hilfe
$pw = ($padbyte < < 24) |($padbyte < < 16) |($padbyte < < | $padbyte;
For $t = 0 To 16 Step 1
$w[$t] ^ = $pw;
$s = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0];
$a = $s[0]
$b = $s[1]
$c = $s[2]
$d = $s[3]
$e = $s[4]
$t = 0;
For $k = 16 To 80 Step 1
$t = $w[$k - 3] ^ $w[$k - 8] ^ $w[$k - 14] ^ $w[$k - 16];
$w[$k] = ($t < <1) |($t > >>31);
Next
For $k = 0 To 20 Step 1
$t = (($a < <5) |($a > >>27)) + $e + $w[$k] + 0x5A827999 + (($b & $c) |((~$b) & $d));
$e = $d;
$d = $c;
$c = ($b < <30) |($b > >>2);
$b = $a;
$a = $t & 0xffffffff;
Next
For $k = 20 To 40 Step 1
$t = (($a < <5) |($a > >>27)) + $e + $w[$k] + 0x6ED9EBA1 + ($b ^ $c ^ $d);
$e = $d;
$d = $c;
$c = ($b < <30) |($b > >>2);
$b = $a;
$a = $t & 0xffffffff;
Next
For $k = 40 To 60 Step 1
$t = (($a < <5) |($a > >>27)) + $e + $w[$k] + 0x8F1BBCDC + (($b & $c) |($b & $d) |($c & $d));
$e = $d; d = c;
$c = ($b < <30) |($b > >>2);
$b = $a;
$a = $t & 0xffffffff;
Next
For $k = 60 To 80 Step 1
$t = (($a < <5) |($a > >>27)) + $e + $w[$k] + 0xCA62C1D6 + ($b ^ $c ^ $d);
$e = $d;
$d = $c;
$c = ($b < <30) |($b > >>2)
$b = $a
$a = $t & 0xffffffff;
Next
$s[0] = ($s[0] + $a) & 0xffffffff;
$s[1] = ($s[1] + $b) & 0xffffffff;
$s[2] = ($s[2] + $c) & 0xffffffff;
$s[3] = ($s[3] + $d) & 0xffffffff;
$s[4] = ($s[4] + $e) & 0xffffffff;
Return $s;
Next
EndFunc ;==>initsha
; HIER brauch ich ganz viel hilfe
Func getWpaPskKeyFromPassphrase(pass, salt)
$hmac_istate = initsha(stringtowords($pass, 0), 0x36);
$hmac_ostate = initsha(stringtowords(pass, 0), 0x5c);
Global $hash = '', $i = 0;
While (StringLen($hash) < 64);prepare 20-byte (5-word) output vector */
Dim $u[5] = [0, 0, 0, 0, 0]; prepare input vector for the first SHA1 update (salt + block number) */
$i += 1;
$w = stringtowords($salt, $i);
For ($j = 0 To 2 * 4096 Step 1; /* alternate inner and outer SHA1 operations */
$s = If ($j & 1) ? hmac_ostate : hmac_istate; HILFE kp : var s = (j & 1) ? hmac_ostate : hmac_istate;
;/* inline the SHA1 update operation */
Dim $a = $s[0], $b = $s[1], $c = $s[2], $d = $s[3], $e = $s[4], $t = 0;
For ($k = 16 To 80 Step 1)
$t = $w[$k - 3] ^ $w[$k - 8] ^ $w[$k - 14] ^ $w[$k - 16];
$w[$k] = ($t < <1) |($t > >>31);
Next
For ($k = 0 To 20 Step 1)
$t = (($a < <5) |($a > >>27)) + $e + $w[$k] + 0x5A827999 + (($b & $c) |((~$b) & $d));
$e = $d;
$d = $c;
$c = ($b < <30) |($b > >>2);
$b = $a;
$a = $t & 0xffffffff;
Next
For ($k = 20 To 40 Step 1)
$t = (($a < <5) |($a > >>27)) + $e + $w[$k] + 0x6ED9EBA1 + ($b ^ $c ^ $d);
$e = $d;
$d = $c;
$c = ($b < <30) |($b > >>2);
$b = $a;
$a = $t & 0xffffffff;
Next
For ($k = 40 To 60 Step 1)
$t = (($a < <5) |($a > >>27)) + $e + $w[$k] + 0x8F1BBCDC + (($b & $c) |($b & $d) |($c & $d));
$e = $d;
$d = $c;
$c = ($b < <30) |($b > >>2);
$b = $a;
$a = $t & 0xffffffff;
Next
For ($k = 60 To 80 Step 1)
$t = (($a < <5) |($a > >>27)) + $e + $w[$k] + 0xCA62C1D6 + ($b ^ $c ^ $d);
$e = $d;
$d = $c;
$c = ($b < <30) |($b > >>2);
$b = $a;
$a = $t & 0xffffffff;
Next
$w[0] = ($s[0] + $a) & 0xffffffff;
$w[1] = ($s[1] + $b) & 0xffffffff;
$w[2] = ($s[2] + $c) & 0xffffffff;
$w[3] = ($s[3] + $d) & 0xffffffff;
$w[4] = ($s[4] + $e) & 0xffffffff;
If ($j & 1) Then
;/ * XOR the result of each complete HMAC - SHA1 operation into u * /
$u[0] ^ = $w[0];
$u[1] ^ = $w[1];
$u[2] ^ = $w[2];
$u[3] ^ = $w[3];
$u[4] ^ = $w[4];
ElseIf ($j == 0) Then
;/ * pad the new 20 - byte input vector For subsequent SHA1 operations * /
$w[5] = 0x80000000;
For ($k = 6 To 15 Step 1)
$w[$k] = 0;
$w[15] = 8 * (64 + 20);
Next
EndIf
; / * convert output vector u To hex And append To output string * /
For $j = 0 To 5 Step 1
For ($k = 0 To 8 Step 1)
$t = ($u[$j] > >>(28 - 4 * $k)) & 0x0f;
$hash += ($t < 10) ? $t : String(Chr(87 + $t));
Next
Next
;### Tidy Error -> "wend" is closing previous "for" on line 102
WEnd
;### Tidy Error -> "endfunc" is closing previous "while" on line 97
EndFunc ;==>getWpaPskKeyFromPassphrase
;### Tidy Error -> func is never closed in your script.
[/autoit]