Example #1
0
    def make_table_fmtfiles(self, header, file_format):
        imgname = 'image_filename: ' + str(image_info['image_filename'])
        format_heading = 'Format: '+file_format

        # Write the headlines for the table:
        self.underline = 1
        self.set_font('Times','B',10)
        self.cell(0, 6, 'Disk Image: '+filename_from_path(imgname), ln=1)
        self.cell(0, 12, format_heading, border=0, ln=1)
        self.underline = 0

        # Set Colimn width
        w = [16,150]

        #Colors, line width and bold font
        self.set_table_hdr_attributes(w, header)

        #Color and font restoration
        self.set_table_body_attributes()
            
        fill=0
        num_files = 0

        for i in range(0, len(FiwalkReport.fiDictList)):
            if (FiwalkReport.xmlInput == True):
                mystr = FiwalkReport.fiDictList[i]['libmagic']
            else:
                mystr = bc_utils.normalize(FiwalkReport.fiDictList[i]['libmagic'])

            if mystr == file_format:
                num_files+=1
                ###self.cell(w[0],6,str(num_files),'LR',0,'L',fill)
                self.cell(w[0],6,str(FiwalkReport.fiDictList[i]['partition']),'LR',0,'L',fill)
                mystr = (FiwalkReport.fiDictList[i]['filename'])
                text = bc_pdf.bc_adjust_text(mystr, w[1])
                self.cell(w[1],6,text,'LR',0,'L',fill)
                self.ln()
                fill=not fill
                bc_pdf.bc_table_end_page(self, FiwalkReport, num_files, header, w)
        self.cell(sum(w),0,'','T')
        return
Example #2
0
    def make_table_delfiles(self, header):

        self.set_font('Times','B',16)
        self.underline = 1
        self.cell(0, 12, "Deleted Files", border=0, ln=1)
        self.underline = 0
        self.set_font('Times','B',10)
        imgname = 'Disk Image: ' + filename_from_path(image_info['image_filename'])
        self.cell(40, 7, imgname, border=0, ln=1)

        # Set Colimn width
        w = [12,150]

        #Colors, line width and bold font
        self.set_table_hdr_attributes(w, header)

        #Color and font restoration
        self.set_table_body_attributes()

        fill=0
        num_deleted_files = 0
        
        for i in range(0, len(FiwalkReport.fiDictList)):
            ## print("D: i= ", i, FiwalkReport.fiDictList[i])
            
            if FiwalkReport.fiDictList[i]['unalloc']:
                num_deleted_files+=1
                ## print("D: Deleted File: ", \
                ##  num_deleted_files,FiwalkReport.fiDictList[i]['filename'])
                partition = FiwalkReport.fiDictList[i]['partition']
                self.cell(w[0],6,str(partition),'LR',0,'L',fill)
                mystr = (FiwalkReport.fiDictList[i]['filename'])
                text = bc_pdf.bc_adjust_text(mystr, w[1])
                self.cell(w[1],6,text,'LR',0,'L',fill)
                self.ln()
                fill=not fill
                bc_pdf.bc_table_end_page(self, FiwalkReport, num_deleted_files, header, w)
             
        #Closure line
        self.cell(sum(w),0,'','T')
Example #3
0
    def bc_make_table_fileformat(self, header, dictFileFmtVal, bcFmtDict):
        # Header
        w=[120,50,20]
    
        self.set_font('Times','B',12)
        self.underline = 1
        self.cell(0, 6, 'File Format Table', ln=1)
    
        self.set_font('Times','',10)
        imgname = 'image_filename: ' + str(image_info['image_filename'])
        
        self.cell(0, 6, 'Disk Image: '+filename_from_path(imgname), ln=1)
        
        #Colors, line width and bold font
        self.set_table_hdr_attributes(w, header)
        
        #Color and font restoration
        self.set_table_body_attributes()
        
        fill=0
        self.set_font('Times','',10)

        # print("D:", dictFileFmtVal)
        # print("D:", bcFmtDict)
        self.bc_get_LongformFmt("PDP-11")

        num_items = 0
        for i in dictFileFmtVal:
            num_items += 1
            trimmed_text = bc_pdf.bc_adjust_text(self.bc_get_LongformFmt(i), w[0])
            self.cell(w[0],6,trimmed_text,'LR',0,'L',fill)
            self.cell(w[1],6,i,'LR',0,'L',fill)
            self.cell(w[2],6,str(dictFileFmtVal[i]),'LR',0,'C',fill)
            self.ln()
            fill=not fill
            bc_pdf.bc_table_end_page(self, FiwalkReport, num_items, header, w)

        # Closure line
        self.cell(sum(w),0,'','T')
Example #4
0
    def make_table(self, header):
        self.set_text_color(10)

        self.set_font('Times','I',10)
        self.underline = 0
        self.set_x(-80)
        self.cell(0, 6, "Note: ", border=0, ln=1)
        self.set_x(-80)
           
        self.cell(0, 5, "DIR: Directory:d; Regular file:r", border=0, ln=1)
        self.set_x(-80)
        self.cell(0, 5, "Size: Size of the file in bytes", border=0, ln=1)
        self.set_x(-80)
        self.cell(0, 5, "Deleted: If the file is Deleted ", border=0, ln=1)

        #Header
        w=[60,20,10,15,12,80]

        #Colors, line width and bold font
        self.set_table_hdr_attributes(w, header)

        #Color and font restoration
        self.set_table_body_attributes()
    
        fill=0

        # Warn the user if the length of a feature file is > max lines
        if PdfReport.bc_max_lines_to_report and \
             FiwalkReport.array_ind > PdfReport.bc_config_report_lines['FiwalkReport']:
            print("### WARNING ### Feature Report file has exceeded "\
                    "%d lines limit###" \
                    %(PdfReport.bc_config_report_lines['FiwalkReport']))

        self.set_font('Times','',8)
        linenum = 0
        for i in range(0, FiwalkReport.array_ind-1):
            column = 6
            cell_text = FiwalkReport.fiDictList[i]['filename']

            # Check if config file is set to not report special files
            if (PdfReport.bc_config_report_special_files == False) \
                and (bc_utils.is_special_file(cell_text)):
                ## print("D: File %s is special. Skipping" %(cell_text))
                continue
 
            # Config file sets the maxlines to 0 to report all the lines
            # or a specific number to limit the reporting lines.
            if (PdfReport.bc_config_report_lines['FiwalkReport'] != 0):
                if (linenum >= PdfReport.bc_config_report_lines['FiwalkReport']):
                    # Lines reached max: Breaking
                    print("FiwalkReport: Exceeded Maxlines: ", linenum)
                    break
                    
            linenum += 1
            
            # Just print the filename if the path exceeds cell width
            if (len(cell_text) > w[0]/2):
                cell_text = filename_from_path(cell_text)
            text = bc_pdf.bc_adjust_text(cell_text, w[0])
            self.cell(w[0],6,text,'LR',0,'L',fill)

            self.cell(w[1],column,FiwalkReport.fiDictList[i]['partition'],'LR',0,'L',fill)
            self.cell(w[2],column,FiwalkReport.fiDictList[i]['name_type'],'LR',0,'L',fill)
            self.cell(w[3],column,FiwalkReport.fiDictList[i]['filesize'],'LR',0,'L',fill)
            if FiwalkReport.fiDictList[i]['unalloc']:
                self.cell(w[4],column,'YES','LR',0,'C',fill)
            elif FiwalkReport.fiDictList[i]['alloc']:
                self.cell(w[4],column,'NO','LR',0,'C',fill)

            cell_text = str(FiwalkReport.fiDictList[i]['libmagic'])
            trimmed_text = bc_pdf.bc_adjust_text(cell_text, w[5])
            self.cell(w[5],column,trimmed_text,'LR',0,'L',fill)
            
            self.ln()
            fill=not fill

            # Start from a new page with header names once
            # reached max_entries allowed per page.
            bc_pdf.bc_table_end_page(self, FiwalkReport, i, header, w)

        # Closure line
        self.cell(sum(w),0,'','T')
Example #5
0
 def bc_write_column(self, w,h,cell_text, fill):
     text = bc_pdf.bc_adjust_text(cell_text, w)
     self.cell(w,h,text,'LR',0,'L',fill)