Skip to content

Releases: pfalcon/ScratchABit

v2.0

25 Jan 11:33
Compare
Choose a tag to compare
  • 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:

screenshot

v1.8

24 Nov 09:20
Compare
Choose a tag to compare
  • 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

27 Mar 10:19
Compare
Choose a tag to compare
  • Added color to user interface and beginnings of syntax highlighting to disassembler listing (see screenshot below).
  • Warn if there're unsaved changes on quit.

screenshot

v1.6

25 Feb 19:50
Compare
Choose a tag to compare
  • 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

27 Jan 17:14
Compare
Choose a tag to compare
  • 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

03 Jan 16:06
Compare
Choose a tag to compare
  • 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

02 Sep 18:01
Compare
Choose a tag to compare
  • 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

15 Aug 21:58
Compare
Choose a tag to compare
  • "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

28 May 18:36
Compare
Choose a tag to compare
  • 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

07 Oct 21:22
Compare
Choose a tag to compare