Releases: pfalcon/ScratchABit
Releases · pfalcon/ScratchABit
v2.0
- Capstone-based CPU plugin for x86 and ARM. (Follow README for Capstone installation intructions.)
- Support for "alternative ISA" during disassembly (used e.g. for handling Thumb mode for ARM).
- Update version of Pymsasid3 disassembly library with 64-bit mode fixes.
- Switch off some assertions by default, making end users' experience better (exceptions are still logged to scratchabit.log).
- More idaapi and idc modules functions.
- Documentation improvements.
- Example ELF files for the supported architectures and subarchitectures are provided (extending on a few out of the box examples available previously).
(Note: Don't install ScratchABit from tarballs automatically generated by Github - they miss git submodules. Instead, follow the README to clone directly from git.)
Screenshot:
v1.8
- Implemented disassembly export as cross-referenced HTML.
- Added builtin ARM Thumb (not Thumb2) CPU plugin (contributed by Damien George).
- Compatibility improvements and additions for IDAPython API.
- Various bugfixes and reliability improvements in analysis engine.
v1.7
v1.6
- Improvements to memory map display (shows current position by default, can switch it using memory map, etc.)
- Cosmetic UI improvements (more choices in menu, help, menu works better, etc.)
- Continued refactoring of the codebase to make plugin writing easier.
- Fixed few cases of exceptions being thrown.
v1.5
- Add "Make function" to menu and help.
- tools: Add indircalls plugin and map2scratchabit script.
- Add AddressSpace.memcpy() function to be used by plugins.
- Convert source code to Python package, for easier usage by plugins.
- Rename main start script to "ScratchABit.py".
v1.4
- Updates and fixes to UI.
- Add Preferences dialog.
- Add "Run plugin" command.
- Add "Next non-function code" command (Ctrl+F).
- Introduce a concept of subareas, an additional way to partition analysed binary (besides function). They can be used e.g. to represent object files from which a binary was linked.
- Improvements to automatic label management during analysis.
- Improvements to preciseness and reliability of control flow analysis.
- For cross-references, show a containing function.
- Improve reliability/exception handling.
- Development to allow writing scripts/plugins for ScratchABit.
- With v1.4, ScratchABit reaches the level of functionality which was originally intended for it (took 1.5 years of intermittent development). (Note that part of this functionality is being able to write plugins/scripts for less frequently used functionality. That works, but needs a lot of API refactoring to make it easier/more scalable.)
v1.3
- Added menus support using picotui 0.8, all commands are exposed via menus.
- Switched dialogs to picotui (better and more consistent look and feel).
- More precise cursor positioning for "Search text" command.
- Add support for command line arguments --script (run script/plugin on startup) and --save (run script fully in batch mode, don't go to UI).
- Save format change: information now saves split per memory area (more friendly for human reviewer and git, potentially allows to reuse information for same memory area in different projects). Old save format is recognized and upgraded.
- Many small improvements to user experience (better progress indication, terminal deinitialization, avoiding overwriting comments from different stages of loading process, etc.)
v1.2
- "Make filler" command, allowing to mark undefined bytes as unimportant filler.
- "Next undefined" command. Together with "Make filler" allows to follow reductionistic workflow, where a user searches for next undefined byte sequence and categorizes it (or skips for now, easily findable later).
- ELF loader: Fix loading of executable with REL relocations (e.g. x86) and generalize to easier support architecture-specific features.
- Number of minor UX improvements.
- Continue switching to picotui widget set.
v1.1
- New commands: "Show address map", "Save listing for the current function", etc.
- Save viewer address stack on quit/load on restart.
- Add "default plugins" map, for more automatic loading of bare executables. Add Xtensa plugin to this map.
- Various small UI improvements.
- Better handling of disassembly of objects.
- Engine: clean up handling of "offset" operands.
- Detailed changelog: v1.0...v1.1
v1.0
- Switched to picotui (https://github.com/pfalcon/picotui) for widgets, enabling better and easier to maintain UI
- Write disassembly listing to a file command ("W")