* Get vtrace and other unittests working on windows
* tests for vivisect.reports
* PE.carve bytes/string IO fix
* lots of fixes to the intel emulators per the lockstepper test which only runs on windows.
* utilitize some common hex functionality
* clean up the emulators a bit. tried to use safemem to fix the bug, but that didn't work as intended.
* ton of cleanup and test cleanup. and also emulator fix
* found the edge case
* Make the dirs on a save just in case
* fix issue with v_zwstr in vstruct parsing and cleanup
* Bunch of little fixups from division fixes for py2/3 stuff, a set of new intel instructions (from decoding all the way up to symboliks), to PE loading
* Docstring updates, more unittests for vstruct, extension fix, memcanvas fix for certain edge cases. Overall: incorporating feedback from @willi and @atlas
* custom log level
* envi config encoding per @willi, getting memoryview hotkeys working again for the same reason mouse was broken
Massive cutover to python3 (baseline is 3.9.1, but is also tested/working on 3.7.x). This merge is a breaking change for any downstream consumers, as the python 2->3 strings/bytes change is central. Most APIs should still work roughly as intended, as I didn't majorly re-organize the codebase, so most APIs live where they lived before. But a changelog/migration guide will be included in the next PR for this.
This PR will constitute most if not all of the v1.0.0 release that is forthcoming soon.
* initial commit of SREC file parser
* vivbin really wants to read in more than one option at a time!
* minor SREC parser bugfixes
* cleanup and logging
* updates per @rakuy0
* bugfix
* cleanup and unittest per @rakuyo
* cleanup
* updates per @rakuy0
* bugfix: imported constants
* updates to SREC and IHEX for hashing and improved parsing.
* div comment per @rakuy0
* reduce log clutter on makePointers where pointers already exist (at the same location)
* streamlined testelf, loading one workspace at a time.
* merge fail
* updates
* bugfix
* your hex and blob unittests, and a bugfix for ihex parsing.
* bugfix per @rakuyo
* bugfix (newrel) and cleanup.
* fix wrong handling of IHEX_REC_STARTSEG
* Added support for delay imports
* Refactor parseImports and parseDelayImports - behavior is unchanged
* clear lists, fix typo
* return the imports_list instead of passing it
* Store delay imports in VaSet so they can be identified among all the imports
Co-authored-by: Matt Williams <matthew.williams@fireeye.com>
Co-authored-by: todd.plantenga <>
Co-authored-by: James Gross <45212823+rakuy0@users.noreply.github.com>
A lot of cleanup things in prep for a python 3 transition. Getting rid of the old exception syntax, converting prints over to logging, cutting random scraps of code to be proper unit tests, cut away some older bits of code, etc.
This still works in python2. It's just a lot of tidying up. There are no major functionality changes.
* no more xrange
* travis ci
* cleanup per review. And a test to prove that pycparser still works as intended.
* msgpack 1.0 compat and pin requirements