Skip to content

Commit 3b43eb9

Browse files
committed
* Modules regviewer
** Adds absolute "path" information and timestamp for each key
1 parent 7af485a commit 3b43eb9

File tree

4 files changed

+51
-1
lines changed

4 files changed

+51
-1
lines changed

viewer/regedit/model/regtree.py

+1
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ def selectKey(self, index):
176176
key = hive.root
177177
else:
178178
key = hive.subtree(path[1:]).current_key()
179+
self.emit(SIGNAL("keyItemSelected"), item)
179180
self.emit(SIGNAL("keySelected"), rhive, key)
180181

181182
def RegType(self, node):

viewer/regedit/regedit.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
__dff_module_regedit_version__ = "1.0.0"
1717

1818
from PyQt4 import QtCore, QtGui
19-
from PyQt4.QtCore import Qt
19+
from PyQt4.QtCore import Qt, SIGNAL
2020
from PyQt4.QtGui import QWidget, QVBoxLayout, QTreeView, QSplitter
2121

2222
from dff.api.vfs.vfs import vfs
@@ -27,6 +27,8 @@
2727
from dff.modules.regedit.model.regtree import RegTreeModel
2828
from dff.modules.regedit.view.regtreeview import RegTreeView
2929
from dff.modules.regedit.view.valueview import TableValue
30+
from dff.modules.regedit.view.keyinfoview import KeyInfoView
31+
3032

3133
class REGEDIT(QWidget, Script):
3234
def __init__(self):
@@ -49,11 +51,13 @@ def g_display(self):
4951
splitter = QSplitter(Qt.Horizontal)
5052
treemodel = RegTreeModel(self)
5153
treeview = RegTreeView(self)
54+
keyinfo = KeyInfoView(self, treemodel)
5255
tablevalue = TableValue(treemodel, self)
5356
treeview.setModel(treemodel)
5457
splitter.addWidget(treeview)
5558
splitter.addWidget(tablevalue)
5659
vlayout.addWidget(splitter)
60+
vlayout.addWidget(keyinfo)
5761
self.setLayout(vlayout)
5862
# self.regv = regviewer(self, self.mountpoints)
5963

viewer/regedit/view/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@ set(regedit_view_srcs
1717
__init__.py
1818
regtreeview.py
1919
valueview.py
20+
keyinfoview.py
2021
)
2122
install_file(regedit_view ${regedit_view_srcs})

viewer/regedit/view/keyinfoview.py

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# DFF -- An Open Source Digital Forensics Framework
2+
# Copyright (C) 2009-2011 ArxSys
3+
# This program is free software, distributed under the terms of
4+
# the GNU General Public License Version 2. See the LICENSE file
5+
# at the top of the source tree.
6+
#
7+
# See http://www.digital-forensic.org for more information about this
8+
# project. Please do not directly contact any of the maintainers of
9+
# DFF for assistance; the project provides a web site, mailing lists
10+
# and IRC channels for your use.
11+
#
12+
# Author(s):
13+
# Jeremy Mounier <jmo@digital-forensic.org>
14+
#
15+
16+
from PyQt4.QtCore import SIGNAL
17+
from PyQt4.QtGui import QLabel
18+
19+
import datetime
20+
21+
class KeyInfoView(QLabel):
22+
def __init__(self, parent, model):
23+
QLabel.__init__(self, parent)
24+
self.setMaximumHeight(30)
25+
self.__model = model
26+
self.connect(self.__model, SIGNAL("keyItemSelected"), self.keyChanged)
27+
28+
def keyChanged(self, keyitem):
29+
rhive = keyitem.getHive()
30+
path = keyitem.path
31+
hive = rhive.hive
32+
if len(path) == 1:
33+
key = hive.root
34+
else:
35+
key = hive.subtree(path[1:]).current_key()
36+
abspath = key.name
37+
pitem = keyitem.parent()
38+
while pitem != None:
39+
abspath = pitem.text() + "\\" + abspath
40+
pitem = pitem.parent()
41+
modified = str(datetime.datetime.fromtimestamp(key.modified))
42+
self.setText(abspath + "\n" + "Last modified: " + modified)
43+
del hive
44+
del rhive

0 commit comments

Comments
 (0)