Giter Club home page Giter Club logo

win10_rekall's Introduction

Rekall with Windows 10 Memory Compression

This repository contains Rekall with additions made to support Windows 10 memory compression. The system should automatically detect whether the kernel in the snapshot used memory compression. If the compression version is supported, we will automatically load an address space that supports decompression. All of this should be invisible to the user.

Supported Windows 10 Versions

OS Build Arch
Win 10 1607 x86
Win 10 1607 x64
Win 10 1703 x86
Win 10 1703 x64
Win 10 1709 x86
Win 10 1709 x64
Win 10 1803 x86
Win 10 1803 x64
Win 10 1809 x86
Win 10 1809 x64

Requirements

To install, see the Quick Start.

Verify

To verify an address space supporting Windows 10 memory compression is loaded, first run the 'modules' plugin. After it finishes, execute the command "print(session)". The result should contain a "Cache" section indicating the "default_address_space". This should report one of the following values:

  • WindowsIA32CompressedPagedMemoryPae
  • WindowsAMD64CompressedPagedMemory

Side Note

The decompression algorithms also rely on the value of the Virtual Store page file number. On default Windows 10 configurations this value is two. We parse the MiState (_MI_SYSTEM_INFORMATION) structure to parse the array of page files. If we are unsuccessful, we fall back on using the default value of two. You may override the default value by supplying a different value via the command line option:

--vspagefilenumber=<virtual_store_page_file_number>

The Rekall Forensic and Incident Response Framework (Original README)

The Rekall Framework is a completely open collection of tools, implemented in Python under the Apache and GNU General Public License, for the extraction and analysis of digital artifacts computer systems.

The Rekall distribution is available from: http://www.rekall-forensic.com/

Rekall should run on any platform that supports Python

Rekall supports investigations of the following 32bit and 64bit memory images:

  • Microsoft Windows XP Service Pack 2 and 3
  • Microsoft Windows 7 Service Pack 0 and 1
  • Microsoft Windows 8 and 8.1
  • Microsoft Windows 10
  • Linux Kernels 2.6.24 to most recent.
  • OSX 10.7-10.12.x.

Rekall also provides a complete memory sample acquisition capability for all major operating systems (see the tools directory).

Quick start

Rekall is available as a python package installable via the pip package manager. To install it, first create a virtal env, switch to it and then install rekall:

$ virtualenv  /tmp/MyEnv
New python executable in /tmp/MyEnv/bin/python
Installing setuptools, pip...done.
$ source /tmp/MyEnv/bin/activate
$ pip install --upgrade setuptools pip wheel
$ pip install rekall-agent rekall

For windows, Rekall is also available as a self contained installer package. Please check the download page for the most appropriate installer to use Rekall-Forensic.com

To install from this git repository you will need to use pip --editable and follow the correct order of installation (otherwise pip will pull released dependencies which might be older):

$ virtualenv  /tmp/MyEnv
New python executable in /tmp/MyEnv/bin/python
Installing setuptools, pip...done.
$ source /tmp/MyEnv/bin/activate
$ pip install --upgrade setuptools pip wheel
$ git clone https://github.com/google/rekall.git rekall
$ pip install --editable rekall/rekall-lib
$ pip install --editable rekall/rekall-core
$ pip install --editable rekall/rekall-agent
$ pip install --editable rekall

On Windows you will need to install the Microsoft Visual C compilers for python (for more info see this blog post http://rekall-forensic.blogspot.ch/2015/09/installing-rekall-on-windows.html)

Mailing Lists

Mailing lists to support the users and developers of Rekall can be found at the following address:

Licensing and Copyright

Copyright (C) 2007-2011 Volatile Systems Copyright 2012-2016 Google Inc. All Rights Reserved.

All Rights Reserved

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Bugs and Support

There is no support provided with Rekall. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If you think you've found a bug, please report it at:

https://github.com/google/rekall/issues

In order to help us solve your issues as quickly as possible, please include the following information when filing a bug:

  • The version of rekall you're using
  • The operating system used to run rekall
  • The version of python used to run rekall
  • The suspected operating system of the memory image
  • The complete command line you used to run rekall

History

In December 2011, a new branch within the Volatility project was created to explore how to make the code base more modular, improve performance, and increase usability. The modularity allowed Volatility to be used in GRR, making memory analysis a core part of a strategy to enable remote live forensics. As a result, both GRR and Volatility would be able to use each other's strengths.

Over time this branch has become known as the "scudette" branch or the "Technology Preview" branch. It was always a goal to try to get these changes into the main Volatility code base. But, after two years of ongoing development, the "Technology Preview" was never accepted into the Volatility trunk version.

Since it seemed unlikely these changes would be incorporated in the future, it made sense to develop the Technology Preview branch as a separate project. On December 13, 2013, the former branch was forked to create a new stand-alone project named "Rekall.โ€ This new project incorporates changes made to streamline the codebase so that Rekall can be used as a library. Methods for memory acquisition and other outside contributions have also been included that were not in the Volatility codebase.

Rekall strives to advance the state of the art in memory analysis, implementing the best algorithms currently available and a complete memory acquisition and analysis solution for at least Windows, OSX and Linux.

More documentation

Further documentation is available at http://www.rekall-forensic.com/

win10_rekall's People

Contributors

aoshiken avatar cschmitt-r7 avatar dennisieur avatar dfirfpi avatar dreckard avatar driest avatar dsweet04 avatar f-block avatar grrrrrrrrr avatar intensewiggling avatar jawilson0502 avatar jimmycasey avatar joachimmetz avatar karlvogel avatar macuisdein avatar malwaremechanic avatar mbushkov avatar nevermoe avatar ogarod avatar parkisan avatar rainaashutosh avatar raviteja7 avatar rikote avatar scudette avatar sroberts avatar the80srobot avatar tklengyel avatar wenzel avatar wiredrat avatar ziishaned avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

win10_rekall's Issues

error received with a memory dump for win 10 v1809

Hi,
I received the below error when trying to analyze a memory dump captured from a win10 v1809 x64 image captured by FTK imager. could you please help?

(MyEnv) root@kali:/media/usb# rekal -f memdump.mem imageinfo
No handlers could be found for logger "rekall.plugins.tools"
Traceback (most recent call last):
File "/tmp/MyEnv/bin/rekal", line 11, in
load_entry_point('rekall-core', 'console_scripts', 'rekal')()
File "/root/win10_rekall/rekall-core/rekall/rekal.py", line 98, in main
user_session=user_session)
File "/root/win10_rekall/rekall-core/rekall/args.py", line 432, in parse_args
command_metadata = user_session.plugins.Metadata(plugin_name)
File "/root/win10_rekall/rekall-core/rekall/session.py", line 142, in Metadata
return self.plugin_db.GetActivePlugin(name)
File "/root/win10_rekall/rekall-core/rekall/plugin.py", line 986, in GetActivePlugin
if plugin_cls.is_active(self.session):
File "/root/win10_rekall/rekall-core/rekall/plugin.py", line 434, in is_active
profile = (session.profile != None and
File "/root/win10_rekall/rekall-lib/rekall_lib/utils.py", line 1093, in get
return super(safe_property, self).get(*args, **kwargs)
File "/root/win10_rekall/rekall-core/rekall/session.py", line 1066, in profile
res = self.GetParameter("profile_obj")
File "/root/win10_rekall/rekall-core/rekall/session.py", line 768, in GetParameter
result = self._RunParameterHook(item)
File "/root/win10_rekall/rekall-core/rekall/session.py", line 807, in _RunParameterHook
result = hook.calculate()
File "/root/win10_rekall/rekall-core/rekall/plugins/guess_profile.py", line 762, in calculate
profile_obj = self.ScanProfiles()
File "/root/win10_rekall/rekall-core/rekall/plugins/guess_profile.py", line 630, in ScanProfiles
return self._ScanProfiles()
File "/root/win10_rekall/rekall-core/rekall/plugins/guess_profile.py", line 688, in _ScanProfiles
profile = method.DetectFromHit(hit, offset, address_space)
File "/root/win10_rekall/rekall-core/rekall/plugins/guess_profile.py", line 383, in DetectFromHit
return self._test_rsds(rsds)
File "/root/win10_rekall/rekall-core/rekall/plugins/guess_profile.py", line 388, in _test_rsds
profile = self.VerifyProfile("nt/GUID/%s" % rsds.GUID_AGE)
File "/root/win10_rekall/rekall-core/rekall/plugins/guess_profile.py", line 362, in VerifyProfile
return self._ApplyFindDTB(self.find_dtb_impl, profile)
File "/root/win10_rekall/rekall-core/rekall/plugins/guess_profile.py", line 99, in _ApplyFindDTB
for address_space in find_dtb_plugin.address_space_hits():
File "/root/win10_rekall/rekall-core/rekall/plugins/windows/common.py", line 130, in address_space_hits
address_space = self.VerifyHit(dtb)
File "/root/win10_rekall/rekall-core/rekall/plugins/windows/common.py", line 195, in VerifyHit
return self.CreateAS(dtb)
File "/root/win10_rekall/rekall-core/rekall/plugins/core.py", line 269, in CreateAS
profile=self.profile)
File "/root/win10_rekall/rekall-lib/rekall_lib/registry.py", line 96, in call
res = super(UniqueObjectIdMetaclass, cls).call(*args, **kwargs)
File "/root/win10_rekall/rekall-core/rekall/plugins/windows/win10_memcompression.py", line 314, in init
super().init(**kwargs)
TypeError: super() takes at least 1 argument (0 given)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.