-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathrbSymbolOrAddress.py
27 lines (26 loc) · 1.59 KB
/
rbSymbolOrAddress.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import re;
rbSymbolOrAddress = re.compile(
rb"\A\s*" # optional whitespace
rb"(?:" # either {
rb"(?:0x)?" # optional { "0x" }
rb"([0-9`a-f]+)" # <<<address>>>
rb"|" # } or {
rb"<Unloaded_" # "<Unloaded_"
rb"(.*)" # <<<module file name>>>
rb">" # ">"
rb"(?:" # optional{
rb"\+0x0*" rb"([0-9`a-f]+?)" # "+0x" "0"... <<<hex offset in unloaded module>>>
rb")?" # }
rb"|" # } or {
rb"(\w+)" # <<<cdb module id>>>
rb"(?:" # optional either {
rb"\+0x0*" rb"([0-9`a-f]+?)" # "+0x" "0"... <<<hex offset in module>>>
rb"|" # } or {
rb"!" rb"(.+?)" # "!" <<<function name>>>
rb"(?:" # optional {
rb"([\+\-])" rb"0x0*" rb"([0-9`a-f]+?)" # ["+" or "-"] "0x" "0"... <<<hex offset in function>>>
rb")?" # }
rb")?" # }
rb")" # }
rb"\s*\Z" # optional whitespace
);