forked from GrammaTech/gtirb-rewriting
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES.txt
112 lines (94 loc) · 4.33 KB
/
CHANGES.txt
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
0.3.0:
- Added RewritingContext.retarget_symbol, which allows adjusting code/data
references of one symbol to use another synmbol instead. For example, you
could redirect all calls to specific internal symbol to a trap function.
0.2.0:
- CFI directives are now preserved, allowing rewriting of C++ programs with
exception handling. Additionally, patches can specify CFI directives.
- gtirb-rewriting now requires Python 3.7.
- OffsetMapping.__setitem__'s behavior changed when indexing by an element. It
assigns the passed MutableMapping to the internal storage instead of creating
a copy, which makes setdefault more intuitive.
asssigns the passed dict to the internal storage instead of creating a copy,
which makes setdefault more intuitive.
- Added a dwarf submodule to make creating CFI directives easier.
- Assembler's ignore_cfi_directives parameter has been removed.
0.1.2:
- Updated GTIRB symbolic expression attributes.
0.1.1:
- Added support for ELF symbol type, binding, and visibility
- Added support for symbols with absolute addresses using .set
- Added support for the .zero directive
- Added support for sym-sym symbolic expressions
- Added support for the .uleb128 and .sleb128 directives
- Removed inference of the GOTPCREL symbolic attribute, which cannot be done
correctly in all cases
0.1.0:
- gtirb-rewriting now requires gtirb 1.10.6.
- Refactored the code that applies modifications to support future changes and
ease maintenance
- OffsetMapping.__setitem__'s behavior changed when indexing by an element. It
now behaves as an assignment instead of an update, meaning that it may
actually shrink the map in some cases. See the docstring for more examples.
- Added support for the .align directive
- The sectionProperties aux data table is now populated when patches add new
sections.
- Added support for deletions using delete_at
- Functions are no longer needed for insert_at and replace_at. New overloads
have been added that drop the function parameter and, in the future, the
old overload will be removed.
- Data blocks can now be targetted with insert_at, replace_at, and delete_at.
- Scratch registers are now passed in the insertion context instead of as
parameters. This is a breaking change.
- Added support for more ELF symbol variants: GOT, GOTNTPOFF, GOTOFF, GOTTPOFF,
TPOFF, NTPOFF, DTPOFF, TLSGD, and TLSLD.
0.0.24:
- symbolicExpressionSizes is now populated for expressions in code
- The Assembler class gained an option, allow_undef_symbols, that allows
undefined symbols to be referenced and implicitly created (referring to
proxy blocks)
- Added support for indirect branches and calls
- get_or_insert_extern_sym now puts proxies in the module's proxies set
- get_or_insert_extern_sym now populates elfSymbolInfo
- Added a command-line gtirb-rewriting driver
0.0.23:
- Dramatically sped up the time spent applying patches with calls
0.0.22:
- Fixed an issue where running rewriting over leaf functions multiple times
could cause the red zone to be clobbered on 64-bit ELF
- Updated to new ARM symbolic expression types
- Switched to capstone-gt
0.0.21:
- Added support for symbolic expressions in data.
- Fixed CallPatch redundantly aligning the stack
- Made CallPatch default to aligning the stack and preserving caller-saved
registers. Clients can opt out of this by specifying align_stack=False and
preserve_caller_saved_registers=False to CallPatch.
0.0.20:
- Added support for ARM64
- Exposed the Assembler class
- Added ABI.temporary_label_prefix and InsertionContext.temporary_label
0.0.19:
- Added support for the .byte directive
- Added support for printing data blocks with show_block_asm
0.0.18:
- Added support for symbolic expressions with a constant addend
0.0.17:
- Exposed the ABI class, to allow transforms to get information about the
target
- show_block_asm now prints out symbolic expressions
0.0.16:
- Fixed passing symbols as arguments with CallPatch on 64-bit ELF
- Added a libpath argument to RewritingContext.get_or_insert_extern_symbol
- Fixed incorrect stack padding with CallPatch
0.0.15:
- Added support for rewriting PE-32 GTIRB files
0.0.14:
- Performance improvements when inserting patches that don't contain return
edges
0.0.13:
- Added a workaround for incomplete Capstone disassembly
0.0.12:
- Fixed a "dictionary changed size during iteration" exception
0.0.11:
- Initial public release