2023.04
Highlights
Summary
esReven version 2023.04 is the second version released by eShard. It focuses on 2 areas:
- Quality-of-life updates to the product.
- Introduction of two new knowledge modules.
Quality-of-life updates to the product
- First of all, esReven is now the easiest to install it has ever been! The packaging has matured as we are taking more and more environments into account: you can now install & run esReven with an up-to-date
docker compose
plugin, on no-execute partitions, with noptrace
rights, you can configure proxies, and so on. - We also addressed a number of small issues that smooth out the web interface experience: the log out/log back in workflow now works as expected, we fixed issues that required the user to refresh the page, etc.
- Lastly, we made a few improvements to the esReven engine and its environment: the ASM stub is now easier to discover and use, and now it supports Rust as well. Bugs have been fixed in the API, etc.
One important thing to note: we merged the reven
JupyterLab kernel into the base one - there is no reven
JupyterLab kernel anymore, and you can use either kernel available (they are equivalent): both now include the reven
package.
See below for the full list of changes.
Subscription-based knowledge modules
Following the path set in the previous version, in parallel to this version we are introducing the first two subscription-based knowledge-base modules. These must be purchased separately from your esReven license, and will get new content regularly.
Advanced Usage How-tos
These how-tos will provide straightforward guides that cover situations where translating the intent of the reverse engineer into a set of tasks is not trivial. They are intended for those who wish to refine their esReven skills to tackle advanced use cases and be more efficient with the platform.
At the time of this release, we have focused on addressing advanced recording situations, as well as networking options:
- Recording non-trivial environments: discover how to efficiently record many use-cases with general strategies and actionable information to get you started quickly.
- Overview of the tools at our disposal for recording.
- Strategy: recording a standalone application as it loads data (file, URL, etc.).
- Strategy: recording a standalone application as I communicate with it (via IPC, network or other).
- Strategy: the crash (or procedure) is non-deterministic or not 100% reliable.
- How to: every method to stop the recording when a process exits, crashes, or when the OS crashes.
- How to to inject code in a program to control its behavior or its recording.
- Advanced target VM networking: discover various networking possiblities for your target VM and the proper QEMU options you can use, covering more advanced use cases than the default.
Applied Algorithms & Tools
In this module, we introduce comprehensive tools built on top of the esReven framework. These tools will help you better leverage esReven to answer questions more effectively, while teaching you about the approach taken.
Tools are documented such that they can be adapted if necessary, and, when applicable, provide their functionality as a library so other scripts can be built on top of them.
At the time of this release, we have focused on extracting valuable information from Windows traces with two important tools:
- Process activity (Windows): This tool notebook presents the activity on files on a trace: file creation, accesses, etc.
- File Activity (Windows): This tool notebook presents an overview of the general process activity in a trace: process starts, exits, crashes.
Along with the tools come Python libraries to exploit the data in your own scripts, as well as knowledge notebooks that explain the approach taken.
Changes and improvements
General packaging
- Remove
ptrace
requirement & checks as it's not needed anymore - Update to Docker Compose V2
- Support installation on no-exec partitions.
- Do not require
sudo
password when installation user in the docker group - New upgrade documentation
esReven Web Interface
- Reduced RAM usage of login system esConnect.
- Fixed "Incorrect Application url fetching" token issue when navigating between applications.
- Fixed behavior on air-gapped system: do not fetch fonts on external hosts.
- Better logout experience: the user can now immediately log back in esReven, instead of in the underlying esConnect application.
Python API
- esReven's Python API is now included in the default base kernel of JupyterLab - no need to select a separate kernel anymore.
- Linting now follows latest
black
version. - Type hints are now available for the
reven2
Python module to IDEs & other tools, thanks to thepy.typed
file that is now part of the packaging. - Fixed an API call in
preview.project_manager
'sexport_scenario
. - Python wheel are now built & shipped to be PEP440-compatible. This will make the package easier to install with recent
setuptools
.
Reven engine & project manager
- Fixed loading of the
QUASAR_WEBSOCKIFY_PUBLIC_PORT
environment variable, used to configure one of the port that msut to be open to users. - Improved ASM stubs:
- Better README file
- Add Rust compatibility with a new Rust module
- Rename
ASM stubs
entry to mention all supported languages
- Internal binary wrapper system has been simplified.
- Unused text tool
reven_taint
binary is not shipped anymore. - Reven GUI Axion can now build on more recent
gcc
- Linting now follows latest
black
version.
Knowledge modules
- (Bundled) "VulnAnalysis": Add instructions on how to configure WinDbg to fetch Chrome's PDB files
- (Bundled) "GettingStarted": Provide archived link to now-removed MSEdge Microsft VMs.