KekSec icon

Obfuscator v1.3.8c by Shadow992 (ENGLISH VERSION)

KekSec | PRO | 08/13/19 09:42:23 PM UTC | 0 ⭐ | 14484 👁️ | Never ⏰ | []
AutoIt |

39.91 KB

|

None

|

0 👍

/

0 👎

; Author ........: Shadow992
; Modified.......: No Edit
; Version........: 1.3.8c
; Copyright by Shadow992
#RequireAdmin
#Include <GuiComboBox.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>
#include <file.au3>
#include <string.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Obfuscator by Shadow992", 569, 267, 253, 183, Default, $WS_EX_ACCEPTFILES)
GUISetBkColor(0x9DB9EB)
$Schlussel_Button = GUICtrlCreateButton("Generate a 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 file to obfuscate", 368, 8, 193, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("", 8, 88, 259, 113)
$Variblen_Checkbox = GUICtrlCreateCheckbox("Variable name obfuscate", 288, 80, 193, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Funktionen_Checkbox = GUICtrlCreateCheckbox("Own functions obfuscate", 288, 120, 201, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$AutoITBefehleObfuscaten_Checkbox = GUICtrlCreateCheckbox("AutoIT Commands obfuscate", 288, 160, 195, 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 commands strongly obfuscate", 312, 184, 239, 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("Includes integrate (minimizes 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 Shadow992", 76, 64, 124, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
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 to obfuscate","","(*.au3)",1)
            GUICtrlSetData($Datei_Input,$file)
            if FileExists (guictrlread ($Datei_Input)) Then
                guictrlsetdata ($Label1,"Row: "&_FileCountLines (guictrlread ($Datei_Input))&@CRLF&@CRLF&"Size : "&FileGetSize (guictrlread ($Datei_Input))&" B"&@CRLF&@CRLF&"Estimated size "&@CRLF&"Post obfuscation: "&@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,"Invalid file","This file is invalid or missing")
            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,"Invalid file","This file is invalid or missing")
        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,"Invalid file","This file is invalid or missing")
        EndIf
        Else
        MsgBox(0,"Invalid characters","Please note that the key may only consist 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 become obfuscated")
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,"Includes intergrate "&@CRLF&"Rest 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,"Comments are removed "&@CRLF&"current line: "&$i&" of "&$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
;~ _ReplaceStringInFile($file,$kommentar[$i],"",1,0)
_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),"$")=1 And(StringInStr(StringStripWS($komm3,8),");")=1 Or StringInStr(StringStripWS($komm3,8),'";')=1)
    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() ;---> Function Obfuscate()
ProgressOn("Obfuscate","progress:")
$save=FileRead($file)
$file4=StringTrimRight($file,4)&"-backup.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 Search for functions and add to array $ functions (will be needed later)
 
KommentareEntfernen()
for $i=0 to _FileCountLines($file)
$prozent=($i/_FileCountLines($file))*100
ProgressSet($prozent,"Functions are searched")
$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]&"(")
;~  $temp2=_StringBetween($read,"func","(")
;~  $temp2=StringStripWS ($temp2,8)
;~  StringReplace($temp2&"(",$temp2&"("," _" & Hash($temp[0],$schlussel,$hash)&"(")
 
If IsArray($functions) Then
If $functions[0]="" or $functions[0]=" " Then
_ArrayDelete($functions,0)
EndIf
EndIf
EndIf
#EndRegion
#Region Variables are replaced with hash
$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,"Variables are hashed")
        Next
    EndIf
        EndIf
$read=StringTrimRight($read,1)
 
FileWrite($file2,$read&@CRLF)
Next
#EndRegion
#Region Functions throughout the script that are in the $ functions array are now replaced by hashes throughout the script
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,"Functions are replaced by hashes")
    If $functions[0]<>"" and $functions[0]<>" " Then
;~      $read = StringReplace($read ,$functions[$hj],"_" & Hash($functions[$hj],$schlussel,$hash)&"(")
        $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 are replaced by variables
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,"Strings are replaced by variables")
 
 
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
 
 
;~  ProgressOff()
;~ MsgBox(0,"test","Read : "&$read[$i]&@CRLF&"Temp4 : "&$temp4&@CRLF&"Temp3 : "&$temp3)
 
if IsArray($betw) Then
 
if $betw[0]<>"" and StringLen($betw[0])<400 Then
$betw2=StringStripWS($betw[0],8)
$betw2=StringRegExpReplace ($betw2, "(\W)",$i&chr($salt))
 
$var4="$"&Chr($salt)&"_"&Hash(Chr($salt)&$betw2&'_constCharString1',$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&" ")
;~ MsgBox(0,"test",'"'&$betw[0]&'"')
ElseIf $temp3 < $temp4 Or $temp4=0 Then
    $read[$i]=StringReplace($read[$i],"'"&$betw[0]&"'"," "&$var4&" ")
    ;~ MsgBox(0,"test","'"&$betw[0]&"'")
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,"AutoIT commands are obfuscated")
$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] <> "" 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])>400 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 $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 ;---> Funktionsende Obfuscate()
 
 
Func Hash($var,$key="Thunder",$hash=0) ;---> Funktionsanfang Hash($var,$key,$hash)
$var=chr($salt)&"_"&chr($salt)&$var&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 ;---> Funktionsende Hash($var,$key,$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^0.5-1)/2))*Int($b/2),$StrSpl[$b]),1+((5^0.5-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

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎