#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=C:\Program Files (x86)\AutoIt3\Aut2Exe\Icons\SETUP03.ICO #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_UseUpx=y #AutoIt3Wrapper_UseX64=n ; cause Titchysid.dll is 32bit. #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #Region ;************ Includes ************ #Include #Include #EndRegion ;************ Includes ************ ;~ TitchySID by StatMat (MASM & PureBasic) ;~ https://forum.tuts4you.com/topic/16644-new-sid-player-in-masm-titchysid/#entry84306 ;~ http://reversing.be/forum/viewtopic.php?p=3819&sid=89b9a2413b930a41eb3a642811838a9b ;~ Titchysid Functions list : ;~ SIDChangeSong ; parameters ; subsong:BYTE ;~ SIDClose ; no parameters ;~ SIDOpen ; parameters ; sid:DWORD, sidlen:DWORD, mode:BYTE, options:BYTE, subsong:BYTE ; Returns non-zero on success ;~ SIDPause ; no parameters ;~ SIDPlay ; no parameters ;~ SIDResume ; no parameters ;~ SIDStop ; no parameters HotKeySet ( '{ESC}', '_Exit' ) Opt ( 'GUIOnEventMode', 1 ) ; memory constants. Global Const $tagIMAGE_DOS_HEADER = 'WORD e_magic;WORD e_cblp;WORD e_cp;WORD e_crlc;WORD e_cparhdr;WORD e_minalloc;WORD e_maxalloc;WORD e_ss;WORD e_sp;WORD e_csum;WORD e_ip;WORD e_cs;WORD e_lfarlc;WORD e_ovno;WORD e_res[4];WORD e_oemid;WORD e_oeminfo;WORD e_res2[10];LONG e_lfanew;' Global Const $tagIMAGE_FILE_HEADER = 'WORD Machine;WORD NumberOfSections;DWORD TimeDateStamp;DWORD PointerToSymbolTable;DWORD NumberOfSymbols;WORD SizeOfOptionalHeader;WORD Characteristics;' Global $tagIMAGE_OPTIONAL_HEADER = 'WORD Magic;BYTE MajorLinkerVersion;BYTE MinorLinkerVersion;DWORD SizeOfCode;DWORD SizeOfInitializedData;DWORD SizeOfUninitializedData;DWORD AddressOfEntryPoint;DWORD BaseOfCode;DWORD BaseOfData;PTR ImageBase;DWORD SectionAlignment;DWORD FileAlignment;WORD MajorOperatingSystemVersion;WORD MinorOperatingSystemVersion;WORD MajorImageVersion;WORD MinorImageVersion;WORD MajorSubsystemVersion;WORD MinorSubsystemVersion;DWORD Win32VersionValue;DWORD SizeOfImage;DWORD SizeOfHeaders;DWORD CheckSum;WORD Subsystem;WORD DllCharacteristics;PTR SizeOfStackReserve;PTR SizeOfStackCommit;PTR SizeOfHeapReserve;PTR SizeOfHeapCommit;DWORD LoaderFlags;DWORD NumberOfRvaAndSizes;' If @AutoItX64 Then $tagIMAGE_OPTIONAL_HEADER = 'WORD Magic;BYTE MajorLinkerVersion;BYTE MinorLinkerVersion;DWORD SizeOfCode;DWORD SizeOfInitializedData;DWORD SizeOfUninitializedData;DWORD AddressOfEntryPoint;DWORD BaseOfCode;PTR ImageBase;DWORD SectionAlignment;DWORD FileAlignment;WORD MajorOperatingSystemVersion;WORD MinorOperatingSystemVersion;WORD MajorImageVersion;WORD MinorImageVersion;WORD MajorSubsystemVersion;WORD MinorSubsystemVersion;DWORD Win32VersionValue;DWORD SizeOfImage;DWORD SizeOfHeaders;DWORD CheckSum;WORD Subsystem;WORD DllCharacteristics;PTR SizeOfStackReserve;PTR SizeOfStackCommit;PTR SizeOfHeapReserve;PTR SizeOfHeapCommit;DWORD LoaderFlags;DWORD NumberOfRvaAndSizes;' Global Const $tagIMAGE_NT_HEADER = 'DWORD Signature;' & $tagIMAGE_FILE_HEADER & $tagIMAGE_OPTIONAL_HEADER Global Const $tagIMAGE_SECTION_HEADER = 'CHAR Name[8];DWORD VirtualSize;DWORD VirtualAddress;DWORD SizeOfRawData;DWORD PointerToRawData;DWORD PointerToRelocations;DWORD PointerToLinenumbers;WORD NumberOfRelocations;WORD NumberOfLinenumbers;DWORD Characteristics;' Global Const $tagIMAGE_DATA_DIRECTORY = 'DWORD VirtualAddress;DWORD Size;' Global Const $tagIMAGE_BASE_RELOCATION = 'DWORD VirtualAddress;DWORD SizeOfBlock;' Global Const $tagIMAGE_IMPORT_DESCRIPTOR = 'DWORD OriginalFirstThunk;DWORD TimeDateStamp;DWORD ForwarderChain;DWORD Name;DWORD FirstThunk;' Global Const $tagIMAGE_IMPORT_BY_NAME = 'WORD Hint;char Name[1];' Global Const $tagIMAGE_EXPORT_DIRECTORY = 'DWORD Characteristics;DWORD TimeDateStamp;WORD MajorVersion;WORD MinorVersion;DWORD Name;DWORD Base;DWORD NumberOfFunctions;DWORD NumberOfNames;DWORD AddressOfFunctions;DWORD AddressOfNames;DWORD AddressOfNameOrdinals;' Global $_KERNEL32DLL = DllOpen ( 'kernel32.dll' ) Global $_MFHookPtr, $_MFHookBak, $_MFHookApi = 'LocalCompact' Global Const $tagModule = 'PTR ExportList;PTR CodeBase;PTR ImportList;PTR DllEntry;DWORD Initialized;' ;~ Options used in SIDOpen() Global Const $SID_RESOURCE = 0 ; Load SID file from resources Global Const $SID_MEMORY = 1 ; Load SID file from memory Global Const $SID_DEFAULT = 1 ; Play default sub song, as found in the PSID header Global Const $SID_NON_DEFAULT = 2 ; Play specified sub song ; Global internal variables. Global $hTitchysidDll, $iSubsongCount, $aSubSong[5] = [6, 1, 20, 1, 5] Global $hGui, $idButtonPlay, $idButtonPause, $idRadio1, $idRadio2, $idRadio3, $idRadio4, $idRadio5, $idLabel, $idComboBox1, $idComboBox3, $idComboBox5 _Gui() $hTitchysidDll = _SIDStartup() If @error Then Exit MsgBox ( 262144+16, 'Error', 'Titchysid.dll can not be open !', 5 ) #Region ------ Main Loop ------------------------------ While 1 Sleep ( 250 ) WEnd #EndRegion --- Main Loop ------------------------------ Func _Base64Decode ( $input_string ) ; by trancexx Local $struct = DllStructCreate ( 'int' ) Local $a_Call = DllCall ( 'Crypt32.dll', 'int', 'CryptStringToBinary', 'str', $input_string, 'int', 0, 'int', 1, 'ptr', 0, 'ptr', DllStructGetPtr ( $struct, 1 ), 'ptr', 0, 'ptr', 0 ) If @error Or Not $a_Call[0] Then Return SetError ( 1, 0, '' ) Local $a = DllStructCreate ( 'byte[' & DllStructGetData ( $struct, 1 ) & ']' ) $a_Call = DllCall ( 'Crypt32.dll', 'int', 'CryptStringToBinary', 'str', $input_string, 'int', 0, 'int', 1, 'ptr', DllStructGetPtr ( $a ), 'ptr', DllStructGetPtr ( $struct, 1 ), 'ptr', 0, 'ptr', 0 ) If @error Or Not $a_Call[0] Then Return SetError ( 2, 0, '' ) Return DllStructGetData ( $a, 1 ) EndFunc ;==> _Base64Decode() Func _Exit() _SIDStop() _SIDClose() _SIDShutdown() Exit EndFunc ;==> _Exit() Func _Gui() $hGui = GUICreate ( 'TitchySidPlayer by wakillon', 360, 240 ) GUISetOnEvent ( $GUI_EVENT_CLOSE, '_Exit' ) GUISetFont ( 9, 600 ) $idButtonPlay = GUICtrlCreateButton ( 'Play', 260, 20, 85, 25 ) GUICtrlSetOnEvent ( -1, '_Play' ) $idButtonPause = GUICtrlCreateButton ( 'Pause', 260, 70, 85, 25 ) GUICtrlSetOnEvent ( -1, '_Pause' ) $idRadio1 = GUICtrlCreateRadio ( 'Shadowofthebeast.sid', 10, 20, 180, 20 ) GUICtrlSetOnEvent ( -1, '_GuiDisplaySubSongsCount' ) $idRadio2 = GUICtrlCreateRadio ( 'Summertime.sid', 10, 50, 180, 20 ) GUICtrlSetOnEvent ( -1, '_GuiDisplaySubSongsCount' ) $idRadio3 = GUICtrlCreateRadio ( 'SimpsonsArcade.sid', 10, 80, 190, 20 ) GUICtrlSetOnEvent ( -1, '_GuiDisplaySubSongsCount' ) $idRadio4 = GUICtrlCreateRadio ( 'Zuul.sid', 10, 110, 180, 20 ) GUICtrlSetOnEvent ( -1, '_GuiDisplaySubSongsCount' ) $idRadio5 = GUICtrlCreateRadio ( 'DoubleDribble.sid', 10, 140, 180, 20 ) GUICtrlSetOnEvent ( -1, '_GuiDisplaySubSongsCount' ) $idComboBox1 = GUICtrlCreateCombo ( '1', 200, 20, 40, 20 ) GUICtrlSetData ( -1, '2|3|4|5|6', '1' ) GUICtrlSetOnEvent ( -1, '_GuiRadioCheckFromCombo' ) $idComboBox3 = GUICtrlCreateCombo ( '1', 200, 80, 40, 20 ) GUICtrlSetData ( -1, '2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20', '1' ) GUICtrlSetOnEvent ( -1, '_GuiRadioCheckFromCombo' ) $idComboBox5 = GUICtrlCreateCombo ( '1', 200, 140, 40, 20 ) GUICtrlSetData ( -1, '2|3|4|5', '1' ) GUICtrlSetOnEvent ( -1, '_GuiRadioCheckFromCombo' ) Local $iRandom = Random ( $idRadio1, $idRadio5, 1 ) GUICtrlSetState ( $iRandom, $GUI_CHECKED ) $idLabel = GUICtrlCreateLabel ( 'SubSongs Count : ' & $aSubSong[$iRandom -$idRadio1], 10, 220, 300, 15, 0x01 ) GUICtrlSetColor ( -1, 0xFF0000 ) GUISetState() EndFunc ;==> _Gui() Func _GuiDisplaySubSongsCount() ControlSetText ( $hGui, '', $idLabel, 'SubSongs Count : ' & $aSubSong[@GUI_CtrlId -$idRadio1] ) EndFunc ;==> _GuiDisplaySubSongsCount() Func _GuiRadioCheckFromCombo() Switch @GUI_CtrlId Case $idComboBox1 GUICtrlSetState ( $idRadio1, $GUI_CHECKED ) ControlSetText ( $hGui, '', $idLabel, 'SubSongs Count : ' & $aSubSong[$idRadio1 -$idRadio1] ) Case $idComboBox3 GUICtrlSetState ( $idRadio3, $GUI_CHECKED ) ControlSetText ( $hGui, '', $idLabel, 'SubSongs Count : ' & $aSubSong[$idRadio3 -$idRadio1] ) Case $idComboBox5 GUICtrlSetState ( $idRadio5, $GUI_CHECKED ) ControlSetText ( $hGui, '', $idLabel, 'SubSongs Count : ' & $aSubSong[$idRadio5 -$idRadio1] ) EndSwitch EndFunc ;==> _GuiRadioCheckFromCombo() Func _IsChecked ( $idCtrl ) Return BitAND ( GUICtrlRead ( $idCtrl ), $GUI_CHECKED ) = $GUI_CHECKED EndFunc ;==> _IsChecked() Func _LzntDecompress ( $bBinary ) ; by trancexx $bBinary = Binary ( $bBinary ) Local $tInput = DllStructCreate ( 'byte[' & BinaryLen ( $bBinary ) & ']' ) DllStructSetData ( $tInput, 1, $bBinary ) Local $tBuffer = DllStructCreate ( 'byte[' & 16*DllStructGetSize ( $tInput ) & ']' ) Local $a_Call = DllCall ( 'ntdll.dll', 'int', 'RtlDecompressBuffer', 'ushort', 2, 'ptr', DllStructGetPtr ( $tBuffer ), 'dword', DllStructGetSize ( $tBuffer ), 'ptr', DllStructGetPtr ( $tInput ), 'dword', DllStructGetSize ( $tInput ), 'dword*', 0 ) If @error Or $a_Call[0] Then Return SetError ( 1, 0, '' ) Local $tOutput = DllStructCreate ( 'byte[' & $a_Call[6] & ']', DllStructGetPtr ( $tBuffer ) ) Return SetError ( 0, 0, DllStructGetData ( $tOutput, 1 ) ) EndFunc ;==> _LzntDecompress() Func _Pause() Local $sTextButton = GUICtrlRead ( $idButtonPause ) Switch $sTextButton Case 'Pause' ConsoleWrite ( '!->-- [' & StringFormat ( '%03i', @ScriptLineNumber ) & '] _Pause' & @Crlf ) _SIDPause() ControlSetText ( $hGui, '', $idButtonPause, 'Resume' ) Case 'Resume' ConsoleWrite ( '+->-- [' & StringFormat ( '%03i', @ScriptLineNumber ) & '] _Resume' & @Crlf ) _SIDResume() ControlSetText ( $hGui, '', $idButtonPause, 'Pause' ) EndSwitch EndFunc Func _Play() Local $sTextButton = GUICtrlRead ( $idButtonPlay ) Local $iIndex = 1 Switch $sTextButton Case 'Play' ConsoleWrite ( '+->-- [' & StringFormat ( '%03i', @ScriptLineNumber ) & '] _Play' & @Crlf ) Local $bin Select Case _IsChecked ( $idRadio1 ) $bin = Shadowofthebeastsid() ; 6 $iIndex = GUICtrlRead ( $idComboBox1 ) Case _IsChecked ( $idRadio2 ) $bin = Summertimesid() ; 1 Case _IsChecked ( $idRadio3 ) $bin = SimpsonsArcadeGamesid() ; 20 $iIndex = GUICtrlRead ( $idComboBox3 ) Case _IsChecked ( $idRadio4 ) $bin = Zuulsid() ; 1 Case _IsChecked ( $idRadio5 ) $bin = DoubleDribblesid() ; 5 $iIndex = GUICtrlRead ( $idComboBox5 ) EndSelect _SIDClose() ConsoleWrite ( '-->-- Index : ' & $iIndex & @Crlf ) _SIDOpen ( $bin, $iIndex ) If @error Then Exit MsgBox ( 262144+16, 'Error', 'Sid file not found !', 5 ) ControlSetText ( $hGui, '', $idButtonPlay, 'Stop' ) ControlSetText ( $hGui, '', $idButtonPause, 'Pause' ) $bin = 0 Case 'Stop' ConsoleWrite ( '!->-- [' & StringFormat ( '%03i', @ScriptLineNumber ) & '] _Stop' & @Crlf ) _SIDStop() ControlSetText ( $hGui, '', $idButtonPlay, 'Play' ) ControlSetText ( $hGui, '', $idButtonPause, 'Pause' ) EndSwitch EndFunc Func _SIDChangeSong ( $iSubsong = 0 ) If $iSubsong > $iSubsongCount -1 Then $iSubsong = 0 ; based 0 Local $aRet = MemoryDllCall ( $hTitchysidDll, 'int', 'SIDChangeSong', 'int', $iSubsong ) If @error Then Return SetError ( @error, 0, 0 ) Return $aRet[0] EndFunc ;==> _SIDChangeSong() Func _SIDClose() Local $aRet = MemoryDllCall ( $hTitchysidDll, 'int', 'SIDClose' ) If @error Then Return SetError ( @error, 0, 0 ) Return $aRet[0] EndFunc ;==> _SIDClose() Func _SIDOpen ( $Sid, $iSubsong=1 ) ; Opens up the library for SID playback and starts playing. ; To load a resource within the executable: ; invoke SIDOpen, res_id, 0, SID_RESOURCE, subsong ; To load from a memory block: ; invoke SIDOpen, mem, mem_len, SID_MEMORY, subsong ; Warning : Some RSID SID files do not allow to play subsong different of zero. If Not IsBinary ( $Sid ) Then If Not FileExists ( $Sid ) Then Return SetError ( 2, 0, 0 ) Local $hFileOpen = FileOpen ( $Sid, 0 ) If $hFileOpen = -1 Then Return SetError ( -1, 0, 0 ) Local $bSid = FileRead ( $hFileOpen ) FileClose ( $hFileOpen ) Else $bSid = $Sid EndIf Local $tSid = DllStructCreate ( 'byte[' & BinaryLen ( $bSid ) & ']') DllStructSetData ( $tSid, 1, $bSid ) Local $sType = BinaryToString ( BinaryMid ( $bSid, 1, 4 ), 1 ) ConsoleWrite ( '-->-- Sid File Type : ' & $sType & @Crlf ) Local $iVersion = Execute ( BinaryMid ( $bSid, 5, 2 ) ) ConsoleWrite ( '-->-- Sid File Version : ' & $iVersion & @Crlf ) $iSubsongCount = Int ( StringTrimLeft ( BinaryMid ( $bSid, 15, 2 ), 2 ) ) ConsoleWrite ( '-->-- SubsongCount : ' & $iSubsongCount & @Crlf ) $iSubsong = $iSubsong -1 ; based 0 If $iSubsong < 0 Then $iSubsong = 0 If $iSubsong > $iSubsongCount Then $iSubsong = 0 ConsoleWrite ( '-->-- Subsong : ' & $iSubsong & @Crlf ) Local $aRet = MemoryDllCall ( $hTitchysidDll, 'int', 'SIDOpen', 'ptr', DllStructGetPtr ( $tSid ), 'int', DllStructGetSize ( $tSid ), 'int', $SID_MEMORY, 'int', $SID_NON_DEFAULT, 'int', $iSubsong ) If @error Then Return SetError ( @error, 0, 0 ) ;~ ConsoleWrite ( '-->-- $aRet[0] : ' & $aRet[0] & @Crlf ) $tSid = 0 $bSid = 0 Return $aRet[0] ; Returns non-zero on success. EndFunc ;==> _SIDOpen() Func _SIDPause() Local $aRet = MemoryDllCall ( $hTitchysidDll, 'int', 'SIDPause' ) If @error Then Return SetError ( @error, 0, 0 ) Return $aRet[0] EndFunc ;==> _SIDPause() Func _SIDPlay() Local $aRet = MemoryDllCall ( $hTitchysidDll, 'int', 'SIDPlay' ) If @error Then Return SetError ( @error, 0, 0 ) Return $aRet[0] EndFunc ;==> _SIDPlay() Func _SIDResume() Local $aRet = MemoryDllCall ( $hTitchysidDll, 'int', 'SIDResume' ) If @error Then Return SetError ( @error, 0, 0 ) Return $aRet[0] EndFunc ;==> _SIDResume() Func _SIDShutdown() MemoryDllClose ( $hTitchysidDll ) $hTitchysidDll = 0 EndFunc ;==> _SIDStartup() Func _SIDStartup() Local $hOpen = MemoryDllOpen ( Titchysiddll() ) If $hOpen = -1 Then Return SetError ( 1, 0, 0 ) Return SetError ( 0, 0, $hOpen ) EndFunc ;==> _SIDStartup() Func _SIDStop() Local $aRet = MemoryDllCall ( $hTitchysidDll, 'int', 'SIDStop' ) If @error Then Return SetError ( @error, 0, 0 ) Return $aRet[0] EndFunc ;==> _SIDStop() Func DoubleDribblesid() ; Code Generated by BinaryToAu3Kompressor. Local $sFileBin = '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= 'u7riBUQDQAiDoAFgDYiqq7u7+gTf8gmjBqABAFL1BJpDDaABz/MEqQb0DbAAqavxDpIR7fQJh2AzcTGJRA1BDkIN/7Mx8hKQATUJ4QDhBIJPkBB+meEToQGQATMXkgHwEqmfghWRAYIVoRqRGoiZsQ+7ggdBO4jAU5IBgDyJkwEL4QRyB5jkOXeGtBCIiYiZAgCId2ZBAAB4iJmIhwFIZ5B3iIiYBMiHdgBAUncApIh3AiR4BdCY4QLQZ3iIiABoADQCaFaJBGgANGcAVJgDnne5AH6YiQKiAp4AVIkANP8CngFaBYQERQVqAQoCUABqfwcaBqAEGgVrBoYAoQaGdusADwE2hwI2dwAbA7sBNvMCAIIod3aAEoUNAzIDDv+EA4MTDQAHDpEPhC+WEI4P/4FgFi8TEZERjkQONKZYkwn/UglOJlQdzgmTE2gUEhXXCv8QC1gLUH2lXb8MFiaaCcU3cTAzeId4gAAgAAEAh8UgAIhgAYd4iOAAIgAPwAMjAcIMoAWHiIh41wJvgAFBBXfgAIchAeEHf+MAAANhCeMEuiGjGMEEmO/gkMJw6x+sBoihBAR2IwLDg3jmBnZnZndDfuAE4JqpmZmJAYJAfQGBz6Mh5QTDhuAEmqrgBCAK/wCHwAJih+ELAgphkiGXYJL8qqqjBIKKZAzECYEJwp3dYAmqYwcij4AEiaCVogTHIQmABMABiZqqgQJDAveiGiKapQ14gBblCIINIheeiUIPAABEBKAbqqmkCDxlVqEgAB5DBMK6makwmJmau4EIYBFlVR3BGncgpMAMggpWZniAmqmImau7qWE7zQAEVaEMYAKYdiEIABEIVmeJ4CKaq7uYDWAGdgEEQAh4maqYBofgAIIZVmeau7kQmaq8yqEOZlVVAaIQiau5h3ZnhwBmZVd2d2VWeBCrzLiJYAB3dngQhlZURaDNd3irRLuowAF2VlXABVUAVnm8zLh5u7xEuGYgBFVURgBOdwB5u6qYZ4d4dQBWZWiGZlVWdwCburuHnLrLhREgUWVmRIDPd4irQKmZh3h2d2ASiAEAEXZmeqq7l5sAuquXeIZodVYMRFdiyEAEZ3ZnZQZnYA3iAHiqq6eL6Lq7qGAEhWAEgEZgOhiZhlcgDWAEhmd2EGh1ZlUACYebqoDMlnhleGVlgARDQOBjIohlZ2YhJ3cAZWZVZ5qquHoAu6vKh5hXl1X0VEVBKogAIwFfIA3gTQGgAHVWVWiqq7hAi7q8yYmG4BhUJEVWYBp3iaAuh3hYmImGAE3BBHahNXlBgAeambuqqoFAdv9gM2l6QGprZ6ICQDniSvip/5+LagK3ca9C/1QPAC8Dfwb/LwJsAf8JrwXPAc8BjwofAv9fDB8ETwJPAh8CHw1PDUsC/18CnwsfBG8GV112AeOUZU//JZbzAHNcHwQ9CFFDYlLgm/5lRUvwRjeaA02JA6dd9wX6eKBPqkAE1ESWATJNYgof0Zs6KZJNaw6wNqq6mb6HEEdASwYGw1NgCqmTrX8yoUIykQGUCMoNQVbgT2V+VsEI0QFjC/INEFgwE3b/lQMQWcNYQ6fJEuEA+LSJO953Qg5VY+FTwBiYwl5RDv+DAqYEdQNzEJMaMQGmrFJg/SESd/BIhxVBSV0JpwXqBP+IAeYENBGdJksnqQrjDiMF/0YcpQeSfL8f+AAvi8UARHf/cbnUAewu9QcvMZ8xYlM/ND/ZBzgL3QDPMK4CIAQ=' $sFileBin = Binary ( _Base64Decode ( $sFileBin ) ) $sFileBin = Binary ( _LzntDecompress ( $sFileBin ) ) Return SetError ( @error, 0, $sFileBin ) EndFunc ;==> DoubleDribblesid() Func Shadowofthebeastsid() ; Code Generated by BinaryToAu3Kompressor. Local $sFileBin = '9bQAUFNJRAACAHwAAADIAMh3AAYIAAEAAABTaGFkAG93IG9mIHRogGUgQmVhc3QBWAEGAEZyZWRyaWsAIFNlZ2VyZmEEbGsKOgAAMTk5ADAgT2NlYW4vAFBzeWdub3NpBnMMRAEAECIDTwCAQAUDFlAA/wAOQAEAUQCJUQMa/gEAAzAAEQD6EABQAAMGQAIfQAAP2xEADwQGMAIPEABBQAC/QeD8AwAJMGIRAbj/APoABQUvYREARfkAgAEKAP4RAADwMwL/AJgABoACXwEUMwAVAF9AFJAJBwBwBEhBAABPQQAEBBRQS4AogwffhC8AEYEIQUAAf0CABQWCB1ApgSID/4AnkIAm/xFICAASgA/xQAQlEQYJEHgNAFEA/1CVFYIE8IABIIAffEAAQAGRAP8BsIAHcKGAK6gAgAWFV4SAD1CZQLACgAYPgQeQkACBAKkDZwDBgAEgoADzAIqARwEFAr+ABAAAtQClAFCJAMD5gQ9DgAFmrYCffgNsgjeQgAeqyAMCUMAXeUDAAgMDogfEW/8A/MRL48JLYETL/P7/AQDELwIQBfgCBIQAAwb4AAAI2AggAfcCAP4E/Aj4EPD4EAAY9PTKOwQD+TAABAADQGXEiej8hCDgyAcM/f39yQvAFSjW9vz+AAAAAQr8QR0BACcCAQD/BcME/0Aa9/L8EPxIAv8DwgtF2MATGRD//v38AgD/QUGThWMDAIFAAAAQEEEBlQIAgQAAgAgAQYCGBm3DBxFBBAAGQEMAwQMQaoDHFAEFAAgPAF9/EwAAHQAcABsAGgAAGQAYABcAFj3AoxRgjT8APwBgPwMEIgVhAAcHCQAACwxYCw4PZgK/BxJyH/n9AAAFAADBACAAYQFmAn8KLx8AHwAfAAEABgUAAArBAAANDQ0GEGYCvweiEfM+/AP+YgAAoR0/JB5mAh8AHwAfAB8AAAAAnxgMgRgNiRgEDIAGATcAOgA8AACUPwCAPgCAADwAgDoAgDgAUJw3ADjgApapAjqgAJ4dBJ7DBZzCBwaB5QgTATQAhDcAAIQ6AII5AI4YAASOHQSOOQCEsDsAhDwhAkADiMYBwEEAhEAAiAAEwAQxiAKOj0BgAMACgUEAGpyAHBqWfoVAGBaeGBmAQAAWAaEAmDwYnjAXnQJ+oAIIFZp+gh0AFARUnSUTnhgAEp4wEZ4fEJQAfoi0ubW5x7kA2rnhufC587kA9rn9uSG6LboAM7pCulG6V7oAY7pnumu6b7oAdbp4uoS6h7oAi7qOupO6mLoAm7qeuqG6AAgAGwM+Pz8DQEEAQQNCQ0MDREUARQNGR0cDSEkASQNKS0sDTE0ATQNOT08DUFFgUQNSU1PDmAYAvf8fAB8AHwAPAA8ADwAPAA8A/w8ADwAPAA8ADwAPAA8ADwD/DwAPAA8ADwAPAA8ADwAPAP8PAA8ADwAPAA8ADwAPAA8A/w8ADwAPAA8ADwAPAAAA30X/DwAPAA8ADwAPAA8ADwAPAP8PAA8ADwAPAA8ADwAPAA8A/w8ADwAPAA8ADwAPAA8ADwD/DwAPAA8ADwAPAA8ADwAPAP8PAA8ADwAPAA8ADwAPAA8A/w8ADwAPAA8ADwAPAA8ADwD/DwAPAA8ADwAPAA8ADwAPAP8PAA8ADwAPAA8ADwAPAA8A/w8ADwAPAA8ADwAPAA8ADwA/DwAPAA8ADwAPAAMABbYCAHoAEQD/EQAAIAQWMAAGAg//AID9AAoBAwZAAAm5Ah0AugAHBw8HLxYELwrfCB9BAAHfQeD8GAMAEAAsAAMA/gSouQCAAin+AAMzCh8CMAIxWUDgBQAABOAPg0dBAMtAyMICgQQ/ETD8gQeNF6B/QIAFBYIHUIE/rAPJhC+BPyKAAqeKB0EdAFEA/1CVggTwBYABUIAvfEAAAZFQAP8BsIAHYIAiqCwAgIBPgyd0gA+ZQBKwgE//D4EHgACBJACpAzcAwYABkACI8wCKgAoBBb+ABAgAAKWAAIkAwPnVgQ9DgAG2gJ9+AYuENyqAgAeqyAPAwBd5QKDAAgMDB8Ib0EABCvzEM+PAAOcADPTByy9Ey/z+/wEAxAMgMOj8IOBIAAMEBgBCHwUAAgX4AgQBhAADBvgADP39Av3JBxUo1v78/isAAAAB/EEVAQAjAgEEAP/DBP8C/gT3gPL8EPwC/wPCCwRF2MAbGf/+/fwZAgD/McEfyBMEA/mQAAQAAwYhGPQLMEAI2AggAfdAFfwACPgQ8PgAEREkERAJAIFAAAAQEANBAQIAgRFBgBCAMkBGAEGAhgbGB0BAZICABQiBEMILxhuBhwAAQAcGAAEBAgLBABAHCwUGwQAODxBKEcEAEgAAExRFAxiAGRobGBkcHsMBBCMIRQsmADAALwAALgAtACwAKwAAKgApACgAJ+1INwfEABEA9AQAYwsfAJMfAA0AAwQjAAoAIgAGDOQALAAWFx8dFkgXICHjAB8d5QIl9Xwf+2oA/uBYKQINAPUCLx8AJlsLAB8GAMB6BglVBAANCQAV7AAi7AANXiR9H0AZZwAAZ/wpAvl9gGH56ADlAh8AHwAfAAAAAJ8wAYR9gDWrgQAsATcrAYMiAzxmBAg8AYJNAjoBgjAAAJ4YQJ5BBIZQPASGOqIAQSACjACANQKAQQKAfZqAQAE8RwGwAh0FpwcAOASGlxgGgBiEBoKhAIyAGAzEBYyGgi4IRAJBAYIAEwkAETwBwBGEOAGKwS4CgjcBgjWiAGMBhDgBARwwAYIxwBfd8QI9IgjsAiAIM/EIIALGNPQCIBFAAYL9GCEAA6AAUAA4Aoo3AooINQKGgAA6Aoo8gAKGNQCZfjXhBAyAPJAAAA09AYA/J5AAYADRDQCewQA/AQFQEIA9Ao48Ao6AQwCOREOOOrIAtDgCgQA3UgBDCD9ECA9zAE8IUQAWBX6BQRoAnIAcGpZ+hRigFp4YGYAgABZRAACYPBieMBedfgFQAQgVmn6CHRQABFSdJROeGBIAnjARnh8QlH4AiPS59bkJuh0AujC6Q7pGukkAulW6WLqEuocAupO6nbrDutUAuu26BbsduzUAu027ZbuPu5gAu6G7q7u1u78Au8K7zLvSu9gAu9675LvquxQAvB68IrwovCsAvDe8Orw+vEEAvEa8S7xOvFEAvFS8ABI9Az4APz8DQEFBA0IAQ0MDREVFA0YAR0cDSElJA0oAS0sDTE1NA04AT08DUFFRA1KMU1Pzag0AMwCp8HVUBAXzjwn8j0FQAPrj/Y/wegQWQP+P/4/yicrG9Htm9IlFAPMB8QLKM1AAa/ABAwmxjXAF9/+P/4/8j8j6BQ8ADwD/j3f/j/+P8Qp1/4//j/iPpr38j7f/j/+P/4/2j+j+j/5C/4//j/+P/4//j/+P/4///4//j/+P/4//j/mP+Y3Ji+EAAEEgQCD5Av+Q/JB/85P/kPUE4gf3CeAP4JEDAAMBAgYGAQEMAg0XAA8AERIREwAUFRQWDwAICa2QkRzRkdsZHnJxJrCCCCQAI9ApIQAgAP4fTyjXGZgAJh0PAA8ADwAvDwAPAA8ADgAEBgAKC5AKCw4PEwAQANEA3REAELAPFQKbAx2/D7UPQAMH+wADCgHRADwA92I/hZ/RADAAAQHwBQAFBzEAHwkPAA8AHw8ADwAPAP6RBQAHCAi8CAk2AJkAtgCbAxe/D/+/Dw8ADwAPAA8ADwAPAA8AAw8ABgCXPgB9OQAwfTIAfY8AhgA8AOB9NQB9MI8AiACQAjA0AH0tjwCIABpGtwAFlX4yAZY3AIB9NAB9KwB9GIAAMgGQHQyCGwxAgBgGgDwHAQgdDgwEIDAiAAoaBYodCAWKIQKBhjIBgAA0AYA1AYM1AwA3Q4SDNAOONQBDgjIDijUDigCAMAOVMgOWMgACgDQCgDUCgMA3AoB9gDkBBAMB5DoCAQ08AgcICh4BAR0GHD4BFwIhBwEmCIAAKAiAKQiAKwgAgi0IiC4IgC1gCIAwCIAFBAAKjAEGBzIIgjAIjIHA' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin = Binary ( _Base64Decode ( $sFileBin ) ) $sFileBin = Binary ( _LzntDecompress ( $sFileBin ) ) Return SetError ( @error, 0, $sFileBin ) EndFunc ;==> Shadowofthebeastsid() Func SimpsonsArcadeGamesid() ; Code Generated by BinaryToAu3Kompressor. Local $sFileBin = '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' $sFileBin &= 'ALAAcwUAtQQLqrcEB7oAB7gQH7EEB2quAAerCAOsCCsFALelAAOrBAOxQA8fsIBxf40FiQOhD4kBDQCNpw0AyFQAxoCCw4QCwYQCvwWEAr2cD6UAqwkAdACfhAGZgAF/AAsAAoBCQqKiQqLiQAEAMTEyMjMxNDQANTU2AsKCIsIgQqLCwiJBBTMxADE0MTU2NgJCAGIiIkLCIiKCCUEFNDTACjQ2NgAgAAQg/w/BEgRAFcQBEMQBMMIBCBAIAAgAEBgYEABBAAp3AYCAgEBAEmACAAD/BCFBCfkEM4iABUCQgHBQBFBQxgUhGIZAgAB1dUhAMJCQEASUmMcLAPwAkJYwllZAUMMDxgUCawCAgAAAUEAAYJBgUAAwxxEKr8IBEiDAAAwEyAsJjwEHgRDFncUFgQnxARAAkJmQgGRGADCCM8cRQQDzBEIAKCJAwABQQFXIBfQFM8E0zREA9EAAAQAMACIHAAMM9PRBBgXoAQAI+wD/AQwAIgA3LTc4N0M3TgA3WTdkN4Q3jwA3fziKOJU4oFRuwECPvsCXvKBxukWgcpNgZ58AgCYAuAEgZ7YAtQC0ALMAALIAsQCwAK9AAK4ArQCsIGmqAACpAKgApwCmAeBPpACjAKIAoQQAoKAHngCdAJzAAJsAmgCZKAk/ACkxALwCJQAAYAEAAPSaAesDk+UB5ADmA+EAqAGAAe0DvGAAu2AA+rpgALniG+MA4QHhAv0DepfsC5LsEeYDJADtA4tt4gEA5ATnAIn/AuIAs1UgqLRgALVgALZgALdtYAC45ADhAankA+EEslVgALBgAK1gAK5gAK9b5AFpAbHkBPUKuWAAulVgALtgALxgAL5kJL3/6CTlJmEC4QPhAOko6QNtBaq/YADAYADBYADCYACqw2AAxGAAxWAAxmAAqsdgAMhgAMlgAMpgAP6nZBfhFWEVYRLhE2EBYQJb/QPlGL1hGWAAv2AAwFVgAMFgAMJgAMNgAMRVYADFYADGYADHYADIVWAAyWAAymAAjuxTj1XsAZD8AZL0XJP0ApVt7AG4YHFpALmgc2kAuvvgdWkAu6AEaQBhLWEuYQBXaTV9L7UvtzAAtjQAtf+xGDQRMQDxEXESMQAxE7ET/zEAcRTxFDEAsRUxFjEA8RaqtFAEtlAFuBSAyjAt6sk0AMgwAMcQAT8APwD7PwAzALxgVw8ADwAPAA8A/w8ADwAPAA8ADwAPAA8AdHMAIiKysjJyMnIAItJoaG1oaGkAaWtrbWwSYiIA8vIycrLycoIBUgFqamtrbGwiECKisvIQADJyggRtbZACampqbGwQbABMAXNzTAEINXQAKHEACBAAAgAIEGBBIIAwYP9pcGupIAAwIJSAfmsENKNKCvZvCZkQUARA8W//+gKAHgEAAUx6a0RrCgCRbAIMAQAADPuiba0Abbhtw23ObdkAbeRt/G0Hbn+AbopulW7upHEx/TEAkXw1dTR1M/EBsQE1AB/5ATEA9QD1A/UEzwHR1gE/ADcAudQK1NIC8az1AwDd9ACMUABxdHEAMQZunHQFtXW6qQb4brgAwLe2ADA1tADFcgD3AABwAPrDuAC/OAPxADMEME90AIGzBgAAzgbRBj8APzcAtwcfALIJPAwNALQGXLUGPwA3AHEWkXACnVd0BPEReQCbNAyaUACY9XAAmHQAl3IAcxrxA38Db3MAcQMBALECl3QDcQCWs7IeAwCoBvByMACqMACqqzAArDAArTAArjAAqq8wALAwALEwALIwAKqzMAC0MAC1MAC2MAC98cS2scixDnF5MACyscVX8cAwAIGgrjAArTAArFV0x6owAKkwAKcwAJOvMABxCDUAsQyQPACPOABLtjl0AKEzAAikcxIIr/QA8JjzGfUAp3IQgDCa3/MQ8QIBAHFSMAAIeQCy1XgEABgwAHkAMkJBAMWsBJM2APQyCPQgCHRuY/YAcHEIgEA0AXAAtwABuAG5AboBuwABvAG9Ab4Bt5swAXEFuX8AcgC3QLEA/7MHNAEJAKRLDwAPALXk+wfylfQOuURzAPEAMQD1AP4A/AD5ATYCDwAPAA8AAgAwbi5OLjMAagDuLhkUAKGeDwAAAJ+gnyKhMQCgLo4EAO4uIE5ubo6uYADOzkCOrm6ubi4xAK4OoicDAgBkAKCgoKERMQChrm4IAMW1Cm4PAKIcAAAAAxBI/w8AAAADIAkcECsBFAEACAoMEAUAIQiAiABSIBAlIARQAv8EXCEAWRAQBRgFBSAEDwUXYQCJACEgITIhYABEEENjZmUGF0EgoxpBAUJABBEFF4EBpqQAcAAHgAUMFyADWQIBDF9BAooAICCIECBAACagAxCGCzoDFgD3gQGCeAUA9PTpAgMMDAID/oEBAwUYAADuog6jLqNOowBuo46jrqPGowDmo46krqTOpEBgq5gCAACBAZyrhAOBAZ2EA5uICZqIBV6kgAEBAIEDhQmfiAWeC5AlgzGAghu3AbsBa8UAxQaMxACXxADFA7twAboBucAJQQFJNNFiA8MAjACAQgDBAZL7xABBAJXIBc0HwQDBB8EA3o7EB8EBxQRBAJrIBc0Hb8EAwQfBAAUAu0EnwAC+tcQBvcQBvMQBxQe6xAJFxQG1RDW1AbhAOLpfQDpbcsUHwhUAALTGAbb9QBC6QADDK0UAhqCEo8EdX4mmyTdFAMVA0T+h1j++FcAuvsAfvcIAuQG8bcIAuEAFwQC3QAXBALb/QAVhAOEdYQDpC2ELYQDtL/VpA5/kAZ7kAAUA4S5hAKq/ZADAZADEZADDZACgwgHBAcDgFL9gAFq9IACdYAdhAKNkAKT7ZAD1ApxkAECSYgDlA/UCnptoAAEA7QAFALlDYwDWuOg3Y2W24CS0YCfjAIC0AbMBsgGx5gBGsOEFYgAAALFgALJdZAGz5ADhQ2FMtmAAt9dkPuEE4QKyZAOz5APhAe64ZALhAGECm2gA4hbsAD/lOmUAPZEfAB8AGQAISEAIiMjICAhgAIigCDgIaFgIAKUCANSmp2EAqAAAqQgA4gYISIhIYADImMj4wijtBqampqdhAMwGnqnpBA0ACgUMAABGJNl4RgMYI9poGAAA6QFBAACpAVQwRUBgAa3JAJszIEE0cCBAkIBwQ6jJQQmAmUBDdXU4QOwFAIECkQCQlpZWdIBQ6wL3AABIzqoRDw8AAOnRPzADANip9KkAEKosqkiqZKoAgKqQqqyqDKvAKKtEq+h8qVFRJv9xXXEjFU1VUzkAFT4BADUm/3UBdWF3AbVHPwA/AD8ANQC7Pw0DAJrUOxU/UUKeklR/BwCxADUA8QI1AfUD+QCX/XQAmPYBG1wfABsA/wLXQ6sPAPEFmxAAnBAAnRAAIJ4AuwK8EAC9Aki+Ar8QAMACVV2T33QA/wD/APMAsw3BUH4RAKq7cADAtAC/cAC+MAC2vXQAkQC8OAG5AJf0BH8RXvMR/wD/ADMYsRSzDL0sArq0Bx0AuXIBugJqu9CFvTAAvzAAMQvDFTAAxTAAsDAuvAQA738AdABxDfEKyDAAvQBxAOsRAHEExvQAx7QAMQFxBq+xENEG8QCRAcXwB8YwAKDFAsMCwfAXtHBe2rXQXrfQcTWBuxAp9jH/tC/9MZWE9QC1Fx8AHwD/Iv8PAA8ADwB7JjsqOQCdhREA/pE/CR8AfwoPAA8ADwAPAA8PAA8ADwAPAACCosIEIkIxACICeHh4BHl5MQB6d5LiAkBiguLC4gJRAXkjUAFAAXp3YgXO0sIGe0ABAgB6dwBMAWJgMmFMAgh0ANPPTFQBWHEACOXNGKFeEBCAYFBArV5BBjkgAEAQZoB+AQO5AICAYDAQQBAQMQrIgQUySgx2AQcRJ38BDwACAPsHyADiewDte/h7A3wOfAAZfCR8RHxPfADHfNJ83XwUqjkxQrlB80JxAP0AvAa79ENwALm0ABkA/AEGcQDTMQFQ2AC+cQAGsC8wAFVxALwwAL50ALu0AKS9uASiuACVpz8BEwCY' $sFileBin &= 'UQC98AXA8QdwB7EGsQC/MAD/sQAxCLEA9AEyAfkBtQDyDvxhAFC0cwD/AP8A+QAxTvlwEgaSdAD/AHMU9AD1Av/2APIJeBQeALANHwAXAHUDBsP/AxwAwgbBBsAUBr+QEr1QA7sGugAGuQbEBpFDtgAAgACRAAAAnFcAcAEABXCbBDiaBDiYVQAclwAclwQclgAckgECZAAAqAYAAKlVAAaqAAarAAasAAatVQAGrgAGrwAGsAAGsVUABrIABrMABrQABrVVAAa2AAa3AH62AAO1VQADtAADswADsgADsVUAA7AAA68AA64AA61VAAOsAAOrAAOqAAOp9QADpwADkwADAYcFAwHLypAMA48IAwBABLQEB7KhAwMIpIBngHQIhAd0AKiCB4CFD4A1gYOAnACmhIeBFwEAvASCAYYIiQMBALUEABiAAYuJAwEACAECxQSThgGKkoMzCIM2gAiQjAcaj4EFQIQJgAO3AbgAAbkBugG7AbzAAb0BvgG3gAmBK/K5lAO3QIEFgz2ECQkABAiygEi3CLkIvtHAAbkIt84Do8RBw0JXwwABAMFuu8AAwMAAvw3AALrAAAEAuwa/BlfJAMEPGQDHwA3GwADFVcAAxMQAwsAAwcAOvBQGusAQvNoAnACdRACeQACfAKLAAK7VxAGiQASAQAaAwrPBsjXBsZnAAJjCsMGvAAC6lcAAlMiQxY7BiY7AAH6NxMFFAMES0QLBGUUApq3ATa3AAMFRs8AAusAAqr/AALTAALvAAMDMAt/RI8EBwQPBBcEHmcLhwSL/wyXBB8EFyQLBLMEMwQrJArvBM8ERnPwCYSPhDJ1kJeqe5AC1YBi2YkZhAGBU/SIAuCBH4wLhA+EdYSFhIqqxYACwYACvYACuZCX6rGAAq+QA4QHhAuED4QTWvGQl4Si5YAC4ZA11C//lLuECaRPhBuEHYQlhCuFbvsGicR8AHwAfABUAAgUAAoIKASIiAiJiAkACwvIiwoKCALKg4rLiEqAPAKEAAACkpKekpKCgpBykpSAAgQABAKYCQjRiImIAggYBYAnCOgA6UjqCoqLC8u5SIQuAACILp0AJZQAFAXyhoCALBAArCw4AYhY6GDoCOqYYAQBCckLYotKnBgBlCaCDAUEABQgApgEAAAAEEP9SD+EiBCDkAAzjAAJ6COQBGOMA5ZcGAQEAECgQGBBgASALAEEBgIoAUiAQJUBhAwUAAP9EBkEAc3AgGAUFBSXC5QJhAIkAISAhMiFgAEQQQ2NmZecFIKNBDUEIQCQC5QKBAaYASnCBwwXsAiAg4gABkewLQQKKQBQQIOERWKADEOYCBgD0BwH9hyAAHwAOAAwM/gwAABeCAAAADwQHggAHAAcDZg0GAIKnr6fcpwAJqDaoY6iQqAC4qOWojam6qXDnqYafcUDxQHVBwKgBxwE5ALRQaagwAO1xAMA4ABUCs3BrMQBxUmjFAcb2AczQATEAwAABwQHCAcMBxLIB0QHHAfEG8UafNHj/8QBxUDVTsU81fAEA9YjxXLEBAMMByNAENwDBUAX9MQDCsAUxAHEDsQUxAPFM/7EGNQCxBvFW8QY5BzUAMQaqyJAMxzQAxjAAxTAAqsQ0AMMwAMIwAME0AKrAMAC/MAC+NAC7MACeklAEOQB1CTUAzwKbGXS0A/sAuf8ADwAAALrLfAF9BLX0AJwEd2wfAN8fAB8AHwAZALGNkBIAcwCstAU/AhkAm/wIlfAAxpYxAXQBvwC+OgAPAD8PAA8ADwAPAA8ADwAAAADS4vICUlJyopPPUQoAcpICAKICUQAygg0AUmIfABkAcnIEAoIoAAICl5eX+pgAAJlwAA8ADwACAAEDHQoAmQ8ADwAJABIiMkBCYmKiohICACJSMnMAEkL0AFL0AGLysgIAwqJzAAwA3g0MAPGwDqJyoiUAsA7FCh8Nfw8AAAByAr8ODwAPAAkAolcPAA8ADADiAwASdADi/OJCDwAKAEMhCAB/CA8APw0AFQ6/Dg8ADwABAABMkgOTdkwDk3ZMBvQAfAIEmncPAA8AuXkJABA3DwAKADADGCgAIHMJmcYAwXStekECdPLFfQEIEQaqwn4REAAwCKPzBfcCA4oAQqgAgCB/BKDweDAgeROAeSh5IQhwXyCAgAxAIDABeAFBCooQQACIcICAIDADUB5gL3z1BQQA/AAAAP7w/f4A/gABcQAPALHUozFZcQAGAAUQAAQQAAF0AAwA+gAA/ACkAv7AAAAGK2L0AABNUQbzAQD2AAsLVAf/HP7/ogpxAAUAfbYqAAQABwIwAQRwCQAAAQMCAgEAAg+BBDgSDf0AAAUCmDAJAAAIBdQtAP/+AP38+/QA/fz1oQMUAAADAwAV/wMHAAYF+gH+Bfz9BP7/BAcMAPr6+iD8/Pz+/gE8AgEAAgEimpiaDpsAhJv6m3Cc5pwABp18nSSemp5gEJ+yoZgAIQsDnMUAA50OE50AngADARsVBxekgAmbgAqXAKMHjBeBAYEJowC3AYAqAKkAtpQXupQLsgIgswK1AreAAbMCA4kFih0DuwO+A79gA8ADwwOPU4EBpFGUBQAAmoYBpoYFpoOKC8kHpgDDA4BAADrBwBq/QADAAtg6uwOIvQOyQAiyA7FAAAawQADXC7IDswO0EAO1A7TAN7QCuZHAN7QCukACuwIFiUaxwATDAK8CsMJCtFACtgK7AIi+QD+9I0IA0xYAAL1ASLoDILkDxAOdQAOdABqhQG6kwAHHAq8ErwAEsAS2BAAAuSgEtwRBDbTAArcEirXCArPAArUEtMICKLAEs0AFskAAswSCucAFvAS6BIBABqvJDsELt0ATsMADucAHoLsEuQK8QDW+wABWv8AAxwK8wgDCwADDRcoCo8AmowCvwAAAVACiwgCuQkGhwgCtFcIBn8IAq8IFwgDDbcYAwUABxQDAQAHFALsQAL0Av8AAuwC5uAC8BUMAjeLFhZxkAOtjDOcCnmQApGQA5QLtBG31B5tkAOUIl2QAYzEAAeBguwG8AcABwdABwgHDYACRYAFtAqrBfwIB42HCIGLDoD4oxQPGIADHIACwBtuADGAA1GAAYQG87AHlAK/lBOED5QFhAcBoTLpgAa9hAD8AcVJtZbwgAL0gWdd/ByUA6V255AC8agpoFa4w5I9pBmgBuOQAt2gC/WkFruwS9ghoAWUJaQXlPP9hAOE/4QBhWfECYV9lAmFJ/+FGYZHhSOVi5WBlBmU15TX+yGQB4QBtAeED7TtmQgQAW+UBZQCtYAJhALDkALLrXNvlBbPkALTsAuEB4QD+tfACZQNhB+kB5Q9hD+OB72MAYSLpAGIAIOcB4brtJf9lK+EC4SnjjmN78QJxBjEAWrZ0ALd1ETQAuHQAuf18Abp/AfoCtQT1QTEAkUzfeQB/AX8BfQG9ALKgiTEA/wEAswCxNzAVcAAfAFBfMAKvMQABALMA0zq1dAC2dAAOt3QAUVnxGKsAqgAGqXAAMQCoAKcAtatwaTEAtHBtsnAAsDAA+K8Dr/JHdSk1KHEAMTRuwfREcQCxO8J0ADB3AO7FMACxR/ADBjEAcEoyAP8fJw8ADwAPAA8ADwAPANCXABoCMkoCGjLyAAoiOiI6CjoSgQAAutIa4jJyFwAQkqqSwjAA2uL6BOISMAAqotKi0qBiquLilQUAlgMAopcCAJidmAgAmgQAsJubm5wxAAEAnQAAAGJ6knpieqraAFJqgppSauL6ACpCWnLqAuLiALK2ttJSktISQTAAUlKCmrIwAMoFoAGKMQACMgIyeid4B2QHcweYnXIHmZn8mZoxALAGAgACBzQHAQACwgQAUrKCylKyAOL6ioqiorrSPOLScQ8FALEQMQA6KiJCYADyAvIAAJKq5tJ/BwIAnZ3wBgYAgQczxAdgAJqbsQ9xBwBMEAYM/w8AF0wGBplzAAMgdAB0AQMYdAA6FHQACHIADwAAAAgwKhAIABgMACAAABgoADAAQQmZIH8QGDAz' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= 'NQC3/Z0YQzMA0R2RGvEB9gYEAOyqAvABNACkMADyCTgB7/8BtwByAfQMADcN8wB7DiwAsNAVfwIA8BHLAFbJsBJTAMZUAMRUAMHdcgSv9AR5ADUAqtoMEYwnAQDRjAMAuwTXAb8EAABYtJIAAQDBBAJgAMsAcKbJBFgVALMBByy7CCwFBQDHAH7LAM0A00AA0gDQAM4ECs19BArLG7gNAABLAU8BB8VVBAezAAO5AwMEAQe70xyvDQDABgsPw4wHDQCqxYQPyIQDx5QfxoQDqNEAz4BzzIQCyoQCosiEAscApIARsIABVp6EA+EHnYIHnYAAn1QAzIDZyIAByoQDthAAtACyQArMBMpABMgExwTTwATPJcAA0cQBpEfLALYIqAAAr8AAs8AAtcAAvrjAAMEEwQLBBM0DscgKAcECtgO1A7YDgAIDxU+5ALoAuwAAvQC/AMEAwgCoxACwyJS1xAK3xAGqusABuNAHscQBrsABqqvIAKzQp7fAAKvEAPSxQM8HsMA4zQLJAeEHj8kADQDNUw0AyADGQEGqw0QBwUQBv0QBvdwHgKUAqwkAAJ/EAPaZwAANAKrEhcWG4hZoAKtiFKAzqGAAq2AAsCY1u2R+YjXApABhDqEAxKQAasZgCoAiAJjkAO0BvOMgB2EAsACxYgDtAeUEapvkAJ7kAKHkAOUEs/vgVmEAtiA6YQDhSGEAHwAHHwAfABcAgkKCgoKA4kKigqICQsAAAMW/v7/FxMDAAMXBxcXCw8PCQQEAgoIiYsJAAMICIoADv7/AwMHBQL/Fxb/DxGADooEiBCICQiIigmADCsQiBMJgB8LEAEwQBCD/D0AMTARANeQAEOQAMOIAAQAQEAAAAAgQEBgYEABBCncBgICAQCRAYAIAAP8kBEEJCPkziMACQJCAcAhQUFDnAhiGQICAJSWIQDCQkOEBAeYCAPwAkJaWVgxAUOMB5wiNgIAAAABQQABgYFAAojDmAiEKr+IAIGAA5gyAs+cFjwFBCGVu5QIAgQnxARCQmZBAgGRGADAz5whBUADzBEIAFEBgAFBkQFXoAvQFYRrtCAB49PT0oQAgACEPYAAFE0ADgAH09OAABQUFCAAE/wAAAAcH/wABDALGEcYgxgAvxj7GTcZcxgB8xovGe8eKx2iZxwEAAAIgABAACQAKHw8KCAkdLAAzZHUWOzZWEgAqG0sXDCM6AwQOOwEOCgAJAB4AADRlABcANwAIEwAcQAIkAAA7UQAHAAoBSQMDRQMAAAECAwQEBAUFAAYGBgcHCAgJAAkKCgsMDQ0OAA8NxHw0DoCAAKxKFCSc6GJmAFjSExsiKS81AD9IVWFpc3yHIJSVAAAsws0VGAheVaZgCTFonqUAd6CXlZujnKIAoZhsv6AAyRsAbgIIGBAUjAQA1IwL1OkZjfAAAqkPjBfUjRgA1GCqvZKemS4ACIppG8jABNAA8ai+kp69GZ8AhUH9OZ+FRb0AKZ+FQv1Jn4UARqAAGLFBZUWgkUGFR8iAAEaAAABIpUUFRvBHpQBBnTmfpUKdSWCfiBixRyACAAJHAQACR8jAGNDuoAALogOxR5U/iADKEPiYqjilQajlP6hwAj9wAj9zBACIEPCKqBDZYA==' $sFileBin = Binary ( _Base64Decode ( $sFileBin ) ) $sFileBin = Binary ( _LzntDecompress ( $sFileBin ) ) Return SetError ( @error, 0, $sFileBin ) EndFunc ;==> SimpsonsArcadeGamesid() Func Summertimesid() ; Code Generated by BinaryToAu3Kompressor. Local $sFileBin = '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' $sFileBin = Binary ( _Base64Decode ( $sFileBin ) ) Return SetError ( @error, 0, $sFileBin ) EndFunc ;==> Summertimesid() Func Titchysiddll() ; Code Generated by BinaryToAu3Kompressor. Local $sFileBin = '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' $sFileBin &= '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' $sFileBin = Binary ( _Base64Decode ( $sFileBin ) ) $sFileBin = Binary ( _LzntDecompress ( $sFileBin ) ) Return SetError ( 0, 0, $sFileBin ) EndFunc ;==> Titchysiddll() Func Zuulsid() ; Code Generated by BinaryToAu3Kompressor. Local $sFileBin = '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' $sFileBin &= 'za0xzI2wza0C2JEVEtStK8yNgBPUrSzMjRQgKADOjQ7UrQPOjU4PkhXAdZEVKszBQ9hpkhXwyEoCMqQBkRXLVZIVzpAVQ/AWztBGrQJCUBvOYKIAjsQAAskC0AWp/40gxAIgasoAAYHNAI4PwOiOwgKOAMMCrhHAjsECgCBiycqOwAKSSQBgrsEC7BDA0EAWrcQC8AggDsMQAqkBYHMCTGLJAuhgAL0AoIWlvQAAoYWmvQCkhQCnvQClhai9AACoham9AKmFqgC9AKyFq70ArQCFrKAAsauNBADcyLGryMkGkJADjQXc8ACBzfAANI21UQCqoHsRBrrNAEzLya26zdAPAoqwAI27za0MzjApD428MQJwAO/NQK21zQqoiABNzCWxN81hIs4CcAq9AIiijdJQAKONz1AAiKaN01AAp43QUACIqo3UUACrjdHQSAGRDQBgoAe5pQAAqrnpB5mlAIqAmekHiBDvYDAHEPArzrsBfbzNKQAPyQDwHKrKjmDHAo68zaABhAjwl5CEoBSQW2DjAO/N5AAkoBfQkgDU4WwNzgiIEPTgXQzOogBUqQjARI6SX47CX44AEtSip51/zcoA0PqiWp36y8oAEPpgjsLNjMMAzailq43AzaWArI3BzYopD3ItQoBxLXnPAqqAEfEAzY7wzY3zzY4A8s2gA63wzRgACo3wza3xzSoBkAGIEO6gAq3yoTEB8s2t8zAB8zEBQVECbfLNhatgAm0A882FrKWrGGkAAIWrpaxproUArK7DzaAPsatRMQiIEPehARCiAQAwhayiT+EaYJULoFIHFgKtwJEEwWAEYASdznCEncjNqQEUnctQkMtlmorLrRbMZZqwAM1lmorLYAMADmAOvdLNjdXNAL3OzRh9yM2oALGrGH3FzaqslMPNMTvVsoANzlAUE7I74YAOzhCBrsLNAP7Izb3IzSkHATAHYA==' $sFileBin = Binary ( _Base64Decode ( $sFileBin ) ) $sFileBin = Binary ( _LzntDecompress ( $sFileBin ) ) Return SetError ( 0, 0, $sFileBin ) EndFunc ;==> Zuulsid() ; Memory Functions from Ward's MemoryDLL.au3. Func API_FreeLibrary ( $Module ) Local $Ret = DllCall ( $_KERNEL32DLL, 'bool', 'FreeLibrary', 'handle', $Module ) If @Error Then Return SetError ( @Error, @Extended, 0 ) Return $Ret[0] EndFunc ;==> API_FreeLibrary() Func API_GetProcAddress ( $Module, $Procname ) If IsNumber ( $Procname ) Then Local $Ret = DllCall ( $_KERNEL32DLL, 'ptr', 'GetProcAddress', 'handle', $Module, 'int', $Procname ) Else Local $Ret = DllCall ( $_KERNEL32DLL, 'ptr', 'GetProcAddress', 'handle', $Module, 'str', $Procname ) EndIf If @Error Then Return SetError ( @Error, @Extended, 0 ) Return $Ret[0] EndFunc ;==> API_GetProcAddress() Func API_IsBadReadPtr ( $Ptr, $Len ) Local $Ret = DllCall ( $_KERNEL32DLL, 'int', 'IsBadReadPtr', 'ptr', $Ptr, 'UINT_PTR', $Len ) If @Error Then Return SetError ( @Error, @Extended, 0 ) Return $Ret[0] EndFunc ;==> API_IsBadReadPtr() Func API_LoadLibrary ( $Filename ) Local $Ret = DllCall ( $_KERNEL32DLL, 'handle', 'LoadLibraryW', 'wstr', $Filename ) If @Error Then Return SetError ( @Error, @Extended, 0 ) Return $Ret[0] EndFunc ;==> API_LoadLibrary() Func API_lstrlenA ( $Address ) Local $Ret = DllCall ( $_KERNEL32DLL, 'int', 'lstrlenA', 'ptr', $Address ) If @Error Then Return SetError ( @Error, @Extended, 0 ) Return $Ret[0] EndFunc ;==> API_lstrlenA() Func API_lstrlenW ( $Address ) Local $Ret = DllCall ( $_KERNEL32DLL, 'int', 'lstrlenW', 'ptr', $Address ) If @Error Then Return SetError ( @Error, @Extended, 0 ) Return $Ret[0] EndFunc ;==> API_lstrlenW() Func API_VirtualProtect ( $Address, $Size, $Protection ) Local $Ret = DllCall ( $_KERNEL32DLL, 'bool', 'VirtualProtect', 'ptr', $Address, 'dword_ptr', $Size, 'dword', $Protection, 'dword*', 0 ) If @Error Then Return SetError ( @Error, @Extended, 0 ) Return $Ret[0] EndFunc ;==> API_VirtualProtect() Func API_ZeroMemory ( $Address, $Size ) Local $Ret = DllCall ( $_KERNEL32DLL, 'none', 'RtlZeroMemory', 'ptr', $Address, 'dword_ptr', $Size ) If @Error Then Return SetError ( @Error, @Extended, 0 ) Return $Ret[0] EndFunc ;==> API_ZeroMemory() Func Base64Decode ( $input_string ) ; by trancexx Local $struct = DllStructCreate ( 'int' ) Local $a_Call = DllCall ( 'Crypt32.dll', 'int', 'CryptStringToBinary', 'str', $input_string, 'int', 0, 'int', 1, 'ptr', 0, 'ptr', DllStructGetPtr ( $struct, 1 ), 'ptr', 0, 'ptr', 0 ) If @error Or Not $a_Call[0] Then Return SetError ( 1, 0, '' ) Local $a = DllStructCreate ( 'byte[' & DllStructGetData ( $struct, 1 ) & ']' ) $a_Call = DllCall ( 'Crypt32.dll', 'int', 'CryptStringToBinary', 'str', $input_string, 'int', 0, 'int', 1, 'ptr', DllStructGetPtr ( $a ), 'ptr', DllStructGetPtr ( $struct, 1 ), 'ptr', 0, 'ptr', 0 ) If @error Or Not $a_Call[0] Then Return SetError ( 2, 0, '' ) Return DllStructGetData ( $a, 1 ) EndFunc ;==> Base64Decode() Func LzntDecompress ( $bBinary ); by trancexx $bBinary = Binary ( $bBinary ) Local $tInput = DllStructCreate ( 'byte[' & BinaryLen ( $bBinary ) & ']' ) DllStructSetData ( $tInput, 1, $bBinary ) Local $tBuffer = DllStructCreate ( 'byte[' & 16*DllStructGetSize ( $tInput ) & ']' ) Local $a_Call = DllCall ( 'ntdll.dll', 'int', 'RtlDecompressBuffer', 'ushort', 2, 'ptr', DllStructGetPtr ( $tBuffer ), 'dword', DllStructGetSize ( $tBuffer ), 'ptr', DllStructGetPtr ( $tInput ), 'dword', DllStructGetSize ( $tInput ), 'dword*', 0 ) If @error Or $a_Call[0] Then Return SetError ( 1, 0, '' ) Local $tOutput = DllStructCreate ( 'byte[' & $a_Call[6] & ']', DllStructGetPtr ( $tBuffer ) ) Return SetError ( 0, 0, DllStructGetData ( $tOutput, 1 ) ) EndFunc ;==> LzntDecompress() Func MemLib_BuildImportTable ( $CodeBase, $PEHeader ) Local Const $IMAGE_DIRECTORY_ENTRY_IMPORT = 1 Local Const $SizeOfPtr = DllStructGetSize ( DllStructCreate ( 'ptr', 1 ) ) Local $IMAGE_NT_HEADER = DllStructCreate ( $tagIMAGE_NT_HEADER, $PEHeader ) Local $SizeOfDataDirectory = DllStructGetSize ( DllStructCreate ( $tagIMAGE_DATA_DIRECTORY ) ) Local $ImportDirectoryPtr = $PEHeader + DllStructGetSize ( $IMAGE_NT_HEADER ) + $IMAGE_DIRECTORY_ENTRY_IMPORT * $SizeOfDataDirectory Local $ImportDirectory = DllStructCreate ( $tagIMAGE_DATA_DIRECTORY, $ImportDirectoryPtr ) Local $ImportSize = DllStructGetData ( $ImportDirectory, 'Size' ) Local $ImportVirtualAddress = DllStructGetData ( $ImportDirectory, 'VirtualAddress' ) Local $SizeOfImportDir = DllStructGetSize ( DllStructCreate ( $tagIMAGE_IMPORT_DESCRIPTOR ) ) Local $ImportList = '' If $ImportSize > 0 Then Local $ImportDescPtr = $CodeBase + $ImportVirtualAddress While 1 If API_IsBadReadPtr ( $ImportDescPtr, $SizeOfImportDir ) Then ExitLoop Local $ImportDesc = DllStructCreate ( $tagIMAGE_IMPORT_DESCRIPTOR, $ImportDescPtr ) Local $NameOffset = DllStructGetData ( $ImportDesc, 'Name' ) If $NameOffset = 0 Then ExitLoop Local $Name = Peek ( 'str', $CodeBase + $NameOffset ) Local $OriginalFirstThunk = DllStructGetData ( $ImportDesc, 'OriginalFirstThunk' ) Local $FirstThunk = DllStructGetData ( $ImportDesc, 'FirstThunk' ) Local $Handle = API_LoadLibrary ( $Name ) If $Handle Then $ImportList &= $Handle & ',' Local $FuncRef = $CodeBase + $FirstThunk Local $ThunkRef = $CodeBase + $OriginalFirstThunk If $OriginalFirstThunk = 0 Then $ThunkRef = $FuncRef While 1 Local $Ref = Peek ( 'ptr', $ThunkRef ) If $Ref = 0 Then ExitLoop If BitAND ( Peek ( 'byte', $ThunkRef + $SizeOfPtr - 1 ), 0x80 ) Then Local $Ptr = API_GetProcAddress ( $Handle, BitAND ( $Ref, 0xffff ) ) Else Local $IMAGE_IMPORT_BY_NAME = DllStructCreate ( $tagIMAGE_IMPORT_BY_NAME, $CodeBase + $Ref ) Local $NamePtr = DllStructGetPtr ( $IMAGE_IMPORT_BY_NAME, 2 ) Local $FuncName = Peek ( 'str', $NamePtr ) Local $Ptr = API_GetProcAddress ( $Handle, $FuncName ) EndIf If $Ptr = 0 Then Return SetError ( 1, 0, False ) Poke ( 'ptr', $FuncRef, $Ptr ) $ThunkRef += $SizeOfPtr $FuncRef += $SizeOfPtr WEnd Else Return SetError ( 1, 0, False ) EndIf $ImportDescPtr += $SizeOfImportDir WEnd EndIf Return $ImportList EndFunc ;==> MemLib_BuildImportTable() Func MemLib_CopySections ( $CodeBase, $PEHeader, $DllDataPtr ) Local $IMAGE_NT_HEADER = DllStructCreate ( $tagIMAGE_NT_HEADER, $PEHeader ) Local $SizeOfFileHeader = DllStructGetPtr ( $IMAGE_NT_HEADER, 'Magic' ) - $PEHeader Local $SizeOfOptionalHeader = DllStructGetData ( $IMAGE_NT_HEADER, 'SizeOfOptionalHeader' ) Local $NumberOfSections = DllStructGetData ( $IMAGE_NT_HEADER, 'NumberOfSections' ) Local $SectionAlignment = DllStructGetData ( $IMAGE_NT_HEADER, 'SectionAlignment' ) Local $SectionPtr = $PEHeader + $SizeOfFileHeader + $SizeOfOptionalHeader For $i = 1 To $NumberOfSections Local $Section = DllStructCreate ( $tagIMAGE_SECTION_HEADER, $SectionPtr ) Local $VirtualAddress = DllStructGetData ( $Section, 'VirtualAddress' ) Local $SizeOfRawData = DllStructGetData ( $Section, 'SizeOfRawData' ) Local $PointerToRawData = DllStructGetData ( $Section, 'PointerToRawData' ) If $SizeOfRawData = 0 Then Local $Dest = _MemVirtualAlloc ( $CodeBase + $VirtualAddress, $SectionAlignment, $MEM_COMMIT, $PAGE_READWRITE ) API_ZeroMemory ( $Dest, $SectionAlignment ) Else Local $Dest = _MemVirtualAlloc ( $CodeBase + $VirtualAddress, $SizeOfRawData, $MEM_COMMIT, $PAGE_READWRITE ) _MemMoveMemory ( $DllDataPtr + $PointerToRawData, $Dest, $SizeOfRawData ) EndIf DllStructSetData ( $Section, 'VirtualSize', $Dest - $CodeBase ) $SectionPtr += DllStructGetSize ( $Section ) Next EndFunc ;==> MemLib_CopySections() Func MemLib_FinalizeSections ( $CodeBase, $PEHeader ) Local Const $IMAGE_SCN_MEM_EXECUTE = 0x20000000 Local Const $IMAGE_SCN_MEM_READ = 0x40000000 Local Const $IMAGE_SCN_MEM_WRITE = 0x80000000 Local Const $IMAGE_SCN_MEM_NOT_CACHED = 0x4000000 Local Const $IMAGE_SCN_CNT_INITIALIZED_DATA = 64 Local Const $IMAGE_SCN_CNT_UNINITIALIZED_DATA = 128 Local Const $PAGE_WRITECOPY = 0x0008 Local Const $PAGE_EXECUTE_WRITECOPY = 0x0080 Local $IMAGE_NT_HEADER = DllStructCreate ( $tagIMAGE_NT_HEADER, $PEHeader ) Local $SizeOfFileHeader = DllStructGetPtr ( $IMAGE_NT_HEADER, 'Magic' ) - $PEHeader Local $SizeOfOptionalHeader = DllStructGetData ( $IMAGE_NT_HEADER, 'SizeOfOptionalHeader' ) Local $NumberOfSections = DllStructGetData ( $IMAGE_NT_HEADER, 'NumberOfSections' ) Local $SectionAlignment = DllStructGetData ( $IMAGE_NT_HEADER, 'SectionAlignment' ) Local $SectionPtr = $PEHeader + $SizeOfFileHeader + $SizeOfOptionalHeader For $i = 1 To $NumberOfSections Local $Section = DllStructCreate ( $tagIMAGE_SECTION_HEADER, $SectionPtr ) Local $Characteristics = DllStructGetData ( $Section, 'Characteristics' ) Local $SizeOfRawData = DllStructGetData ( $Section, 'SizeOfRawData' ) Local $Executable = ( BitAND ( $Characteristics, $IMAGE_SCN_MEM_EXECUTE ) <> 0 ) Local $Readable = ( BitAND ( $Characteristics, $IMAGE_SCN_MEM_READ ) <> 0 ) Local $Writeable = ( BitAND ( $Characteristics, $IMAGE_SCN_MEM_WRITE ) <> 0 ) Local $ProtectList[8] = [$PAGE_NOACCESS, $PAGE_EXECUTE, $PAGE_READONLY, $PAGE_EXECUTE_READ, $PAGE_WRITECOPY, $PAGE_EXECUTE_WRITECOPY, $PAGE_READWRITE, $PAGE_EXECUTE_READWRITE] Local $Protect = $ProtectList[$Executable + $Readable * 2 + $Writeable * 4] If BitAND ( $Characteristics, $IMAGE_SCN_MEM_NOT_CACHED ) Then $Protect = BitOR ( $Protect, $PAGE_NOCACHE ) Local $Size = $SizeOfRawData If $Size = 0 Then If BitAND ( $Characteristics, $IMAGE_SCN_CNT_INITIALIZED_DATA ) Then $Size = DllStructGetData ( $IMAGE_NT_HEADER, 'SizeOfInitializedData' ) ElseIf BitAND ( $Characteristics, $IMAGE_SCN_CNT_UNINITIALIZED_DATA ) Then $Size = DllStructGetData ( $IMAGE_NT_HEADER, 'SizeOfUninitializedData' ) EndIf EndIf If $Size > 0 Then Local $PhysicalAddress = $CodeBase + DllStructGetData ( $Section, 'VirtualSize' ) API_VirtualProtect ( $PhysicalAddress, $Size, $Protect ) EndIf $SectionPtr += DllStructGetSize ( $Section ) Next EndFunc ;==> MemLib_FinalizeSections() Func MemLib_FreeLibrary ( $ModulePtr ) If Not MemLib_Vaild ( $ModulePtr ) Then Return 0 Local $Module = DllStructCreate ( $tagModule, $ModulePtr ) Local $CodeBase = DllStructGetData ( $Module, 'CodeBase' ) Local $DllEntry = DllStructGetData ( $Module, 'DllEntry' ) Local $Initialized = DllStructGetData ( $Module, 'Initialized' ) Local $ImportListPtr = DllStructGetData ( $Module, 'ImportList' ) Local $ExportListPtr = DllStructGetData ( $Module, 'ExportList' ) If $Initialized And $DllEntry Then Local $Success = MemoryFuncCall ( 'bool', $DllEntry, 'ptr', $CodeBase, 'dword', 0, 'ptr', 0 ) ; DLL_PROCESS_DETACH DllStructSetData ( $Module, 'Initialized', 0 ) EndIf If $ExportListPtr Then _MemGlobalFree ( $ExportListPtr ) If $ImportListPtr Then Local $ImportList = StringSplit ( Peek ( 'str', $ImportListPtr ), ',' ) For $i = 1 To $ImportList[0] If $ImportList[$i] Then API_FreeLibrary ( $ImportList[$i] ) Next _MemGlobalFree ( $ImportListPtr ) EndIf If $CodeBase Then _MemVirtualFree ( $CodeBase, 0, $MEM_RELEASE ) DllStructSetData ( $Module, 'CodeBase', 0 ) DllStructSetData ( $Module, 'ExportList', 0 ) _MemGlobalFree ( $ModulePtr ) Return 1 EndFunc ;==> MemLib_FreeLibrary() Func MemLib_GetExportList ( $CodeBase, $PEHeader ) Local Const $IMAGE_DIRECTORY_ENTRY_EXPORT = 0 Local $IMAGE_NT_HEADER = DllStructCreate ( $tagIMAGE_NT_HEADER, $PEHeader ) Local $SizeOfDataDirectory = DllStructGetSize ( DllStructCreate ( $tagIMAGE_DATA_DIRECTORY ) ) Local $ExportDirectoryPtr = $PEHeader + DllStructGetSize ( $IMAGE_NT_HEADER ) + $IMAGE_DIRECTORY_ENTRY_EXPORT * $SizeOfDataDirectory Local $ExportDirectory = DllStructCreate ( $tagIMAGE_DATA_DIRECTORY, $ExportDirectoryPtr ) Local $ExportSize = DllStructGetData ( $ExportDirectory, 'Size' ) Local $ExportVirtualAddress = DllStructGetData ( $ExportDirectory, 'VirtualAddress' ) Local $ExportList = '' If $ExportSize > 0 Then Local $IMAGE_EXPORT_DIRECTORY = DllStructCreate ( $tagIMAGE_EXPORT_DIRECTORY, $CodeBase + $ExportVirtualAddress ) Local $NumberOfNames = DllStructGetData ( $IMAGE_EXPORT_DIRECTORY, 'NumberOfNames' ) Local $NumberOfFunctions = DllStructGetData ( $IMAGE_EXPORT_DIRECTORY, 'NumberOfFunctions' ) Local $AddressOfFunctions = DllStructGetData ( $IMAGE_EXPORT_DIRECTORY, 'AddressOfFunctions' ) If $NumberOfNames = 0 Or $NumberOfFunctions = 0 Then Return '' Local $NameRef = $CodeBase + DllStructGetData ( $IMAGE_EXPORT_DIRECTORY, 'AddressOfNames' ) Local $Ordinal = $CodeBase + DllStructGetData ( $IMAGE_EXPORT_DIRECTORY, 'AddressOfNameOrdinals' ) For $i = 1 To $NumberOfNames Local $Ref = Peek ( 'dword', $NameRef ) Local $Idx = Peek ( 'word', $Ordinal ) Local $FuncName = Peek ( 'str', $CodeBase + $Ref ) If $Idx <= $NumberOfFunctions Then Local $Addr = $CodeBase + Peek ( 'dword', $CodeBase + $AddressOfFunctions + $Idx * 4 ) $ExportList &= $FuncName & Chr ( 1 ) & $Addr & Chr ( 1 ) EndIf $NameRef += 4 ; DWORD $Ordinal += 2 ; WORD Next EndIf Return $ExportList EndFunc ;==> MemLib_GetExportList() Func MemLib_GetProcAddress ( $ModulePtr, $FuncName ) Local $ExportPtr = Peek ( 'ptr', $ModulePtr ) If Not $ExportPtr Then Return 0 Local $ExportList = Peek ( 'str', $ExportPtr ) Local $Match = StringRegExp ( $ExportList, '(?i)' & $FuncName & '\001([^\001]*)\001', 3 ) If Not @Error Then Return Ptr ( $Match[0] ) Return 0 EndFunc ;==> MemLib_GetProcAddress() Func MemLib_LoadLibrary ( $DllBinary ) $DllBinary = Binary ( $DllBinary ) Local $DllData = DllStructCreate ( 'byte[' & BinaryLen ( $DllBinary ) & ']' ) Local $DllDataPtr = DllStructGetPtr ( $DllData ) DllStructSetData ( $DllData, 1, $DllBinary ) Local $IMAGE_DOS_HEADER = DllStructCreate ( $tagIMAGE_DOS_HEADER, $DllDataPtr ) If DllStructGetData ( $IMAGE_DOS_HEADER, 'e_magic' ) <> 0x5A4D Then Return SetError ( 1, 0, 0 ) EndIf Local $PEHeader = $DllDataPtr + DllStructGetData ( $IMAGE_DOS_HEADER, 'e_lfanew' ) Local $IMAGE_NT_HEADER = DllStructCreate ( $tagIMAGE_NT_HEADER, $PEHeader ) If DllStructGetData ( $IMAGE_NT_HEADER, 'Signature' ) <> 0x4550 Then Return SetError ( 1, 0, 0 ) EndIf Switch DllStructGetData ( $IMAGE_NT_HEADER, 'Magic' ) Case 0x10B ; IMAGE_NT_OPTIONAL_HDR32_MAGIC If @AutoItX64 Then Return SetError ( 2, 0, 0 ) Case 0x20B ; IMAGE_NT_OPTIONAL_HDR64_MAGIC If Not @AutoItX64 Then Return SetError ( 2, 0, 0 ) EndSwitch Local $ImageBase = DllStructGetData ( $IMAGE_NT_HEADER, 'ImageBase' ) Local $SizeOfImage = DllStructGetData ( $IMAGE_NT_HEADER, 'SizeOfImage' ) Local $SizeOfHeaders = DllStructGetData ( $IMAGE_NT_HEADER, 'SizeOfHeaders' ) Local $AddressOfEntryPoint = DllStructGetData ( $IMAGE_NT_HEADER, 'AddressOfEntryPoint' ) Local $ModulePtr = _MemGlobalAlloc ( DllStructGetSize ( DllStructCreate ( $tagModule ) ), $GPTR ) If $ModulePtr = 0 Then Return SetError ( 3, 0, 0 ) Local $Module = DllStructCreate ( $tagModule, $ModulePtr ) Local $CodeBase = _MemVirtualAlloc ( $ImageBase, $SizeOfImage, $MEM_RESERVE, $PAGE_READWRITE ) If $CodeBase = 0 Then $CodeBase = _MemVirtualAlloc ( 0, $SizeOfImage, $MEM_RESERVE, $PAGE_READWRITE ) If $CodeBase = 0 Then Return SetError ( 3, 0, 0 ) DllStructSetData ( $Module, 'CodeBase', $CodeBase ) _MemVirtualAlloc ( $CodeBase, $SizeOfImage, $MEM_COMMIT, $PAGE_READWRITE ) Local $Base = _MemVirtualAlloc ( $CodeBase, $SizeOfHeaders, $MEM_COMMIT, $PAGE_READWRITE ) _MemMoveMemory ( $DllDataPtr, $Base, $SizeOfHeaders ) MemLib_CopySections ( $CodeBase, $PEHeader, $DllDataPtr ) Local $LocationDelta = $CodeBase - $ImageBase If $LocationDelta <> 0 Then MemLib_PerformBaseRelocation ( $CodeBase, $PEHeader, $LocationDelta ) Local $ImportList = MemLib_BuildImportTable ( $CodeBase, $PEHeader ) If @Error Then MemLib_FreeLibrary ( $ModulePtr ) Return SetError ( 2, 0, 0 ) EndIf Local $ExportList = MemLib_GetExportList ( $CodeBase, $PEHeader ) Local $ImportListPtr = _MemGlobalAlloc ( StringLen ( $ImportList ) + 2, $GPTR ) Local $ExportListPtr = _MemGlobalAlloc ( StringLen ( $ExportList ) + 2, $GPTR ) DllStructSetData ( $Module, 'ImportList', $ImportListPtr ) DllStructSetData ( $Module, 'ExportList', $ExportListPtr ) If $ImportListPtr = 0 Or $ExportListPtr = 0 Then MemLib_FreeLibrary ( $ModulePtr ) Return SetError ( 3, 0, 0 ) EndIf Poke ( 'str', $ImportListPtr, $ImportList ) Poke ( 'str', $ExportListPtr, $ExportList ) MemLib_FinalizeSections ( $CodeBase, $PEHeader ) Local $DllEntry = $CodeBase + $AddressOfEntryPoint DllStructSetData ( $Module, 'DllEntry', $DllEntry ) DllStructSetData ( $Module, 'Initialized', 0 ) If $AddressOfEntryPoint Then Local $Success = MemoryFuncCall ( 'bool', $DllEntry, 'ptr', $CodeBase, 'dword', 1, 'ptr', 0 ) ; DLL_PROCESS_ATTACH If Not $Success[0] Then MemLib_FreeLibrary ( $ModulePtr ) Return SetError ( 4, 0, 0 ) EndIf DllStructSetData ( $Module, 'Initialized', 1 ) EndIf Return $ModulePtr EndFunc ;==> MemLib_LoadLibrary() Func MemLib_PerformBaseRelocation ( $CodeBase, $PEHeader, $LocationDelta ) Local Const $IMAGE_DIRECTORY_ENTRY_BASERELOC = 5 Local Const $IMAGE_REL_BASED_HIGHLOW = 3 Local Const $IMAGE_REL_BASED_DIR64 = 10 Local $IMAGE_NT_HEADER = DllStructCreate ( $tagIMAGE_NT_HEADER, $PEHeader ) Local $SizeOfDataDirectory = DllStructGetSize ( DllStructCreate ( $tagIMAGE_DATA_DIRECTORY ) ) Local $RelocDirectoryPtr = $PEHeader + DllStructGetSize ( $IMAGE_NT_HEADER ) + $IMAGE_DIRECTORY_ENTRY_BASERELOC * $SizeOfDataDirectory Local $RelocDirectory = DllStructCreate ( $tagIMAGE_DATA_DIRECTORY, $RelocDirectoryPtr ) Local $RelocSize = DllStructGetData ( $RelocDirectory, 'Size' ) Local $RelocVirtualAddress = DllStructGetData ( $RelocDirectory, 'VirtualAddress' ) If $RelocSize > 0 Then Local $Relocation = $CodeBase + $RelocVirtualAddress While 1 Local $IMAGE_BASE_RELOCATION = DllStructCreate ( $tagIMAGE_BASE_RELOCATION, $Relocation ) Local $VirtualAddress = DllStructGetData ( $IMAGE_BASE_RELOCATION, 'VirtualAddress' ) Local $SizeOfBlock = DllStructGetData ( $IMAGE_BASE_RELOCATION, 'SizeOfBlock' ) If $VirtualAddress = 0 Then ExitLoop Local $Dest = $CodeBase + $VirtualAddress Local $Entries = ( $SizeOfBlock - 8 ) / 2 Local $RelInfo = DllStructCreate ( 'word[' & $Entries & ']', $Relocation + 8 ) For $i = 1 To $Entries Local $Info = DllStructGetData ( $RelInfo, 1, $i ) Local $Type = BitShift ( $Info, 12 ) If $Type = $IMAGE_REL_BASED_HIGHLOW Or $Type = $IMAGE_REL_BASED_DIR64 Then Local $Addr = DllStructCreate ( 'ptr', $Dest + BitAND ( $Info, 0xFFF ) ) DllStructSetData ( $Addr, 1, DllStructGetData ( $Addr, 1 ) + $LocationDelta ) EndIf Next $Relocation += $SizeOfBlock WEnd EndIf EndFunc ;==> MemLib_PerformBaseRelocation() Func MemLib_Vaild ( $ModulePtr ) Local $ModuleSize = DllStructGetSize ( DllStructCreate ( $tagModule ) ) If API_IsBadReadPtr ( $ModulePtr, $ModuleSize ) Then Return False Local $Module = DllStructCreate ( $tagModule, $ModulePtr ) Local $CodeBase = DllStructGetData ( $Module, 'CodeBase' ) If Not $CodeBase Then Return False Return True EndFunc ;==> MemLib_Vaild() Func MemoryDllCall ( $Module, $RetType, $FuncName, $Type1 = '', $Param1 = 0, $Type2 = '', $Param2 = 0, $Type3 = '', $Param3 = 0, $Type4 = '', $Param4 = 0, $Type5 = '', $Param5 = 0, $Type6 = '', $Param6 = 0, $Type7 = '', $Param7 = 0, $Type8 = '', $Param8 = 0, $Type9 = '', $Param9 = 0, $Type10 = '', $Param10 = 0, $Type11 = '', $Param11 = 0, $Type12 = '', $Param12 = 0, $Type13 = '', $Param13 = 0, $Type14 = '', $Param14 = 0, $Type15 = '', $Param15 = 0, $Type16 = '', $Param16 = 0, $Type17 = '', $Param17 = 0, $Type18 = '', $Param18 = 0, $Type19 = '', $Param19 = 0, $Type20 = '', $Param20 = 0 ) Local $Ret, $OpenFlag = False Local Const $MaxParams = 20 If ( @NumParams < 3 ) Or ( @NumParams > $MaxParams * 2 + 3 ) Or ( Mod ( @NumParams, 2 ) = 0 ) Then Return SetError ( 4, 0, 0 ) If Not IsPtr ( $Module ) Then $OpenFlag = True $Module = MemoryDllOpen ( $Module ) If @Error Then Return SetError ( 1, 0, 0 ) EndIf Local $Addr = MemLib_GetProcAddress ( $Module, $FuncName ) If Not $Addr Then Return SetError ( 3, 0, 0 ) Poke ( 'ptr', $_MFHookPtr + 1 + @AutoItX64, $Addr ) Switch @NumParams Case 3 $Ret = DllCall ( $_KERNEL32DLL, $RetType, $_MFHookApi ) Case 5 $Ret = DllCall ( $_KERNEL32DLL, $RetType, $_MFHookApi, $Type1, $Param1 ) Case 7 $Ret = DllCall ( $_KERNEL32DLL, $RetType, $_MFHookApi, $Type1, $Param1, $Type2, $Param2 ) Case 9 $Ret = DllCall ( $_KERNEL32DLL, $RetType, $_MFHookApi, $Type1, $Param1, $Type2, $Param2, $Type3, $Param3 ) Case 11 $Ret = DllCall ( $_KERNEL32DLL, $RetType, $_MFHookApi, $Type1, $Param1, $Type2, $Param2, $Type3, $Param3, $Type4, $Param4 ) Case 13 $Ret = DllCall ( $_KERNEL32DLL, $RetType, $_MFHookApi, $Type1, $Param1, $Type2, $Param2, $Type3, $Param3, $Type4, $Param4, $Type5, $Param5 ) Case Else Local $DllCallStr = 'DllCall ( $_KERNEL32DLL, $RetType, $_MFHookApi', $n = 1 For $i = 5 To @NumParams Step 2 $DllCallStr &= ', $Type' & $n & ', $Param' & $n $n += 1 Next $DllCallStr &= ' )' $Ret = Execute ( $DllCallStr ) EndSwitch Local $Err = @Error If $OpenFlag Then MemoryDllClose ( $Module ) Return SetError ( $Err, 0, $Ret ) EndFunc ;==> MemoryDllCall() Func MemoryDllClose ( $Module ) MemLib_FreeLibrary ( $Module ) EndFunc ;==> MemoryDllClose() Func MemoryDllOpen ( $DllBinary ) If Not IsDllStruct ( $_MFHookBak ) Then MemoryFuncInit() Local $Module = MemLib_LoadLibrary ( $DllBinary ) If @Error Then Return SetError ( @Error, 0, -1 ) Return $Module EndFunc ;==> MemoryDllOpen() Func MemoryFuncCall ( $RetType, $Address, $Type1 = '', $Param1 = 0, $Type2 = '', $Param2 = 0, $Type3 = '', $Param3 = 0, $Type4 = '', $Param4 = 0, $Type5 = '', $Param5 = 0, $Type6 = '', $Param6 = 0, $Type7 = '', $Param7 = 0, $Type8 = '', $Param8 = 0, $Type9 = '', $Param9 = 0, $Type10 = '', $Param10 = 0, $Type11 = '', $Param11 = 0, $Type12 = '', $Param12 = 0, $Type13 = '', $Param13 = 0, $Type14 = '', $Param14 = 0, $Type15 = '', $Param15 = 0, $Type16 = '', $Param16 = 0, $Type17 = '', $Param17 = 0, $Type18 = '', $Param18 = 0, $Type19 = '', $Param19 = 0, $Type20 = '', $Param20 = 0 ) If Not IsDllStruct ( $_MFHookBak ) Then MemoryFuncInit() Poke ( 'ptr', $_MFHookPtr + 1 + @AutoItX64, $Address ) Local $Ret Switch @NumParams Case 2 $Ret = DllCall ( $_KERNEL32DLL, $RetType, $_MFHookApi ) Case 4 $Ret = DllCall ( $_KERNEL32DLL, $RetType, $_MFHookApi, $Type1, $Param1 ) Case 6 $Ret = DllCall ( $_KERNEL32DLL, $RetType, $_MFHookApi, $Type1, $Param1, $Type2, $Param2 ) Case 8 $Ret = DllCall ( $_KERNEL32DLL, $RetType, $_MFHookApi, $Type1, $Param1, $Type2, $Param2, $Type3, $Param3 ) Case 10 $Ret = DllCall ( $_KERNEL32DLL, $RetType, $_MFHookApi, $Type1, $Param1, $Type2, $Param2, $Type3, $Param3, $Type4, $Param4 ) Case 12 $Ret = DllCall ( $_KERNEL32DLL, $RetType, $_MFHookApi, $Type1, $Param1, $Type2, $Param2, $Type3, $Param3, $Type4, $Param4, $Type5, $Param5 ) Case Else Local $DllCallStr = 'DllCall($_KERNEL32DLL, $RetType, $_MFHookApi', $n = 1 For $i = 4 To @NumParams Step 2 $DllCallStr &= ', $Type' & $n & ', $Param' & $n $n += 1 Next $DllCallStr &= ')' $Ret = Execute ( $DllCallStr ) EndSwitch Return SetError ( @Error, 0, $Ret ) EndFunc ;==> MemoryFuncCall() Func MemoryFuncInit() Local $KernelHandle = API_LoadLibrary ( 'kernel32.dll' ) API_FreeLibrary ( $KernelHandle ) Local $HookPtr = API_GetProcAddress ( $KernelHandle, $_MFHookApi ) Local $HookSize = 7 + @AutoItX64 * 5 $_MFHookPtr = $HookPtr $_MFHookBak = DllStructCreate ( 'byte[' & $HookSize & ']' ) If Not API_VirtualProtect ( $_MFHookPtr, $HookSize, $PAGE_EXECUTE_READWRITE ) Then Return False DllStructSetData ( $_MFHookBak, 1, Peek ( 'byte[' & $HookSize & ']', $_MFHookPtr ) ) If @AutoItX64 Then Poke ( 'word', $_MFHookPtr, 0xB848 ) Poke ( 'word', $_MFHookPtr + 10, 0xE0FF ) Else Poke ( 'byte', $_MFHookPtr, 0xB8 ) Poke ( 'word', $_MFHookPtr + 5, 0xE0FF ) EndIf Return True EndFunc ;==> MemoryFuncInit() Func Peek ( $Type, $Ptr ) If $Type = 'str' Then $Type = 'char[' & API_lstrlenA ( $Ptr ) & ']' ElseIf $Type = 'wstr' Then $Type = 'wchar[' & API_lstrlenW ( $Ptr ) & ']' EndIf Return DllStructGetData ( DllStructCreate ( $Type, $Ptr ), 1 ) EndFunc ;==> Peek() Func Poke ( $Type, $Ptr, $Value ) If $Type = 'str' Then $Type = 'char[' & ( StringLen ( $Value ) + 1 ) & ']' ElseIf $Type = 'wstr' Then $Type = 'wchar[' & ( StringLen ( $Value ) + 1 ) & ']' EndIf DllStructSetData ( DllStructCreate ( $Type, $Ptr ), 1, $Value ) EndFunc ;==> Poke()