Dump all the PE header information into human readable string.
(self, dump=None, encoding="ascii")
| 6065 | print(self.dump_info(encoding=encoding)) |
| 6066 | |
| 6067 | def dump_info(self, dump=None, encoding="ascii"): |
| 6068 | """Dump all the PE header information into human readable string.""" |
| 6069 | |
| 6070 | if dump is None: |
| 6071 | dump = Dump() |
| 6072 | |
| 6073 | warnings = self.get_warnings() |
| 6074 | if warnings: |
| 6075 | dump.add_header("Parsing Warnings") |
| 6076 | for warning in warnings: |
| 6077 | dump.add_line(warning) |
| 6078 | dump.add_newline() |
| 6079 | |
| 6080 | dump.add_header("DOS_HEADER") |
| 6081 | dump.add_lines(self.DOS_HEADER.dump()) |
| 6082 | dump.add_newline() |
| 6083 | |
| 6084 | dump.add_header("NT_HEADERS") |
| 6085 | dump.add_lines(self.NT_HEADERS.dump()) |
| 6086 | dump.add_newline() |
| 6087 | |
| 6088 | dump.add_header("FILE_HEADER") |
| 6089 | dump.add_lines(self.FILE_HEADER.dump()) |
| 6090 | |
| 6091 | image_flags = retrieve_flags(IMAGE_CHARACTERISTICS, "IMAGE_FILE_") |
| 6092 | |
| 6093 | dump.add("Flags: ") |
| 6094 | flags = [] |
| 6095 | for flag in sorted(image_flags): |
| 6096 | if getattr(self.FILE_HEADER, flag[0]): |
| 6097 | flags.append(flag[0]) |
| 6098 | dump.add_line(", ".join(flags)) |
| 6099 | dump.add_newline() |
| 6100 | |
| 6101 | if hasattr(self, "OPTIONAL_HEADER") and self.OPTIONAL_HEADER is not None: |
| 6102 | dump.add_header("OPTIONAL_HEADER") |
| 6103 | dump.add_lines(self.OPTIONAL_HEADER.dump()) |
| 6104 | |
| 6105 | dll_characteristics_flags = retrieve_flags( |
| 6106 | DLL_CHARACTERISTICS, "IMAGE_DLLCHARACTERISTICS_" |
| 6107 | ) |
| 6108 | |
| 6109 | dump.add("DllCharacteristics: ") |
| 6110 | flags = [] |
| 6111 | for flag in sorted(dll_characteristics_flags): |
| 6112 | if getattr(self.OPTIONAL_HEADER, flag[0]): |
| 6113 | flags.append(flag[0]) |
| 6114 | dump.add_line(", ".join(flags)) |
| 6115 | dump.add_newline() |
| 6116 | |
| 6117 | dump.add_header("PE Sections") |
| 6118 | |
| 6119 | section_flags = retrieve_flags(SECTION_CHARACTERISTICS, "IMAGE_SCN_") |
| 6120 | |
| 6121 | for section in self.sections: |
| 6122 | dump.add_lines(section.dump()) |
| 6123 | dump.add("Flags: ") |
| 6124 | flags = [] |
no test coverage detected