-
Notifications
You must be signed in to change notification settings - Fork 14
/
HISTORY.txt
203 lines (170 loc) · 7.21 KB
/
HISTORY.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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
HISTORY.txt -- libdasm release history
Copyright (c) 2004-2007 Jarkko Turkulainen <jt / nologin.org> <turkja / github.com>)
Copyright (c) 2005 Ero Carrera Ventura <ero / dkbza.org> (Python binding)
Copyright (c) 2006 Matt Miller skape <mmiller / hick.org> (Ruby binding)
Copyright (c) 2009-2010 Ange Albertini <angea / github.com>
Copyright (c) 2015-2018 Joshua Pereyda <jtpereyda / github.com>
======================================
1.6
- pydasm/setup.py Switching to setuptools
- re-license to 2-clause BSD
- add DESTDIR to the makefiles to make packagig easier
- available from:
https://github.com/jtpereyda/libdasm
1.6 r15
1.6 r14 - 2009-2010
- eflags are now accessible from python [nnp]
- added group 2 (c0-c1) SAL (xx110xxx) [Silvio Cesare]
- added 0xf6-0xf7 (group 3) test xx001xxx
- added 0d9 d0-ff fpu [Georg 'oxff' Wicherski]
- fixed operand types for mov segment register (8c) and movzx (0fb6 and 0fb7) [Silvio Cesare]
- partially re-licensed to BSD 3-clause style license. New BSD license was advertised on project site,
but was not progressed to the code.
- available from:
https://code.google.com/archive/p/libdasm/
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/libdasm/libdasm-beta.zip
1.5 12/27/2006
- Fixed typo "loopn" -> "loopne" (thanks Otto!)
- Added implied operand masks in instruction struct
- New instructions types
- Added "rbdasm", ruby interface for libdasm (thanks skape)
- New attributes in instructions structure:
eflags_affected and eflags_used. Defines if instruction affects
cpu eflags (thanks skape!).
- available from:
http://www.klake.org/~jt/misc/libdasm-1.5.tar.gz
https://web.archive.org/web/20120119123445/http://www.klake.org/~jt/misc/libdasm-1.5.tar.gz
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/libdasm/libdasm-1.5.tar.gz
1.4 01/06/2006
- Fixed jecxz/jcxz bug
- Fixed push/pop operand size issues
- Typo: punockldq -> punpckldq
- available from:
http://www.klake.org/~jt/misc/libdasm-1.4.tar.gz
https://web.archive.org/web/20060718012748/http://www.klake.org/~jt/misc/libdasm-1.4.tar.gz
1.3.1 10/03/2005
- Fixed a bug with word displacement addressing.
(thanks Arnaud Pilon)
- available from:
http://www.klake.org/~jt/misc/libdasm-1.3.1.tar.gz
https://web.archive.org/web/20060105052847/http://www.klake.org/~jt/misc/libdasm-1.3.1.tar.gz
1.3 10/01/2005
- Added additional flags in instruction type for
catching prefixed 2-byte instructions like 16-bit MOVZX
Thanks to Arnaud Pilon for finding out the bug.
(very nasty bug introduced with 1.2)
- Changed Jcc names to simpler ones (jnle -> jg etc.)
- Added branch hint prefixes for Jcc instructions
- Created Makefiles for gcc/msvc, updated LIB.txt
- Moved address/operand size override checks as separate
(inline) functions for better readability
- Removed useless mode check when printing immediate operand
- Added some stuff in README.txt
- ATT printing now looks prettier: no empty addressing
brackets and asterisk in front of operand if needed
- Made some room for additional operand flags
- Added new operand attribute: permission
(read/write/execute) Thanks thief!
- Moved opcode extensions to separate tables
- Added missing instructions monitor and mwait
- Renamed tables.h -> opcode_tables.h
- Some cosmetic changes (hex numbers lower case)
- Minor modifications in das.c
1.2 05/11/2005
- Fixed the mess with SSE instruction operand types
- Added new opcode tables for 3-byte opcodes
- Made major organization changes in libdasm.c/libdasm.h and
moved opcode tables in new file "tables.h"
- Added "pydasm", python interface for libdasm (thanks Ero)
- Fixed big endianess issues (thanks Ero)
- Replaced some casts with memcpy for better 64-bit support
(hope they don't affect performance too much..)
- Example "das" now prints libdasm version
- Added some macros for determining libdasm version
- Removed VERSION.txt file
- Updated examples/README.txt
1.1 04/13/2005
- Fixed some stupidness in AM_R & AM_M modrm checking
(debug/test register movs now work...)
- Added OT_d in print_operand_string,
case OPERAND_TYPE_REGISTER
- Removed example "emu" (too screwed up code...)
- Added generic MMX/SSE instruction types
- Fixed extension groups 10-15
- Print XMM reg instead of MMX if operand size is overridden
- Renamed mmx -> mm1
- Renamed fxstor -> fxrstor
- Added lot of general purpose instuction types
(type member in INSTRUCTION structure something else than
INSTRUCTION_TYPE_OTHER)
- Cleared some terminology, SIMD -> XMM
- Added fpuindex member in INSTRUCTION
- Added FPU instruction types and corrected addressing
modes of memory FPU instructions
- Negative displacements also in 32 -and 16 bit displacements
- Added displacement and immediate offset members
in OPERAND structure
- Added libdasm.def and precompiled dll
- Fixed bug in 2-byte opcode 0x7f (wrong addressing mode)
1.0 02/10/2005
- Major changes in API:
* get_instrument arguments simplified
* removed printf_instruction, use new function
get_instruction_string instead
* lots of new helper functions
* renamed parse_operand -> get_operand
- Do not use '$' in relative immediate when printing ATT
- Fixed MMX register name mmx -> mm7
- Fixed register in opcode 0x0e (es -> cs)
- Fixed operand size of opcode 0xe5 (w -> v)
- Fixed operand size of opcode 0xe7 (w -> v)
- Added segment overrides also for instructions
containing non-memory operands
- Fixed bugs in 2-byte opcodes 0x12 and 0x013
- Removed opcode member from struct INST
- Added example EMU
- Moved examples to "examples" dir
- Moved some of the stuff from .c to .h
- Initialize operand basereg as REGISTER_NOP
- Added instruction type member for most common instructions
- Fill op->reg correctly when op->type is register and
addressing mode E.
- Added extension table offset to instruction struct
- Renamed movsw -> movsd, cmpsw -> cmpsd
0.9 12/17/2004
- Initialize operand registers to REGISTER_NONE before
parsing
- Fixed opcodes 0x48-0x4f (single reg dec) opcode number
- Fixed operand flags of opcode 0x82
- New helper function get_register_type
- Removed new line printing from printf_instruction()
- Added some general information README.txt
- Fill operand.type with some sane values
- Added operand.flags
- Simplified code for non-general purpose reg decoding
- Rewrote addressing override code
- Fixed addressing mode of opcode 0x8d (E -> M)
- Changed das.c to do some buffer sanity checking
- Created simple.c
- available from:
http://www.klake.org/~jt/misc/libdasm-0.9.tar.gz
0.6 12/06/2004
- Updated instruction set to IA-32 2004
- Finally fixed operand addressing override (hopefully)
- Fixed bug with addressing mode S
0.5 12/05/2004
- Clarified licensing issues
- Fixed addressing mode M
- Support for SIMD instructions
- Changed SIMD/MMX register naming -> xmmN/mmN
- Added missing 2-byte opcodes
- Fixed opcodes 0xbe and 0xbf (esi <-> edi)
- Added couple of undocumented opcodes
0.2 12/01/2004
- Fixed address size override (opcode 0x67)
- Fixed operands for instructions "aam" and "aad"
- Added missing opcode "sysenter"
- Fill opcode byte in struct INSTRUCTION
- Fixed couple of typos in opcode names
0.1 10/06/2004
- First public release