#NoTrayIcon

#Region

#AutoIt3Wrapper_icon=..\..\..\WINDOWS\SYSTEM32\SHELL32.dll|-105

#AutoIt3Wrapper_Outfile=C:\Users\言平\Desktop\新建 AutoIt v3 脚本.exe

#AutoIt3Wrapper_Compression=4

#AutoIt3Wrapper_UseX64=n

#AutoIt3Wrapper_Res_Fileversion=0.0.0.0

#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=p

#EndRegion

#Region ACN预处理程序参数(常用参数)

#PRE_Icon=

#PRE_OutFile=

#PRE_OutFile_Type=exe

#PRE_Compression=4

#PRE_UseUpx=y

#PRE_Res_Comment=

#PRE_Res_Description=

#PRE_Res_Fileversion=

#PRE_Res_FileVersion_AutoIncrement=p

#PRE_Res_LegalCopyright=

#PRE_Change2CUI=N

#PRE_UseX64=n

#EndRegion ACN预处理程序参数设置完成

GLOBAL $_SHA1OPCODE = "0xC86800005356576A006A006A008D459850E829000000FF7514FF750CFF75088D459850E88A0000006A006A008D459850FF7510E8490000005F5E5BC9C210005589E5538B5D08836314008363180083635C00C70301234567C7430489ABCDEFC74308FEDCBA98C7430C76543210C74310F0E1D2C383636000836364005B5DC210005589E55657FF750CE8850200008B7D088B750C6A0559A58A47FF8647FC8847FF8A47FE8647FD8847FEE2EB5F5E5DC210005589E55356578B5D08837D10007502EB59837B60007506837B640074076A018F4364EB468B4D108B7D0CEB3449518A078B735C8844331CFF435C83431408837B1400750EFF4318837B180075056A018F4364837B5C40750653E813000000475985C97406837B640074C25F5E5B5DC21000C84801005356578B5D086A10598D51FF89D7C1E7020FB6443B1CC1E018898495BCFEFFFF0FB6443B1DC1E010098495BCFEFFFF0FB6443B1EC1E008098495BCFEFFFF0FB6443B1F098495BCFEFFFFE2BD6A105A83FA5073288B8495B0FEFFFF3384959CFEFFFF33849584FEFFFF3384957CFEFFFFD1C0898495BCFEFFFF42EBD38B4D088B318B59048B51088B790C8B41108985B8FEFFFF8365FC00837DFC147D3C89D131F921D931F989F0C1C00501C80385B8FEFFFF8B4DFC03848DBCFEFFFF059979825A5089BDB8FEFFFF89D789D8C1C01E89C289F35EFF45FCEBBE6A148F45FC837DFC287D3A89D931D131F989F0C1C00501C80385B8FEFFFF8B4DFC03848DBCFEFFFF05A1EBD96E5089BDB8FEFFFF89D789D8C1C01E89C289F35EFF45FCEBC06A288F45FC837DFC3C7D4689D821F85089D021F889D921D109C15809C189F0C1C00501C80385B8FEFFFF8B4DFC03848DBCFEFFFF05DCBC1B8F5089BDB8FEFFFF89D789D8C1C01E89C289F35EFF45FCEBB46A3C8F45FC837DFC507D3A89D931D131F989F0C1C00501C80385B8FEFFFF8B4DFC03848DBCFEFFFF05D6C162CA5089BDB8FEFFFF89D789D8C1C01E89C289F35EFF45FCEBC08B4D088B0101F089018B410401D88941048B410801D08941088B410C01F889410C8B41100385B8FEFFFF89411083615C005F5E5BC9C204005589E55356578B5D08837B6400740431C0EB14837B6000750B53E80F0000006A018F436031C0405F5E5B5DC204005589E553578B5D088B7B5C83FF37762EC6443B1C8047EB06C6443B1C004783FF4072F5897B5C53E8B6FDFFFF8B7B5CEB06C6443B1C004783FF3872F5EB13C6443B1C8047EB06C6443B1C004783FF3872F5897B5C8B4318C1E81825FF0000008843548B4318C1E81025FF0000008843558B4318C1E80825FF0000008843568B431825FF0000008843578B4314C1E81825FF0000008843588B4314C1E81025FF0000008843598B4314C1E80825FF00000088435A8B431425FF00000088435B53E81EFDFFFF5F5B5DC20400"

GLOBAL $_MD5OPCODE = "0xC85800005356576A006A006A008D45A850E8280000006A00FF750CFF75088D45A850E8440000006A006A008D45A850FF7510E8710700005F5E5BC9C210005589E58B4D0831C0894114894110C70101234567C7410489ABCDEFC74108FEDCBA98C7410C765432105DC21000C80C0000538B5D088B4310C1E80383E03F8945F88B4510C1E0030143103943107303FF43148B4510C1E81D0143146A40582B45F88945F4394510724550FF750C8B45F88D44031850E8A00700008D43185053E84E0000008B45F48945FC8B45FC83C03F39451076138B450C0345FC5053E8300000008345FC40EBE28365F800EB048365FC008B45102B45FC508B450C0345FC508B45F88D44031850E84D0700005BC9C21000C84000005356576A40FF750C8D45C050E8330700008B45088B088B50048B70088B780C89D021F089D3F7D321FB09D801C1034DC081C178A46AD7C1C10701D189C821D089CBF7D321F309D801C7037DC481C756B7C7E8C1C70C01CF89F821C889FBF7D321D309D801C60375C881C6DB702024C1C61101FE89F021F889F3F7D321CB09D801C20355CC81C2EECEBDC1C1C21601F289D021F089D3F7D321FB09D801C1034DD081C1AF0F7CF5C1C10701D189C821D089CBF7D321F309D801C7037DD481C72AC68747C1C70C01CF89F821C889FBF7D321D309D801C60375D881C6134630A8C1C61101FE89F021F889F3F7D321CB09D801C20355DC81C2019546FDC1C21601F289D021F089D3F7D321FB09D801C1034DE081C1D8988069C1C10701D189C821D089CBF7D321F309D801C7037DE481C7AFF7448BC1C70C01CF89F821C889FBF7D321D309D801C60375E881C6B15BFFFFC1C61101FE89F021F889F3F7D321CB09D801C20355EC81C2BED75C89C1C21601F289D021F089D3F7D321FB09D801C1034DF081C12211906BC1C10701D189C821D089CBF7D321F309D801C7037DF481C7937198FDC1C70C01CF89F821C889FBF7D321D309D801C60375F881C68E4379A6C1C61101FE89F021F889F3F7D321CB09D801C20355FC81C22108B449C1C21601F289D021F889FBF7D321F309D801C1034DC481C162251EF6C1C10501D189C821F089F3F7D321D309D801C7037DD881C740B340C0C1C70901CF89F821D089D3F7D321CB09D801C60375EC81C6515A5E26C1C60E01FE89F021C889CBF7D321FB09D801C20355C081C2AAC7B6E9C1C21401F289D021F889FBF7D321F309D801C1034DD481C15D102FD6C1C10501D189C821F089F3F7D321D309D801C7037DE881C753144402C1C70901CF89F821D089D3F7D321CB09D801C60375FC81C681E6A1D8C1C60E01FE89F021C889CBF7D321FB09D801C20355D081C2C8FBD3E7C1C21401F289D021F889FBF7D321F309D801C1034DE481C1E6CDE121C1C10501D189C821F089F3F7D321D309D801C7037D"

$_MD5OPCODE &= "F881C7D60737C3C1C70901CF89F821D089D3F7D321CB09D801C60375CC81C6870DD5F4C1C60E01FE89F021C889CBF7D321FB09D801C20355E081C2ED145A45C1C21401F289D021F889FBF7D321F309D801C1034DF481C105E9E3A9C1C10501D189C821F089F3F7D321D309D801C7037DC881C7F8A3EFFCC1C70901CF89F821D089D3F7D321CB09D801C60375DC81C6D9026F67C1C60E01FE89F021C889CBF7D321FB09D801C20355F081C28A4C2A8DC1C21401F289D031F031F801C1034DD481C14239FAFFC1C10401D189C831D031F001C7037DE081C781F67187C1C70B01CF89F831C831D001C60375EC81C622619D6DC1C61001FE89F031F831C801C20355F881C20C38E5FDC1C21701F289D031F031F801C1034DC481C144EABEA4C1C10401D189C831D031F001C7037DD081C7A9CFDE4BC1C70B01CF89F831C831D001C60375DC81C6604BBBF6C1C61001FE89F031F831C801C20355E881C270BCBFBEC1C21701F289D031F031F801C1034DF481C1C67E9B28C1C10401D189C831D031F001C7037DC081C7FA27A1EAC1C70B01CF89F831C831D001C60375CC81C68530EFD4C1C61001FE89F031F831C801C20355D881C2051D8804C1C21701F289D031F031F801C1034DE481C139D0D4D9C1C10401D189C831D031F001C7037DF081C7E599DBE6C1C70B01CF89F831C831D001C60375FC81C6F87CA21FC1C61001FE89F031F831C801C20355C881C26556ACC4C1C21701F289F8F7D009D031F001C1034DC081C1442229F4C1C10601D189F0F7D009C831D001C7037DDC81C797FF2A43C1C70A01CF89D0F7D009F831C801C60375F881C6A72394ABC1C60F01FE89C8F7D009F031F801C20355D481C239A093FCC1C21501F289F8F7D009D031F001C1034DF081C1C3595B65C1C10601D189F0F7D009C831D001C7037DCC81C792CC0C8FC1C70A01CF89D0F7D009F831C801C60375E881C67DF4EFFFC1C60F01FE89C8F7D009F031F801C20355C481C2D15D8485C1C21501F289F8F7D009D031F001C1034DE081C14F7EA86FC1C10601D189F0F7D009C831D001C7037DFC81C7E0E62CFEC1C70A01CF89D0F7D009F831C801C60375D881C6144301A3C1C60F01FE89C8F7D009F031F801C20355F481C2A111084EC1C21501F289F8F7D009D031F001C1034DD081C1827E53F7C1C10601D189F0F7D009C831D001C7037DEC81C735F23ABDC1C70A01CF89D0F7D009F831C801C60375C881C6BBD2D72AC1C60F01FE89C8F7D009F031F801C20355E481C291D386EBC1C21501F28B4508010801500401700801780C5F5E5BC9C20800C814000053E840000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008F45EC8B5D0C6A088D4310508D"

$_MD5OPCODE &= "45F850E8510000008B4310C1E80383E03F8945F483F838730B6A38582B45F48945F0EB096A78582B45F48945F0FF75F0FF75ECFF750CE831F8FFFF6A088D45F850FF750CE823F8FFFF6A1053FF7508E8050000005BC9C210005589E55156578B7D088B750C8B4D10FCF3A45F5E595DC20C00"

GLOBAL $_MD5CODEBUFFER = "", $_SHA1CODEBUFFER = "", $CODEBUFFER

IF @AUTOITX64 THEN

MSGBOX(0x00000020, "ACN_HASH", "此加密函数不能用于64位AutoIt版本,请编译为32位版本.", 0x00000005)

EXIT

ENDIF

FUNC _BASE64DECODE($DATA)

LOCAL $OPCODE = "0xC81000005356578365F800E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFF00FFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132338F45F08B7D0C8B5D0831D2E9910000008365FC00837DFC047D548A034384C0750383EA033C3D75094A803B3D75014AB00084C0751A837DFC047D0D8B75FCC64435F400FF45FCEBED6A018F45F8EB1F3C2B72193C7A77150FB6F083EE2B0375F08A068B75FC884435F4FF45FCEBA68D75F4668B06C0E002C0EC0408E08807668B4601C0E004C0EC0208E08847018A4602C0E00624C00A46038847028D7F038D5203837DF8000F8465FFFFFF89D05F5E5BC9C21000"

LOCAL $CODEBUFFER = DLLSTRUCTCREATE("byte["& BINARYLEN($OPCODE) & "]")

DLLSTRUCTSETDATA($CODEBUFFER, 0x00000001, $OPCODE)

LOCAL $OUPUT = DLLSTRUCTCREATE("byte["& BINARYLEN($DATA) & "]")

LOCAL $RET = DLLCALL("user32.dll", "int", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($CODEBUFFER), "str", $DATA, "ptr", DLLSTRUCTGETPTR($OUPUT), "int", 0x00000000, "int", 0x00000000)

RETURN BINARYMID(DLLSTRUCTGETDATA($OUPUT, 0x00000001), 0x00000001, $RET [0x00000000 ])

ENDFUNC

FUNC _BASE64ENCODE($DATA, $LINEBREAK = 0x0000004C)

LOCAL $OPCODE = "0x5589E5FF7514535657E8410000004142434445464748494A4B4C4D4E4F505152535455565758595A6162636465666768696A6B6C6D6E6F707172737475767778797A303132333435363738392B2F005A8B5D088B7D108B4D0CE98F0000000FB633C1EE0201D68A06880731C083F901760C0FB6430125F0000000C1E8040FB63383E603C1E60409C601D68A0688470183F90176210FB6430225C0000000C1E8060FB6730183E60FC1E60209C601D68A06884702EB04C647023D83F90276100FB6730283E63F01D68A06884703EB04C647033D8D5B038D7F0483E903836DFC04750C8B45148945FC66B80D0A66AB85C90F8F69FFFFFFC607005F5E5BC9C21000"

LOCAL $CODEBUFFER = DLLSTRUCTCREATE("byte["& BINARYLEN($OPCODE) & "]")

DLLSTRUCTSETDATA($CODEBUFFER, 0x00000001, $OPCODE)

$DATA = BINARY($DATA)

LOCAL $INPUT = DLLSTRUCTCREATE("byte["& BINARYLEN($DATA) & "]")

DLLSTRUCTSETDATA($INPUT, 0x00000001, $DATA)

$LINEBREAK = FLOOR($LINEBREAK / 0x00000004) * 0x00000004

LOCAL $OPUTPUTSIZE = CEILING(BINARYLEN($DATA) * 0x00000004 / 0x00000003)

$OPUTPUTSIZE = $OPUTPUTSIZE + CEILING($OPUTPUTSIZE / $LINEBREAK) * 0x00000002 + 0x00000004

LOCAL $OUPUT = DLLSTRUCTCREATE("char["& $OPUTPUTSIZE & "]")

DLLCALL("user32.dll", "none", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($CODEBUFFER), "ptr", DLLSTRUCTGETPTR($INPUT), "int", BINARYLEN($DATA), "ptr", DLLSTRUCTGETPTR($OUPUT), "uint", $LINEBREAK)

RETURN DLLSTRUCTGETDATA($OUPUT, 0x00000001)

ENDFUNC

FUNC _CRC32($DATA, $CRC32 = -0x00000001)

IF @AUTOITX64 THEN

LOCAL $OPCODE = "0x554889E54881EC2004000048894D10488955184489452044894D28C745F800000000EB468B45F88945ECC745FC08000000EB1E8B45EC83E00184C0740D8B45ECD1E83345288945ECEB03D16DEC836DFC01837DFC007FDC8B45F848988B55EC899485E0FBFFFF8345F801817DF8FF0000007EB1488B4510488945F0C745F800000000EB318B452089C2C1EA088B45F84898480345F00FB6000FB6C033452025FF00000089C08B8485E0FBFFFF31D08945208345F8018B45F84898483B451872C48B4520F7D0C9C3"

ELSE

LOCAL $OPCODE = "0xC8000400538B5514B9000100008D41FF516A0859D1E8730231D0E2F85989848DFCFBFFFFE2E78B5D088B4D0C8B451085DB7416E3148A1330C20FB6D2C1E80833849500FCFFFF43E2ECF7D05BC9C21000"

ENDIF

LOCAL $CODEBUFFER = DLLSTRUCTCREATE("byte["& BINARYLEN($OPCODE) & "]")

DLLSTRUCTSETDATA($CODEBUFFER, 0x00000001, $OPCODE)

LOCAL $INPUT = DLLSTRUCTCREATE("byte["& BINARYLEN($DATA) & "]")

DLLSTRUCTSETDATA($INPUT, 0x00000001, $DATA)

LOCAL $RET = DLLCALL("user32.dll", "uint", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($CODEBUFFER), "ptr", DLLSTRUCTGETPTR($INPUT), "int", BINARYLEN($DATA), "uint", $CRC32, "int", 0x00000000)

$INPUT = 0x00000000

$CODEBUFFER = 0x00000000

RETURN $RET [0x00000000 ]

ENDFUNC

FUNC _MD5INIT()

IF NOT ISDECLARED("_MD5CodeBuffer") OR NOT ISDLLSTRUCT($_MD5CODEBUFFER) THEN

GLOBAL $_MD5CODEBUFFER = DLLSTRUCTCREATE("byte["& BINARYLEN($_MD5OPCODE) & "]")

DLLSTRUCTSETDATA($_MD5CODEBUFFER, 0x00000001, $_MD5OPCODE)

ENDIF

LOCAL $OPCODESTART = 0x0000003E

LOCAL $MD5CTX = DLLSTRUCTCREATE("dword[22]")

DLLCALL("user32.dll", "none", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($_MD5CODEBUFFER) + $OPCODESTART, "ptr", DLLSTRUCTGETPTR($MD5CTX), "int", 0x00000000, "int", 0x00000000, "int", 0x00000000)

$CODEBUFFER = 0x00000000

RETURN $MD5CTX

ENDFUNC

FUNC _MD5INPUT(BYREF $MD5CTX, $DATA)

IF NOT ISDECLARED("_MD5CodeBuffer") OR NOT ISDLLSTRUCT($_MD5CODEBUFFER) THEN RETURN

LOCAL $OPCODESTART = 0x0000006B

LOCAL $INPUT = DLLSTRUCTCREATE("byte["& BINARYLEN($DATA) & "]")

DLLSTRUCTSETDATA($INPUT, 0x00000001, $DATA)

DLLCALL("user32.dll", "none", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($_MD5CODEBUFFER) + $OPCODESTART, "ptr", DLLSTRUCTGETPTR($MD5CTX), "ptr", DLLSTRUCTGETPTR($INPUT), "int", BINARYLEN($DATA), "int", 0x00000000)

$INPUT = 0x00000000

ENDFUNC

FUNC _MD5RESULT(BYREF $MD5CTX)

IF NOT ISDECLARED("_MD5CodeBuffer") OR NOT ISDLLSTRUCT($_MD5CODEBUFFER) THEN RETURN BINARY(0x00000000)

LOCAL $OPCODESTART = 0x000007A8

LOCAL $DIGEST = DLLSTRUCTCREATE("byte[16]")

DLLCALL("user32.dll", "none", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($_MD5CODEBUFFER) + $OPCODESTART, "ptr", DLLSTRUCTGETPTR($DIGEST), "ptr", DLLSTRUCTGETPTR($MD5CTX), "int", 0x00000000, "int", 0x00000000)

LOCAL $RET = DLLSTRUCTGETDATA($DIGEST, 0x00000001)

$CODEBUFFER = 0x00000000

$DIGEST = 0x00000000

$MD5CTX = 0x00000000

$_MD5CODEBUFFER = 0x00000000

RETURN $RET

ENDFUNC

FUNC _MD5($DATA)

LOCAL $CODEBUFFER = DLLSTRUCTCREATE("byte["& BINARYLEN($_MD5OPCODE) & "]")

DLLSTRUCTSETDATA($CODEBUFFER, 0x00000001, $_MD5OPCODE)

LOCAL $INPUT = DLLSTRUCTCREATE("byte["& BINARYLEN($DATA) & "]")

DLLSTRUCTSETDATA($INPUT, 0x00000001, $DATA)

LOCAL $DIGEST = DLLSTRUCTCREATE("byte[16]")

DLLCALL("user32.dll", "none", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($CODEBUFFER), "ptr", DLLSTRUCTGETPTR($INPUT), "int", BINARYLEN($DATA), "ptr", DLLSTRUCTGETPTR($DIGEST), "int", 0x00000000)

LOCAL $RET = DLLSTRUCTGETDATA($DIGEST, 0x00000001)

$INPUT = 0x00000000

$DIGEST = 0x00000000

$CODEBUFFER = 0x00000000

RETURN $RET

ENDFUNC

FUNC _RC4($DATA, $KEY)

LOCAL $OPCODE = "0xC81001006A006A005356578B551031C989C84989D7F2AE484829C88945F085C00F84DC000000B90001000088C82C0188840DEFFEFFFFE2F38365F4008365FC00817DFC000100007D478B45FC31D2F775F0920345100FB6008B4DFC0FB68C0DF0FEFFFF01C80345F425FF0000008945F48B75FC8A8435F0FEFFFF8B7DF486843DF0FEFFFF888435F0FEFFFFFF45FCEBB08D9DF0FEFFFF31FF89FA39550C76638B85ECFEFFFF4025FF0000008985ECFEFFFF89D80385ECFEFFFF0FB6000385E8FEFFFF25FF0000008985E8FEFFFF89DE03B5ECFEFFFF8A0689DF03BDE8FEFFFF860788060FB60E0FB60701C181E1FF0000008A840DF0FEFFFF8B750801D6300642EB985F5E5BC9C21000"

LOCAL $CODEBUFFER = DLLSTRUCTCREATE("byte["& BINARYLEN($OPCODE) & "]")

DLLSTRUCTSETDATA($CODEBUFFER, 0x00000001, $OPCODE)

IF NOT ISBINARY($DATA) THEN $DATA = STRINGTOBINARY($DATA, 0x00000001)

LOCAL $BUFFER = DLLSTRUCTCREATE("byte["& BINARYLEN($DATA) & "]")

DLLSTRUCTSETDATA($BUFFER, 0x00000001, $DATA)

DLLCALL("user32.dll", "none", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($CODEBUFFER), "ptr", DLLSTRUCTGETPTR($BUFFER), "int", BINARYLEN($DATA), "str", $KEY, "int", 0x00000000)

LOCAL $RET = DLLSTRUCTGETDATA($BUFFER, 0x00000001)

$BUFFER = 0x00000000

$CODEBUFFER = 0x00000000

RETURN $RET

ENDFUNC

FUNC _SHA1INIT()

IF NOT ISDECLARED("_SHA1CodeBuffer") OR NOT ISDLLSTRUCT($_SHA1CODEBUFFER) THEN

GLOBAL $_SHA1CODEBUFFER = DLLSTRUCTCREATE("byte["& BINARYLEN($_SHA1OPCODE) & "]")

DLLSTRUCTSETDATA($_SHA1CODEBUFFER, 0x00000001, $_SHA1OPCODE)

ENDIF

LOCAL $OPCODESTART = (STRINGINSTR($_SHA1OPCODE, "5589E5538B5D08") - 0x00000001) / 0x00000002 - 0x00000001

LOCAL $SHA1CTX = DLLSTRUCTCREATE("dword[26]")

DLLCALL("user32.dll", "none", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($_SHA1CODEBUFFER) + $OPCODESTART, "ptr", DLLSTRUCTGETPTR($SHA1CTX), "int", 0x00000000, "int", 0x00000000, "int", 0x00000000)

$CODEBUFFER = 0x00000000

RETURN $SHA1CTX

ENDFUNC

FUNC _SHA1INPUT(BYREF $SHA1CTX, $DATA)

IF NOT ISDECLARED("_SHA1CodeBuffer") OR NOT ISDLLSTRUCT($_SHA1CODEBUFFER) THEN RETURN

LOCAL $OPCODESTART = (STRINGINSTR($_SHA1OPCODE, "5589E55356578B5D08837D1000") - 0x00000001) / 0x00000002 - 0x00000001

LOCAL $INPUT = DLLSTRUCTCREATE("byte["& BINARYLEN($DATA) & "]")

DLLSTRUCTSETDATA($INPUT, 0x00000001, $DATA)

DLLCALL("user32.dll", "none", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($_SHA1CODEBUFFER) + $OPCODESTART, "ptr", DLLSTRUCTGETPTR($SHA1CTX), "ptr", DLLSTRUCTGETPTR($INPUT), "int", BINARYLEN($DATA), "int", 0x00000000)

$INPUT = 0x00000000

ENDFUNC

FUNC _SHA1RESULT(BYREF $SHA1CTX)

IF NOT ISDECLARED("_SHA1CodeBuffer") OR NOT ISDLLSTRUCT($_SHA1CODEBUFFER) THEN RETURN BINARY(0x00000000)

LOCAL $OPCODESTART = (STRINGINSTR($_SHA1OPCODE, "5589E55657FF750C") - 0x00000001) / 0x00000002 - 0x00000001

LOCAL $DIGEST = DLLSTRUCTCREATE("byte[20]")

DLLCALL("user32.dll", "none", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($_SHA1CODEBUFFER) + $OPCODESTART, "ptr", DLLSTRUCTGETPTR($DIGEST), "ptr", DLLSTRUCTGETPTR($SHA1CTX), "int", 0x00000000, "int", 0x00000000)

LOCAL $RET = DLLSTRUCTGETDATA($DIGEST, 0x00000001)

$CODEBUFFER = 0x00000000

$DIGEST = 0x00000000

$SHA1CTX = 0x00000000

$_SHA1CODEBUFFER = 0x00000000

RETURN $RET

ENDFUNC

FUNC _SHA1($DATA)

LOCAL $CODEBUFFER = DLLSTRUCTCREATE("byte["& BINARYLEN($_SHA1OPCODE) & "]")

DLLSTRUCTSETDATA($CODEBUFFER, 0x00000001, $_SHA1OPCODE)

LOCAL $INPUT = DLLSTRUCTCREATE("byte["& BINARYLEN($DATA) & "]")

DLLSTRUCTSETDATA($INPUT, 0x00000001, $DATA)

LOCAL $DIGEST = DLLSTRUCTCREATE("byte[20]")

DLLCALL("user32.dll", "none", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($CODEBUFFER), "ptr", DLLSTRUCTGETPTR($INPUT), "int", BINARYLEN($DATA), "ptr", DLLSTRUCTGETPTR($DIGEST), "int", 0x00000000)

LOCAL $RET = DLLSTRUCTGETDATA($DIGEST, 0x00000001)

$INPUT = 0x00000000

$DIGEST = 0x00000000

$CODEBUFFER = 0x00000000

RETURN $RET

ENDFUNC

FUNC _XXTEA_ENCRYPT($DATA, $KEY)

$DATA = BINARY($DATA)

LOCAL $DATALEN = BINARYLEN($DATA)

IF $DATALEN = 0x00000000 THEN

RETURN ""

ELSEIF $DATALEN < 0x00000008 THEN

$DATALEN = 0x00000008

ENDIF

LOCAL $OPCODE = "0x83EC14B83400000099538B5C2420558B6C242056578B7C9DFCF7FB89C683C606C74424180000000085F68D76FF0F8EEA000000896C24288D4BFF8D549D00894C2410895424148974242081442418B979379E8B4C2418C1E90281E103000000894C241C31F6397424107E568B5424288BCF8B6CB204C1E9058D14AD0000000033CA8BD58BC7C1EA03C1E00433D003CA8B5424188BDE81E303000000335C241C8B4424308B1C9833D533DF03D333CA8B542428010CB28B0CB2463974241089CF7FAA8B5424288BCF8B2AC1E9058D14AD0000000033CA8BD58BC7C1EA03C1E00433D003CA8B5424188BDE81E303000000335C241C8B4424308B1C9833D533DF03D3FF4C242033CA8B542414014AFC8B4AFC8B54242089CF420F8F2DFFFFFF5F31C05E5D5B83C414C21000"

LOCAL $CODEBUFFER = DLLSTRUCTCREATE("byte["& BINARYLEN($OPCODE) & "]")

DLLSTRUCTSETDATA($CODEBUFFER, 0x00000001, $OPCODE)

LOCAL $V = DLLSTRUCTCREATE("byte["& CEILING($DATALEN / 0x00000004) * 0x00000004 & "]")

DLLSTRUCTSETDATA($V, 0x00000001, $DATA)

LOCAL $K = DLLSTRUCTCREATE("byte[16]")

DLLSTRUCTSETDATA($K, 0x00000001, $KEY)

DLLCALL("user32.dll", "none", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($CODEBUFFER), "ptr", DLLSTRUCTGETPTR($V), "int", CEILING($DATALEN / 0x00000004), "ptr", DLLSTRUCTGETPTR($K), "int", 0x00000000)

LOCAL $RET = DLLSTRUCTGETDATA($V, 0x00000001)

$CODEBUFFER = 0x00000000

$V = 0x00000000

$K = 0x00000000

RETURN $RET

ENDFUNC

FUNC _XXTEA_DECRYPT($DATA, $KEY)

$DATA = BINARY($DATA)

LOCAL $DATALEN = BINARYLEN($DATA)

IF $DATALEN = 0x00000000 THEN RETURN ""

LOCAL $OPCODE = "0x83EC10B83400000099538B5C241C55568B742420578B3EF7FB69D0B979379E81C256DA4CB5895424180F84DD000000897424248D4BFF8D149E894C2410895424148B4C2418C1E90281E103000000894C241C8B742410837C2410007E528B5424248B6CB2FC8BCD8BD7C1E905C1E20233CA8BD78BC5C1EA03C1E00433D003CA8B5424188BDE81E3030000008B44242C33D7335C241C8B1C9833DD03D333CA8B542424290CB28B0CB24E89CF85F67FAE8B5424148B6AFC8BCD8BD7C1E905C1E20233CA8BD78BC5C1EA03C1E00433D003CA8B5424188BDE81E3030000008B44242C33D7335C241C8B1C9833DD03D333CA8B542424290A8B0A89CF814424184786C861837C2418000F8535FFFFFF5F31C05E5D5B83C410C21000"

LOCAL $CODEBUFFER = DLLSTRUCTCREATE("byte["& BINARYLEN($OPCODE) & "]")

DLLSTRUCTSETDATA($CODEBUFFER, 0x00000001, $OPCODE)

LOCAL $V = DLLSTRUCTCREATE("byte["& CEILING($DATALEN / 0x00000004) * 0x00000004 & "]")

DLLSTRUCTSETDATA($V, 0x00000001, $DATA)

LOCAL $K = DLLSTRUCTCREATE("byte[16]")

DLLSTRUCTSETDATA($K, 0x00000001, $KEY)

DLLCALL("user32.dll", "none", "CallWindowProc", "ptr", DLLSTRUCTGETPTR($CODEBUFFER), "ptr", DLLSTRUCTGETPTR($V), "int", CEILING($DATALEN / 0x00000004), "ptr", DLLSTRUCTGETPTR($K), "int", 0x00000000)

LOCAL $RET = DLLSTRUCTGETDATA($V, 0x00000001)

$CODEBUFFER = 0x00000000

$V = 0x00000000

$K = 0x00000000

RETURN $RET

ENDFUNC

FUNC _XXTEA_ENCRYPT_PAD($DATA, $KEY)

$DATA = BINARY($DATA)

LOCAL $DATALEN = BINARYLEN($DATA), $DATAPAD

SWITCH (MOD($DATALEN, 0x00000004))

CASE 0x00000000

$DATAPAD = BINARY("0x80000000")

CASE 0x00000001

$DATAPAD = BINARY("0x800000")

CASE 0x00000002

$DATAPAD = BINARY("0x8000")

CASE 0x00000003

$DATAPAD = BINARY("0x80")

ENDSWITCH

RETURN _XXTEA_ENCRYPT($DATA & $DATAPAD, $KEY)

ENDFUNC

FUNC _XXTEA_DECRYPT_PAD($DATA, $KEY)

$DATA = _XXTEA_DECRYPT($DATA, $KEY)

LOCAL $DATALEN = BINARYLEN($DATA), $I

FOR $I = $DATALEN TO $DATALEN - 0x00000008 STEP - 0x00000001

IF BINARYMID($DATA, $I, 0x00000001) = BINARY("0x80") THEN

$DATA = BINARYMID($DATA, 0x00000001, $I - 0x00000001)

EXITLOOP

ENDIF

NEXT

RETURN $DATA

ENDFUNC

$TEXT = "请您输入12位SN"

DO

$SN = INPUTBOX("小米路由器SN算SSH密码", $TEXT, "", " M12")

IF @ERROR = 0x00000001 THEN EXIT

$TEXT = "请您输入足够长度的SN"

UNTIL STRINGLEN($SN) = 0x0000000C

$KEY = STRINGLEFT(STRINGTRIMLEFT(STRINGLOWER(_MD5($SN & "A2E371B0-B34B-48A5-8C40-A7133F3B5D88")), 0x00000002), 0x00000008)

MSGBOX(0x00001000, "小米路由器SN算SSH密码", "小米路由器SN:"& $SN & @CRLF & "路由SSH 密码:"& $KEY)

小米HTML查看器记住密码,小米路由器 SSH 密码计算工具,开启小米SSH访问相关推荐

  1. html图片通过照片查看器打开图片,在Windows7中打开照片,提示“Windows 照片查看器无法显示此图片,因为计算机上...

    在Windows7中打开照片,提示"Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足.请关闭一些目前没有使用的程序或者释放部分硬盘空间(如果硬盘几乎已满),然后重试. ...

  2. win10照片查看器_解决“Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足……”...

    解决"Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足--" 估计现在有许多人和疑惑 使用系统自带Windows照片查看器打开图片时 部分图片图片会显示会显示 ...

  3. Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足的最好解决办法。

    Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足的最好解决办法. 1.打开我的脑,点击控制面板. 2.点击程序(右上角查看方式选择类别). 3.点击默认程序. 4.点击设置默认程 ...

  4. 解决图片无法打开的问题: “Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足”

    OS : Win7 X64 问题描述: 双击打开一幅微信另存的 jpg 图片时,无法打开提示如下,但用其他看图软件或IE查看没有问题,正常的. Windows 照片查看器无法显示此图片,因为计算机上的 ...

  5. 解决:Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足的问题

    在电脑上打开微信中接收的图片或从手机上截屏的图片,如果使用Windows照片查看器查看的话,有时会打不开,并有如下提示: Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足.请关闭 ...

  6. Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足

    故障提示:打开图片提示 Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足. 解决大纲:控制面板-小图标-颜色管理-高级-Agfa:Swop Standard 解决步骤: 同时按 ...

  7. Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足。。。的解决方案

    使用Windows图片查看器打开QQ或微信传输的照片,有时候会提示:"Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足" 的问题,实际上这个图片用其他图片编辑 ...

  8. 打开微信另存的 jpg 图片时,提示“Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足”

    问题描述: 打开微信另存的 jpg 图片或者通过微信拍照上传的图片时,提示"Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足",出现以下信息 解决方案: 目 ...

  9. 已解决-Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足。请关闭一些目前没有使用的程序或者释放部分硬盘空间(如果硬盘几乎已满),然后重试。

    问题: 在Windows7或Windows10上面用Windows照片查看器打开图片的时候,无法打开.提示: "Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足.请关 ...

  10. 无法显示此照片因为计算机上的可用内存,Windows照片查看器无法显示此照片,因为计算机上的可用内存可能不足...

    摘要: 手机拍摄的照片或者手机截图传到电脑,双击用Windows照片查看器有的可以打开,有的打不开,打不开的用第三方看图软件却可以打开,很是奇怪.报错如下:Windows 照片查看器无法显... 手机 ...

最新文章

  1. controller不跳转页面的几个原因_狗狗为什么不睡觉?是这几个原因
  2. 01初识JavaScript
  3. 如何安装python3.7.4_银河麒麟安装Python3.7.4以及升级自带OpenSSL
  4. Python3学习笔记-面向对象
  5. 土耳其电影公司选择Infortrend建立PB级数据存储基础设施
  6. 用BenchmarkDotNet看Property
  7. std::chrono::duration_cast时间计算
  8. JAVA实现onvif的ptz控制_使用Onvif协议进行设备PTZ云台控制
  9. 第三次大转型:中国居住新十年报告
  10. R-CNN 物体检测第一弹
  11. android 系统(6)---Android ADB 命令大全
  12. 《TensorFlow技术解析与实战》——1.2 什么是深度学习
  13. linux网络调试发包抓包工具
  14. VSCODE+MINGW配置vulkan开发环境
  15. python 代码行数统计工具_python实现统计代码行数的小工具
  16. 博士申请 | 南方科技大学NCC Lab刘泉影教授招收深度学习方向全奖博士生
  17. python自动点击网页按钮_python网页自动化操作
  18. 【易错】Python中for循环删除元素,有个坑,请勿入坑!!
  19. Tourists【广义圆方树+树链剖分+方点的特别优化】
  20. 【论文阅读】A Survey on Contrastive Self-supervised Learning

热门文章

  1. python毕业设计题目推荐汽车销售系统
  2. Elasticsearch核心知识点大全
  3. LeetCode热门100之 无重复字符的最长子串
  4. 团队价值观五个字_一个优秀的团队应该具有的价值观
  5. 【雅思大作文考官范文】——第十五篇:'high salaries' essay
  6. python图片搜索_用Python构建图片处理搜索引擎
  7. 5大关键,让你二十年后依然是人才
  8. 软件测试人才培养全景图新版本
  9. 地图染色(四色定理)问题
  10. 最新风车IM即时通讯系统源码+带安装教程