11 Years of Service
51%
[HIDE-THANKS]
[/HIDE-THANKS]
Code:
>Global $_SHA1Opcode = '0xC86800005356576A006A006A008D459850E829000000FF7514FF750CFF75088D459850E88A0000006A006A008D459850FF7510E8490000005F5E5BC9C210005589E5538B5D08836314008363180083635C00C70301234567C7430489ABCDEFC74308FEDCBA98C7430C76543210C74310F0E1D2C383636000836364005B5DC210005589E55657FF750CE8850200008B7D088B750C6A0559A58A47FF8647FC8847FF8A47FE8647FD8847FEE2EB5F5E5DC210005589E55356578B5D08837D10007502EB59837B60007506837B640074076A018F4364EB468B4D108B7D0CEB3449518A078B735C8844331CFF435C83431408837B1400750EFF4318837B180075056A018F4364837B5C40750653E813000000475985C97406837B640074C25F5E5B5DC21000C84801005356578B5D086A10598D51FF89D7C1E7020FB6443B1CC1E018898495BCFEFFFF0FB6443B1DC1E010098495BCFEFFFF0FB6443B1EC1E008098495BCFEFFFF0FB6443B1F098495BCFEFFFFE2BD6A105A83FA5073288B8495B0FEFFFF3384959CFEFFFF33849584FEFFFF3384957CFEFFFFD1C0898495BCFEFFFF42EBD38B4D088B318B59048B51088B790C8B41108985B8FEFFFF8365FC00837DFC147D3C89D131F921D931F989F0C1C00501C80385B8FEFFFF8B4DFC03848DBCFEFFFF059979825A5089BDB8FEFFFF89D789D8C1C01E89C289F35EFF45FCEBBE6A148F45FC837DFC287D3A89D931D131F989F0C1C00501C80385B8FEFFFF8B4DFC03848DBCFEFFFF05A1EBD96E5089BDB8FEFFFF89D789D8C1C01E89C289F35EFF45FCEBC06A288F45FC837DFC3C7D4689D821F85089D021F889D921D109C15809C189F0C1C00501C80385B8FEFFFF8B4DFC03848DBCFEFFFF05DCBC1B8F5089BDB8FEFFFF89D789D8C1C01E89C289F35EFF45FCEBB46A3C8F45FC837DFC507D3A89D931D131F989F0C1C00501C80385B8FEFFFF8B4DFC03848DBCFEFFFF05D6C162CA5089BDB8FEFFFF89D789D8C1C01E89C289F35EFF45FCEBC08B4D088B0101F089018B410401D88941048B410801D08941088B410C01F889410C8B41100385B8FEFFFF89411083615C005F5E5BC9C204005589E55356578B5D08837B6400740431C0EB14837B6000750B53E80F0000006A018F436031C0405F5E5B5DC204005589E553578B5D088B7B5C83FF37762EC6443B1C8047EB06C6443B1C004783FF4072F5897B5C53E8B6FDFFFF8B7B5CEB06C6443B1C004783FF3872F5EB13C6443B1C8047EB06C6443B1C004783FF3872F5897B5C8B4318C1E81825FF0000008843548B4318C1E81025FF0000008843558B4318C1E80825FF0000008843568B431825FF0000008843578B4314C1E81825FF0000008843588B4314C1E81025FF0000008843598B4314C1E80825FF00000088435A8B431425FF00000088435B53E81EFDFFFF5F5B5DC20400'
Func _SHA1Init()
If Not IsDeclared("_SHA1CodeBuffer") Or Not IsDllStruct($_SHA1CodeBuffer) Then
Global $_SHA1CodeBuffer = DllStructCreate("byte[" & BinaryLen($_SHA1Opcode) & "]")
DllStructSetData($_SHA1CodeBuffer, 1, $_SHA1Opcode)
EndIf
Local $OpcodeStart = (StringInStr($_SHA1Opcode, "5589E5538B5D08") - 1) / 2 - 1
;Local $OpcodeStart = 62
Local $SHA1CTX = DllStructCreate("dword[26]")
DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_SHA1CodeBuffer) + $OpcodeStart, _
"ptr", DllStructGetPtr($SHA1CTX), _
"int", 0, _
"int", 0, _
"int", 0)
$CodeBuffer = 0
Return $SHA1CTX
EndFunc
Func _SHA1Input(ByRef $SHA1CTX, $Data)
If Not IsDeclared("_SHA1CodeBuffer") Or Not IsDllStruct($_SHA1CodeBuffer) Then Return
Local $OpcodeStart = (StringInStr($_SHA1Opcode, "5589E55356578B5D08837D1000") - 1) / 2 - 1
;Local $OpcodeStart = 107
Local $Input = DllStructCreate("byte[" & BinaryLen($Data) & "]")
DllStructSetData($Input, 1, $Data)
DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_SHA1CodeBuffer) + $OpcodeStart, _
"ptr", DllStructGetPtr($SHA1CTX), _
"ptr", DllStructGetPtr($Input), _
"int", BinaryLen($Data), _
"int", 0)
$Input = 0
EndFunc
Func _SHA1Result(ByRef $SHA1CTX)
If Not IsDeclared("_SHA1CodeBuffer") Or Not IsDllStruct($_SHA1CodeBuffer) Then Return Binary(0)
Local $OpcodeStart = (StringInStr($_SHA1Opcode, "5589E55657FF750C") - 1) / 2 - 1
;Local $OpcodeStart = 1960
Local $Digest = DllStructCreate("byte[20]")
DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_SHA1CodeBuffer) + $OpcodeStart, _
"ptr", DllStructGetPtr($Digest), _
"ptr", DllStructGetPtr($SHA1CTX), _
"int", 0, _
"int", 0)
Local $Ret = DllStructGetData($Digest, 1)
$CodeBuffer = 0
$Digest = 0
$SHA1CTX = 0
$_SHA1CodeBuffer = 0
Return $Ret
EndFunc
Func _SHA1($Data)
Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($_SHA1Opcode) & "]")
DllStructSetData($CodeBuffer, 1, $_SHA1Opcode)
Local $Input = DllStructCreate("byte[" & BinaryLen($Data) & "]")
DllStructSetData($Input, 1, $Data)
Local $Digest = DllStructCreate("byte[20]")
DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer), _
"ptr", DllStructGetPtr($Input), _
"int", BinaryLen($Data), _
"ptr", DllStructGetPtr($Digest), _
"int", 0)
Local $Ret = DllStructGetData($Digest, 1)
$Input = 0
$Digest = 0
$CodeBuffer = 0
Return $Ret
EndFunc