14
14
class PartitionScanner (Scanner .GenScanFactory ):
15
15
""" Detects partitions in the image and creates VFS nodes for them.
16
16
"""
17
-
18
- def scan (self , fd , factories , type , mime ):
17
+ default = True
18
+ group = "Disk Forensics"
19
+
20
+ def scan (self , fd , scanners , type , mime , cookie , scores = None , ** args ):
19
21
if 'x86 boot sector' in type :
20
22
try :
21
23
parts = sk .mmls (fd )
@@ -34,7 +36,7 @@ def scan(self, fd, factories, type, mime):
34
36
names .add (name )
35
37
## Add new maps for each partition
36
38
map = CacheManager .AFF4_MANAGER .create_cache_map (
37
- self .case ,
39
+ fd .case ,
38
40
"%s/%s" % (fd .urn , name ))
39
41
40
42
map .write_from (fd .urn , SECTOR_SIZE * part [0 ],
@@ -43,24 +45,26 @@ def scan(self, fd, factories, type, mime):
43
45
map .close ()
44
46
45
47
## Now we recursively scan each object
46
- new_fd = self .fsfd .open (inode_id = map .inode_id )
48
+ fsfd = FileSystem .DBFS (fd .case )
49
+ new_fd = fsfd .open (inode_id = map .inode_id )
47
50
try :
48
51
fs = sk .skfs (new_fd )
49
52
fs .close ()
50
- dbh = DB .DBO (self .case )
53
+ dbh = DB .DBO (fd .case )
51
54
dbh .insert ("type" ,
52
55
inode_id = map .inode_id ,
53
56
mime = "application/filesystem" ,
54
57
type = "Filesystem" )
55
58
except : pass
56
59
57
- Scanner .scan_inode ( self .case , map .inode_id ,
58
- factories )
60
+ Scanner .scan_inode_distributed ( fd .case , map .inode_id ,
61
+ scanners , cookie )
59
62
60
63
61
64
class FilesystemLoader (Scanner .GenScanFactory ):
62
65
""" A Scanner to automatically load filesystem """
63
- def scan (self , fd , factories , type , mime ):
66
+ def scan (self , fd , scanners , type , mime , cookie , scores = None , ** args ):
67
+ pdb .set_trace ()
64
68
if 'Filesystem' in type :
65
69
print "Will load %s" % fd .urn
66
70
@@ -80,7 +84,7 @@ def create_map(skfs_inode, path):
80
84
skfd .seek (0 ,2 )
81
85
size = skfd .tell ()
82
86
map = CacheManager .AFF4_MANAGER .create_cache_map (
83
- self .case ,
87
+ fd .case ,
84
88
"%s/__inodes__/%s" % (fd .urn , skfs_inode ),
85
89
size = size ,
86
90
status = status )
@@ -89,7 +93,7 @@ def create_map(skfs_inode, path):
89
93
map .write_from (fd .urn , block * block_size , block_size )
90
94
91
95
CacheManager .AFF4_MANAGER .create_link (
92
- self .case ,
96
+ fd .case ,
93
97
map .urn , DB .expand ("%s/%s" ,(fd .urn , path )))
94
98
map .close ()
95
99
0 commit comments