rocky
7ef3284f17
Merge branch 'python-3.3-to-3.5' into python-2.4
2022-04-17 11:51:49 -04:00
rocky
c806ef59c6
Update scanner demo code
2022-04-17 11:41:19 -04:00
rocky
5b2db856ec
merge conflicts
2022-04-17 11:35:12 -04:00
rocky
5b657ac7d8
Merge branch 'python-3.3-to-3.5' into python-2.4
2021-10-23 08:42:32 -04:00
rocky
c68b74a9c6
new dis - Python compisons involving tuples
2021-10-15 23:39:59 -04:00
rocky
a1532bbfea
Merge branch 'master' into python-2.4
2018-02-27 10:40:40 -05:00
rocky
c43c9a19aa
Move to GPL3 license
2018-02-27 06:40:36 -05:00
rocky
0654aed6c8
Get ready for release 2.12.0
2017-09-25 20:08:50 -04:00
rocky
7b38d2f1f8
Adjust for xdis opcode JUMP_OPS. release 2.12.0
2017-09-25 20:01:31 -04:00
rocky
4c9cd5657e
Merge branch 'master' into python-2.4
2017-08-09 21:45:50 -04:00
rocky
2e164763eb
Start supporting Pypy 3.5 (5.7.1-beta)
2017-07-08 17:47:32 -04:00
rocky
a9349b8f3d
Making it run on Python 2.4 and 2.5
2016-11-23 07:53:51 -05:00
rocky
c7788e4545
disassemble -> ingest where appropriate
...
As part of tokenization for (de)parsing, we need to do something like a
disassembly, but is is really a little different.
Disassembly, strictly speaking, is done by the xdis module now.
What "ingestion" does is massage the instruction tokens to a form that is
more amenable for parsing.
In sum, ingestion is different than disassembly, although disassembly is
generally the first part of ingestion.
2016-09-04 11:43:02 -04:00
rocky
0075c8a5f7
Python 3 code cleanup
2016-07-08 22:33:42 -04:00
rocky
ebcb1d08f4
Limited support for Python 2.3
2016-06-03 10:20:52 -04:00
rocky
eefbc40eef
option to show asm and DRY.
...
Get ready for some 2.3 support
2016-06-03 09:25:20 -04:00
rocky
70c6ee946c
Work around lack of JUMP_OPs in xdis 1.1.0
2016-05-31 20:03:28 -04:00
rocky
20768266b4
use totally xdis's opcodes
...
Needs xdis 1.1.0 or greater
2016-05-31 19:53:17 -04:00
rocky
90741148ad
DRY scanners more
2016-05-28 17:07:43 -04:00
rocky
b18b3e5d47
xdis for Python 3 opcodes
2016-05-28 01:14:18 -04:00
rocky
6956e88e0e
Small changes and administrivia
2016-05-19 08:40:20 -04:00
rocky
a08ece371e
pydisassemble improvements; DRY scannners
...
disas.py:
- disassembles *all* code objects found
scanner*.py:
- no longer need to pass in version numbers; this
is obtained from the class name
- no longer pass in opcodes; this is done at
initialization from the scanner name
- all Pythoin 3 scanners support native disassembly
2016-05-18 10:58:48 -04:00
rocky
bb31629c35
pydisassemble disassemble without grammar mangling
...
Some other small cleanups as well
2016-05-15 13:55:21 -04:00
rocky
b9692c9b1f
DRY scanner34 and scanner35
...
handle 3.0..3.4 build maps as key/value pairs
2016-05-15 03:29:08 -04:00
rocky
1d9ab4e1d1
Start to DRY Python 3.4 and 3.5 scanners
2016-05-14 16:55:44 -04:00
rocky
631d7be921
Redo make_function for *, arg
...
main(*, file='foo') and things like that now work
2016-05-11 20:34:20 -04:00
rocky
61c4a711a2
DRY scanner 3.{4,5} code
2016-05-08 00:52:02 -04:00
rocky
7bf93980ce
Don't repeat next_except_jump
2016-05-03 19:39:01 -04:00
rocky
31ebe88b38
Start to DRY opcode code. Limited support for decopyling Python 3.5
2016-01-02 22:59:02 -05:00
rocky
2e91de8355
Start using our replacement for inspect.iscode
2015-12-30 18:44:27 -05:00
rocky
657eeb7de8
Towards Python3 getting try/except working more often.
2015-12-30 09:46:52 -05:00
rocky
e17d94f28f
Syntax error typo
2015-12-29 17:35:49 -05:00
rocky
116263dd8c
inspect.iscode -> hasattr for now until we write a cross-version iscode
2015-12-29 17:05:48 -05:00
rocky
820fdb4771
Fix up Python 2.x's ability to get code from Python 3.x's bytecode
2015-12-27 19:36:02 -05:00
rocky
44cd349cc7
DRY Python3 scanner code. Some cross version handling fixed.
...
Some Python 3.2 and 3.3 deparse fixes.
2015-12-27 04:43:35 -05:00
rocky
008bd79719
Fix up Python 3.2, 3.3, and 3.4 cross-version scanners
...
Try travis 2.6 and 3.3
2015-12-26 10:19:26 -05:00
rocky
7a2703634f
Fix up looping by reinstating JUMP_ABSOLUTE -> JUMP_BACK or CONTINUE
...
get jump offsets into jump attributes. Fix up 3.2 scanner paritally
and use that in 3.4 for in cross version disassembly.
2015-12-26 03:06:03 -05:00
rocky
6a49cd2c69
Bug in for loop with try. Add more of 2.7's COME_FROM statements.
...
spark.py: add tracing reduce rules. main: reduce cutsines.
Start history
2015-12-21 21:08:08 -05:00
rocky
6910e1b1b4
Python 3 decompilation from Python2
2015-12-20 18:18:40 -05:00
rocky
21920b5852
First list comprehensions from Python3. More test makefile hacking
2015-12-20 17:16:05 -05:00
rocky
93ab1f0281
Python 3.4: MAKE_FUNCTION starts to work.
2015-12-19 11:17:17 -05:00
rocky
a75bd0bf97
Python 3 bytecode handles opcodes with varargs (better). Decompiling
...
assert works. Add more of the simple tests and their compiled bytecode.
2015-12-19 03:00:39 -05:00
rocky
6bc425b45e
marshal.py: Python2 marshal code shouldn't try to turn a code object
...
into a string. parse3.py: handle both keyword and positional function
calls. scanner34.py: Remove extra level of quoting in LOAD_CONST.
Keyward handling now works cross Python 2/3. Some other spelling and doc fixes.
2015-12-18 21:20:12 -05:00
rocky
a309a77ea7
Python3: remove "return None" at end of main for uncompyle. Fix up verify for Python3. First automated Python 3.4 tests via "makecheck-3.4" in test directory.
2015-12-17 18:53:30 -05:00
rocky
87a3c5d687
Python 3.4 if ifelse decompyling now works.
2015-12-17 08:10:43 -05:00
rocky
2dc8375ed0
Supoer multiple parsers, specifically for Python2 and Python3. In the
...
process some OO cleanup and some global variable hacks removed.
2015-12-16 22:08:29 -05:00
rocky
06653a6163
On Python3.4 decompiling Python 3.4 instructions, use its
...
built-in disassembler routines. In contrast to what was here,
they most likely work!
2015-12-16 09:13:14 -05:00
rocky
8c94acfca0
Start 3.4 more stringent disassembly testing. Disassembly format has
...
changed slightly. misc small bugs.
2015-12-16 00:40:28 -05:00
rocky
683c75d37e
Split out marhsal and disassemble code and spell disassemble correctly.
...
Fix some lint issues
2015-12-15 12:10:03 -05:00
rocky
34ecd54e2c
README.rst: note addition of pydisassemble
...
Remove duplicate disassembly printing from scanners and
put common code in caller(s). Show source-code line numbers in disassembly output
and fix alignment of byte offsets.
disas.py: workaround Python 2/3 different layouts before we get to
bytecodes in a code object.
2015-12-15 01:42:07 -05:00