From ad8846457bd2c61d02c0a62993ebeb1488edf0bd Mon Sep 17 00:00:00 2001 From: Jb Evain Date: Tue, 31 Mar 2026 12:48:12 -0700 Subject: [PATCH 1/5] Add support for detecting usage of Mono or .NET --- descriptions/SDK.Mono.md | 1 + descriptions/SDK.dotnet.md | 1 + rules.ini | 3 +++ tests/types/SDK.Mono.txt | 24 ++++++++++++++++++++++++ tests/types/SDK.dotnet.txt | 6 ++++++ tests/types/_NonMatchingTests.txt | 4 ++++ 6 files changed, 39 insertions(+) create mode 100644 descriptions/SDK.Mono.md create mode 100644 descriptions/SDK.dotnet.md create mode 100644 tests/types/SDK.Mono.txt create mode 100644 tests/types/SDK.dotnet.txt diff --git a/descriptions/SDK.Mono.md b/descriptions/SDK.Mono.md new file mode 100644 index 000000000..54799d411 --- /dev/null +++ b/descriptions/SDK.Mono.md @@ -0,0 +1 @@ +[**Mono**](https://www.mono-project.com/) is an open-source implementation of the .NET Framework commonly used as a C# scripting solution. diff --git a/descriptions/SDK.dotnet.md b/descriptions/SDK.dotnet.md new file mode 100644 index 000000000..5b4bda0b9 --- /dev/null +++ b/descriptions/SDK.dotnet.md @@ -0,0 +1 @@ +[**.NET**](https://dotnet.microsoft.com/) is an open-source developer platform commonly used as a C# scripting solution. This only detects usage of .NET Core or .NET 5 and above. \ No newline at end of file diff --git a/rules.ini b/rules.ini index 4b6251f19..29e87e8aa 100644 --- a/rules.ini +++ b/rules.ini @@ -296,6 +296,7 @@ cURL = curl(?:module|lib|d|-?[34]|-ttv|-x64|64|_pluginw64_release)?\.(?:dll|exe| DirectStorage = (?:^|/)dstorage\.dll$ Discord = (?:^|/)(?:lib)?discord(?:|-rpc|_game_sdk|_partner_sdk)\.(?:dll|dylib|so)$ Dissonance = AudioPluginDissonance\.dll$ +dotnet = (?:^|/)(?:coreclr\.dll|libcoreclr\.(?:dylib|so))$ E-mote = ^emotedriver\.dll$ EpicOnlineServices = (?:^|/)(?:lib)?eossdk(?:-(?:win(?:32|64)|linux|mac)-shipping)?\.(?:dll|dylib|so)$ FishNet = (?:^|/)FishNet\.Runtime\.dll$ @@ -319,6 +320,8 @@ LWJGL = (?:^|/)lwjgl(?:64)?\.(?:dll|jar)$ Miles_Sound_System = (?:^|/)mss(?:16|32|64)\.dll$ Mirror = (?:^|/)Mirror\.dll$ Modio = (?:^|/)mod\.?io +Mono[] = (?:^|/)libmono(?:-2\.0|sgen-2\.0|bdwgc-2\.0)?\.(?:dylib|so)$ +Mono[] = (?:^|/)mono(?:-2\.0(?:-sgen|-bdwgc)?)?\.dll$ Nakama = (?:^|/)nakama(?:-sdk)?\.dll$ NodeJS = (?:^|/)(?:lib)?node\.(?:dll|dylib)$ NoesisGUI = (?:^|/)(?:lib)?Noesis\.(?:dll|dylib|so)$ diff --git a/tests/types/SDK.Mono.txt b/tests/types/SDK.Mono.txt new file mode 100644 index 000000000..764f43aaa --- /dev/null +++ b/tests/types/SDK.Mono.txt @@ -0,0 +1,24 @@ +mono.dll +libmono.so +libmono.dylib +libmono-2.0.so +libmono-2.0.dylib +mono-2.0.dll +mono-2.0-sgen.dll +mono-2.0-bdwgc.dll +libmonosgen-2.0.so +libmonosgen-2.0.dylib +libmonobdwgc-2.0.so +libmonobdwgc-2.0.dylib +Sub/Folder/mono.dll +Sub/Folder/libmono.so +Sub/Folder/libmono.dylib +Sub/Folder/libmono-2.0.so +Sub/Folder/libmono-2.0.dylib +Sub/Folder/mono-2.0.dll +Sub/Folder/mono-2.0-sgen.dll +Sub/Folder/mono-2.0-bdwgc.dll +Sub/Folder/libmonosgen-2.0.so +Sub/Folder/libmonosgen-2.0.dylib +Sub/Folder/libmonobdwgc-2.0.so +Sub/Folder/libmonobdwgc-2.0.dylib diff --git a/tests/types/SDK.dotnet.txt b/tests/types/SDK.dotnet.txt new file mode 100644 index 000000000..290bc6e44 --- /dev/null +++ b/tests/types/SDK.dotnet.txt @@ -0,0 +1,6 @@ +coreclr.dll +libcoreclr.so +libcoreclr.dylib +Sub/Folder/coreclr.dll +Sub/Folder/libcoreclr.so +Sub/Folder/libcoreclr.dylib diff --git a/tests/types/_NonMatchingTests.txt b/tests/types/_NonMatchingTests.txt index 069037036..f25140d1c 100644 --- a/tests/types/_NonMatchingTests.txt +++ b/tests/types/_NonMatchingTests.txt @@ -48,6 +48,10 @@ CChromaEditorLibrary1.dll GFeSDK_dll FeSDK.dll GFeSDK.dl +coreclr.so +coreclr.dylib +libcoreclr.dll +monobdwgc-2.0.so rgssad rvproj2 Microsoft_Xbox_Services_141_GDK_C_Thunks.ded From c6a9b296b0ef0d8dfefd60da7023af1c20cd22d0 Mon Sep 17 00:00:00 2001 From: Jb Evain Date: Tue, 31 Mar 2026 13:14:27 -0700 Subject: [PATCH 2/5] Ran tests/GenerateTestStrings --- tests/types/SDK.Mono.txt | 56 +++++++++++++++++++++++--------------- tests/types/SDK.dotnet.txt | 11 +++++--- 2 files changed, 41 insertions(+), 26 deletions(-) diff --git a/tests/types/SDK.Mono.txt b/tests/types/SDK.Mono.txt index 764f43aaa..46cf6ec86 100644 --- a/tests/types/SDK.Mono.txt +++ b/tests/types/SDK.Mono.txt @@ -1,24 +1,36 @@ -mono.dll -libmono.so -libmono.dylib -libmono-2.0.so -libmono-2.0.dylib -mono-2.0.dll -mono-2.0-sgen.dll -mono-2.0-bdwgc.dll -libmonosgen-2.0.so -libmonosgen-2.0.dylib -libmonobdwgc-2.0.so -libmonobdwgc-2.0.dylib -Sub/Folder/mono.dll -Sub/Folder/libmono.so -Sub/Folder/libmono.dylib -Sub/Folder/libmono-2.0.so +/libmono-2.0.dylib +/libmono-2.0.so +/libmono.dylib +/libmono.so +/libmonobdwgc-2.0.dylib +/libmonobdwgc-2.0.so +/libmonosgen-2.0.dylib +/libmonosgen-2.0.so +/mono-2.0-bdwgc.dll +/mono-2.0-sgen.dll +/mono-2.0.dll +/mono.dll Sub/Folder/libmono-2.0.dylib -Sub/Folder/mono-2.0.dll -Sub/Folder/mono-2.0-sgen.dll -Sub/Folder/mono-2.0-bdwgc.dll -Sub/Folder/libmonosgen-2.0.so -Sub/Folder/libmonosgen-2.0.dylib -Sub/Folder/libmonobdwgc-2.0.so +Sub/Folder/libmono-2.0.so +Sub/Folder/libmono.dylib +Sub/Folder/libmono.so Sub/Folder/libmonobdwgc-2.0.dylib +Sub/Folder/libmonobdwgc-2.0.so +Sub/Folder/libmonosgen-2.0.dylib +Sub/Folder/libmonosgen-2.0.so +Sub/Folder/mono-2.0-bdwgc.dll +Sub/Folder/mono-2.0-sgen.dll +Sub/Folder/mono-2.0.dll +Sub/Folder/mono.dll +libmono-2.0.dylib +libmono-2.0.so +libmono.dylib +libmono.so +libmonobdwgc-2.0.dylib +libmonobdwgc-2.0.so +libmonosgen-2.0.dylib +libmonosgen-2.0.so +mono-2.0-bdwgc.dll +mono-2.0-sgen.dll +mono-2.0.dll +mono.dll diff --git a/tests/types/SDK.dotnet.txt b/tests/types/SDK.dotnet.txt index 290bc6e44..fa4b7fde5 100644 --- a/tests/types/SDK.dotnet.txt +++ b/tests/types/SDK.dotnet.txt @@ -1,6 +1,9 @@ -coreclr.dll -libcoreclr.so -libcoreclr.dylib +/coreclr.dll +/libcoreclr.dylib +/libcoreclr.so Sub/Folder/coreclr.dll -Sub/Folder/libcoreclr.so Sub/Folder/libcoreclr.dylib +Sub/Folder/libcoreclr.so +coreclr.dll +libcoreclr.dylib +libcoreclr.so From 988593f26075dddea2e93b678f655389c18a4a68 Mon Sep 17 00:00:00 2001 From: Jb Evain Date: Tue, 31 Mar 2026 13:43:26 -0700 Subject: [PATCH 3/5] Take suggestion and update --- rules.ini | 2 +- tests/types/SDK.dotnet.txt | 6 ++++++ tests/types/_NonMatchingTests.txt | 3 --- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/rules.ini b/rules.ini index 29e87e8aa..5b7b1ec6b 100644 --- a/rules.ini +++ b/rules.ini @@ -296,7 +296,7 @@ cURL = curl(?:module|lib|d|-?[34]|-ttv|-x64|64|_pluginw64_release)?\.(?:dll|exe| DirectStorage = (?:^|/)dstorage\.dll$ Discord = (?:^|/)(?:lib)?discord(?:|-rpc|_game_sdk|_partner_sdk)\.(?:dll|dylib|so)$ Dissonance = AudioPluginDissonance\.dll$ -dotnet = (?:^|/)(?:coreclr\.dll|libcoreclr\.(?:dylib|so))$ +dotnet = (?:^|/)(?:lib)?coreclr\.(?:dylib|so|dll)$ E-mote = ^emotedriver\.dll$ EpicOnlineServices = (?:^|/)(?:lib)?eossdk(?:-(?:win(?:32|64)|linux|mac)-shipping)?\.(?:dll|dylib|so)$ FishNet = (?:^|/)FishNet\.Runtime\.dll$ diff --git a/tests/types/SDK.dotnet.txt b/tests/types/SDK.dotnet.txt index fa4b7fde5..132f7b6a5 100644 --- a/tests/types/SDK.dotnet.txt +++ b/tests/types/SDK.dotnet.txt @@ -1,9 +1,15 @@ /coreclr.dll +/coreclr.dylib +/coreclr.so +/libcoreclr.dll /libcoreclr.dylib /libcoreclr.so Sub/Folder/coreclr.dll Sub/Folder/libcoreclr.dylib Sub/Folder/libcoreclr.so coreclr.dll +coreclr.dylib +coreclr.so +libcoreclr.dll libcoreclr.dylib libcoreclr.so diff --git a/tests/types/_NonMatchingTests.txt b/tests/types/_NonMatchingTests.txt index f25140d1c..6219c59b5 100644 --- a/tests/types/_NonMatchingTests.txt +++ b/tests/types/_NonMatchingTests.txt @@ -48,9 +48,6 @@ CChromaEditorLibrary1.dll GFeSDK_dll FeSDK.dll GFeSDK.dl -coreclr.so -coreclr.dylib -libcoreclr.dll monobdwgc-2.0.so rgssad rvproj2 From 4f93d30404b936d522880dd80e5571e059044c73 Mon Sep 17 00:00:00 2001 From: Jb Evain Date: Tue, 31 Mar 2026 18:34:37 -0700 Subject: [PATCH 4/5] Take regex suggestion Co-authored-by: Antoine Rybacki <15911822+Lifeismana@users.noreply.github.com> --- rules.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules.ini b/rules.ini index 5b7b1ec6b..e65448e65 100644 --- a/rules.ini +++ b/rules.ini @@ -320,7 +320,7 @@ LWJGL = (?:^|/)lwjgl(?:64)?\.(?:dll|jar)$ Miles_Sound_System = (?:^|/)mss(?:16|32|64)\.dll$ Mirror = (?:^|/)Mirror\.dll$ Modio = (?:^|/)mod\.?io -Mono[] = (?:^|/)libmono(?:-2\.0|sgen-2\.0|bdwgc-2\.0)?\.(?:dylib|so)$ +Mono[] = (?:^|/)libmono(?:(?:sgen|bdwgc)?-2\.0)?\.(?:dylib|so)$ Mono[] = (?:^|/)mono(?:-2\.0(?:-sgen|-bdwgc)?)?\.dll$ Nakama = (?:^|/)nakama(?:-sdk)?\.dll$ NodeJS = (?:^|/)(?:lib)?node\.(?:dll|dylib)$ From 4e7c5f0a4d29e58cf1d969fc85e2f386e879ec54 Mon Sep 17 00:00:00 2001 From: Antoine Rybacki <15911822+Lifeismana@users.noreply.github.com> Date: Thu, 2 Apr 2026 00:53:31 +0200 Subject: [PATCH 5/5] Add more strings --- tests/types/SDK.Mono.txt | 11 +++++++++++ tests/types/SDK.dotnet.txt | 2 ++ tests/types/_NonMatchingTests.txt | 9 +++++++++ 3 files changed, 22 insertions(+) diff --git a/tests/types/SDK.Mono.txt b/tests/types/SDK.Mono.txt index 46cf6ec86..b88a55dca 100644 --- a/tests/types/SDK.Mono.txt +++ b/tests/types/SDK.Mono.txt @@ -10,6 +10,10 @@ /mono-2.0-sgen.dll /mono-2.0.dll /mono.dll +CIM2_Data/Mono/mono.dll +KSP.app/Contents/Frameworks/libmonobdwgc-2.0.dylib +MonoBleedingEdge/EmbedRuntime/mono-2.0-bdwgc.dll +SEGAGameRoom_Data/Mono/x86_64/libmono.so Sub/Folder/libmono-2.0.dylib Sub/Folder/libmono-2.0.so Sub/Folder/libmono.dylib @@ -22,6 +26,12 @@ Sub/Folder/mono-2.0-bdwgc.dll Sub/Folder/mono-2.0-sgen.dll Sub/Folder/mono-2.0.dll Sub/Folder/mono.dll +The Swapper.app/Contents/Resources/osx/libmonosgen-2.0.dylib +Universe Sandbox_Data/MonoBleedingEdge/x86_64/libmonobdwgc-2.0.so +bin/Win64_Shipping_Client/mono-2.0-sgen.dll +bin/win_x64/mono-2.0.dll +lib/libmono-2.0.so +lib/libmonosgen-2.0.so libmono-2.0.dylib libmono-2.0.so libmono.dylib @@ -34,3 +44,4 @@ mono-2.0-bdwgc.dll mono-2.0-sgen.dll mono-2.0.dll mono.dll +osx/libmono-2.0.dylib diff --git a/tests/types/SDK.dotnet.txt b/tests/types/SDK.dotnet.txt index 132f7b6a5..179c9b4ec 100644 --- a/tests/types/SDK.dotnet.txt +++ b/tests/types/SDK.dotnet.txt @@ -7,9 +7,11 @@ Sub/Folder/coreclr.dll Sub/Folder/libcoreclr.dylib Sub/Folder/libcoreclr.so +bin/Win64_Shipping_Client/Microsoft.NETCore.App/coreclr.dll coreclr.dll coreclr.dylib coreclr.so +dotnet/shared/Microsoft.NETCore.App/9.0.0/libcoreclr.so libcoreclr.dll libcoreclr.dylib libcoreclr.so diff --git a/tests/types/_NonMatchingTests.txt b/tests/types/_NonMatchingTests.txt index 6219c59b5..08e8e6b52 100644 --- a/tests/types/_NonMatchingTests.txt +++ b/tests/types/_NonMatchingTests.txt @@ -49,6 +49,15 @@ GFeSDK_dll FeSDK.dll GFeSDK.dl monobdwgc-2.0.so +mono.dl +mono_dll +ono.dll +ibmono.so +libmono_so +libmono.s +coreclr.dl +coreclr_dll +oreclr.dll rgssad rvproj2 Microsoft_Xbox_Services_141_GDK_C_Thunks.ded