-
Notifications
You must be signed in to change notification settings - Fork 164
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
Upgrade rules for static and dynamic scopes #837
Conversation
...-analysis/anti-av/block-operations-on-executable-memory-pages-using-arbitrary-code-guard.yml
Show resolved
Hide resolved
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: thread |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains unsupported feature property for dynamic scope |
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.
dynamic: unspecified # TODO upgrade manually, contains unsupported feature property for dynamic scope | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope |
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.
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope | |
dynamic: unsupported |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: thread |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: unsupported |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains Subscope |
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.
dynamic: unspecified # TODO upgrade manually, contains Subscope | |
dynamic: unsupported |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains Subscope |
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.
this one is a bit more tricky
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: thread |
4b5fa3b
to
364413c
Compare
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains Subscope |
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.
dynamic: unspecified # TODO upgrade manually, contains Subscope | |
dynamic: unsupported |
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.
should we add comments on why this is for each rule?
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains Subscope |
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.
dynamic: unspecified # TODO upgrade manually, contains Subscope | |
dynamic: unsupported # requires low-level mnemonic features |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope |
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.
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope | |
dynamic: unsupported # requires low-level mnemonic features |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: unsupported # requires `contain loop` match, but could be rewritten for dynamic without this |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope |
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.
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope | |
dynamic: unsupported # requires low-level mnemonic features |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains Subscope |
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.
dynamic: unspecified # TODO upgrade manually, contains Subscope | |
dynamic: unsupported # requires low-level mnemonic features |
scope: file | ||
scopes: | ||
static: file | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: unsupported # match requires low-level mnemonic features |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: thread |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: thread |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains Subscope |
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.
dynamic: unspecified # TODO upgrade manually, contains Subscope | |
dynamic: unsupported # requires low-level features |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: thread |
scope: file | ||
scopes: | ||
static: file | ||
dynamic: unspecified # TODO upgrade manually, contains unsupported feature class for dynamic scope |
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.
dynamic: unspecified # TODO upgrade manually, contains unsupported feature class for dynamic scope | |
dynamic: unsupported # requires class feature |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope |
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.
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope | |
dynamic: unsupported # requires low-level mnemonic features |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains Subscope |
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.
dynamic: unspecified # TODO upgrade manually, contains Subscope | |
dynamic: unsupported # requires low-level mnemonic features |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: thread |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: thread |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: call |
scope: file | ||
scopes: | ||
static: file | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: file |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains Subscope |
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.
dynamic: unspecified # TODO upgrade manually, contains Subscope | |
dynamic: thread |
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.
- TODO: double check operand numbers work
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains Subscope |
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.
dynamic: unspecified # TODO upgrade manually, contains Subscope | |
dynamic: thread |
scope: file | ||
scopes: | ||
static: file | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: file |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope |
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.
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope | |
dynamic: unsupported # contains unsupported feature mnemonic |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: call |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: thread |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: thread |
scope: file | ||
scopes: | ||
static: file | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: file |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains Subscope |
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.
dynamic: unspecified # TODO upgrade manually, contains Subscope | |
dynamic: unsupported # requires low-level mnemonic features |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains Subscope |
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.
dynamic: unspecified # TODO upgrade manually, contains Subscope | |
dynamic: unsupported # requires low-level mnemonic features |
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.
although just the RtlComputeCrc32
api would work here
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: unsupported # matches rely on low-level features |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains unsupported feature bytes for dynamic scope |
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.
dynamic: unspecified # TODO upgrade manually, contains unsupported feature bytes for dynamic scope | |
dynamic: unsupported # contains unsupported feature bytes |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: unsupported # requires low-level mnemonic features |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains Subscope |
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.
dynamic: unspecified # TODO upgrade manually, contains Subscope | |
dynamic: unsupported # requires low-level mnemonic features |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains Subscope |
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.
dynamic: unspecified # TODO upgrade manually, contains Subscope | |
dynamic: unsupported # requires low-level mnemonic features |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains match |
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.
dynamic: unspecified # TODO upgrade manually, contains match | |
dynamic: unsupported # requires low-level mnemonic features |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains unsupported feature bytes for dynamic scope |
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.
dynamic: unspecified # TODO upgrade manually, contains unsupported feature bytes for dynamic scope | |
dynamic: unsupported # contains unsupported feature bytes |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope |
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.
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope | |
dynamic: unsupported # requires low-level mnemonic features |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: call |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: call |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: call |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: unsupported # requires .NET features |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: call |
scope: basic block | ||
scopes: | ||
static: basic block | ||
dynamic: call # TODO check if scope thread instead |
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.
dynamic: call # TODO check if scope thread instead | |
dynamic: unsupported # requires .NET features |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: unsupported # requires .NET features |
scope: function | ||
scopes: | ||
static: function | ||
dynamic: thread |
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.
dynamic: thread | |
dynamic: unsupported # requires .NET features |
superseded by #839 |
Similar to #816 based initially on a script.
Plan to fix most rules manually in here moving forward after inline discussions below.