AndSoW Posted November 22, 2022 Posted November 22, 2022 (edited) This is the code I reprinted, it is estimated that there are mistakes, please fix the need yourself, by the way, the error posted, thank! expandcollapse popup#RequireAdmin #Region #AutoIt3Wrapper_icon=D:\tools\11.ico #AutoIt3Wrapper_outfile=au3confusedexe #EndRegion #Region #EndRegion #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <Array.au3> #include <String.au3> #Include <WinAPI.au3> #include <ComboConstants.au3> #include <GUIConstantsEx.au3> #include <GUIListBox.au3> #include <GuiComboBoxEx.au3> #include <Constants.au3> #include <File.au3> #Region ### START Koda GUI section ### Form= $FORM1 = GUICREATE ( "AU3 code is confused" , 569 , 267 , 253 , 183 , DEFAULT , $WS_EX_ACCEPTFILES ) GUISETBKCOLOR ( 10336747 ) $SCHLUSSEL_BUTTON = GUICTRLCREATEBUTTON ( "new key" , 416 , 40 , 145 , 25 , $WS_GROUP ) $SCHLUSSEL_INPUT = GUICTRLCREATEINPUT ( "" , 8 , 40 , 401 , 21 ) $DATEI_INPUT = GUICTRLCREATEINPUT ( "" , 8 , 8 , 353 , 21 ) GUICTRLSETSTATE ( $DATEI_INPUT , $GUI_DROPACCEPTED ) $DATEI_BUTTON = GUICTRLCREATEBUTTON ( "Select an AU3 file that you want to obfuscat" , 368 , 8 , 193 , 25 , $WS_GROUP ) $LABEL1 = GUICTRLCREATELABEL ( "" , 8 , 88 , 259 , 113 ) $VARIBLEN_CHECKBOX = GUICTRLCREATECHECKBOX ( "Variable name confusion" , 288 , 80 , 193 , 20 ) GUICTRLSETFONT ( - 1 , 10 , 400 , 0 , "MS Sans Serif" ) $FUNKTIONEN_CHECKBOX = GUICTRLCREATECHECKBOX ( "custom function is confused" , 288 , 120 , 201 , 20 ) GUICTRLSETFONT ( - 1 , 10 , 400 , 0 , "MS Sans Serif" ) $AUTOITBEFEHLEOBFUSCATEN_CHECKBOX = GUICTRLCREATECHECKBOX ( "AutoIt command is confused" , 288 , 160 , 185 , 20 ) GUICTRLSETFONT ( - 1 , 10 , 400 , 0 , "MS Sans Serif" ) $HASH_COMBOBOX = GUICTRLCREATECOMBO ( "Shadowhash" , 8 , 208 , 265 , 25 ) GUICTRLSETDATA ( $HASH_COMBOBOX , "RC4|CRC32|MD5|MD5 & RC4|MD5 & CRC32|Shadowhash & RC4|CRC32 & RC4|CRC32 & Shadowhash & RC4 & MD5 " ) GUICTRLSETSTATE ( $HASH_COMBOBOX , $GUI_DISABLE ) $AUTOITSTARKOBFUSCATE_CHECKBOX = GUICTRLCREATECHECKBOX ( "AutoIt command reinforces the confusion" , 312 , 184 , 209 , 25 ) GUICTRLSETFONT ( - 1 , 10 , 400 , 0 , "MS Sans Serif" ) GUICTRLSETSTATE ( $AUTOITSTARKOBFUSCATE_CHECKBOX , $GUI_DISABLE ) $GROUP1 = GUICTRLCREATEGROUP ( "" , 280 , 144 , 281 , 73 ) GUICTRLCREATEGROUP ( "" , - 99 , - 99 , 1 , 1 ) $GROUP2 = GUICTRLCREATEGROUP ( "" , 280 , 104 , 281 , 41 ) GUICTRLCREATEGROUP ( "" , - 99 , - 99 , 1 , 1 ) $GROUP3 = GUICTRLCREATEGROUP ( "" , 280 , 64 , 281 , 41 ) GUICTRLCREATEGROUP ( "" , - 99 , - 99 , 1 , 1 ) $GROUP4 = GUICTRLCREATEGROUP ( "" , 280 , 216 , 281 , 41 ) GUICTRLCREATEGROUP ( "" , - 99 , - 99 , 1 , 1 ) $INCLUDES_CHECKBOX = GUICTRLCREATECHECKBOX ( "Include integrated (to reduce the number of errors)" , 288 , 232 , 271 , 20 ) $KOMMENTAR_CHECKBOX = $GUI_UNCHECKED GUICTRLSETFONT ( - 1 , 10 , 400 , 0 , "MS Sans Serif" ) $START = GUICTRLCREATEBUTTON ( "start" , 8 , 232 , 265 , 25 , $WS_GROUP ) $LABEL2 = GUICTRLCREATELABEL ( "By none " , 76 , 64 , 124 , 24 ) GUICTRLSETFONT ( - 1 , 12 , 400 , 0 , "MS Sans Serif" ) GUICTRLSETCOLOR ( - 1 , 16711680 ) GUISETSTATE ( @SW_SHOW ) #EndRegion ### END Koda GUI section ### $RANDT = "" FOR $K = 0 TO RANDOM ( 20 , 50 , 1 ) IF RANDOM ( 0 , 1 , 1 ) = 1 THEN $RANDT = $RANDT & CHR ( RANDOM ( 65 , 90 , 1 ) ) ELSE $RANDT = $RANDT & CHR ( RANDOM ( 97 , 122 , 1 ) ) ENDIF NEXT GUICTRLSETDATA ( $SCHLUSSEL_INPUT , $RANDT ) $ZAHL = 1 $FILE = "" $WRITE = "" $SALT = RANDOM ( 65 , 90 , 1 ) $SALT2 = RANDOM ( 1 , 999 , 1 ) DIM $KOMMENTAR [ 1 ] DIM $ARRAYS [ 1 ] $ZAHL2 = 0 $KEY = 0 $FILE2 = 0 $HASH = 0 $READ = 0 _GUICTRLCOMBOBOX_SETCURSEL ( $HASH_COMBOBOX , 3 ) HOTKEYSET ( "{F6}" , "Ende" ) #Region Hashfunctions made by Ward (http://www.autoitscript.com/forum) GLOBAL $_MD5OPCODE = "0xC85800005356576A006A006A008D45A850E8280000006A00FF750CFF75088D45A850E8440000006A006A008D45A850FF7510E8710700005F5E5BC9C210005589E58B4D0831C0894114894110C70101234567C7410489ABCDEFC74108FEDCBA98C7410C765432105DC21000C80C0000538B5D088B4310C1E80383E03F8945F88B4510C1E0030143103943107303FF43148B4510C1E81D0143146A40582B45F88945F4394510724550FF750C8B45F88D44031850E8A00700008D43185053E84E0000008B45F48945FC8B45FC83C03F39451076138B450C0345FC5053E8300000008345FC40EBE28365F800EB048365FC008B45102B45FC508B450C0345FC508B45F88D44031850E84D0700005BC9C21000C84000005356576A40FF750C8D45C050E8330700008B45088B088B50048B70088B780C89D021F089D3F7D321FB09D801C1034DC081C178A46AD7C1C10701D189C821D089CBF7D321F309D801C7037DC481C756B7C7E8C1C70C01CF89F821C889FBF7D321D309D801C60375C881C6DB702024C1C61101FE89F021F889F3F7D321CB09D801C20355CC81C2EECEBDC1C1C21601F289D021F089D3F7D321FB09D801C1034DD081C1AF0F7CF5C1C10701D189C821D089CBF7D321F309D801C7037DD481C72AC68747C1C70C01CF89F821C889FBF7D321D309D801C60375D881C6134630A8C1C61101FE89F021F889F3F7D321CB09D801C20355DC81C2019546FDC1C21601F289D021F089D3F7D321FB09D801C1034DE081C1D8988069C1C10701D189C821D089CBF7D321F309D801C7037DE481C7AFF7448BC1C70C01CF89F821C889FBF7D321D309D801C60375E881C6B15BFFFFC1C61101FE89F021F889F3F7D321CB09D801C20355EC81C2BED75C89C1C21601F289D021F089D3F7D321FB09D801C1034DF081C12211906BC1C10701D189C821D089CBF7D321F309D801C7037DF481C7937198FDC1C70C01CF89F821C889FBF7D321D309D801C60375F881C68E4379A6C1C61101FE89F021F889F3F7D321CB09D801C20355FC81C22108B449C1C21601F289D021F889FBF7D321F309D801C1034DC481C162251EF6C1C10501D189C821F089F3F7D321D309D801C7037DD881C740B340C0C1C70901CF89F821D089D3F7D321CB09D801C60375EC81C6515A5E26C1C60E01FE89F021C889CBF7D321FB09D801C20355C081C2AAC7B6E9C1C21401F289D021F889FBF7D321F309D801C1034DD481C15D102FD6C1C10501D189C821F089F3F7D321D309D801C7037DE881C753144402C1C70901CF89F821D089D3F7D321CB09D801C60375FC81C681E6A1D8C1C60E01FE89F021C889CBF7D321FB09D801C20355D081C2C8FBD3E7C1C21401F289D021F889FBF7D321F309D801C1034DE481C1E6CDE121C1C10501D189C821F089F3F7D321D309D801C7037D" $_MD5OPCODE &= "F881C7D60737C3C1C70901CF89F821D089D3F7D321CB09D801C60375CC81C6870DD5F4C1C60E01FE89F021C889CBF7D321FB09D801C20355E081C2ED145A45C1C21401F289D021F889FBF7D321F309D801C1034DF481C105E9E3A9C1C10501D189C821F089F3F7D321D309D801C7037DC881C7F8A3EFFCC1C70901CF89F821D089D3F7D321CB09D801C60375DC81C6D9026F67C1C60E01FE89F021C889CBF7D321FB09D801C20355F081C28A4C2A8DC1C21401F289D031F031F801C1034DD481C14239FAFFC1C10401D189C831D031F001C7037DE081C781F67187C1C70B01CF89F831C831D001C60375EC81C622619D6DC1C61001FE89F031F831C801C20355F881C20C38E5FDC1C21701F289D031F031F801C1034DC481C144EABEA4C1C10401D189C831D031F001C7037DD081C7A9CFDE4BC1C70B01CF89F831C831D001C60375DC81C6604BBBF6C1C61001FE89F031F831C801C20355E881C270BCBFBEC1C21701F289D031F031F801C1034DF481C1C67E9B28C1C10401D189C831D031F001C7037DC081C7FA27A1EAC1C70B01CF89F831C831D001C60375CC81C68530EFD4C1C61001FE89F031F831C801C20355D881C2051D8804C1C21701F289D031F031F801C1034DE481C139D0D4D9C1C10401D189C831D031F001C7037DF081C7E599DBE6C1C70B01CF89F831C831D001C60375FC81C6F87CA21FC1C61001FE89F031F831C801C20355C881C26556ACC4C1C21701F289F8F7D009D031F001C1034DC081C1442229F4C1C10601D189F0F7D009C831D001C7037DDC81C797FF2A43C1C70A01CF89D0F7D009F831C801C60375F881C6A72394ABC1C60F01FE89C8F7D009F031F801C20355D481C239A093FCC1C21501F289F8F7D009D031F001C1034DF081C1C3595B65C1C10601D189F0F7D009C831D001C7037DCC81C792CC0C8FC1C70A01CF89D0F7D009F831C801C60375E881C67DF4EFFFC1C60F01FE89C8F7D009F031F801C20355C481C2D15D8485C1C21501F289F8F7D009D031F001C1034DE081C14F7EA86FC1C10601D189F0F7D009C831D001C7037DFC81C7E0E62CFEC1C70A01CF89D0F7D009F831C801C60375D881C6144301A3C1C60F01FE89C8F7D009F031F801C20355F481C2A111084EC1C21501F289F8F7D009D031F001C1034DD081C1827E53F7C1C10601D189F0F7D009C831D001C7037DEC81C735F23ABDC1C70A01CF89D0F7D009F831C801C60375C881C6BBD2D72AC1C60F01FE89C8F7D009F031F801C20355E481C291D386EBC1C21501F28B4508010801500401700801780C5F5E5BC9C20800C814000053E840000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008F45EC8B5D0C6A088D4310508D" $_MD5OPCODE &= "45F850E8510000008B4310C1E80383E03F8945F483F838730B6A38582B45F48945F0EB096A78582B45F48945F0FF75F0FF75ECFF750CE831F8FFFF6A088D45F850FF750CE823F8FFFF6A1053FF7508E8050000005BC9C210005589E55156578B7D088B750C8B4D10FCF3A45F5E595DC20C00" #EndRegion WHILE 1 IF $ZAHL2 = 0 THEN IF ( BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 1 OR BITAND ( GUICTRLREAD ( $VARIBLEN_CHECKBOX ) , $GUI_CHECKED ) = 1 ) THEN GUICTRLSETSTATE ( $HASH_COMBOBOX , $GUI_ENABLE ) $ZAHL2 = 1 ELSE GUICTRLSETSTATE ( $HASH_COMBOBOX , $GUI_DISABLE ) $ZAHL2 = 1 ENDIF ENDIF $NMSG = GUIGETMSG ( ) SWITCH $NMSG CASE $GUI_EVENT_CLOSE EXIT CASE $SCHLUSSEL_BUTTON $RANDT = "" FOR $K = 0 TO RANDOM ( 20 , 50 , 1 ) IF RANDOM ( 0 , 1 , 1 ) = 1 THEN $RANDT = $RANDT & CHR ( RANDOM ( 65 , 90 , 1 ) ) ELSE $RANDT = $RANDT & CHR ( RANDOM ( 97 , 122 , 1 ) ) ENDIF NEXT GUICTRLSETDATA ( $SCHLUSSEL_INPUT , $RANDT ) CASE $SCHLUSSEL_INPUT CASE $DATEI_INPUT CASE $DATEI_BUTTON $FILE = FILEOPENDIALOG ( "Select File for confusion" , "" , "(*.au3)" , 1 ) GUICTRLSETDATA ( $DATEI_INPUT , $FILE ) IF FILEEXISTS ( GUICTRLREAD ( $DATEI_INPUT ) ) THEN GUICTRLSETDATA ( $LABEL1 , "Line of code : " & _FILECOUNTLINES ( GUICTRLREAD ( $DATEI_INPUT ) ) & @CRLF & @CRLF & "size : " & FILEGETSIZE ( GUICTRLREAD ( $DATEI_INPUT ) ) & " B" & @CRLF & @CRLF & "Estimated size " & @CRLF & "Through confusion: " & @CRLF & ROUND ( ( FILEGETSIZE ( GUICTRLREAD ( $DATEI_INPUT ) ) * 5 ) / 1024 , 1 ) & " KB" ) ENDIF CASE $VARIBLEN_CHECKBOX $ZAHL2 = 0 CASE $FUNKTIONEN_CHECKBOX $ZAHL2 = 0 CASE $AUTOITBEFEHLEOBFUSCATEN_CHECKBOX IF $ZAHL = 1 THEN GUICTRLSETSTATE ( $AUTOITSTARKOBFUSCATE_CHECKBOX , $GUI_ENABLE ) $ZAHL = 2 ELSE GUICTRLSETSTATE ( $AUTOITSTARKOBFUSCATE_CHECKBOX , $GUI_DISABLE ) GUICTRLSETSTATE ( $AUTOITSTARKOBFUSCATE_CHECKBOX , $GUI_UNCHECKED ) $ZAHL = 1 ENDIF CASE $HASH_COMBOBOX CASE $AUTOITSTARKOBFUSCATE_CHECKBOX CASE $KOMMENTAR_CHECKBOX CASE $START IF GUICTRLREAD ( $SCHLUSSEL_INPUT ) <> "" AND GUICTRLREAD ( $SCHLUSSEL_INPUT ) <> " " THEN IF FILEEXISTS ( GUICTRLREAD ( $DATEI_INPUT ) ) AND _FILECOUNTLINES ( GUICTRLREAD ( $DATEI_INPUT ) ) <> 0 AND FILEREAD ( GUICTRLREAD ( $DATEI_INPUT ) ) <> "" THEN $FILE = GUICTRLREAD ( $DATEI_INPUT ) OBFUSCATE ( ) ELSE MSGBOX ( 0 , "prompt" , "Invalid or incorrect file detected" ) ENDIF ELSE IF _GUICTRLCOMBOBOX_GETCURSEL ( $HASH_COMBOBOX ) = 3 OR _GUICTRLCOMBOBOX_GETCURSEL ( $HASH_COMBOBOX ) = 5 OR _GUICTRLCOMBOBOX_GETCURSEL ( $HASH_COMBOBOX ) = 2 THEN IF FILEEXISTS ( GUICTRLREAD ( $DATEI_INPUT ) ) AND _FILECOUNTLINES ( GUICTRLREAD ( $DATEI_INPUT ) ) <> 0 AND FILEREAD ( GUICTRLREAD ( $DATEI_INPUT ) ) <> "" THEN $FILE = GUICTRLREAD ( $DATEI_INPUT ) OBFUSCATE ( ) ELSE MSGBOX ( 0 , "prompt" , "Invalid or incorrect file detected" ) ENDIF ELSE IF ( BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 0 AND BITAND ( GUICTRLREAD ( $VARIBLEN_CHECKBOX ) , $GUI_CHECKED ) = 0 ) THEN IF FILEEXISTS ( GUICTRLREAD ( $DATEI_INPUT ) ) AND _FILECOUNTLINES ( GUICTRLREAD ( $DATEI_INPUT ) ) <> 0 AND FILEREAD ( GUICTRLREAD ( $DATEI_INPUT ) ) <> "" THEN $FILE = GUICTRLREAD ( $DATEI_INPUT ) OBFUSCATE ( ) ELSE MSGBOX ( 0 , "prompt" , "Invalid or incorrect file detected" ) ENDIF ELSE MSGBOX ( 0 , "prompt" , "Note that keys can only be composed of letters" ) ENDIF ENDIF ENDIF ENDSWITCH WEND FUNC ARRAYOBFUSCATE ( ) _FILEREADTOARRAY ( $FILE2 , $ARRAYS ) $GROS = UBOUND ( $ARRAYS ) - 1 IF BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN _ARRAYADD ( $ARRAYS , "Func _" & HASH ( CHR ( $SALT ) & "_Arrays_Definition_Fuction" & CHR ( $SALT ) , $KEY , $HASH ) & CHR ( $SALT ) & "()" ) _ARRAYINSERT ( $ARRAYS , 2 , "_" & HASH ( CHR ( $SALT ) & "_Arrays_Definition_Fuction" & CHR ( $SALT ) , $KEY , $HASH ) & CHR ( $SALT ) & "()" ) ELSE _ARRAYADD ( $ARRAYS , "Func _" & CHR ( $SALT ) & "_Arrays_Definition_Fuction" & CHR ( $SALT ) & "()" ) _ARRAYINSERT ( $ARRAYS , 2 , "_" & CHR ( $SALT ) & "_Arrays_Definition_Fuction" & CHR ( $SALT ) & "()" ) ENDIF FOR $I = 1 TO $GROS IF STRINGINSTR ( $ARRAYS [ $I ] , "$" ) <> 0 AND STRINGINSTR ( $ARRAYS [ $I ] , "[" ) <> 0 AND STRINGINSTR ( $ARRAYS [ $I ] , "]" ) <> 0 THEN $OK = 1 $RIGHTARRAY = _STRINGBETWEEN ( $ARRAYS [ $I ] , "'" , "'" ) IF ISARRAY ( $RIGHTARRAY ) THEN FOR $G = 0 TO UBOUND ( $RIGHTARRAY ) - 1 IF STRINGINSTR ( $RIGHTARRAY [ $G ] , "$" ) <> 0 AND STRINGINSTR ( $RIGHTARRAY [ $G ] , "[" ) <> 0 AND STRINGINSTR ( $RIGHTARRAY [ $G ] , "]" ) <> 0 THEN $OK = 1 ELSE $OK = 0 ENDIF NEXT ENDIF $RIGHTARRAY = _STRINGBETWEEN ( $ARRAYS [ $I ] , """ , """ ) IF ISARRAY ( $RIGHTARRAY ) THEN FOR $G = 0 TO UBOUND ( $RIGHTARRAY ) - 1 IF STRINGINSTR ( $RIGHTARRAY [ $G ] , "$" ) <> 0 AND STRINGINSTR ( $RIGHTARRAY [ $G ] , "[" ) <> 0 AND STRINGINSTR ( $RIGHTARRAY [ $G ] , "]" ) <> 0 THEN $OK = 1 ELSE $OK = 0 ENDIF NEXT ENDIF $ARRA = _STRINGBETWEEN ( $ARRAYS [ $I ] , "[" , "]" ) IF ISARRAY ( $ARRA ) AND STRINGREGEXP ( $ARRA [ 0 ] , "(\d*)" ) AND STRINGINSTR ( $ARRA [ 0 ] , "$" ) = 0 AND $OK = 1 THEN IF STRINGREGEXP ( $ARRAYS [ $I ] , "[" & $ARRA [ 0 ] & "]" ) THEN IF BITAND ( GUICTRLREAD ( $VARIBLEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN $OBFUS = CHR ( $SALT ) & "_" & CHR ( $SALT ) & HASH ( $ARRA [ 0 ] , $KEY , $HASH ) ELSE $OBFUS = "_" & CHR ( $SALT ) & $ARRA [ 0 ] & CHR ( $SALT ) ENDIF $ARRAYS [ $I ] = STRINGREPLACE ( $ARRAYS [ $I ] , "[" & $ARRA [ 0 ] & "]" , "[" & "$" & $OBFUS & "]" , 1 ) IF BITAND ( GUICTRLREAD ( $VARIBLEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN _ARRAYADD ( $ARRAYS , "Global $" & $OBFUS ) _ARRAYADD ( $ARRAYS , "Assign('" & $OBFUS & "', '" & $ARRA [ 0 ] & "')" ) ELSE _ARRAYADD ( $ARRAYS , "Global $" & $OBFUS ) _ARRAYADD ( $ARRAYS , "Assign('" & $OBFUS & "', '" & $ARRA [ 0 ] & "')" ) ENDIF ENDIF ENDIF ENDIF $PROZENT = $I / UBOUND ( $ARRAYS ) * 100 PROGRESSSET ( $PROZENT , "Arrays werden obfuscatet" ) NEXT _ARRAYADD ( $ARRAYS , "Endfunc" ) _FILEWRITEFROMARRAY ( $FILE2 , $ARRAYS ) ENDFUNC FUNC INCLUDESEINBINDEN ( ) $I = 0 $INCLUDES = "" $PROZENT = 0 $STRING = "" FOR $HIU = 0 TO 1 $I = 0 $READ = FILEREAD ( $FILE ) $READ = STRINGSTRIPWS ( $READ , 8 ) WHILE STRINGREGEXP ( $READ , "#include<(\w+)" ) = 1 OR STRINGREGEXP ( $READ , "#include"(\w+)" ) = 1 $STRING = "" $READ = FILEREAD ( $FILE ) $READ = STRINGSTRIPWS ( $READ , 8 ) IF STRINGINSTR ( $READ , "#include" ) <> 0 THEN $SPLITDATEI = STRINGSPLIT ( $FILE , "\" ) FOR $A = 1 TO $SPLITDATEI [ 0 ] - 1 $STRING = $STRING & $SPLITDATEI [ $A ] & "\" NEXT $READ = STRINGSTRIPWS ( $READ , 8 ) IF STRINGREGEXP ( $READ , "#include<" ) = 1 THEN $BETWEEN = _STRINGBETWEEN ( $READ , "#include<" , ">" ) ELSE $BETWEEN = _STRINGBETWEEN ( $READ , "#include"" , """ ) ENDIF IF ISARRAY ( $BETWEEN ) THEN $STRING = $STRING & $BETWEEN [ 0 ] $STRING = STRINGREPLACE ( $STRING , ">" , "" ) $STRING = STRINGREPLACE ( $STRING , """ , "" ) IF FILEEXISTS ( $STRING ) THEN $READ = STRINGREPLACE ( $READ , $BETWEEN [ 0 ] , FILEREAD ( $STRING ) ) ELSE IF FILEEXISTS ( REGREAD ( "HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt" , "InstallDir" ) & "\Include\String.au3" ) THEN $READ = STRINGSTRIPWS ( $READ , 8 ) $STRING = STRINGREPLACE ( $STRING , "<" , "" ) $FILE3 = REGREAD ( "HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt" , "InstallDir" ) & "\Include\" & $BETWEEN [ 0 ] IF FILEEXISTS ( $FILE3 ) = 0 THEN $FILE3 = REGREAD ( "HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt" , "InstallDir" ) & "\Include\" & _STRINGPROPER ( $BETWEEN [ 0 ] ) ELSE $READ = STRINGSTRIPWS ( $READ , 8 ) $BETWEEN [ 0 ] = STRINGSTRIPWS ( $BETWEEN [ 0 ] , 8 ) IF FILEEXISTS ( $FILE3 ) THEN IF STRINGINSTR ( $INCLUDES , $BETWEEN [ 0 ] ) = 0 THEN $INCLUDES = $INCLUDES & " " & $BETWEEN [ 0 ] _REPLACESTRINGINFILE ( $FILE , "#include<" & $BETWEEN [ 0 ] & ">" , FILEREAD ( $FILE3 ) , 0 , 0 ) _REPLACESTRINGINFILE ( $FILE , "#include <" & $BETWEEN [ 0 ] & ">" , FILEREAD ( $FILE3 ) , 0 , 0 ) _REPLACESTRINGINFILE ( $FILE , "#include <" & $BETWEEN [ 0 ] & ">" , FILEREAD ( $FILE3 ) , 0 , 0 ) _REPLACESTRINGINFILE ( $FILE , "#include"" & $BETWEEN [ 0 ] & """ , FILEREAD ( $FILE3 ) , 0 , 0 ) _REPLACESTRINGINFILE ( $FILE , "#include "" & $BETWEEN [ 0 ] & """ , FILEREAD ( $FILE3 ) , 0 , 0 ) _REPLACESTRINGINFILE ( $FILE , "#include "" & $BETWEEN [ 0 ] & """ , FILEREAD ( $FILE3 ) , 0 , 0 ) _REPLACESTRINGINFILE ( $FILE , "#include-once" , "" ) $I = $I + 1 ELSE _REPLACESTRINGINFILE ( $FILE , "#include<" & $BETWEEN [ 0 ] & ">" , "" ) _REPLACESTRINGINFILE ( $FILE , "#include <" & $BETWEEN [ 0 ] & ">" , "" ) _REPLACESTRINGINFILE ( $FILE , "#include <" & $BETWEEN [ 0 ] & ">" , "" ) _REPLACESTRINGINFILE ( $FILE , "#include"" & $BETWEEN [ 0 ] & """ , "" ) _REPLACESTRINGINFILE ( $FILE , "#include "" & $BETWEEN [ 0 ] & """ , "" ) _REPLACESTRINGINFILE ( $FILE , "#include "" & $BETWEEN [ 0 ] & """ , "" ) _REPLACESTRINGINFILE ( $FILE , "#include-once" , "" ) $I = $I + 1 ENDIF ENDIF _ARRAYDELETE ( $BETWEEN , 0 ) ENDIF ENDIF ENDIF ENDIF ELSE $READ2 = $READ ENDIF $COUNTER = STRINGREGEXP ( $READ , "#include<(\w+)" , 3 ) $COUNTER2 = STRINGREGEXP ( $READ , "#include"(\w+)" , 3 ) $GESAMT = $I + UBOUND ( $COUNTER ) + UBOUND ( $COUNTER2 ) $PROZENT = ( $I / $GESAMT ) * 100 PROGRESSSET ( $PROZENT , "Including integration" & @CRLF & " Includes " & UBOUND ( $COUNTER ) ) WEND NEXT $READ = FILEREAD ( $FILE ) _FILECREATE ( $FILE ) FILECLOSE ( $FILE ) FILEWRITE ( $FILE , $READ ) ENDFUNC FUNC KOMMENTAREENTFERNEN ( ) _FILEREADTOARRAY ( $FILE , $KOMMENTAR ) $GROSE = UBOUND ( $KOMMENTAR ) - 1 FOR $I = 1 TO $GROSE $PROZENT = $I / $GROSE * 100 PROGRESSSET ( $PROZENT , "release will be deleted " & @CRLF & "Current line: " & $I & " von " & $GROSE ) IF $GROSE <> $I THEN IF $KOMMENTAR [ $I ] = "" OR $KOMMENTAR [ $I ] = " " THEN _ARRAYDELETE ( $KOMMENTAR , $I ) $GROSE = $GROSE - 1 $I = $I - 1 ENDIF IF STRINGINSTR ( STRINGSTRIPWS ( $KOMMENTAR [ $I ] , 8 ) , ";" ) = 1 THEN _ARRAYDELETE ( $KOMMENTAR , $I ) $GROSE = $GROSE - 1 $I = $I - 1 ELSE IF STRINGINSTR ( STRINGSTRIPWS ( $KOMMENTAR [ $I ] , 8 ) , ";~" ) = 1 THEN _ARRAYDELETE ( $KOMMENTAR , $I ) $GROSE = $GROSE - 1 $I = $I - 1 ENDIF ENDIF IF STRINGINSTR ( $KOMMENTAR [ $I ] , "#cs" , 1 ) = 1 THEN DO _ARRAYDELETE ( $KOMMENTAR , $I ) $GROSE = $GROSE - 1 UNTIL $I = $GROSE - 2 OR STRINGREGEXP ( $KOMMENTAR [ $I ] , "#ce" ) IF STRINGREGEXP ( $KOMMENTAR [ $I ] , "#ce" ) THEN _ARRAYDELETE ( $KOMMENTAR , $I ) $I = $I - 1 $GROSE = $GROSE - 1 ENDIF ENDIF IF STRINGINSTR ( $KOMMENTAR [ $I ] , ";" ) <> 0 THEN $KOMM2 = STRINGSTRIPWS ( $KOMMENTAR [ $I ] , 8 ) $AAAA = 0 $LEN = STRINGLEN ( $KOMMENTAR [ $I ] ) DO $AAAA += 1 $KOMM3 = STRINGRIGHT ( $KOMM2 , $AAAA ) IF $LEN <= $AAAA THEN EXITLOOP UNTIL STRINGINSTR ( STRINGSTRIPWS ( $KOMM3 , 8 ) , "";" ) = 2 OR STRINGINSTR ( STRINGSTRIPWS ( $KOMM3 , 8 ) , ");" ) = 2 OR STRINGINSTR ( STRINGSTRIPWS ( $KOMM3 , 8 ) , "';" ) = 2 IF $LEN > $AAAA THEN $KOMMENTAR [ $I ] = STRINGTRIMRIGHT ( $KOMMENTAR [ $I ] , $AAAA ) ENDIF ENDIF IF STRINGINSTR ( STRINGSTRIPWS ( $KOMMENTAR [ $I ] , 8 ) , "EndFunc;" , 2 ) = 1 THEN $KOMMENTAR [ $I ] = "EndFunc" ENDIF ELSE EXITLOOP ENDIF NEXT _FILECREATE ( $FILE ) FILECLOSE ( $FILE ) _FILEWRITEFROMARRAY ( $FILE , $KOMMENTAR , 1 ) ENDFUNC FUNC OBFUSCATE ( ) PROGRESSON ( "confusion" , "progress :" ) $SAVE = FILEREAD ( $FILE ) $FILE4 = STRINGTRIMRIGHT ( $FILE , 4 ) & "-Sicherheitskopie.au3" _FILECREATE ( $FILE4 ) FILECLOSE ( $FILE4 ) FILEWRITE ( $FILE4 , $SAVE ) KOMMENTAREENTFERNEN ( ) $PROZENT = 0 PROGRESSSET ( $PROZENT ) IF BITAND ( GUICTRLREAD ( $INCLUDES_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN INCLUDESEINBINDEN ( ) ENDIF $HASH = _GUICTRLCOMBOBOX_GETCURSEL ( $HASH_COMBOBOX ) #Region FileOpen DIM $FUNCTIONS [ 1 ] IF $FILE = "" OR $FILE = 1 THEN EXIT ENDIF $SCHLUSSEL = GUICTRLREAD ( $SCHLUSSEL_INPUT ) #EndRegion #Region File erstellen $FILE2 = STRINGTRIMRIGHT ( $FILE , 4 ) $FILE2 = $FILE2 & "-obfuscated.au3" _FILECREATE ( $FILE2 ) FILECLOSE ( $FILE2 ) #EndRegion IF BITAND ( GUICTRLREAD ( $AUTOITSTARKOBFUSCATE_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN IF STRINGINSTR ( FILEREAD ( $FILE ) , "Func Quersumme($zahl)" & @CRLF & "local $split" ) = 0 THEN $BEFEHL = @CRLF & "Func Quersumme($zahl)" & @CRLF & "local $split=StringSplit($zahl,"")" & @CRLF & "$zahl=0" & @CRLF & "For $i=1 To UBound($split)-1" & @CRLF & "$zahl=$zahl+$split[$i]" & @CRLF & "Next" & @CRLF & "return $zahl" & @CRLF & "EndFunc" FILEWRITE ( $FILE , $BEFEHL ) ENDIF ENDIF #Region Suchen nach Funktionen und hinzuf zum Array $functions (wird gebraucht) KOMMENTAREENTFERNEN ( ) FOR $I = 0 TO _FILECOUNTLINES ( $FILE ) $PROZENT = ( $I / _FILECOUNTLINES ( $FILE ) ) * 100 PROGRESSSET ( $PROZENT , "Funktionen werden gesucht" ) $PROZENT = 0 $READ = FILEREADLINE ( $FILE , $I ) $READ = STRINGSTRIPWS ( $READ , 1 ) IF ISARRAY ( _STRINGBETWEEN ( $READ , "func" & CHR ( 32 ) , "(" ) ) THEN $TEMP = _STRINGBETWEEN ( $READ , "func" & CHR ( 32 ) , "(" ) $TEMP [ 0 ] = STRINGSTRIPWS ( $TEMP [ 0 ] , 8 ) _ARRAYADD ( $FUNCTIONS , $TEMP [ 0 ] & "(" ) IF ISARRAY ( $FUNCTIONS ) THEN IF $FUNCTIONS [ 0 ] = "" OR $FUNCTIONS [ 0 ] = " " THEN _ARRAYDELETE ( $FUNCTIONS , 0 ) ENDIF ENDIF ENDIF #EndRegion #Region Variablen werden mit Hash ersetzt $BEFEHL = $READ $READ = $READ & ";" IF STRINGREGEXP ( $READ , "(.*\x24\w+.*)" ) == 1 THEN $TEMP = STRINGREGEXP ( $READ , "(\x24\w*)" , 3 ) IF BITAND ( GUICTRLREAD ( $VARIBLEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN FOR $A = 0 TO UBOUND ( $TEMP ) - 1 STEP 1 $TEMP [ $A ] = STRINGTRIMLEFT ( $TEMP [ $A ] , 1 ) $READ = STRINGREGEXPREPLACE ( $READ , "\x24" & $TEMP [ $A ] & "(\W)" , "$_" & HASH ( $TEMP [ $A ] , $SCHLUSSEL , $HASH ) & "\1" , $HASH ) $PROZENT = ( $A / UBOUND ( $TEMP ) ) * 100 - 1 PROGRESSSET ( $PROZENT , "Hash of variables" ) NEXT ENDIF ENDIF $READ = STRINGTRIMRIGHT ( $READ , 1 ) FILEWRITE ( $FILE2 , $READ & @CRLF ) NEXT #EndRegion #Region Funktionen im ganzen Skript , die im Array $functions sind , werden nun im ganzen Skript durch Hashes ersetzt FILEOPEN ( $FILE2 , 1 ) $READ = FILEREAD ( $FILE2 ) $READ = STRINGSTRIPWS ( $READ , 2 ) _FILECREATE ( $FILE2 ) FILECLOSE ( $FILE2 ) IF BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN FOR $HJ = 0 TO UBOUND ( $FUNCTIONS ) - 1 STEP 1 $PROZENT = INT ( ( $HJ / UBOUND ( $FUNCTIONS ) ) * 100 ) PROGRESSSET ( $PROZENT , "Function replaced by hash value" ) IF $FUNCTIONS [ 0 ] <> "" AND $FUNCTIONS [ 0 ] <> " " THEN $READ = STRINGREPLACE ( $READ , " (" , "(" ) $READ = STRINGREPLACE ( $READ , $FUNCTIONS [ $HJ ] , "_" & HASH ( $FUNCTIONS [ $HJ ] , $SCHLUSSEL , $HASH ) & "(" ) $READ = STRINGREPLACE ( $READ , "'" & STRINGTRIMRIGHT ( $FUNCTIONS [ $HJ ] , 1 ) & "'" , "'" & "_" & HASH ( $FUNCTIONS [ $HJ ] , $SCHLUSSEL , $HASH ) & "'" ) $READ = STRINGREPLACE ( $READ , """ & STRINGTRIMRIGHT ( $FUNCTIONS [ $HJ ] , 1 ) & """ , """ & "_" & HASH ( $FUNCTIONS [ $HJ ] , $SCHLUSSEL , $HASH ) & """ ) ENDIF NEXT ENDIF FILEWRITE ( $FILE2 , $READ ) #EndRegion #Region Die restlichen AutoIT Befehle werden ersetzt DIM $READ [ _FILECOUNTLINES ( $FILE2 ) + 3 ] FOR $I = 0 TO _FILECOUNTLINES ( $FILE2 ) $READ [ $I ] = FILEREADLINE ( $FILE2 , $I ) NEXT $COUNT = _FILECOUNTLINES ( $FILE2 ) $SPLITSTRING = "" $WRITE = "" $READ4 = FILEREAD ( $FILE2 ) #Region Strings werden durch Variablen ersetzt IF BITAND ( GUICTRLREAD ( $AUTOITSTARKOBFUSCATE_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN IF BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN _ARRAYADD ( $READ , "Func _" & CHR ( $SALT ) & HASH ( CHR ( $SALT ) & "_Variable1Definition2Function3" , $SCHLUSSEL , $HASH ) & "()" ) ELSE _ARRAYADD ( $READ , "Func _" & CHR ( $SALT ) & "_" & CHR ( $SALT ) & "_Variable_Definition_Function" & "()" ) ENDIF $COUNT = _FILECOUNTLINES ( $FILE2 ) FOR $I = 0 TO $COUNT $SPLITSTRING = "" $PROZENT = INT ( ( $I / $COUNT ) * 100 ) PROGRESSSET ( $PROZENT , "Replace a string with a variable" ) FOR $IIII = 0 TO 1 $TEMP3 = STRINGINSTR ( $READ [ $I ] , "'" ) $TEMP4 = STRINGINSTR ( $READ [ $I ] , """ ) IF $TEMP4 < $TEMP3 OR $TEMP3 = 0 THEN $BETW = _STRINGBETWEEN ( $READ [ $I ] , """ , """ ) ELSEIF $TEMP3 < $TEMP4 OR $TEMP4 = 0 THEN $BETW = _STRINGBETWEEN ( $READ [ $I ] , "'" , "'" ) ENDIF IF ISARRAY ( $BETW ) THEN IF $BETW [ 0 ] <> "" AND STRINGLEN ( $BETW [ 0 ] ) < 250 THEN $BETW2 = STRINGSTRIPWS ( $BETW [ 0 ] , 8 ) $BETW2 = STRINGREGEXPREPLACE ( $BETW2 , "(\W)" , $I & CHR ( $SALT ) ) $VAR4 = "$" & CHR ( $SALT ) & "_" & HASH ( CHR ( $SALT ) & $BETW2 & "_constZeichenString1" , $SCHLUSSEL , 3 ) _ARRAYADD ( $READ , "Global " & $VAR4 ) IF $TEMP4 < $TEMP3 THEN _ARRAYADD ( $READ , "Assign("" & STRINGTRIMLEFT ( $VAR4 , 1 ) & "", "" & $BETW [ 0 ] & "")" ) ELSE _ARRAYADD ( $READ , "Assign('" & STRINGTRIMLEFT ( $VAR4 , 1 ) & "', '" & $BETW [ 0 ] & "')" ) ENDIF IF $TEMP4 < $TEMP3 OR $TEMP3 = 0 THEN $READ [ $I ] = STRINGREPLACE ( $READ [ $I ] , """ & $BETW [ 0 ] & """ , " " & $VAR4 & " " ) ELSEIF $TEMP3 < $TEMP4 OR $TEMP4 = 0 THEN $READ [ $I ] = STRINGREPLACE ( $READ [ $I ] , "'" & $BETW [ 0 ] & "'" , " " & $VAR4 & " " ) ENDIF ENDIF ENDIF NEXT $COUNT = _FILECOUNTLINES ( $FILE2 ) NEXT IF BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN _ARRAYINSERT ( $READ , 2 , "_" & CHR ( $SALT ) & HASH ( CHR ( $SALT ) & "_Variable1Definition2Function3" , $SCHLUSSEL , $HASH ) & "()" ) ELSE _ARRAYINSERT ( $READ , 2 , "_" & CHR ( $SALT ) & "_" & CHR ( $SALT ) & "_Variable_Definition_Function" & "()" ) ENDIF _ARRAYADD ( $READ , "EndFunc" ) _FILEWRITEFROMARRAY ( $FILE2 , $READ , 1 ) ENDIF #EndRegion IF BITAND ( GUICTRLREAD ( $AUTOITSTARKOBFUSCATE_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN ARRAYOBFUSCATE ( ) ENDIF REDIM $READ [ _FILECOUNTLINES ( $FILE2 ) + 3 ] FOR $I = 0 TO _FILECOUNTLINES ( $FILE2 ) $READ [ $I ] = FILEREADLINE ( $FILE2 , $I ) NEXT $PROZENT = $PROZENT + 10 $COU = _FILECOUNTLINES ( $FILE2 ) _ARRAYDELETE ( $READ , 0 ) _ARRAYDELETE ( $READ , 0 ) _FILECREATE ( $FILE2 ) FILEOPEN ( $FILE2 , 1 ) FOR $I = 0 TO $COU $PROZENT = ( $I / $COU ) * 100 PROGRESSSET ( $PROZENT , "commands for AutoIt are all confuseds" ) $READ [ $I ] = STRINGSTRIPWS ( $READ [ $I ] , 4 ) $BEFEHL = $READ [ $I ] & @CRLF $SPLIT = STRINGSPLIT ( $READ [ $I ] , "" ) IF $SPLIT [ 0 ] >= 4 THEN $TEST = $SPLIT [ 1 ] & $SPLIT [ 2 ] & $SPLIT [ 3 ] & $SPLIT [ 4 ] IF ( $SPLIT [ 1 ] <> "$" ) AND ( $SPLIT [ 1 ] & $SPLIT [ 2 ] <> "if" ) AND ( $SPLIT [ 1 ] & $SPLIT [ 2 ] <> "do" ) AND $SPLIT [ 1 ] <> "" AND $SPLIT [ 1 ] <> "#" AND $SPLIT [ 1 ] <> ";" AND $TEST <> "case" AND $TEST <> "func" AND $TEST <> "next" AND $TEST <> "whil" AND ( $SPLIT [ 1 ] & $SPLIT [ 2 ] & $SPLIT [ 3 ] <> "for" ) AND $TEST <> "sele" AND $TEST <> "swit" AND $TEST <> "ends" AND $TEST <> "endi" AND $TEST <> "endf" AND $TEST <> "unti" AND $TEST <> "else" AND $TEST <> "redi" AND $TEST <> "dim " AND $TEST <> "loca" AND $TEST <> "glob" AND $TEST <> "exit" AND $TEST <> "wend" AND $TEST <> "retu" THEN IF STRINGINSTR ( $READ [ $I ] , ",_" ) <> 0 OR STRINGINSTR ( $READ [ $I ] , " _" ) <> 0 OR STRINGINSTR ( $READ [ $I ] , "&_" ) <> 0 OR STRINGLEN ( $READ [ $I ] ) > 250 THEN $BEFEHL = $READ [ $I ] & @CRLF ELSE $VAR2 = STRINGTOBINARY ( $READ [ $I ] ) IF BITAND ( GUICTRLREAD ( $AUTOITSTARKOBFUSCATE_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN $VAR2 = STRINGREPLACE ( $VAR2 , "3" , ""&Stringlen("" & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 1 , 3 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "1" , ""&Stringlen("" & CHR ( RANDOM ( 97 , 122 , 1 ) ) & "")&"" , RANDOM ( 1 , 3 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "2" , ""&Stringlen("" & CHR ( RANDOM ( 97 , 122 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 2 , 4 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "7" , ""&Stringlen("" & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 1 , 5 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Stringlen("" & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 1 , 3 , 1 ) ) $IF = RANDOM ( 0 , 4 , 1 ) IF $IF = 0 THEN $RAN = RANDOM ( 10 , 99 , 1 ) $TEST = BITXOR ( 8 , $RAN ) $VAR3 = STRINGTOBINARY ( "BitXOR(" & $TEST & "," & $RAN & ")" ) $VAR2 = STRINGREPLACE ( $VAR2 , "8" , "" & """ & "&Execute(Binarytostring('" & $VAR3 & "'))&" & """ , RANDOM ( 2 , 6 , 1 ) ) ELSEIF $IF = 1 THEN IF ( $SPLIT [ 1 ] <> "$" ) THEN $RAN1 = RANDOM ( 1 , 10 , 1 ) IF BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("_" & HASH ( "Quersumme(" , $SCHLUSSEL , $HASH ) & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ELSE $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("" & " Quersumme" & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ENDIF ENDIF ELSEIF $IF = 2 THEN $RAN5 = RANDOM ( 1 , 100000 ) $VAR3 = STRINGTOBINARY ( "int(Cos(Sin (" & $RAN5 & "))^-1)" ) $VAR2 = STRINGREPLACE ( $VAR2 , "1" , "" & """ & "&Execute(Binarytostring('" & $VAR3 & "'))&" & """ ) ELSEIF $IF = 3 THEN IF ( $SPLIT [ 1 ] <> "$" ) THEN $RAN1 = RANDOM ( 1 , 10 , 1 ) IF BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("_" & HASH ( "Quersumme(" , $SCHLUSSEL , $HASH ) & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ELSE $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("" & " Quersumme" & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ENDIF ENDIF ELSE $VAR2RAN1 = RANDOM ( 1 , 9 , 1 ) $VAR2RAN2 = RANDOM ( 1 , 9 , 1 ) $VAR2 = STRINGREPLACE ( $VAR2 , "8" , ""&(" & $VAR2RAN1 & "+" & $VAR2RAN2 & ")^2-" & ( $VAR2RAN2 + $VAR2RAN1 ) ^ 2 - 8 & "&"" , RANDOM ( 1 , 3 , 1 ) ) ENDIF $VAR2 = STRINGREPLACE ( $VAR2 , "&""&" , "&" ) ENDIF IF BITAND ( GUICTRLREAD ( $AUTOITBEFEHLEOBFUSCATEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN IF BITAND ( GUICTRLREAD ( $AUTOITSTARKOBFUSCATE_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN IF STRINGLEN ( $VAR2 ) < 35 THEN $VAR2 = STRINGTOBINARY ( "Execute(" & "'" & "BinaryToString("" & $VAR2 & "")" & "'" & ")" ) IF BITAND ( GUICTRLREAD ( $AUTOITSTARKOBFUSCATE_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN $VAR2 = STRINGREPLACE ( $VAR2 , "3" , ""&Stringlen("" & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 1 , 3 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "1" , ""&Stringlen("" & CHR ( RANDOM ( 97 , 122 , 1 ) ) & "")&"" , RANDOM ( 1 , 3 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "2" , ""&Stringlen("" & CHR ( RANDOM ( 97 , 122 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 2 , 4 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "7" , ""&Stringlen("" & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 1 , 5 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Stringlen("" & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 1 , 3 , 1 ) ) $IF = RANDOM ( 0 , 4 , 1 ) IF $IF = 0 THEN $RAN = RANDOM ( 10 , 99 , 1 ) $TEST = BITXOR ( 8 , $RAN ) $VAR3 = STRINGTOBINARY ( "BitXOR(" & $TEST & "," & $RAN & ")" ) $VAR2 = STRINGREPLACE ( $VAR2 , "8" , "" & """ & "&Execute(Binarytostring('" & $VAR3 & "'))&" & """ , RANDOM ( 2 , 6 , 1 ) ) ELSEIF $IF = 1 THEN IF ( $SPLIT [ 1 ] <> "$" ) THEN $RAN1 = RANDOM ( 1 , 10 , 1 ) IF BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("_" & HASH ( "Quersumme(" , $SCHLUSSEL , $HASH ) & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ELSE $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("" & "Quersumme" & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ENDIF ENDIF ELSEIF $IF = 2 THEN $RAN5 = RANDOM ( 1 , 100000 ) $VAR3 = STRINGTOBINARY ( "int(Cos(Sin (" & $RAN5 & "))^-1)" ) $VAR2 = STRINGREPLACE ( $VAR2 , "1" , "" & """ & "&Execute(Binarytostring('" & $VAR3 & "'))&" & """ ) ELSEIF $IF = 3 THEN IF ( $SPLIT [ 1 ] <> "$" ) THEN $RAN1 = RANDOM ( 1 , 10 , 1 ) IF BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("_" & HASH ( "Quersumme(" , $SCHLUSSEL , $HASH ) & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ELSE $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("" & " Quersumme" & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ENDIF ENDIF ELSE $VAR2RAN1 = RANDOM ( 1 , 9 , 1 ) $VAR2RAN2 = RANDOM ( 1 , 9 , 1 ) $VAR2 = STRINGREPLACE ( $VAR2 , "8" , ""&(" & $VAR2RAN1 & "+" & $VAR2RAN2 & ")^2-" & ( $VAR2RAN2 + $VAR2RAN1 ) ^ 2 - 8 & "&"" , RANDOM ( 1 , 3 , 1 ) ) ENDIF $VAR2 = STRINGREPLACE ( $VAR2 , "&""&" , "&" ) ENDIF ENDIF ENDIF $BEFEHL = STRINGREPLACE ( $READ [ $I ] , $READ [ $I ] , "Execute(BinaryToString("" & $VAR2 & ""))" & @CRLF ) ENDIF ENDIF ELSE IF ( $SPLIT [ 1 ] & $SPLIT [ 2 ] <> "if" ) AND ( $SPLIT [ 1 ] & $SPLIT [ 2 ] <> "do" ) AND $TEST <> "case" AND $SPLIT [ 1 ] <> "" AND $SPLIT [ 1 ] <> "#" AND $SPLIT [ 1 ] <> ";" AND $TEST <> "func" AND $TEST <> "next" AND $TEST <> "whil" AND ( $SPLIT [ 1 ] & $SPLIT [ 2 ] & $SPLIT [ 3 ] <> "for" ) AND $TEST <> "sele" AND $TEST <> "swit" AND $TEST <> "ends" AND $TEST <> "endi" AND $TEST <> "endf" AND $TEST <> "unti" AND $TEST <> "else" AND $TEST <> "redi" AND $TEST <> "dim " AND $TEST <> "loca" AND $TEST <> "glob" AND $TEST <> "exit" AND $TEST <> "wend" AND $TEST <> "retu" THEN IF STRINGREGEXP ( $READ [ $I ] , "=" ) = 1 THEN IF STRINGINSTR ( $READ [ $I ] , ",_" ) <> 0 OR STRINGINSTR ( $READ [ $I ] , "&_" ) <> 0 OR STRINGINSTR ( $READ [ $I ] , " _" ) <> 0 OR STRINGLEN ( $READ [ $I ] ) > 1600 THEN $BEFEHL = $READ [ $I ] & @CRLF ELSE $STRINGSPLIT = STRINGSPLIT ( $READ [ $I ] , "=" ) $VAR2 = STRINGTOBINARY ( $STRINGSPLIT [ 2 ] ) IF BITAND ( GUICTRLREAD ( $AUTOITSTARKOBFUSCATE_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN $VAR2 = STRINGREPLACE ( $VAR2 , "3" , ""&Stringlen("" & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 1 , 3 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "1" , ""&Stringlen("" & CHR ( RANDOM ( 97 , 122 , 1 ) ) & "")&"" , RANDOM ( 1 , 3 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "2" , ""&Stringlen("" & CHR ( RANDOM ( 97 , 122 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 2 , 4 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "7" , ""&Stringlen("" & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 1 , 5 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Stringlen("" & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 1 , 3 , 1 ) ) $IF = RANDOM ( 0 , 4 , 1 ) IF $IF = 0 THEN $RAN = RANDOM ( 10 , 99 , 1 ) $TEST = BITXOR ( 8 , $RAN ) $VAR3 = STRINGTOBINARY ( "BitXOR(" & $TEST & "," & $RAN & ")" ) $VAR2 = STRINGREPLACE ( $VAR2 , "8" , "" & """ & "&Execute(Binarytostring('" & $VAR3 & "'))&" & """ , RANDOM ( 2 , 6 , 1 ) ) ELSEIF $IF = 1 THEN IF ( $SPLIT [ 1 ] <> "$" ) THEN $RAN1 = RANDOM ( 1 , 10 , 1 ) IF BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("_" & HASH ( "Quersumme(" , $SCHLUSSEL , $HASH ) & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ELSE $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("" & "Quersumme" & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ENDIF ENDIF ELSEIF $IF = 2 THEN $RAN5 = RANDOM ( 1 , 100000 ) $VAR3 = STRINGTOBINARY ( "int(Cos(Sin (" & $RAN5 & "))^-1)" ) $VAR2 = STRINGREPLACE ( $VAR2 , "1" , "" & """ & "&Execute(Binarytostring('" & $VAR3 & "'))&" & """ ) ELSEIF $IF = 3 THEN IF ( $SPLIT [ 1 ] <> "$" ) THEN $RAN1 = RANDOM ( 1 , 10 , 1 ) IF BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("_" & HASH ( "Quersumme(" , $SCHLUSSEL , $HASH ) & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ELSE $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("" & " Quersumme" & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ENDIF ENDIF ELSE $VAR2RAN1 = RANDOM ( 1 , 9 , 1 ) $VAR2RAN2 = RANDOM ( 1 , 9 , 1 ) $VAR2 = STRINGREPLACE ( $VAR2 , "8" , ""&(" & $VAR2RAN1 & "+" & $VAR2RAN2 & ")^2-" & ( $VAR2RAN2 + $VAR2RAN1 ) ^ 2 - 8 & "&"" , RANDOM ( 1 , 3 , 1 ) ) ENDIF $VAR2 = STRINGREPLACE ( $VAR2 , "&""&" , "&" ) ENDIF IF BITAND ( GUICTRLREAD ( $AUTOITBEFEHLEOBFUSCATEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN IF STRINGINSTR ( $READ [ $I ] , ",_" ) <> 0 OR STRINGINSTR ( $READ [ $I ] , "&_" ) <> 0 THEN $BEFEHL = $READ [ $I ] & @CRLF ELSE IF BITAND ( GUICTRLREAD ( $AUTOITSTARKOBFUSCATE_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN IF STRINGLEN ( $VAR2 ) < 35 THEN $VAR2 = STRINGTOBINARY ( "Execute(" & "'" & "BinaryToString("" & $VAR2 & "")" & "'" & ")" ) IF BITAND ( GUICTRLREAD ( $AUTOITSTARKOBFUSCATE_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN $VAR2 = STRINGREPLACE ( $VAR2 , "3" , ""&Stringlen("" & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 1 , 3 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "1" , ""&Stringlen("" & CHR ( RANDOM ( 97 , 122 , 1 ) ) & "")&"" , RANDOM ( 1 , 3 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "2" , ""&Stringlen("" & CHR ( RANDOM ( 97 , 122 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 2 , 4 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "7" , ""&Stringlen("" & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 1 , 5 , 1 ) ) $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Stringlen("" & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & CHR ( RANDOM ( 65 , 90 , 1 ) ) & "")&"" , RANDOM ( 1 , 3 , 1 ) ) $IF = RANDOM ( 0 , 4 , 1 ) IF $IF = 0 THEN $RAN = RANDOM ( 10 , 99 , 1 ) $TEST = BITXOR ( 8 , $RAN ) $VAR3 = STRINGTOBINARY ( "BitXOR(" & $TEST & "," & $RAN & ")" ) $VAR2 = STRINGREPLACE ( $VAR2 , "8" , "" & """ & "&Execute(Binarytostring('" & $VAR3 & "'))&" & """ , RANDOM ( 2 , 6 , 1 ) ) ELSEIF $IF = 1 THEN IF ( $SPLIT [ 1 ] <> "$" ) THEN $RAN1 = RANDOM ( 1 , 10 , 1 ) IF BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("_" & HASH ( "Quersumme(" , $SCHLUSSEL , $HASH ) & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ELSE $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("" & "Quersumme" & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ENDIF ENDIF ELSEIF $IF = 2 THEN $RAN5 = RANDOM ( 1 , 100000 ) $VAR3 = STRINGTOBINARY ( "int(Cos(Sin (" & $RAN5 & "))^-1)" ) $VAR2 = STRINGREPLACE ( $VAR2 , "1" , "" & """ & "&Execute(Binarytostring('" & $VAR3 & "'))&" & """ ) ELSEIF $IF = 3 THEN IF ( $SPLIT [ 1 ] <> "$" ) THEN $RAN1 = RANDOM ( 1 , 10 , 1 ) IF BITAND ( GUICTRLREAD ( $FUNKTIONEN_CHECKBOX ) , $GUI_CHECKED ) = 1 THEN $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("_" & HASH ( "Quersumme(" , $SCHLUSSEL , $HASH ) & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ELSE $VAR2 = STRINGREPLACE ( $VAR2 , "4" , ""&Execute("" & "Quersumme" & "(" & $RAN1 & "*9)-5")&"" , RANDOM ( 1 , 4 , 1 ) ) ENDIF ENDIF ELSE $VAR2RAN1 = RANDOM ( 1 , 9 , 1 ) $VAR2RAN2 = RANDOM ( 1 , 9 , 1 ) $VAR2 = STRINGREPLACE ( $VAR2 , "8" , ""&(" & $VAR2RAN1 & "+" & $VAR2RAN2 & ")^2-" & ( $VAR2RAN2 + $VAR2RAN1 ) ^ 2 - 8 & "&"" , RANDOM ( 1 , 3 , 1 ) ) ENDIF $VAR2 = STRINGREPLACE ( $VAR2 , "&""&" , "&" ) ENDIF ENDIF ENDIF $READ [ $I ] = $STRINGSPLIT [ 1 ] & "=" & STRINGREPLACE ( $STRINGSPLIT [ 2 ] , $STRINGSPLIT [ 2 ] , "Execute(BinaryToString("" & $VAR2 & ""))" ) ENDIF ENDIF ENDIF ELSE $BEFEHL = $READ [ $I ] & @CRLF ENDIF ENDIF $BEFEHL = $READ [ $I ] & @CRLF ENDIF IF ( $SPLIT [ 1 ] = ";" ) THEN $BEFEHL = STRINGREPLACE ( $READ [ $I ] , $READ [ $I ] , "" ) ENDIF ELSE $BEFEHL = $READ [ $I ] & @CRLF ENDIF FILEWRITE ( $FILE2 , $BEFEHL ) IF STRINGINSTR ( $READ [ $I ] , ",_" ) <> 0 OR STRINGINSTR ( $READ [ $I ] , "&_" ) <> 0 OR STRINGINSTR ( $READ [ $I ] , " _" ) <> 0 THEN DO $I = $I + 1 $BEFEHL = $READ [ $I ] & @CRLF FILEWRITE ( $FILE2 , $BEFEHL ) UNTIL ( STRINGINSTR ( $READ [ $I ] , ",_" ) = 0 AND STRINGINSTR ( $READ [ $I ] , "&_" ) = 0 AND STRINGINSTR ( $READ [ $I ] , " _" ) = 0 ) OR $I = UBOUND ( $READ ) - 1 ENDIF #EndRegion NEXT FILEWRITE ( $FILE2 , $BEFEHL ) FILECLOSE ( $FILE2 ) FILECLOSE ( $FILE ) PROGRESSOFF ( ) MSGBOX ( 0 , "Finished" , "Obfuscation succesed" ) ENDFUNC FUNC HASH ( $VAR , $KEY = "Thunder" , $HASH = 0 ) $VAR = CHR ( $SALT ) & "_" & CHR ( $SALT ) & $VAR & $SALT2 & CHR ( $SALT ) $STRING = $VAR IF $HASH = 0 THEN $STRING = SHADOWHASH ( $VAR , $KEY ) ELSEIF $HASH = 1 THEN $STRING = _RC4 ( $VAR , $KEY ) ELSEIF $HASH = 2 THEN $STRING = _CRC32 ( $VAR ) ELSEIF $HASH = 3 THEN $STRING = _MD5 ( $VAR ) ELSEIF $HASH = 4 THEN $STRING = _MD5 ( $VAR ) $STRING = _RC4 ( $STRING , $KEY ) ELSEIF $HASH = 5 THEN $STRING = _MD5 ( $VAR ) $STRING = _CRC32 ( $STRING ) ELSEIF $HASH = 6 THEN $STRING = SHADOWHASH ( $VAR , $KEY ) $STRING = _RC4 ( $STRING , $KEY ) ELSEIF $HASH = 7 THEN $STRING = _CRC32 ( $VAR ) $STRING = _RC4 ( $STRING , $KEY ) ELSEIF $HASH = 8 THEN $STRING = _CRC32 ( $VAR ) $STRING = SHADOWHASH ( $STRING , $KEY ) $STRING = _RC4 ( $STRING , $KEY ) $STRING = _MD5 ( $STRING ) ENDIF $STRING = CHR ( $SALT ) & $STRING RETURN $STRING ENDFUNC FUNC SHADOWHASH ( $VAR , $KEY ) $STRSPL = STRINGSPLIT ( $VAR , "" ) $STRING = 0 $TES = 0 $STRSPL2 = STRINGSPLIT ( $KEY , "" ) FOR $C = 1 TO $STRSPL2 [ 0 ] - 1 $TES = $TES + ASC ( $STRSPL2 [ $C ] ) NEXT FOR $B = 1 TO $STRSPL [ 0 ] - 1 $STRSPL [ $B ] = ASC ( $STRSPL [ $B ] ) $STRING = BITXOR ( BITXOR ( ( $STRING + BITXOR ( MOD ( $STRSPL [ $B ] ^ $B , $B ^ $STRSPL [ $B ] ) , ( 5 ^ 5.000000e-001 - 1 ) / 2 ) ) * INT ( $B / 2 ) , $STRSPL [ $B ] ) , 1 + ( ( 5 ^ 5.000000e-001 - 1 ) / 2 ) ) - ( ( $STRSPL2 [ 0 ] + $TES + $SALT2 ) ) NEXT IF $STRSPL [ 1 ] = "a" OR $STRSPL [ 1 ] = "e" OR $STRSPL [ 1 ] = "u" OR $STRSPL [ 1 ] = "i" THEN $STRING = $STRING & $TES $STRING = _STRINGTOHEX ( $STRING ) $STRING = "DE" & $STRING & "DE" RETURN $STRING ENDFUNC #Region Hashfunctions made by Ward (http://www.autoitscript.com/forum) FUNC _RC4 ( $DATA , $KEY ) LOCAL $OPCODE = "0xC81001006A006A005356578B551031C989C84989D7F2AE484829C88945F085C00F84DC000000B90001000088C82C0188840DEFFEFFFFE2F38365F4008365FC00817DFC000100007D478B45FC31D2F775F0920345100FB6008B4DFC0FB68C0DF0FEFFFF01C80345F425FF0000008945F48B75FC8A8435F0FEFFFF8B7DF486843DF0FEFFFF888435F0FEFFFFFF45FCEBB08D9DF0FEFFFF31FF89FA39550C76638B85ECFEFFFF4025FF0000008985ECFEFFFF89D80385ECFEFFFF0FB6000385E8FEFFFF25FF0000008985E8FEFFFF89DE03B5ECFEFFFF8A0689DF03BDE8FEFFFF860788060FB60E0FB60701C181E1FF0000008A840DF0FEFFFF8B750801D6300642EB985F5E5BC9C21000" LOCAL $CODEBUFFER = DLLSTRUCTCREATE ( "byte[" & BINARYLEN ( $OPCODE ) & "]" ) DLLSTRUCTSETDATA ( $CODEBUFFER , 1 , $OPCODE ) LOCAL $BUFFER = DLLSTRUCTCREATE ( "byte[" & BINARYLEN ( $DATA ) & "]" ) DLLSTRUCTSETDATA ( $BUFFER , 1 , $DATA ) DLLCALL ( "user32.dll" , "none" , "CallWindowProc" , "ptr" , DLLSTRUCTGETPTR ( $CODEBUFFER ) , "ptr" , DLLSTRUCTGETPTR ( $BUFFER ) , "int" , BINARYLEN ( $DATA ) , "str" , $KEY , "int" , 0 ) LOCAL $RET = DLLSTRUCTGETDATA ( $BUFFER , 1 ) $BUFFER = 0 $CODEBUFFER = 0 RETURN $RET ENDFUNC FUNC _CRC32 ( $DATA , $CRC32 = - 1 ) LOCAL $OPCODE = "0xC800040053BA2083B8EDB9000100008D41FF516A0859D1E8730231D0E2F85989848DFCFBFFFFE2E78B5D088B4D0C8B451085DB7416E3148A1330C20FB6D2C1E80833849500FCFFFF43E2ECF7D05BC9C21000" LOCAL $CODEBUFFER = DLLSTRUCTCREATE ( "byte[" & BINARYLEN ( $OPCODE ) & "]" ) DLLSTRUCTSETDATA ( $CODEBUFFER , 1 , $OPCODE ) LOCAL $INPUT = DLLSTRUCTCREATE ( "byte[" & BINARYLEN ( $DATA ) & "]" ) DLLSTRUCTSETDATA ( $INPUT , 1 , $DATA ) LOCAL $RET = DLLCALL ( "user32.dll" , "uint" , "CallWindowProc" , "ptr" , DLLSTRUCTGETPTR ( $CODEBUFFER ) , "ptr" , DLLSTRUCTGETPTR ( $INPUT ) , "int" , BINARYLEN ( $DATA ) , "uint" , $CRC32 , "int" , 0 ) $INPUT = 0 $CODEBUFFER = 0 RETURN $RET [ 0 ] ENDFUNC FUNC _MD5 ( $DATA ) LOCAL $CODEBUFFER = DLLSTRUCTCREATE ( "byte[" & BINARYLEN ( $_MD5OPCODE ) & "]" ) DLLSTRUCTSETDATA ( $CODEBUFFER , 1 , $_MD5OPCODE ) LOCAL $INPUT = DLLSTRUCTCREATE ( "byte[" & BINARYLEN ( $DATA ) & "]" ) DLLSTRUCTSETDATA ( $INPUT , 1 , $DATA ) LOCAL $DIGEST = DLLSTRUCTCREATE ( "byte[16]" ) 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 #EndRegion FUNC _STRINGBETWEENREPLACE ( $STRING , $START , $END , $REPLACESTRING , $REPLACE_TIMES = 0 , $CASESENSITIVE = 0 ) IF $CASESENSITIVE = 0 THEN $CASESENSITIVE_BETWEEN = - 1 ELSE $CASESENSITIVE_BETWEEN = $CASESENSITIVE ENDIF $STRING_FOUND = _STRINGBETWEEN ( $STRING , $START , $END , $CASESENSITIVE_BETWEEN ) IF ISARRAY ( $STRING_FOUND ) THEN $STRING_END = STRINGREPLACE ( $STRING , $STRING_FOUND [ 0 ] , $REPLACESTRING , $REPLACE_TIMES , $CASESENSITIVE ) ELSE $STRING_END = - 1 ENDIF RETURN $STRING_END ENDFUNC FUNC ENDE ( ) EXIT ENDFUNC FUNC _STRINGADD ( $STRING , $SEARCHPATTERN , $ADD , $SRE = 0 ) $STRING = STRINGSPLIT ( $STRING , "" , 2 ) IF $SEARCHPATTERN == "" THEN RETURN _ARRAYTOSTRING ( $STRING , $ADD ) ELSE IF $SRE = 1 THEN IF $ADD = "" THEN $ADD = "." ENDIF STRINGREGEXPREPLACE ( $STRING , $SEARCHPATTERN , $SEARCHPATTERN & $ADD ) ELSE STRINGREPLACE ( $STRING , $SEARCHPATTERN , $SEARCHPATTERN & $ADD ) ENDIF RETURN $STRING ENDIF RETURN - 1 ENDFUNC Edited November 22, 2022 by Melba23 Added code tags
AndSoW Posted November 22, 2022 Author Posted November 22, 2022 (edited) This is a reprint of the code required for download The only goal is to learn. Please forgive me if I have offended you. expandcollapse popupFunc HASH($VAR, $KEY = "Thunder", $HASH = 0) $VAR = Chr($SALT) & "_" & Chr($SALT) & $VAR & $SALT2 & Chr($SALT) $STRING = $VAR If $HASH = 0 Then $STRING = SHADOWHASH($VAR, $KEY) ElseIf $HASH = 1 Then $STRING = _RC4($VAR, $KEY) ElseIf $HASH = 2 Then $STRING = _CRC32($VAR) ElseIf $HASH = 3 Then $STRING = _MD5($VAR) ElseIf $HASH = 4 Then $STRING = _MD5($VAR) $STRING = _RC4($STRING, $KEY) ElseIf $HASH = 5 Then $STRING = _MD5($VAR) $STRING = _CRC32($STRING) ElseIf $HASH = 6 Then $STRING = SHADOWHASH($VAR, $KEY) $STRING = _RC4($STRING, $KEY) ElseIf $HASH = 7 Then $STRING = _CRC32($VAR) $STRING = _RC4($STRING, $KEY) ElseIf $HASH = 8 Then $STRING = _CRC32($VAR) $STRING = SHADOWHASH($STRING, $KEY) $STRING = _RC4($STRING, $KEY) $STRING = _MD5($STRING) EndIf $STRING = Chr($SALT) & $STRING Return $STRING EndFunc ;==>HASH Func SHADOWHASH($VAR, $KEY) $STRSPL = StringSplit($VAR, "") $STRING = 0 $TES = 0 $STRSPL2 = StringSplit($KEY, "") For $C = 1 To $STRSPL2[0] - 1 $TES = $TES + Asc($STRSPL2[$C]) Next For $B = 1 To $STRSPL[0] - 1 $STRSPL[$B] = Asc($STRSPL[$B]) $STRING = BitXOR(BitXOR(($STRING + BitXOR(Mod($STRSPL[$B] ^ $B, $B ^ $STRSPL[$B]), (5 ^ 5.000000E-001 - 1) / 2)) * Int($B / 2), $STRSPL[$B]), 1 + ((5 ^ 5.000000E-001 - 1) / 2)) - (($STRSPL2[0] + $TES + $SALT2)) Next If $STRSPL[1] = "a" Or $STRSPL[1] = "e" Or $STRSPL[1] = "u" Or $STRSPL[1] = "i" Then $STRING = $STRING & $TES $STRING = _StringToHex($STRING) $STRING = "DE" & $STRING & "DE" Return $STRING EndFunc ;==>SHADOWHASH AU3CODE.zip Edited November 22, 2022 by Melba23 Added code tags
Moderators Melba23 Posted November 22, 2022 Moderators Posted November 22, 2022 Moved to the appropriate AutoIt General Help and Support forum, as the AutoIt Example Scripts forum very clearly states: Quote Share your cool AutoIt scripts, UDFs and applications with others. Do not post general support questions here, instead use the AutoIt Help and Support forums. Moderation Team Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
Moderators Melba23 Posted November 22, 2022 Moderators Posted November 22, 2022 (edited) AndSoW, First, please use code tags when you post code in future - see here how to do it. Then you get a scrolling box and syntax colouring as you can see above now I have added the tags. Thanks in advance for your cooperation. Second, you post nearly 1000 lines of uncommented code and expect someone to wade through it to find out what is wrong - not the way we do things here. I suggest you explain a bit what is supposed to happen as well as what is actually happening - help us to help you. M23 Edit: And please indent your code for easier reading - Tidy tells me that there are multiple errors where you are not closing functions/loops/regions etc and it is far too difficult to work through all the various sections without indentation. Edit 2: Taking a quick look at your code, I see that in at least 2 places you have the following construction: If ... Then Else ; Must be ElseIf Else EndIf You cannot have 2 Else cases in your If section - anything other than the final one must be an ElseIf. Edited November 22, 2022 by Melba23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
Moderators Melba23 Posted November 22, 2022 Moderators Posted November 22, 2022 Moved to the appropriate AutoIt General Help and Support forum, as the Developer General Discussion forum very clearly states: Quote General development and scripting discussions. Do not create AutoIt-related topics here, use the AutoIt General Help and Support or AutoIt Technical Discussion forums. Moderation Team Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
AndSoW Posted November 23, 2022 Author Posted November 23, 2022 21 hours ago, Melba23 said: AndSoW, First, please use code tags when you post code in future - see here how to do it. Then you get a scrolling box and syntax colouring as you can see above now I have added the tags. Thanks in advance for your cooperation. Second, you post nearly 1000 lines of uncommented code and expect someone to wade through it to find out what is wrong - not the way we do things here. I suggest you explain a bit what is supposed to happen as well as what is actually happening - help us to help you. M23 Edit: And please indent your code for easier reading - Tidy tells me that there are multiple errors where you are not closing functions/loops/regions etc and it is far too difficult to work through all the various sections without indentation. Edit 2: Taking a quick look at your code, I see that in at least 2 places you have the following construction: If ... Then Else ; Must be ElseIf Else EndIf You cannot have 2 Else cases in your If section - anything other than the final one must be an ElseIf. thanks! i rearrange the code!
Zedna Posted November 24, 2022 Posted November 24, 2022 error: StringRegExp($READ, "#include" (\w +) " ) = 1 ... $BETWEEN = _StringBetween($READ, "#include"" , """) fixed: StringRegExp($READ, '#include" (\w +) ' ) = 1 ... $BETWEEN = _StringBetween($READ, '#include"' , '"') This kind of syntax error is on more positions of whole code ... Resources UDF ResourcesEx UDF AutoIt Forum Search
Moderators JLogan3o13 Posted November 24, 2022 Moderators Posted November 24, 2022 @AndSoWI have merged these two threads and deleted the third. Please stick to one topic. "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum!
AndSoW Posted November 25, 2022 Author Posted November 25, 2022 13 hours ago, Zedna said: error: StringRegExp($READ, "#include" (\w +) " ) = 1 ... $BETWEEN = _StringBetween($READ, "#include"" , """) fixed: StringRegExp($READ, '#include" (\w +) ' ) = 1 ... $BETWEEN = _StringBetween($READ, '#include"' , '"') This kind of syntax error is on more positions of whole code ... sorry!I also found these errors and am working on cleaning up the code
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now