-
Notifications
You must be signed in to change notification settings - Fork 743
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoid reading time stamp counter #1074
Changes from 2 commits
7c995f2
285b77e
6e9e933
743673a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -11,6 +11,14 @@ internal static class Opcode | |||||||||||
|
||||||||||||
public static bool Open() | ||||||||||||
{ | ||||||||||||
//Look for an environment variable: "NETQM_SUPPRESS_RDTSC" with a value of "TRUE" | ||||||||||||
// The application can set this environment variable when this code is running in a system where | ||||||||||||
// it is not desirable to read the processor's time stamp counter. | ||||||||||||
// While this is supported in modern CPUs, the technique used for allocating executable memory, copying OP Code | ||||||||||||
// for the read of the time stamp and invoking the OP Code can be detected as Malware by some anti-virus vendors. | ||||||||||||
var val = Environment.GetEnvironmentVariable("NETQM_SUPPRESS_RDTSC"); | ||||||||||||
if ("TRUE".Equals(val, StringComparison.OrdinalIgnoreCase)) | ||||||||||||
return false; | ||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What do you think about supporting any value in this environment variable? It's not uncommon to want to set a variable like this to
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The downside of this approach would be that setting the value to I'm happy with whatever you decide. |
||||||||||||
#if NETSTANDARD1_1_OR_GREATER || NET471_OR_GREATER | ||||||||||||
if (RuntimeInformation.ProcessArchitecture != Architecture.X86 && | ||||||||||||
RuntimeInformation.ProcessArchitecture != Architecture.X64) | ||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please include a link to the original issue here so that we can more easily see the motivation for this feature in future: