From 7bbfdf094e9b2bfb2f075adc57572392701cf25b Mon Sep 17 00:00:00 2001 From: Logan Lamb Date: Wed, 7 Nov 2012 22:42:55 -0500 Subject: [PATCH 01/24] small fix to is_pe so that it will work after seeking elsewhere in the file --- lib/libpe/pe.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/libpe/pe.c b/lib/libpe/pe.c index d3c4f4ea..4e88ada2 100644 --- a/lib/libpe/pe.c +++ b/lib/libpe/pe.c @@ -384,6 +384,7 @@ bool is_pe(PE_FILE *pe) if (pe->handle == NULL) return false; + rewind(pe->handle); if (!fread(&header, sizeof(WORD), 1, pe->handle)) return false; From 46a81534b8839c44724b0bbb7046424b920bd816 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Thu, 8 Nov 2012 02:42:34 -0200 Subject: [PATCH 02/24] libpe: Fix possible memory leaks. --- lib/libpe/pe.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/lib/libpe/pe.c b/lib/libpe/pe.c index d3c4f4ea..045e4a19 100644 --- a/lib/libpe/pe.c +++ b/lib/libpe/pe.c @@ -210,8 +210,6 @@ bool pe_get_sections(PE_FILE *pe) bool pe_get_directories(PE_FILE *pe) { - IMAGE_DATA_DIRECTORY **dirs; - if (!pe) return false; @@ -230,19 +228,27 @@ bool pe_get_directories(PE_FILE *pe) if (pe->num_directories > 32) return false; - dirs = xmalloc(sizeof(IMAGE_DATA_DIRECTORY *) * pe->num_directories); + const size_t directories_size = sizeof(IMAGE_DATA_DIRECTORY *) * pe->num_directories; + + pe->directories_ptr = xmalloc(directories_size); + if (!pe->directories_ptr) + return false; + + // Zero out the entire block, otherwise if one allocation fails for dirs[i], + // pe_deinit() will try to free wild pointers. This of course does not take + // into consideration that an allocation failure will make the process die. + memset(pe->directories_ptr, 0, directories_size); for (unsigned int i=0; i < pe->num_directories; i++) { - dirs[i] = xmalloc(sizeof(IMAGE_DATA_DIRECTORY)); - if (!fread(dirs[i], sizeof(IMAGE_DATA_DIRECTORY), 1, pe->handle)) + pe->directories_ptr[i] = xmalloc(sizeof(IMAGE_DATA_DIRECTORY)); + if (!fread(pe->directories_ptr[i], sizeof(IMAGE_DATA_DIRECTORY), 1, pe->handle)) return false; } pe->addr_sections = ftell(pe->handle); - pe->directories_ptr = dirs; - if (!pe->addr_sections || !pe->directories_ptr) + if (!pe->addr_sections) return false; return true; @@ -269,7 +275,11 @@ bool pe_get_optional(PE_FILE *pe) if (fseek(pe->handle, pe->addr_optional, SEEK_SET)) return false; - header = xmalloc(sizeof(IMAGE_OPTIONAL_HEADER)); + pe->optional_ptr = xmalloc(sizeof(IMAGE_OPTIONAL_HEADER)); + if (!pe->optional_ptr) + return false; + + header = pe->optional_ptr; switch (pe->architecture) { @@ -298,10 +308,9 @@ bool pe_get_optional(PE_FILE *pe) return false; } - pe->optional_ptr = header; pe->addr_directories = ftell(pe->handle); - if (!pe->optional_ptr || !pe->addr_directories) + if (!pe->addr_directories) return false; return true; From bbe12bd663c95786975e9d7945672f0d66e30648 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Thu, 8 Nov 2012 02:55:52 -0200 Subject: [PATCH 03/24] libpe: Introduce new function pe_get_data_directory. --- lib/libpe/pe.c | 17 +++++++++++++++-- lib/libpe/pe.h | 35 +++++++++++++++++++---------------- src/pescan.c | 12 +++++++----- src/readpe.c | 16 ++++++++++------ 4 files changed, 51 insertions(+), 29 deletions(-) diff --git a/lib/libpe/pe.c b/lib/libpe/pe.c index 045e4a19..308cbd80 100644 --- a/lib/libpe/pe.c +++ b/lib/libpe/pe.c @@ -155,9 +155,13 @@ bool pe_get_resource_directory(PE_FILE *pe, IMAGE_RESOURCE_DIRECTORY *dir) if (!pe_get_directories(pe)) return false; - if (pe->directories_ptr[IMAGE_DIRECTORY_ENTRY_RESOURCE]->Size > 0) + IMAGE_DATA_DIRECTORY *directory = pe_get_data_directory(pe, IMAGE_DIRECTORY_ENTRY_RESOURCE); + if (!directory) + return false; + + if (directory->Size > 0) { - pe->addr_rsrc_dir = rva2ofs(pe, pe->directories_ptr[IMAGE_DIRECTORY_ENTRY_RESOURCE]->VirtualAddress); + pe->addr_rsrc_dir = rva2ofs(pe, directory->VirtualAddress); if (fseek(pe->handle, pe->addr_rsrc_dir, SEEK_SET)) return false; @@ -169,6 +173,15 @@ bool pe_get_resource_directory(PE_FILE *pe, IMAGE_RESOURCE_DIRECTORY *dir) return false; } +IMAGE_DATA_DIRECTORY *pe_get_data_directory(PE_FILE *pe, ImageDirectoryEntry entry) +{ + if (!pe || !pe->directories_ptr || entry > pe->num_directories) + return NULL; + + return pe->directories_ptr[entry]; +} + + bool pe_get_sections(PE_FILE *pe) { IMAGE_SECTION_HEADER **sections; diff --git a/lib/libpe/pe.h b/lib/libpe/pe.h index 0169e161..0f62ad27 100644 --- a/lib/libpe/pe.h +++ b/lib/libpe/pe.h @@ -69,22 +69,24 @@ typedef uint64_t QWORD; #define RT_TOOLBAR 241 // configuration of toolbars // directory Entries -#define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Export Directory -#define IMAGE_DIRECTORY_ENTRY_IMPORT 1 // Import Directory -#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Resource Directory -#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 // Exception Directory -#define IMAGE_DIRECTORY_ENTRY_SECURITY 4 // Security Directory -#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 // Base Relocation Table -#define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // Debug Directory -// IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // (X86 usage) -#define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE 7 // Architecture Specific Data -#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 // RVA of GP -#define IMAGE_DIRECTORY_ENTRY_TLS 9 // TLS Directory -#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Load Configuration Directory -#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 // Bound Import Directory in headers -#define IMAGE_DIRECTORY_ENTRY_IAT 12 // Import Address Table -#define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 // Delay Load Import Descriptors -#define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 // COM Runtime descriptor +typedef enum { + IMAGE_DIRECTORY_ENTRY_EXPORT = 0, // Export Directory + IMAGE_DIRECTORY_ENTRY_IMPORT = 1, // Import Directory + IMAGE_DIRECTORY_ENTRY_RESOURCE = 2, // Resource Directory + IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3, // Exception Directory + IMAGE_DIRECTORY_ENTRY_SECURITY = 4, // Security Directory + IMAGE_DIRECTORY_ENTRY_BASERELOC = 5, // Base Relocation Table + IMAGE_DIRECTORY_ENTRY_DEBUG = 6, // Debug Directory + //IMAGE_DIRECTORY_ENTRY_COPYRIGHT = 7, // (X86 usage) + IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7, // Architecture Specific Data + IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8, // RVA of GP + IMAGE_DIRECTORY_ENTRY_TLS = 9, // TLS Directory + IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10, // Load Configuration Directory + IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11, // Bound Import Directory in headers + IMAGE_DIRECTORY_ENTRY_IAT = 12, // Import Address Table + IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13, // Delay Load Import Descriptors + IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14 // COM Runtime descriptor +} ImageDirectoryEntry; #pragma pack(push, 1) @@ -429,6 +431,7 @@ bool pe_get_dos(PE_FILE *pe, IMAGE_DOS_HEADER *header); //bool pe_get_tls_callbacks(PE_FILE *pe); bool pe_get_resource_directory(PE_FILE *pe, IMAGE_RESOURCE_DIRECTORY *dir); bool pe_get_resource_entries(PE_FILE *pe); +IMAGE_DATA_DIRECTORY *pe_get_data_directory(PE_FILE *pe, ImageDirectoryEntry entry); IMAGE_SECTION_HEADER* pe_rva2section(PE_FILE *pe, QWORD rva); diff --git a/src/pescan.c b/src/pescan.c index e12a2023..59d80d7c 100644 --- a/src/pescan.c +++ b/src/pescan.c @@ -143,11 +143,13 @@ static DWORD pe_get_tls_directory(PE_FILE *pe) if (pe->num_directories > 32) return 0; - for (unsigned int i=0; (i < pe->num_directories && pe->directories_ptr[i]); i++) - { - if ((i == IMAGE_DIRECTORY_ENTRY_TLS) && pe->directories_ptr[i]->Size > 0) - return pe->directories_ptr[i]->VirtualAddress; - } + IMAGE_DATA_DIRECTORY *directory = pe_get_data_directory(pe, IMAGE_DIRECTORY_ENTRY_TLS); + if (!directory) + return false; + + if (directory->Size > 0) + return directory->VirtualAddress; + return 0; } diff --git a/src/readpe.c b/src/readpe.c index de75e212..b3d9377b 100644 --- a/src/readpe.c +++ b/src/readpe.c @@ -225,7 +225,7 @@ static void print_directories(PE_FILE *pe) output("Data directories", NULL); - if (! pe->directories_ptr) + if (!pe->directories_ptr) return; for (i=0; i < pe->num_directories && i < 16; i++) @@ -645,9 +645,11 @@ static void print_exports(PE_FILE *pe) IMAGE_EXPORT_DIRECTORY exp; DWORD rva, aux, faddr = 0; - va = pe->directories_ptr[IMAGE_DIRECTORY_ENTRY_EXPORT] ? - pe->directories_ptr[IMAGE_DIRECTORY_ENTRY_EXPORT]->VirtualAddress : 0; + IMAGE_DATA_DIRECTORY *directory = pe_get_data_directory(pe, IMAGE_DIRECTORY_ENTRY_EXPORT); + if (!directory) + EXIT_ERROR("export directory not found") + va = directory->VirtualAddress; if (!va) EXIT_ERROR("export directory not found"); @@ -697,15 +699,17 @@ static void print_imports(PE_FILE *pe) char dllname[MAX_DLL_NAME]; unsigned int i; - va = pe->directories_ptr[IMAGE_DIRECTORY_ENTRY_IMPORT] ? - pe->directories_ptr[IMAGE_DIRECTORY_ENTRY_IMPORT]->VirtualAddress : 0; + IMAGE_DATA_DIRECTORY *directory = pe_get_data_directory(pe, IMAGE_DIRECTORY_ENTRY_IMPORT); + if (!directory) + EXIT_ERROR("import directory not found") + va = directory->VirtualAddress; if (!va) EXIT_ERROR("import directory not found"); if (fseek(pe->handle, rva2ofs(pe, va), SEEK_SET)) EXIT_ERROR("error seeking file"); - + memset(&id, 0, sizeof(id)); memset(&dllname, 0, sizeof(dllname)); From fcfe94619843a3adaca226261d806fa086cbf57d Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Thu, 8 Nov 2012 18:49:45 -0200 Subject: [PATCH 04/24] libpe: Add very basic support for the security directory. --- lib/libpe/dir_entry_security.h | 54 +++++++++++++++++ lib/libpe/pe.h | 10 +--- lib/libpe/types.h | 13 +++++ src/pesec.c | 103 +++++++++++++++++++++++++++++++-- 4 files changed, 167 insertions(+), 13 deletions(-) create mode 100644 lib/libpe/dir_entry_security.h create mode 100644 lib/libpe/types.h diff --git a/lib/libpe/dir_entry_security.h b/lib/libpe/dir_entry_security.h new file mode 100644 index 00000000..e89e98ee --- /dev/null +++ b/lib/libpe/dir_entry_security.h @@ -0,0 +1,54 @@ +#ifndef LIBPE_DIR_ENTRY_SECURITY_H +#define LIBPE_DIR_ENTRY_SECURITY_H + +#include "types.h" + +#define ANYSIZE_ARRAY 1 + +// #define WIN_TRUST_MAJOR_REVISION_MASK 0xFFFF0000 +// #define WIN_TRUST_MINOR_REVISION_MASK 0x0000FFFF +// #define WIN_TRUST_REVISION_1_0 0x00010000 + +typedef enum { + // Version 1, legacy version of the Win_Certificate + // structure. It is supported only for purposes of + // verifying legacy Authenticode signatures + WIN_CERT_REVISION_1_0 = 0x0100, + // Version 2 is the current version of the Win_Certificate structure. + WIN_CERT_REVISION_2_0 = 0x0200 +} CertRevision; + +typedef enum { + WIN_CERT_TYPE_X509 = 0x0001, // bCertificate contains an X.509 (Certificate) + WIN_CERT_TYPE_PKCS_SIGNED_DATA = 0x0002, // bCertificate contains a PKCS#7 (SignedData structure) + WIN_CERT_TYPE_RESERVED_1 = 0x0003, // Reserved + WIN_CERT_TYPE_TS_STACK_SIGNED = 0x0004 // Terminal Server Protocol Stack (Certificate signing) +} CertType; + +// Originally declared in Wintrust.h +typedef struct _WIN_CERTIFICATE { + // Specified the size, in bytes, of the WIN_CERTIFICATE structure, + // including the data in bCertificate. + DWORD dwLength; + // Indicates the revision of the structure. + WORD wRevision; + // Specifies the type of certificate. + // This member can be one of the following values: + // Value Meaning + // ---------------------------------------------------------------------------------------- + // WIN_CERT_TYPE_X509 The certificate contains an X.509 Certificate. + // WIN_CERT_TYPE_PKCS_SIGNED_DATA The certificate contains a PKCS SignedData structure. + // WIN_CERT_TYPE_RESERVED_1 Reserved. + // WIN_CERT_TYPE_TS_STACK_SIGNED + WORD wCertificateType; + // A variable-sized array of bytes that contains the certificate data. + BYTE bCertificate[ANYSIZE_ARRAY]; +} WIN_CERTIFICATE; + +typedef struct _CRYPTOAPI_BLOB { + DWORD cbData; + BYTE *pbData; +} CRYPT_DATA_BLOB; + + +#endif diff --git a/lib/libpe/pe.h b/lib/libpe/pe.h index 0f62ad27..97ea2f0e 100644 --- a/lib/libpe/pe.h +++ b/lib/libpe/pe.h @@ -20,22 +20,16 @@ #ifndef LIBPE_H #define LIBPE_H -#include #include -#include #include #include +#include "types.h" +#include "dir_entry_security.h" #define PE32 0x10b #define PE64 0x20b #define MZ 0x5a4d -typedef uint32_t DWORD; -typedef int32_t LONG; -typedef uint8_t BYTE; -typedef uint16_t WORD; -typedef uint64_t QWORD; - #define MAX_SECTIONS 96 // section name size diff --git a/lib/libpe/types.h b/lib/libpe/types.h new file mode 100644 index 00000000..dba5e769 --- /dev/null +++ b/lib/libpe/types.h @@ -0,0 +1,13 @@ +#ifndef LIBPE_TYPES_H +#define LIBPE_TYPES_H + +#include +#include + +typedef uint32_t DWORD; +typedef int32_t LONG; +typedef uint8_t BYTE; +typedef uint16_t WORD; +typedef uint64_t QWORD; + +#endif diff --git a/src/pesec.c b/src/pesec.c index 953f07e5..1333e249 100644 --- a/src/pesec.c +++ b/src/pesec.c @@ -20,11 +20,10 @@ */ #include "pesec.h" +#include static int ind; - - static void usage() { printf("Usage: %s [OPTIONS] FILE\n" @@ -111,6 +110,95 @@ static bool stack_cookies(PE_FILE *pe) return (found == sizeof(mvs2010)); } +static int roundUp(int numToRound, int multiple) +{ + if (multiple == 0) + return 0; + return (numToRound + multiple - 1) / multiple * multiple; +} + +static int parse_pkcs7_data(const CRYPT_DATA_BLOB *blob) { + int result = 0; + return result; +} + +static void print_certificates(PE_FILE *pe) +{ + if (!pe_get_directories(pe)) + EXIT_ERROR("unable to read the Directories entry from Optional header"); + + const IMAGE_DATA_DIRECTORY * const directory = pe_get_data_directory(pe, IMAGE_DIRECTORY_ENTRY_SECURITY); + if (directory == NULL) { + printf("security directory not found\n"); + // TODO: Should we exit using EXIT_ERROR? + return; + } + + if (directory->VirtualAddress == 0 || directory->Size == 0) + return; + + DWORD fileOffset = directory->VirtualAddress; // This a file pointer rather than a common RVA. + + printf("Certificates:\n"); + while (fileOffset - directory->VirtualAddress < directory->Size) + { + // Read the whole size of this WIN_CERTIFICATE + if (fseek(pe->handle, fileOffset, SEEK_SET)) + EXIT_ERROR("unable to seek"); + + DWORD dwCertLen = 0; + + if (!fread(&dwCertLen, sizeof(DWORD), 1, pe->handle)) + EXIT_ERROR("unable to read"); + + // Read the whole WIN_CERTIFICATE + if (fseek(pe->handle, fileOffset, SEEK_SET)) + EXIT_ERROR("unable to seek"); + + WIN_CERTIFICATE *cert = xmalloc(dwCertLen); + + if (!fread(cert, dwCertLen, 1, pe->handle)) { + free(cert); + EXIT_ERROR("unable to read"); + } + + printf(" length %d bytes\n", cert->dwLength); + printf(" revision %s\n", cert->wRevision == WIN_CERT_REVISION_1_0 ? "1" : + cert->wRevision == WIN_CERT_REVISION_2_0 ? "2" : "unknown"); + printf(" type %x", cert->wCertificateType); + switch (cert->wCertificateType) + { + case WIN_CERT_TYPE_X509: printf(" (X509)"); break; + case WIN_CERT_TYPE_PKCS_SIGNED_DATA: printf(" (PKCS_SIGNED_DATA)"); break; + case WIN_CERT_TYPE_TS_STACK_SIGNED: printf(" (TS_STACK_SIGNED)"); break; + } + printf("\n"); + + fileOffset += roundUp(cert->dwLength, 8); // Offset to next certificate. + + if (fileOffset - directory->VirtualAddress > directory->Size) + EXIT_ERROR("Either the attribute certificate table or the Size field is corrupted"); + + switch (cert->wCertificateType) { + case WIN_CERT_TYPE_X509: + EXIT_ERROR("WIN_CERT_TYPE_X509 is not implemented"); + case WIN_CERT_TYPE_PKCS_SIGNED_DATA: + { + CRYPT_DATA_BLOB p7data; + p7data.cbData = cert->dwLength - (3 * sizeof(DWORD)); + p7data.pbData = cert->bCertificate; + parse_pkcs7_data(&p7data); + break; + } + case WIN_CERT_TYPE_TS_STACK_SIGNED: + EXIT_ERROR("WIN_CERT_TYPE_TS_STACK_SIGNED is not implemented"); + } + + free(cert); + } + printf("\n"); +} + int main(int argc, char *argv[]) { PE_FILE pe; @@ -125,8 +213,10 @@ int main(int argc, char *argv[]) } parse_options(argc, argv); // opcoes - - if ((fp = fopen(argv[argc-1], "rb")) == NULL) + + const char *path = argv[argc-1]; + + if ((fp = fopen(path, "rb")) == NULL) EXIT_ERROR("file not found or unreadable"); pe_init(&pe, fp); // inicializa o struct pe @@ -159,7 +249,10 @@ int main(int argc, char *argv[]) // stack cookies snprintf(field, MAX_MSG, "Stack cookies (EXPERIMENTAL)"); output(field, stack_cookies(&pe) ? "yes" : "no"); - + + // certificates + print_certificates(&pe); + // libera a memoria pe_deinit(&pe); From f8ace9ef656403b3cace386c85d65ae2e2532840 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Thu, 8 Nov 2012 18:57:41 -0200 Subject: [PATCH 05/24] libpe: Fix indentation and line-breaks. --- lib/libpe/pe.c | 26 ++++++++++++------------ lib/libpe/pe.h | 54 +++++++++++++++++++++++++------------------------- src/pescan.c | 42 +++++++++++++++++++-------------------- src/pesec.c | 25 ++++++++++++----------- src/readpe.c | 38 +++++++++++++++++------------------ 5 files changed, 93 insertions(+), 92 deletions(-) diff --git a/lib/libpe/pe.c b/lib/libpe/pe.c index 308cbd80..766aba11 100644 --- a/lib/libpe/pe.c +++ b/lib/libpe/pe.c @@ -34,7 +34,7 @@ void *xmalloc(size_t size) return new_mem; } - + // return a rva of given offset DWORD ofs2rva(PE_FILE *pe, DWORD ofs) { @@ -48,7 +48,7 @@ DWORD ofs2rva(PE_FILE *pe, DWORD ofs) ofs < (pe->sections_ptr[i]->PointerToRawData + pe->sections_ptr[i]->SizeOfRawData)) return ofs + pe->sections_ptr[i]->VirtualAddress; } - return 0; + return 0; } QWORD rva2ofs(PE_FILE *pe, QWORD rva) @@ -57,7 +57,7 @@ QWORD rva2ofs(PE_FILE *pe, QWORD rva) return 0; for (unsigned int i=0; i < pe->num_sections; i++) - { + { if (rva >= pe->sections_ptr[i]->VirtualAddress && rva < (pe->sections_ptr[i]->VirtualAddress + pe->sections_ptr[i]->SizeOfRawData)) return rva - pe->sections_ptr[i]->VirtualAddress + pe->sections_ptr[i]->PointerToRawData; @@ -107,7 +107,7 @@ IMAGE_SECTION_HEADER* pe_get_section(PE_FILE *pe, const char *section_name) if (!pe->num_sections || pe->num_sections > MAX_SECTIONS) return NULL; - + for (unsigned int i=0; i < pe->num_sections; i++) { if (memcmp(pe->sections_ptr[i]->Name, section_name, strlen(section_name)) == 0) @@ -122,10 +122,10 @@ bool pe_get_resource_entries(PE_FILE *pe) if (!pe) return false; - + if (pe->rsrc_entries_ptr) return pe->rsrc_entries_ptr; - + if (!pe_get_resource_directory(pe, &dir)) return false; @@ -135,11 +135,11 @@ bool pe_get_resource_entries(PE_FILE *pe) return false; pe->rsrc_entries_ptr = xmalloc(sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY) * pe->num_rsrc_entries); - + for (unsigned int i=0; i < pe->num_rsrc_entries; i++) { pe->rsrc_entries_ptr[i] = xmalloc(sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY)); - + if (!fread(pe->rsrc_entries_ptr[i], sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY), 1, pe->handle)) return false; } @@ -368,7 +368,7 @@ bool pe_get_dos(PE_FILE *pe, IMAGE_DOS_HEADER *header) { if (!pe) return false; - + if (!pe->handle) return false; @@ -386,10 +386,10 @@ QWORD pe_get_size(PE_FILE *pe) { if (pe->size) return pe->size; - + if (fseek(pe->handle, 0, SEEK_END)) return 0; - + pe->size = ftell(pe->handle); rewind(pe->handle); return pe->size; @@ -427,9 +427,9 @@ bool is_pe(PE_FILE *pe) return false; if (pesig != 0x4550) // "PE\0\0" - return false; + return false; - rewind(pe->handle); + rewind(pe->handle); return true; } diff --git a/lib/libpe/pe.h b/lib/libpe/pe.h index 97ea2f0e..ee57665a 100644 --- a/lib/libpe/pe.h +++ b/lib/libpe/pe.h @@ -291,29 +291,29 @@ typedef struct _IMAGE_TLS_DIRECTORY64 { } IMAGE_TLS_DIRECTORY64; typedef struct _IMAGE_EXPORT_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD Name; - DWORD Base; - DWORD NumberOfFunctions; - DWORD NumberOfNames; - DWORD AddressOfFunctions; - DWORD AddressOfNames; - DWORD AddressOfNameOrdinals; - } IMAGE_EXPORT_DIRECTORY; + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + DWORD Name; + DWORD Base; + DWORD NumberOfFunctions; + DWORD NumberOfNames; + DWORD AddressOfFunctions; + DWORD AddressOfNames; + DWORD AddressOfNameOrdinals; +} IMAGE_EXPORT_DIRECTORY; typedef struct _IMAGE_IMPORT_DESCRIPTOR { - union { - DWORD Characteristics; // 0 for terminating null import descriptor - DWORD OriginalFirstThunk; // RVA to original unbound IAT - } u1; - DWORD TimeDateStamp; - DWORD ForwarderChain; // -1 if no forwarders - DWORD Name; - // RVA to IAT (if bound this IAT has actual addresses) - DWORD FirstThunk; + union { + DWORD Characteristics; // 0 for terminating null import descriptor + DWORD OriginalFirstThunk; // RVA to original unbound IAT + } u1; + DWORD TimeDateStamp; + DWORD ForwarderChain; // -1 if no forwarders + DWORD Name; + // RVA to IAT (if bound this IAT has actual addresses) + DWORD FirstThunk; } IMAGE_IMPORT_DESCRIPTOR; // import name entry @@ -343,18 +343,18 @@ typedef struct _IMAGE_THUNK_DATA32 { typedef struct _PE_FILE { FILE *handle; - + bool isdll; WORD e_lfanew; WORD architecture; QWORD entrypoint; QWORD imagebase; QWORD size; - + WORD num_sections; WORD num_directories; WORD num_rsrc_entries; - + WORD addr_sections; WORD addr_directories; WORD addr_dos; @@ -362,7 +362,7 @@ typedef struct _PE_FILE WORD addr_coff; WORD addr_rsrc_sec; WORD addr_rsrc_dir; - + // pointers (will be freed if needed) IMAGE_OPTIONAL_HEADER *optional_ptr; IMAGE_SECTION_HEADER **sections_ptr; @@ -370,12 +370,12 @@ typedef struct _PE_FILE //IMAGE_TLS_DIRECTORY32 *tls_ptr; IMAGE_RESOURCE_DIRECTORY *rsrc_ptr; IMAGE_RESOURCE_DIRECTORY_ENTRY **rsrc_entries_ptr; - + } PE_FILE; #pragma pack(pop) -static const RESOURCE_ENTRY resource_types[] = +static const RESOURCE_ENTRY resource_types[] = { {"RT_CURSOR", 1}, {"RT_BITMAP", 2}, diff --git a/src/pescan.c b/src/pescan.c index 59d80d7c..e85353b6 100644 --- a/src/pescan.c +++ b/src/pescan.c @@ -1,6 +1,6 @@ /* pev - the PE file analyzer toolkit - + pescan.c - search for suspicious things in PE files Copyright (C) 2012 pev authors @@ -49,7 +49,7 @@ static void parse_options(int argc, char *argv[]) {"verbose", no_argument, NULL, 'v'}, { NULL, 0, NULL, 0 } }; - + memset(&config, 0, sizeof(config)); while ((c = getopt_long(argc, argv, short_options, @@ -63,13 +63,13 @@ static void parse_options(int argc, char *argv[]) case 1: // --help option usage(); exit(EXIT_SUCCESS); - + case 'f': parse_format(optarg); break; - + case 'v': config.verbose = true; break; - + default: fprintf(stderr, "%s: try '--help' for more information\n", PROGRAM); exit(EXIT_FAILURE); @@ -104,7 +104,7 @@ static bool normal_dos_stub(PE_FILE *pe, DWORD *stub_offset) if (!fread(&data, sizeof(data), 1, pe->handle)) EXIT_ERROR("unable to read DOS stub"); - + if (memcmp(dos_stub, data, sizeof(data))==0) return true; @@ -162,12 +162,12 @@ static int pe_get_tls_callbacks(PE_FILE *pe) { QWORD tls_addr = 0; int ret = 0; - + if (!pe) return 0; tls_addr = pe_get_tls_directory(pe); - + if (!tls_addr || !pe_get_sections(pe)) return 0; @@ -189,7 +189,7 @@ static int pe_get_tls_callbacks(PE_FILE *pe) IMAGE_TLS_DIRECTORY32 tlsdir32; if (!fread(&tlsdir32, sizeof(tlsdir32), 1, pe->handle)) - return 0; + return 0; if (! (tlsdir32.AddressOfCallBacks & pe->optional_ptr->_32->ImageBase)) break; @@ -203,7 +203,7 @@ static int pe_get_tls_callbacks(PE_FILE *pe) IMAGE_TLS_DIRECTORY64 tlsdir64; if (!fread(&tlsdir64, sizeof(tlsdir64), 1, pe->handle)) - return 0; + return 0; if (! (tlsdir64.AddressOfCallBacks & pe->optional_ptr->_64->ImageBase)) break; @@ -217,14 +217,14 @@ static int pe_get_tls_callbacks(PE_FILE *pe) ret = -1; // tls directory and section exists do - { + { fread(&funcaddr, sizeof(int), 1, pe->handle); if (funcaddr) { char value[MAX_MSG]; ret = ++j; // function found - + if (config.verbose) { snprintf(value, MAX_MSG, "%#x", funcaddr); @@ -286,7 +286,7 @@ static void print_strange_sections(PE_FILE *pe) for (unsigned i=0; i < pe->num_sections && i <= 65535; i++, aux=false) { memset(&value, 0, sizeof(value)); - + if (!strisprint((const char *)pe->sections_ptr[i]->Name)) stradd(value, "suspicious name", &aux); @@ -313,7 +313,7 @@ static bool normal_imagebase(PE_FILE *pe) if (!pe->imagebase) pe_get_optional(pe); - return (pe->imagebase == 0x100000000 || + return (pe->imagebase == 0x100000000 || pe->imagebase == 0x1000000 || pe->imagebase == 0x400000); } @@ -351,13 +351,13 @@ double calculate_entropy(const unsigned int byte_count[256], const int total_len { double entropy = 0.; const double log_2 = 1.44269504088896340736; - + for(unsigned int i = 0; i < 256; i++) { double temp = (double)byte_count[i] / total_length; if(temp > 0.) entropy += fabs(temp * (log(temp) * log_2)); - + } return entropy; @@ -409,7 +409,7 @@ int main(int argc, char *argv[]) // File entropy entropy = calculate_entropy_file(&pe); - + if(entropy < 7.0) snprintf(value, MAX_MSG, "normal (%f)", entropy); else @@ -436,7 +436,7 @@ int main(int argc, char *argv[]) snprintf(value, MAX_MSG, "normal - va: %#x - raw: %#"PRIx64, ep, rva2ofs(&pe, ep)); else snprintf(value, MAX_MSG, "normal"); - + output("entrypoint", value); // dos stub @@ -450,19 +450,19 @@ int main(int argc, char *argv[]) } else snprintf(value, MAX_MSG, "normal"); - + output("DOS stub", value); // tls callbacks callbacks = pe_get_tls_callbacks(&pe); - + if (callbacks == 0) snprintf(value, MAX_MSG, "not found"); else if (callbacks == -1) snprintf(value, MAX_MSG, "found - no functions"); else if (callbacks >0) snprintf(value, MAX_MSG, "found - %d function(s)", callbacks); - + output("TLS directory", value); memset(&value, 0, sizeof(value)); diff --git a/src/pesec.c b/src/pesec.c index 1333e249..6c292da2 100644 --- a/src/pesec.c +++ b/src/pesec.c @@ -1,6 +1,6 @@ /* pev - the PE file analyzer toolkit - + pesec.c - Check for security features in PE files Copyright (C) 2012 pev authors @@ -64,7 +64,7 @@ static void parse_options(int argc, char *argv[]) case 'f': parse_format(optarg); break; - + case 'v': printf("%s %s\n%s\n", PROGRAM, TOOLKIT, COPY); exit(EXIT_SUCCESS); @@ -84,10 +84,11 @@ static bool stack_cookies(PE_FILE *pe) { unsigned int i, found = 0; unsigned char buff; - const unsigned char mvs2010[] = - {0x55, 0x8b, 0xec, 0x83, - 0x33, 0xc5, 0x33, 0xcd, - 0xe8, 0xc3}; + const unsigned char mvs2010[] = { + 0x55, 0x8b, 0xec, 0x83, + 0x33, 0xc5, 0x33, 0xcd, + 0xe8, 0xc3 + }; if (!pe) return false; @@ -106,7 +107,7 @@ static bool stack_cookies(PE_FILE *pe) found++; } } - + return (found == sizeof(mvs2010)); } @@ -205,7 +206,7 @@ int main(int argc, char *argv[]) FILE *fp = NULL; WORD dllchar = 0; char field[MAX_MSG]; - + if (argc < 2) { usage(); @@ -235,15 +236,15 @@ int main(int argc, char *argv[]) return 1; // aslr - snprintf(field, MAX_MSG, "ASLR"); + snprintf(field, MAX_MSG, "ASLR"); output(field, (dllchar & 0x40) ? "yes" : "no"); // dep/nx - snprintf(field, MAX_MSG, "DEP/NX"); + snprintf(field, MAX_MSG, "DEP/NX"); output(field, (dllchar & 0x100) ? "yes" : "no"); // seh - snprintf(field, MAX_MSG, "SEH"); + snprintf(field, MAX_MSG, "SEH"); output(field, (dllchar & 0x400) ? "no" : "yes"); // stack cookies @@ -255,6 +256,6 @@ int main(int argc, char *argv[]) // libera a memoria pe_deinit(&pe); - + return 0; } diff --git a/src/readpe.c b/src/readpe.c index b3d9377b..f0fd4955 100644 --- a/src/readpe.c +++ b/src/readpe.c @@ -1,6 +1,6 @@ /* pev - the PE file analyzer toolkit - + readpe.c - show PE file headers Copyright (C) 2012 pev authors @@ -116,7 +116,7 @@ void parse_options(int argc, char *argv[]) case 'h': config.all = false; parse_headers(optarg); break; - + case 'i': config.all = false; config.imports = true; break; @@ -583,18 +583,18 @@ static void print_imported_functions(PE_FILE *pe, long offset) char fname[MAX_FUNCTION_NAME]; char hintstr[16]; unsigned int i; - + if (fseek(pe->handle, offset, SEEK_SET)) return; memset(&fname, 0, sizeof(fname)); memset(&hintstr, 0, sizeof(hintstr)); - + while (1) { if (!fread(&fptr, (pe->architecture == PE64) ? sizeof(QWORD) : sizeof(DWORD), 1, pe->handle)) return; - + if (!fptr) break; @@ -605,26 +605,26 @@ static void print_imported_functions(PE_FILE *pe, long offset) { // save file pointer in functions array aux2 = ftell(pe->handle); - + if (fseek(pe->handle, rva2ofs(pe, fptr), SEEK_SET)) return; // follow function pointer if (!fread(&hint, sizeof(hint), 1, pe->handle)) return; - + for (i=0; ihandle)) return; - + if (!isprint((int)c)) // 0 and non-printable break; - + fname[i] = c; } snprintf(hintstr, 15, "%d", hint); - + // restore file pointer to functions array if (fseek(pe->handle, aux2, SEEK_SET)) return; @@ -635,7 +635,7 @@ static void print_imported_functions(PE_FILE *pe, long offset) memset(&fname, 0, sizeof(fname)); memset(&hintstr, 0, sizeof(hintstr)); } - + fseek(pe->handle, aux, SEEK_SET); } @@ -724,7 +724,7 @@ static void print_imports(PE_FILE *pe) aux = ftell(pe->handle); va = rva2ofs(pe, id.Name); - + if (!va) return; @@ -736,16 +736,16 @@ static void print_imports(PE_FILE *pe) for (i=0; i < MAX_DLL_NAME; i++) { fread(&c, sizeof(c), 1, pe->handle); - + if (!c) break; - + dllname[i] = c; } - + output(dllname, NULL); memset(&dllname, 0, sizeof(dllname)); - + if (fseek(pe->handle, aux, SEEK_SET)) // restore file pointer return; @@ -763,7 +763,7 @@ int main(int argc, char *argv[]) { PE_FILE pe; FILE *fp = NULL; - + if (argc < 2) { usage(); @@ -815,14 +815,14 @@ int main(int argc, char *argv[]) print_directories(&pe); else { EXIT_ERROR("unable to read the Directories entry from Optional header"); } } - + // imports if (config.imports || config.all) { if (pe_get_directories(&pe)) print_imports(&pe); else { EXIT_ERROR("unable to read the Directories entry from Optional header"); } - } + } // exports if (config.exports || config.all) From 8f185fe43e56be27d8eb091d4999b2ba847a078c Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Fri, 9 Nov 2012 07:14:41 -0200 Subject: [PATCH 06/24] libpe: Fix missing cert types. pesec: Handle unsupported/unknown values, and adjust printed data. --- lib/libpe/dir_entry_security.h | 11 ++++++++--- src/pesec.c | 33 +++++++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/lib/libpe/dir_entry_security.h b/lib/libpe/dir_entry_security.h index e89e98ee..b277675e 100644 --- a/lib/libpe/dir_entry_security.h +++ b/lib/libpe/dir_entry_security.h @@ -22,11 +22,15 @@ typedef enum { WIN_CERT_TYPE_X509 = 0x0001, // bCertificate contains an X.509 (Certificate) WIN_CERT_TYPE_PKCS_SIGNED_DATA = 0x0002, // bCertificate contains a PKCS#7 (SignedData structure) WIN_CERT_TYPE_RESERVED_1 = 0x0003, // Reserved - WIN_CERT_TYPE_TS_STACK_SIGNED = 0x0004 // Terminal Server Protocol Stack (Certificate signing) + WIN_CERT_TYPE_TS_STACK_SIGNED = 0x0004, // Terminal Server Protocol Stack (Certificate signing) + WIN_CERT_TYPE_EFI_PKCS115 = 0x0EF0, + WIN_CERT_TYPE_EFI_GUID = 0x0EF1 } CertType; +#pragma pack(4) + // Originally declared in Wintrust.h -typedef struct _WIN_CERTIFICATE { +typedef struct { // Specified the size, in bytes, of the WIN_CERTIFICATE structure, // including the data in bCertificate. DWORD dwLength; @@ -45,10 +49,11 @@ typedef struct _WIN_CERTIFICATE { BYTE bCertificate[ANYSIZE_ARRAY]; } WIN_CERTIFICATE; -typedef struct _CRYPTOAPI_BLOB { +typedef struct { DWORD cbData; BYTE *pbData; } CRYPT_DATA_BLOB; +#pragma pack() #endif diff --git a/src/pesec.c b/src/pesec.c index 6c292da2..1374a338 100644 --- a/src/pesec.c +++ b/src/pesec.c @@ -143,32 +143,34 @@ static void print_certificates(PE_FILE *pe) printf("Certificates:\n"); while (fileOffset - directory->VirtualAddress < directory->Size) { - // Read the whole size of this WIN_CERTIFICATE if (fseek(pe->handle, fileOffset, SEEK_SET)) EXIT_ERROR("unable to seek"); DWORD dwCertLen = 0; + // Read the size of this WIN_CERTIFICATE if (!fread(&dwCertLen, sizeof(DWORD), 1, pe->handle)) EXIT_ERROR("unable to read"); - // Read the whole WIN_CERTIFICATE if (fseek(pe->handle, fileOffset, SEEK_SET)) EXIT_ERROR("unable to seek"); WIN_CERTIFICATE *cert = xmalloc(dwCertLen); + // Read the whole WIN_CERTIFICATE based on the previously read size if (!fread(cert, dwCertLen, 1, pe->handle)) { free(cert); EXIT_ERROR("unable to read"); } - printf(" length %d bytes\n", cert->dwLength); - printf(" revision %s\n", cert->wRevision == WIN_CERT_REVISION_1_0 ? "1" : - cert->wRevision == WIN_CERT_REVISION_2_0 ? "2" : "unknown"); - printf(" type %x", cert->wCertificateType); + printf(" length %u bytes\n", cert->dwLength); + printf(" revision 0x%x (%s)\n", cert->wRevision, + cert->wRevision == WIN_CERT_REVISION_1_0 ? "1" : + cert->wRevision == WIN_CERT_REVISION_2_0 ? "2" : "unknown"); + printf(" type 0x%x", cert->wCertificateType); switch (cert->wCertificateType) { + default: printf(" (UNKNOWN)"); break; case WIN_CERT_TYPE_X509: printf(" (X509)"); break; case WIN_CERT_TYPE_PKCS_SIGNED_DATA: printf(" (PKCS_SIGNED_DATA)"); break; case WIN_CERT_TYPE_TS_STACK_SIGNED: printf(" (TS_STACK_SIGNED)"); break; @@ -180,9 +182,20 @@ static void print_certificates(PE_FILE *pe) if (fileOffset - directory->VirtualAddress > directory->Size) EXIT_ERROR("Either the attribute certificate table or the Size field is corrupted"); + switch (cert->wRevision) { + default: + EXIT_ERROR("Unknown wRevision"); + case WIN_CERT_REVISION_1_0: + EXIT_ERROR("WIN_CERT_REVISION_1_0 is not supported"); + case WIN_CERT_REVISION_2_0: + break; + } + switch (cert->wCertificateType) { + default: + EXIT_ERROR("Unknown wCertificateType"); case WIN_CERT_TYPE_X509: - EXIT_ERROR("WIN_CERT_TYPE_X509 is not implemented"); + EXIT_ERROR("WIN_CERT_TYPE_X509 is not supported"); case WIN_CERT_TYPE_PKCS_SIGNED_DATA: { CRYPT_DATA_BLOB p7data; @@ -192,7 +205,11 @@ static void print_certificates(PE_FILE *pe) break; } case WIN_CERT_TYPE_TS_STACK_SIGNED: - EXIT_ERROR("WIN_CERT_TYPE_TS_STACK_SIGNED is not implemented"); + EXIT_ERROR("WIN_CERT_TYPE_TS_STACK_SIGNED is not supported"); + case WIN_CERT_TYPE_EFI_PKCS115: + EXIT_ERROR("WIN_CERT_TYPE_EFI_PKCS115 is not supported"); + case WIN_CERT_TYPE_EFI_GUID: + EXIT_ERROR("WIN_CERT_TYPE_EFI_GUID is not supported"); } free(cert); From 1d0ae4b6bdbb6bf80a8fdd7764417d18faa3d002 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Fri, 9 Nov 2012 09:13:07 -0200 Subject: [PATCH 07/24] libpe: Ops, fix off-by-1 error. --- lib/libpe/pe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libpe/pe.c b/lib/libpe/pe.c index 766aba11..6eba6955 100644 --- a/lib/libpe/pe.c +++ b/lib/libpe/pe.c @@ -175,7 +175,7 @@ bool pe_get_resource_directory(PE_FILE *pe, IMAGE_RESOURCE_DIRECTORY *dir) IMAGE_DATA_DIRECTORY *pe_get_data_directory(PE_FILE *pe, ImageDirectoryEntry entry) { - if (!pe || !pe->directories_ptr || entry > pe->num_directories) + if (!pe || !pe->directories_ptr || entry > pe->num_directories - 1) return NULL; return pe->directories_ptr[entry]; From f54eb303e3aa3ec5fae10fe03d16824da0a4180e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Merc=C3=AAs?= Date: Wed, 14 Nov 2012 02:29:39 -0200 Subject: [PATCH 08/24] do not exit readpe if export directory is not found --- src/readpe.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/readpe.c b/src/readpe.c index de75e212..5d596d1a 100644 --- a/src/readpe.c +++ b/src/readpe.c @@ -649,7 +649,10 @@ static void print_exports(PE_FILE *pe) pe->directories_ptr[IMAGE_DIRECTORY_ENTRY_EXPORT]->VirtualAddress : 0; if (!va) - EXIT_ERROR("export directory not found"); + { + fprintf(stderr, "export directory not found\n"); + return; + } if (fseek(pe->handle, rva2ofs(pe, va), SEEK_SET)) EXIT_ERROR("unable to seek until export directory"); From e9accc498d1e32f783b51fa866bbda6ff32aabb6 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Sat, 29 Dec 2012 16:53:34 -0200 Subject: [PATCH 09/24] README now contains instructions on how to build in Mac OS X. --- readme | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/readme b/readme index 8c02365f..622c0379 100644 --- a/readme +++ b/readme @@ -73,7 +73,7 @@ 4.4. Building in Windows (via Cygwin) - Under Cygwin, you'll need following packages + Under Cygwin, you'll need to install the following packages in order to compile pev: * gcc @@ -94,6 +94,32 @@ You can't call another targets (like make install) in Cygwin environment. + 4.5. Building in Mac OS X + + Under Mac OS X, you'll need to install the following packages + in order to compile pev: + + * libpcre + + We recommend using one of the following package managers to + install this package: + + * MacPorts - http://www.macports.org + * Homebrew - http://mxcl.github.com/homebrew + + For MacPorts, install the dependency and compile pev with: + + $ sudo port install pcre + $ make CFLAGS="-I/opt/local/include" + + For Homebrew, install the dependency and compile pev with: + + $ sudo brew install pcre + $ make CFLAGS="-I/usr/local/include" + + NOTE: The paths above may change depending on how you installed the + package manager. + 5. Included tools * pehash - calculate PE file hashes From 8fa06d374a2aac00a8930870c1b8a676f6f40c91 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Sat, 29 Dec 2012 20:29:44 -0200 Subject: [PATCH 10/24] Parse certificates from digitally signed PE's. --- .gitignore | 1 + src/Makefile | 2 + src/output | Bin 0 -> 1687920 bytes src/output.c | 14 +++- src/output.h | 8 +++ src/pesec.c | 188 +++++++++++++++++++++++++++++++++++++++------------ 6 files changed, 166 insertions(+), 47 deletions(-) create mode 100644 src/output diff --git a/.gitignore b/.gitignore index 3c111a9e..d7627192 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ Debug *.dylib *.dll *.o +*.dSYM *.log src/ofs2rva src/pedis diff --git a/src/Makefile b/src/Makefile index 567a3fad..552fce33 100644 --- a/src/Makefile +++ b/src/Makefile @@ -29,6 +29,8 @@ MANDIR = /usr/share/man/man1 # 'make' will compile all binaries all: $(PROGS) +pesec: LDFLAGS += -lcrypto + pestr: CPPFLAGS += -D_GNU_SOURCE=1 pestr: LDFLAGS += -lpcre pestr: pestr.c diff --git a/src/output b/src/output new file mode 100644 index 0000000000000000000000000000000000000000..91986d80ebdc3d5a1b69793a6c5f3c276fa0e8e0 GIT binary patch literal 1687920 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

HZq0Sh<7-M8TG7R51O*R9HfUss$2j^6}1^3|Jf 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%0DQRyK) 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

{e|fMj=etY>AePiy^AW9Q*2nocT7RW* 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 KZp1n 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 literal 0 HcmV?d00001 diff --git a/src/output.c b/src/output.c index fe1f7c80..2037ffb3 100644 --- a/src/output.c +++ b/src/output.c @@ -23,8 +23,6 @@ #include "output.h" #include "common.h" -extern format_e format; - void parse_format(const char *optarg) { if (! strcmp(optarg, "text")) @@ -39,6 +37,18 @@ void parse_format(const char *optarg) EXIT_ERROR("invalid format option"); } +void parse_cert_format(const char *optarg) +{ + if (! strcmp(optarg, "text")) + cert_format = CERT_FORMAT_TEXT; + else if (! strcmp(optarg, "pem")) + cert_format = CERT_FORMAT_PEM; + else if (! strcmp(optarg, "der")) + cert_format = CERT_FORMAT_DER; + else + EXIT_ERROR("invalid cert_format option"); +} + void to_text(char *field, char *value) { size_t field_size = field ? strlen(field) : 0; diff --git a/src/output.h b/src/output.h index 99758de2..fbe3f48c 100644 --- a/src/output.h +++ b/src/output.h @@ -23,6 +23,7 @@ #define OUTPUT_H void parse_format(const char *optarg); +void parse_cert_format(const char *optarg); void output(char *field, char *value); typedef enum { @@ -32,6 +33,13 @@ typedef enum { FORMAT_CSV = 4 } format_e; +typedef enum { + CERT_FORMAT_TEXT = 1, + CERT_FORMAT_PEM = 2, + CERT_FORMAT_DER = 3 +} cert_format_e; + format_e format; +cert_format_e cert_format; #endif diff --git a/src/pesec.c b/src/pesec.c index 1374a338..368d97b2 100644 --- a/src/pesec.c +++ b/src/pesec.c @@ -20,34 +20,38 @@ */ #include "pesec.h" -#include - -static int ind; +#include +#include +#include +#include +#include static void usage() { printf("Usage: %s [OPTIONS] FILE\n" - "Check for security features in PE files\n" - "\nExample: %s wordpad.exe\n" - "\nOptions:\n" - " -f, --format change output format (default: text)\n" - " -v, --version show version and exit\n" - " --help show this help and exit\n", - PROGRAM, PROGRAM); + "Check for security features in PE files\n" + "\nExample: %s wordpad.exe\n" + "\nOptions:\n" + " -f, --format change output format (default: text)\n" + " -c, --certformat change certificate output format (default: text)\n" + " -v, --version show version and exit\n" + " --help show this help and exit\n", + PROGRAM, PROGRAM); } static void parse_options(int argc, char *argv[]) { - int c; + int c, ind; /* Parameters for getopt_long() function */ - static const char short_options[] = "f:v"; + static const char short_options[] = "f:c:v"; static const struct option long_options[] = { - {"format", required_argument, NULL, 'f'}, - {"help", no_argument, NULL, 1 }, - {"version", no_argument, NULL, 'v'}, - { NULL, 0, NULL, 0 } + {"format", required_argument, NULL, 'f'}, + {"certformat", required_argument, NULL, 'c'}, + {"help", no_argument, NULL, 1 }, + {"version", no_argument, NULL, 'v'}, + { NULL, 0, NULL, 0 } }; while ((c = getopt_long(argc, argv, short_options, @@ -61,14 +65,15 @@ static void parse_options(int argc, char *argv[]) case 1: // --help option usage(); exit(EXIT_SUCCESS); - case 'f': - parse_format(optarg); break; - + parse_format(optarg); + break; case 'v': printf("%s %s\n%s\n", PROGRAM, TOOLKIT, COPY); exit(EXIT_SUCCESS); - + case 'c': + parse_cert_format(optarg); + break; default: fprintf(stderr, "%s: try '--help' for more information\n", PROGRAM); exit(EXIT_FAILURE); @@ -111,26 +116,116 @@ static bool stack_cookies(PE_FILE *pe) return (found == sizeof(mvs2010)); } -static int roundUp(int numToRound, int multiple) +static int round_up(int numToRound, int multiple) { if (multiple == 0) return 0; return (numToRound + multiple - 1) / multiple * multiple; } -static int parse_pkcs7_data(const CRYPT_DATA_BLOB *blob) { +void print_certificate(BIO *out, X509* cert) +{ + switch (cert_format) { + default: + case CERT_FORMAT_TEXT: + X509_print(out, cert); + break; + case CERT_FORMAT_PEM: + PEM_write_bio_X509(out, cert); + break; + case CERT_FORMAT_DER: + EXIT_ERROR("DER format is not yet supported for output"); + break; + } +} + +int parse_pkcs7_data(const CRYPT_DATA_BLOB *blob) +{ int result = 0; + const cert_format_e input_fmt = CERT_FORMAT_DER; + PKCS7 *p7 = NULL; + BIO *in = NULL; + BIO *out = NULL; + + CRYPTO_malloc_init(); + ERR_load_crypto_strings(); + OpenSSL_add_all_algorithms(); + + out = BIO_new(BIO_s_file()); + if (out == NULL) { + result = -1; + goto error; + } + BIO_set_fp(out, stdout, BIO_NOCLOSE); + + in = BIO_new_mem_buf(blob->pbData, blob->cbData); + if (in == NULL) { + result = -2; + goto error; + } + + switch (input_fmt) { + default: EXIT_ERROR("unhandled input format for certificate"); + case CERT_FORMAT_DER: + p7 = d2i_PKCS7_bio(in, NULL); + break; + case CERT_FORMAT_PEM: + p7 = PEM_read_bio_PKCS7(in, NULL, NULL, NULL); + break; + } + if (p7 == NULL) { + ERR_print_errors_fp(stderr); + result = -3; + goto error; + } + +// // Check if it's an Authenticode (PKCS#7 Signed Data) +// if (!PKCS7_type_is_signed(p7)) { +// result = -4; +// goto error; +// } + + STACK_OF(X509) *certs = NULL; + + int type = OBJ_obj2nid(p7->type); + switch (type) { + default: break; + case NID_pkcs7_signed: + certs = p7->d.sign->cert; + break; + case NID_pkcs7_signedAndEnveloped: + certs = p7->d.signed_and_enveloped->cert; + break; + } + + for (int i = 0; certs != NULL && i < sk_X509_num(certs); i++) { + X509 *cert = sk_X509_value(certs, i); + print_certificate(out, cert); + // NOTE: Calling X509_free(cert) is unnecessary. + } + +error: + if (p7 != NULL) + PKCS7_free(p7); + if (in != NULL) + BIO_free(in); + if (out != NULL) + BIO_free(out); + + EVP_cleanup(); // Deallocate everything from OpenSSL_add_all_algorithms + ERR_free_strings(); // Deallocate everything from ERR_load_crypto_strings + return result; } -static void print_certificates(PE_FILE *pe) +static void parse_certificates(PE_FILE *pe) { if (!pe_get_directories(pe)) EXIT_ERROR("unable to read the Directories entry from Optional header"); const IMAGE_DATA_DIRECTORY * const directory = pe_get_data_directory(pe, IMAGE_DIRECTORY_ENTRY_SECURITY); if (directory == NULL) { - printf("security directory not found\n"); + fprintf(stderr, "security directory not found\n"); // TODO: Should we exit using EXIT_ERROR? return; } @@ -140,7 +235,7 @@ static void print_certificates(PE_FILE *pe) DWORD fileOffset = directory->VirtualAddress; // This a file pointer rather than a common RVA. - printf("Certificates:\n"); + output("Certificates", NULL); while (fileOffset - directory->VirtualAddress < directory->Size) { if (fseek(pe->handle, fileOffset, SEEK_SET)) @@ -163,28 +258,33 @@ static void print_certificates(PE_FILE *pe) EXIT_ERROR("unable to read"); } - printf(" length %u bytes\n", cert->dwLength); - printf(" revision 0x%x (%s)\n", cert->wRevision, + static char value[MAX_MSG]; + + snprintf(value, MAX_MSG, "%u bytes", cert->dwLength); + output("length", value); + + snprintf(value, MAX_MSG, "0x%x (%s)", cert->wRevision, cert->wRevision == WIN_CERT_REVISION_1_0 ? "1" : cert->wRevision == WIN_CERT_REVISION_2_0 ? "2" : "unknown"); - printf(" type 0x%x", cert->wCertificateType); - switch (cert->wCertificateType) - { - default: printf(" (UNKNOWN)"); break; - case WIN_CERT_TYPE_X509: printf(" (X509)"); break; - case WIN_CERT_TYPE_PKCS_SIGNED_DATA: printf(" (PKCS_SIGNED_DATA)"); break; - case WIN_CERT_TYPE_TS_STACK_SIGNED: printf(" (TS_STACK_SIGNED)"); break; + output("revision", value); + + snprintf(value, MAX_MSG, "0x%x", cert->wCertificateType); + switch (cert->wCertificateType) { + default: strlcat(value, " (UNKNOWN)", MAX_MSG); break; + case WIN_CERT_TYPE_X509: strlcat(value, " (X509)", MAX_MSG); break; + case WIN_CERT_TYPE_PKCS_SIGNED_DATA: strlcat(value, " (PKCS_SIGNED_DATA)", MAX_MSG); break; + case WIN_CERT_TYPE_TS_STACK_SIGNED: strlcat(value, " (TS_STACK_SIGNED)", MAX_MSG); break; } - printf("\n"); + output("type", value); - fileOffset += roundUp(cert->dwLength, 8); // Offset to next certificate. + fileOffset += round_up(cert->dwLength, 8); // Offset to the next certificate. if (fileOffset - directory->VirtualAddress > directory->Size) - EXIT_ERROR("Either the attribute certificate table or the Size field is corrupted"); + EXIT_ERROR("either the attribute certificate table or the Size field is corrupted"); switch (cert->wRevision) { default: - EXIT_ERROR("Unknown wRevision"); + EXIT_ERROR("unknown wRevision"); case WIN_CERT_REVISION_1_0: EXIT_ERROR("WIN_CERT_REVISION_1_0 is not supported"); case WIN_CERT_REVISION_2_0: @@ -193,13 +293,13 @@ static void print_certificates(PE_FILE *pe) switch (cert->wCertificateType) { default: - EXIT_ERROR("Unknown wCertificateType"); + EXIT_ERROR("unknown wCertificateType"); case WIN_CERT_TYPE_X509: EXIT_ERROR("WIN_CERT_TYPE_X509 is not supported"); case WIN_CERT_TYPE_PKCS_SIGNED_DATA: { CRYPT_DATA_BLOB p7data; - p7data.cbData = cert->dwLength - (3 * sizeof(DWORD)); + p7data.cbData = cert->dwLength - offsetof(WIN_CERTIFICATE, bCertificate); p7data.pbData = cert->bCertificate; parse_pkcs7_data(&p7data); break; @@ -214,7 +314,6 @@ static void print_certificates(PE_FILE *pe) free(cert); } - printf("\n"); } int main(int argc, char *argv[]) @@ -224,8 +323,7 @@ int main(int argc, char *argv[]) WORD dllchar = 0; char field[MAX_MSG]; - if (argc < 2) - { + if (argc < 2) { usage(); exit(1); } @@ -268,8 +366,8 @@ int main(int argc, char *argv[]) snprintf(field, MAX_MSG, "Stack cookies (EXPERIMENTAL)"); output(field, stack_cookies(&pe) ? "yes" : "no"); - // certificates - print_certificates(&pe); + // certificados + parse_certificates(&pe); // libera a memoria pe_deinit(&pe); From 1d007537fe43beebc5efdd8d9227092b46c50bb4 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Sat, 29 Dec 2012 20:32:05 -0200 Subject: [PATCH 11/24] Fix sign conversion warning. --- lib/libpe/pe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libpe/pe.c b/lib/libpe/pe.c index 4c7ae2e0..68fb9064 100644 --- a/lib/libpe/pe.c +++ b/lib/libpe/pe.c @@ -175,7 +175,7 @@ bool pe_get_resource_directory(PE_FILE *pe, IMAGE_RESOURCE_DIRECTORY *dir) IMAGE_DATA_DIRECTORY *pe_get_data_directory(PE_FILE *pe, ImageDirectoryEntry entry) { - if (!pe || !pe->directories_ptr || entry > pe->num_directories - 1) + if (!pe || !pe->directories_ptr || entry > (WORD)(pe->num_directories - 1)) return NULL; return pe->directories_ptr[entry]; From 878d90b99d38882bc5035ad10b589229c5a32cee Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Sun, 30 Dec 2012 04:51:01 -0200 Subject: [PATCH 12/24] Fix missing static specifier for a couple of functions. --- src/pesec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pesec.c b/src/pesec.c index 368d97b2..c95a16c6 100644 --- a/src/pesec.c +++ b/src/pesec.c @@ -123,7 +123,7 @@ static int round_up(int numToRound, int multiple) return (numToRound + multiple - 1) / multiple * multiple; } -void print_certificate(BIO *out, X509* cert) +static void print_certificate(BIO *out, X509* cert) { switch (cert_format) { default: @@ -139,7 +139,7 @@ void print_certificate(BIO *out, X509* cert) } } -int parse_pkcs7_data(const CRYPT_DATA_BLOB *blob) +static int parse_pkcs7_data(const CRYPT_DATA_BLOB *blob) { int result = 0; const cert_format_e input_fmt = CERT_FORMAT_DER; From 600505018f0652de6c9ec8eb961f84f0fa0ef079 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Sun, 30 Dec 2012 23:58:33 -0200 Subject: [PATCH 13/24] pesec: Support new CLI parameters --certoutform and --certout. --- src/output.c | 14 +------ src/output.h | 10 +---- src/pesec.c | 105 +++++++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 92 insertions(+), 37 deletions(-) diff --git a/src/output.c b/src/output.c index 2037ffb3..dabf5e8a 100644 --- a/src/output.c +++ b/src/output.c @@ -23,6 +23,8 @@ #include "output.h" #include "common.h" +format_e format; + void parse_format(const char *optarg) { if (! strcmp(optarg, "text")) @@ -37,18 +39,6 @@ void parse_format(const char *optarg) EXIT_ERROR("invalid format option"); } -void parse_cert_format(const char *optarg) -{ - if (! strcmp(optarg, "text")) - cert_format = CERT_FORMAT_TEXT; - else if (! strcmp(optarg, "pem")) - cert_format = CERT_FORMAT_PEM; - else if (! strcmp(optarg, "der")) - cert_format = CERT_FORMAT_DER; - else - EXIT_ERROR("invalid cert_format option"); -} - void to_text(char *field, char *value) { size_t field_size = field ? strlen(field) : 0; diff --git a/src/output.h b/src/output.h index fbe3f48c..6e69fddf 100644 --- a/src/output.h +++ b/src/output.h @@ -23,7 +23,6 @@ #define OUTPUT_H void parse_format(const char *optarg); -void parse_cert_format(const char *optarg); void output(char *field, char *value); typedef enum { @@ -33,13 +32,6 @@ typedef enum { FORMAT_CSV = 4 } format_e; -typedef enum { - CERT_FORMAT_TEXT = 1, - CERT_FORMAT_PEM = 2, - CERT_FORMAT_DER = 3 -} cert_format_e; - -format_e format; -cert_format_e cert_format; +extern format_e format; #endif diff --git a/src/pesec.c b/src/pesec.c index c95a16c6..27186c4f 100644 --- a/src/pesec.c +++ b/src/pesec.c @@ -26,6 +26,17 @@ #include #include +typedef enum { + CERT_FORMAT_TEXT = 1, + CERT_FORMAT_PEM = 2, + CERT_FORMAT_DER = 3 +} cert_format_e; + +typedef struct { + cert_format_e certoutform; + BIO *certout; +} options_t; + static void usage() { printf("Usage: %s [OPTIONS] FILE\n" @@ -33,29 +44,80 @@ static void usage() "\nExample: %s wordpad.exe\n" "\nOptions:\n" " -f, --format change output format (default: text)\n" - " -c, --certformat change certificate output format (default: text)\n" + " -c, --certoutform specifies the certificate output format (default: text)\n" + " -o, --certout filename specifies the output filename to write certificates to (default: stdout)\n" " -v, --version show version and exit\n" " --help show this help and exit\n", PROGRAM, PROGRAM); } -static void parse_options(int argc, char *argv[]) +cert_format_e parse_certoutform(const char *optarg) { - int c, ind; + cert_format_e result; + if (strcmp(optarg, "text") == 0) + result = CERT_FORMAT_TEXT; + else if (strcmp(optarg, "pem") == 0) + result = CERT_FORMAT_PEM; + else if (strcmp(optarg, "der") == 0) + result = CERT_FORMAT_DER; + else + EXIT_ERROR("invalid cert_format option"); + return result; +} + +BIO *parse_certout(const char *optarg) +{ + BIO *bio = BIO_new(BIO_s_file()); + if (bio == NULL) { + EXIT_ERROR("could not allocate BIO"); + } + + if (strcmp(optarg, "stdout") == 0) { + BIO_set_fp(bio, stdout, BIO_NOCLOSE); + } else if (strcmp(optarg, "stderr") == 0) { + BIO_set_fp(bio, stderr, BIO_NOCLOSE); + } else { + int ret = BIO_write_filename(bio, (char *)optarg); + if (ret == 0) { + BIO_free(bio); + EXIT_ERROR("failed to open file"); + } + } + + return bio; +} + +static void free_options(options_t *options) +{ + if (options == NULL) + return; + + if (options->certout != NULL) + BIO_free(options->certout); + + free(options); +} + +static options_t *parse_options(int argc, char *argv[]) +{ + options_t *options = xmalloc(sizeof(options_t)); + memset(options, 0, sizeof(options_t)); /* Parameters for getopt_long() function */ - static const char short_options[] = "f:c:v"; + static const char short_options[] = "f:c:o:v"; static const struct option long_options[] = { {"format", required_argument, NULL, 'f'}, - {"certformat", required_argument, NULL, 'c'}, + {"certoutform", required_argument, NULL, 'c'}, + {"certout", required_argument, NULL, 'o'}, {"help", no_argument, NULL, 1 }, {"version", no_argument, NULL, 'v'}, { NULL, 0, NULL, 0 } }; - while ((c = getopt_long(argc, argv, short_options, - long_options, &ind))) + int c, ind; + + while ((c = getopt_long(argc, argv, short_options, long_options, &ind))) { if (c < 0) break; @@ -72,13 +134,22 @@ static void parse_options(int argc, char *argv[]) printf("%s %s\n%s\n", PROGRAM, TOOLKIT, COPY); exit(EXIT_SUCCESS); case 'c': - parse_cert_format(optarg); + options->certoutform = parse_certoutform(optarg); + break; + case 'o': + options->certout = parse_certout(optarg); break; default: fprintf(stderr, "%s: try '--help' for more information\n", PROGRAM); exit(EXIT_FAILURE); } } + + // If the --certout option was not passed, we manually setup it. + if (options->certout == NULL) + options->certout = parse_certout("stdout"); + + return options; } /* @@ -123,9 +194,9 @@ static int round_up(int numToRound, int multiple) return (numToRound + multiple - 1) / multiple * multiple; } -static void print_certificate(BIO *out, X509* cert) +static void print_certificate(BIO *out, cert_format_e format, X509 *cert) { - switch (cert_format) { + switch (format) { default: case CERT_FORMAT_TEXT: X509_print(out, cert); @@ -139,7 +210,7 @@ static void print_certificate(BIO *out, X509* cert) } } -static int parse_pkcs7_data(const CRYPT_DATA_BLOB *blob) +static int parse_pkcs7_data(const options_t *options, const CRYPT_DATA_BLOB *blob) { int result = 0; const cert_format_e input_fmt = CERT_FORMAT_DER; @@ -200,7 +271,7 @@ static int parse_pkcs7_data(const CRYPT_DATA_BLOB *blob) for (int i = 0; certs != NULL && i < sk_X509_num(certs); i++) { X509 *cert = sk_X509_value(certs, i); - print_certificate(out, cert); + print_certificate(options->certout, options->certoutform, cert); // NOTE: Calling X509_free(cert) is unnecessary. } @@ -218,7 +289,7 @@ static int parse_pkcs7_data(const CRYPT_DATA_BLOB *blob) return result; } -static void parse_certificates(PE_FILE *pe) +static void parse_certificates(const options_t *options, PE_FILE *pe) { if (!pe_get_directories(pe)) EXIT_ERROR("unable to read the Directories entry from Optional header"); @@ -301,7 +372,7 @@ static void parse_certificates(PE_FILE *pe) CRYPT_DATA_BLOB p7data; p7data.cbData = cert->dwLength - offsetof(WIN_CERTIFICATE, bCertificate); p7data.pbData = cert->bCertificate; - parse_pkcs7_data(&p7data); + parse_pkcs7_data(options, &p7data); break; } case WIN_CERT_TYPE_TS_STACK_SIGNED: @@ -328,7 +399,7 @@ int main(int argc, char *argv[]) exit(1); } - parse_options(argc, argv); // opcoes + options_t *options = parse_options(argc, argv); // opcoes const char *path = argv[argc-1]; @@ -367,10 +438,12 @@ int main(int argc, char *argv[]) output(field, stack_cookies(&pe) ? "yes" : "no"); // certificados - parse_certificates(&pe); + parse_certificates(options, &pe); // libera a memoria pe_deinit(&pe); + free_options(options); + return 0; } From 5decd899c05475ee4bed0221b45cd398f3f79210 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Mon, 31 Dec 2012 00:04:23 -0200 Subject: [PATCH 14/24] Cosmetic change. Fix style of pointer return and arguments. --- lib/libpe/pe.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libpe/pe.h b/lib/libpe/pe.h index ee57665a..31284f4f 100644 --- a/lib/libpe/pe.h +++ b/lib/libpe/pe.h @@ -416,7 +416,7 @@ QWORD pe_get_size(PE_FILE *pe); // header functions bool pe_init(PE_FILE *pe, FILE *handle); bool pe_get_sections(PE_FILE *pe); -IMAGE_SECTION_HEADER* pe_get_section(PE_FILE *pe, const char* section_name); +IMAGE_SECTION_HEADER *pe_get_section(PE_FILE *pe, const char *section_name); bool pe_get_directories(PE_FILE *pe); bool pe_get_optional(PE_FILE *pe); bool pe_get_coff(PE_FILE *pe, IMAGE_COFF_HEADER *header); @@ -427,6 +427,6 @@ bool pe_get_resource_directory(PE_FILE *pe, IMAGE_RESOURCE_DIRECTORY *dir); bool pe_get_resource_entries(PE_FILE *pe); IMAGE_DATA_DIRECTORY *pe_get_data_directory(PE_FILE *pe, ImageDirectoryEntry entry); -IMAGE_SECTION_HEADER* pe_rva2section(PE_FILE *pe, QWORD rva); +IMAGE_SECTION_HEADER *pe_rva2section(PE_FILE *pe, QWORD rva); #endif From 70c5021026f16a85b621727c2786c61644dc3470 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Mon, 31 Dec 2012 02:50:35 -0200 Subject: [PATCH 15/24] Fix missing static specifiers. --- src/pesec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pesec.c b/src/pesec.c index 27186c4f..2bf291d6 100644 --- a/src/pesec.c +++ b/src/pesec.c @@ -51,7 +51,7 @@ static void usage() PROGRAM, PROGRAM); } -cert_format_e parse_certoutform(const char *optarg) +static cert_format_e parse_certoutform(const char *optarg) { cert_format_e result; if (strcmp(optarg, "text") == 0) @@ -65,7 +65,7 @@ cert_format_e parse_certoutform(const char *optarg) return result; } -BIO *parse_certout(const char *optarg) +static BIO *parse_certout(const char *optarg) { BIO *bio = BIO_new(BIO_s_file()); if (bio == NULL) { @@ -94,7 +94,7 @@ static void free_options(options_t *options) if (options->certout != NULL) BIO_free(options->certout); - + free(options); } From 94e73b7050489b77d626ef7dd518089b0cc5e8ea Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Mon, 31 Dec 2012 05:22:48 -0200 Subject: [PATCH 16/24] Remove unused code. Declare variables right after usage when possible. --- src/pesec.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/pesec.c b/src/pesec.c index 2bf291d6..dc20ce1e 100644 --- a/src/pesec.c +++ b/src/pesec.c @@ -250,21 +250,15 @@ static int parse_pkcs7_data(const options_t *options, const CRYPT_DATA_BLOB *blo goto error; } -// // Check if it's an Authenticode (PKCS#7 Signed Data) -// if (!PKCS7_type_is_signed(p7)) { -// result = -4; -// goto error; -// } - STACK_OF(X509) *certs = NULL; int type = OBJ_obj2nid(p7->type); switch (type) { default: break; - case NID_pkcs7_signed: + case NID_pkcs7_signed: // PKCS7_type_is_signed(p7) certs = p7->d.sign->cert; break; - case NID_pkcs7_signedAndEnveloped: + case NID_pkcs7_signedAndEnveloped: // PKCS7_type_is_signedAndEnveloped(p7) certs = p7->d.signed_and_enveloped->cert; break; } @@ -325,7 +319,6 @@ static void parse_certificates(const options_t *options, PE_FILE *pe) // Read the whole WIN_CERTIFICATE based on the previously read size if (!fread(cert, dwCertLen, 1, pe->handle)) { - free(cert); EXIT_ERROR("unable to read"); } @@ -389,11 +382,6 @@ static void parse_certificates(const options_t *options, PE_FILE *pe) int main(int argc, char *argv[]) { - PE_FILE pe; - FILE *fp = NULL; - WORD dllchar = 0; - char field[MAX_MSG]; - if (argc < 2) { usage(); exit(1); @@ -403,9 +391,11 @@ int main(int argc, char *argv[]) const char *path = argv[argc-1]; + FILE *fp = NULL; if ((fp = fopen(path, "rb")) == NULL) EXIT_ERROR("file not found or unreadable"); + PE_FILE pe; pe_init(&pe, fp); // inicializa o struct pe if (!is_pe(&pe)) @@ -414,6 +404,7 @@ int main(int argc, char *argv[]) if (!pe_get_optional(&pe)) return 1; + WORD dllchar = 0; if (pe.architecture == PE32) dllchar = pe.optional_ptr->_32->DllCharacteristics; else if (pe.architecture == PE64) @@ -421,6 +412,8 @@ int main(int argc, char *argv[]) else return 1; + char field[MAX_MSG]; + // aslr snprintf(field, MAX_MSG, "ASLR"); output(field, (dllchar & 0x40) ? "yes" : "no"); From b68490ea1effb454b042f3f6ab339a46a3f2ff06 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Mon, 31 Dec 2012 09:14:29 -0200 Subject: [PATCH 17/24] Remove more unused code. --- src/pesec.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/pesec.c b/src/pesec.c index dc20ce1e..2670cb71 100644 --- a/src/pesec.c +++ b/src/pesec.c @@ -216,19 +216,11 @@ static int parse_pkcs7_data(const options_t *options, const CRYPT_DATA_BLOB *blo const cert_format_e input_fmt = CERT_FORMAT_DER; PKCS7 *p7 = NULL; BIO *in = NULL; - BIO *out = NULL; CRYPTO_malloc_init(); ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); - out = BIO_new(BIO_s_file()); - if (out == NULL) { - result = -1; - goto error; - } - BIO_set_fp(out, stdout, BIO_NOCLOSE); - in = BIO_new_mem_buf(blob->pbData, blob->cbData); if (in == NULL) { result = -2; @@ -274,8 +266,6 @@ static int parse_pkcs7_data(const options_t *options, const CRYPT_DATA_BLOB *blo PKCS7_free(p7); if (in != NULL) BIO_free(in); - if (out != NULL) - BIO_free(out); EVP_cleanup(); // Deallocate everything from OpenSSL_add_all_algorithms ERR_free_strings(); // Deallocate everything from ERR_load_crypto_strings From 6703266c1f98bd47763333811c53a73e7d1b8478 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Wed, 2 Jan 2013 02:18:28 -0200 Subject: [PATCH 18/24] pesec: Only print certificates when --certout is informed. --- src/pesec.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/pesec.c b/src/pesec.c index 2670cb71..cac8e48c 100644 --- a/src/pesec.c +++ b/src/pesec.c @@ -144,10 +144,6 @@ static options_t *parse_options(int argc, char *argv[]) exit(EXIT_FAILURE); } } - - // If the --certout option was not passed, we manually setup it. - if (options->certout == NULL) - options->certout = parse_certout("stdout"); return options; } @@ -196,6 +192,8 @@ static int round_up(int numToRound, int multiple) static void print_certificate(BIO *out, cert_format_e format, X509 *cert) { + if (out == NULL) + return; switch (format) { default: case CERT_FORMAT_TEXT: @@ -279,11 +277,8 @@ static void parse_certificates(const options_t *options, PE_FILE *pe) EXIT_ERROR("unable to read the Directories entry from Optional header"); const IMAGE_DATA_DIRECTORY * const directory = pe_get_data_directory(pe, IMAGE_DIRECTORY_ENTRY_SECURITY); - if (directory == NULL) { - fprintf(stderr, "security directory not found\n"); - // TODO: Should we exit using EXIT_ERROR? + if (directory == NULL) return; - } if (directory->VirtualAddress == 0 || directory->Size == 0) return; @@ -308,19 +303,18 @@ static void parse_certificates(const options_t *options, PE_FILE *pe) WIN_CERTIFICATE *cert = xmalloc(dwCertLen); // Read the whole WIN_CERTIFICATE based on the previously read size - if (!fread(cert, dwCertLen, 1, pe->handle)) { + if (!fread(cert, dwCertLen, 1, pe->handle)) EXIT_ERROR("unable to read"); - } static char value[MAX_MSG]; snprintf(value, MAX_MSG, "%u bytes", cert->dwLength); - output("length", value); + output("Length", value); snprintf(value, MAX_MSG, "0x%x (%s)", cert->wRevision, cert->wRevision == WIN_CERT_REVISION_1_0 ? "1" : cert->wRevision == WIN_CERT_REVISION_2_0 ? "2" : "unknown"); - output("revision", value); + output("Revision", value); snprintf(value, MAX_MSG, "0x%x", cert->wCertificateType); switch (cert->wCertificateType) { @@ -329,7 +323,7 @@ static void parse_certificates(const options_t *options, PE_FILE *pe) case WIN_CERT_TYPE_PKCS_SIGNED_DATA: strlcat(value, " (PKCS_SIGNED_DATA)", MAX_MSG); break; case WIN_CERT_TYPE_TS_STACK_SIGNED: strlcat(value, " (TS_STACK_SIGNED)", MAX_MSG); break; } - output("type", value); + output("Type", value); fileOffset += round_up(cert->dwLength, 8); // Offset to the next certificate. From 8a2a85fbf1a9805b7754b1c51be2ee4bc22170d1 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Wed, 2 Jan 2013 02:49:42 -0200 Subject: [PATCH 19/24] pesec: Show all signers and whether certificate signature is valid. --- src/pesec.c | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/src/pesec.c b/src/pesec.c index cac8e48c..28dc3320 100644 --- a/src/pesec.c +++ b/src/pesec.c @@ -253,20 +253,46 @@ static int parse_pkcs7_data(const options_t *options, const CRYPT_DATA_BLOB *blo break; } - for (int i = 0; certs != NULL && i < sk_X509_num(certs); i++) { + const int numcerts = certs != NULL ? sk_X509_num(certs) : 0; + for (int i = 0; i < numcerts; i++) { X509 *cert = sk_X509_value(certs, i); print_certificate(options->certout, options->certoutform, cert); // NOTE: Calling X509_free(cert) is unnecessary. } + // Print whether certificate signature is valid + if (numcerts > 0) { + X509 *subject = sk_X509_value(certs, 0); + X509 *issuer = sk_X509_value(certs, numcerts - 1); + int valid_sig = X509_verify(subject, X509_get_pubkey(issuer)); + output("Signature", valid_sig == 1 ? "valid" : "invalid"); + } + + // Print signers + if (numcerts > 0) + output("Signers", NULL); + for (int i = 0; i < numcerts; i++) { + X509 *cert = sk_X509_value(certs, i); + X509_NAME *name = X509_get_subject_name(cert); + + int issuer_name_len = X509_NAME_get_text_by_NID(name, NID_commonName, NULL, 0); + if (issuer_name_len > 0) { + char issuer_name[issuer_name_len + 1]; + X509_NAME_get_text_by_NID(name, NID_commonName, issuer_name, issuer_name_len + 1); + output(NULL, issuer_name); + } + } + error: if (p7 != NULL) PKCS7_free(p7); if (in != NULL) BIO_free(in); - EVP_cleanup(); // Deallocate everything from OpenSSL_add_all_algorithms - ERR_free_strings(); // Deallocate everything from ERR_load_crypto_strings + // Deallocate everything from OpenSSL_add_all_algorithms + EVP_cleanup(); + // Deallocate everything from ERR_load_crypto_strings + ERR_free_strings(); return result; } From 9158bf67bca4b786e7ba1b05e03591d05e6a5c8c Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Thu, 10 Jan 2013 04:29:18 -0200 Subject: [PATCH 20/24] Remove and ignore src/output. --- .gitignore | 1 + src/output | Bin 1687920 -> 0 bytes 2 files changed, 1 insertion(+) delete mode 100644 src/output diff --git a/.gitignore b/.gitignore index d7627192..c8c34eca 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ Debug *.dSYM *.log src/ofs2rva +src/output src/pedis src/pehash src/pepack diff --git a/src/output b/src/output deleted file mode 100644 index 91986d80ebdc3d5a1b69793a6c5f3c276fa0e8e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1687920 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

HZq0Sh<7-M8TG7R51O*R9HfUss$2j^6}1^3|Jf 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%0DQRyK) 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

{e|fMj=etY>AePiy^AW9Q*2nocT7RW* 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 KZp1n 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 From 71014bf10d1adea98dcf0893fb7021fe55b03368 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Thu, 10 Jan 2013 04:29:24 -0200 Subject: [PATCH 21/24] Quoting pecoff_v8.docx: "Entries in the section table are numbered starting from one (1)". --- lib/libpe/pe.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/libpe/pe.h b/lib/libpe/pe.h index 31284f4f..12b1c8ba 100644 --- a/lib/libpe/pe.h +++ b/lib/libpe/pe.h @@ -64,6 +64,7 @@ // directory Entries typedef enum { + // FIXME: Quoting pecoff_v8.docx: "Entries in the section table are numbered starting from one (1)". IMAGE_DIRECTORY_ENTRY_EXPORT = 0, // Export Directory IMAGE_DIRECTORY_ENTRY_IMPORT = 1, // Import Directory IMAGE_DIRECTORY_ENTRY_RESOURCE = 2, // Resource Directory From e58ee84dc093f3b396d0e3a79a579beae347019d Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Tue, 22 Jan 2013 01:21:29 -0200 Subject: [PATCH 22/24] Add rule to compile peres. Fix some formatting. --- lib/libpe/pe.h | 113 +++++++++++++++++++++++-------------------------- src/Makefile | 2 + src/peres.c | 49 +++++++++++---------- src/peres.h | 75 ++++++++++++++++---------------- 4 files changed, 114 insertions(+), 125 deletions(-) diff --git a/lib/libpe/pe.h b/lib/libpe/pe.h index b6c688ca..8c28a30e 100644 --- a/lib/libpe/pe.h +++ b/lib/libpe/pe.h @@ -44,29 +44,29 @@ typedef uint64_t QWORD; #define IMAGE_ORDINAL_FLAG64 0x8000000000000000ULL // resources types -#define RT_CURSOR 1 // cursor image -#define RT_BITMAP 2 // bitmap (.bmp) -#define RT_ICON 3 // icon -#define RT_MENU 4 // menu -#define RT_DIALOG 5 // dialog window -#define RT_STRING 6 // unicode string -#define RT_FONTDIR 7 // font directory -#define RT_FONT 8 // font -#define RT_ACCELERATOR 9 // hot keys -#define RT_RCDATA 10 // data -#define RT_MESSAGETABLE 11 // string table -#define RT_GROUP_CURSOR 12 // cursor group -#define RT_GROUP_ICON 14 // icon group -#define RT_VERSION 16 // version information -#define RT_DLGINCLUDE 17 // names of header files for dialogs (*.h) used by compiler -#define RT_PLUGPLAY 19 // data determined by application -#define RT_VXD 20 // vxd info -#define RT_ANICURSOR 21 // animated cursor -#define RT_ANIICON 22 // animated icon -#define RT_HTML 23 // html page -#define RT_MANIFEST 24 // manifest of Windows XP build -#define RT_DLGINIT 240 // strings used for initiating some controls in dialogs -#define RT_TOOLBAR 241 // configuration of toolbars +#define RT_CURSOR 1 // cursor image +#define RT_BITMAP 2 // bitmap (.bmp) +#define RT_ICON 3 // icon +#define RT_MENU 4 // menu +#define RT_DIALOG 5 // dialog window +#define RT_STRING 6 // unicode string +#define RT_FONTDIR 7 // font directory +#define RT_FONT 8 // font +#define RT_ACCELERATOR 9 // hot keys +#define RT_RCDATA 10 // data +#define RT_MESSAGETABLE 11 // string table +#define RT_GROUP_CURSOR 12 // cursor group +#define RT_GROUP_ICON 14 // icon group +#define RT_VERSION 16 // version information +#define RT_DLGINCLUDE 17 // names of header files for dialogs (*.h) used by compiler +#define RT_PLUGPLAY 19 // data determined by application +#define RT_VXD 20 // vxd info +#define RT_ANICURSOR 21 // animated cursor +#define RT_ANIICON 22 // animated icon +#define RT_HTML 23 // html page +#define RT_MANIFEST 24 // manifest of Windows XP build +#define RT_DLGINIT 240 // strings used for initiating some controls in dialogs +#define RT_TOOLBAR 241 // configuration of toolbars // directory Entries #define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Export Directory @@ -88,8 +88,7 @@ typedef uint64_t QWORD; #pragma pack(push, 1) -typedef struct _MACHINE_ENTRY -{ +typedef struct _MACHINE_ENTRY { char name[40]; WORD code; } MACHINE_ENTRY; @@ -229,31 +228,26 @@ typedef struct _IMAGE_RESOURCE_DIRECTORY { WORD NumberOfIdEntries; } IMAGE_RESOURCE_DIRECTORY; -typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY -{ - union - { - struct - { - DWORD NameOffset:31; - DWORD NameIsString:1; - } name; - DWORD Name; - } DirectoryName; - union - { - DWORD OffsetToData; - struct - { - DWORD OffsetToDirectory:31; - DWORD DataIsDirectory:1; - } data; - } DirectoryData; +typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { + union { + struct { + DWORD NameOffset:31; + DWORD NameIsString:1; + } name; + DWORD Name; + } DirectoryName; + union { + DWORD OffsetToData; + struct { + DWORD OffsetToDirectory:31; + DWORD DataIsDirectory:1; + } data; + } DirectoryData; } IMAGE_RESOURCE_DIRECTORY_ENTRY; typedef struct _IMAGE_RESOURCE_DATA_STRING { - WORD length; - WORD string[1]; + WORD length; + WORD string[1]; } IMAGE_RESOURCE_DATA_STRING; typedef struct _IMAGE_RESOURCE_DATA_ENTRY { @@ -263,8 +257,7 @@ typedef struct _IMAGE_RESOURCE_DATA_ENTRY { DWORD reserved; } IMAGE_RESOURCE_DATA_ENTRY; -typedef struct _RESOURCE_ENTRY -{ +typedef struct _RESOURCE_ENTRY { char name[20]; DWORD nameOffset; char extension[20]; @@ -320,15 +313,15 @@ typedef struct _IMAGE_EXPORT_DIRECTORY { } IMAGE_EXPORT_DIRECTORY; typedef struct _IMAGE_IMPORT_DESCRIPTOR { - union { - DWORD Characteristics; // 0 for terminating null import descriptor - DWORD OriginalFirstThunk; // RVA to original unbound IAT - } u1; - DWORD TimeDateStamp; - DWORD ForwarderChain; // -1 if no forwarders - DWORD Name; - // RVA to IAT (if bound this IAT has actual addresses) - DWORD FirstThunk; + union { + DWORD Characteristics; // 0 for terminating null import descriptor + DWORD OriginalFirstThunk; // RVA to original unbound IAT + } u1; + DWORD TimeDateStamp; + DWORD ForwarderChain; // -1 if no forwarders + DWORD Name; + // RVA to IAT (if bound this IAT has actual addresses) + DWORD FirstThunk; } IMAGE_IMPORT_DESCRIPTOR; // import name entry @@ -355,8 +348,7 @@ typedef struct _IMAGE_THUNK_DATA32 { } u1; } IMAGE_THUNK_DATA32; -typedef struct _PE_FILE -{ +typedef struct _PE_FILE { FILE *handle; bool isdll; @@ -385,7 +377,6 @@ typedef struct _PE_FILE //IMAGE_TLS_DIRECTORY32 *tls_ptr; IMAGE_RESOURCE_DIRECTORY *rsrc_ptr; IMAGE_RESOURCE_DIRECTORY_ENTRY **rsrc_entries_ptr; - } PE_FILE; #pragma pack(pop) diff --git a/src/Makefile b/src/Makefile index d8afed8f..fc040e94 100644 --- a/src/Makefile +++ b/src/Makefile @@ -33,6 +33,8 @@ pestr: CPPFLAGS += -D_GNU_SOURCE=1 pestr: LDFLAGS += -lpcre pestr: pestr.c +peres: peres.c + pehash: LDFLAGS += -lssl -lcrypto pehash: pehash.c diff --git a/src/peres.c b/src/peres.c index 46a9ed73..7d192f23 100644 --- a/src/peres.c +++ b/src/peres.c @@ -1,6 +1,6 @@ /* pev - the PE file analyzer toolkit - + peres.c - retrive informations and binary data of resources Copyright (C) 2012 pev authors @@ -51,13 +51,13 @@ static void parse_options(int argc, char **argv) static const struct option long_options[] = { - {"all", required_argument, NULL, 'a'}, - {"extract", no_argument, NULL, 'x'}, - {"info", no_argument, NULL, 'i'}, - {"statistics", no_argument, NULL, 's'}, - {"version", no_argument, NULL, 'v'}, - {"help", no_argument, NULL, 1 }, - { NULL, 0, NULL, 0 } + {"all", required_argument, NULL, 'a'}, + {"extract", no_argument, NULL, 'x'}, + {"info", no_argument, NULL, 'i'}, + {"statistics", no_argument, NULL, 's'}, + {"version", no_argument, NULL, 'v'}, + {"help", no_argument, NULL, 1 }, + { NULL, 0, NULL, 0 } }; //memset(&config, false, sizeof(config)); @@ -256,11 +256,10 @@ static void freeNodes(NODE_PERES *currentNode) static RESOURCE_ENTRY * getResourceEntryByNameOffset(DWORD nameOffset) { - unsigned int i; - for(i = 0; i < (sizeof(resourceTypes)/sizeof(RESOURCE_ENTRY)); i++) + for (size_t i = 0; i < (sizeof(resource_types) / sizeof(RESOURCE_ENTRY)); i++) { - if(resourceTypes[i].nameOffset == nameOffset) - return (RESOURCE_ENTRY *)&resourceTypes[i]; + if (resource_types[i].nameOffset == nameOffset) + return &resource_types[i]; } return NULL; @@ -473,18 +472,18 @@ static NODE_PERES * discoveryNodesPeres(PE_FILE *pe) fread(&nodePeres->node, sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY), 1, pe->handle); //showNode(nodePeres); - if (lastNodeByTypeAndLevel(nodePeres, RDT_DIRECTORY_ENTRY, RDT_LEVEL1)->node.directoryEntry.DirectoryData.data.DataIsDirectory) - { - fseek(pe->handle, (raiz + lastNodeByTypeAndLevel(nodePeres, RDT_DIRECTORY_ENTRY, RDT_LEVEL1)->node.directoryEntry.DirectoryData.data.OffsetToDirectory), SEEK_SET); - nodePeres = createNode(nodePeres, RDT_RESOURCE_DIRECTORY); - nodePeres->nodeLevel = RDT_LEVEL2; - nodePeres->rootNode = lastNodeByTypeAndLevel(nodePeres, RDT_DIRECTORY_ENTRY, RDT_LEVEL1); - fread(&nodePeres->node, sizeof(IMAGE_RESOURCE_DIRECTORY), 1, pe->handle); - //showNode(nodePeres); - - for(j = 1, offsetDirectory2 = 0; j <= (lastNodeByTypeAndLevel(nodePeres, RDT_RESOURCE_DIRECTORY, RDT_LEVEL2)->node.resourceDirectory.NumberOfNamedEntries + - lastNodeByTypeAndLevel(nodePeres, RDT_RESOURCE_DIRECTORY, RDT_LEVEL2)->node.resourceDirectory.NumberOfIdEntries); j++) - { + if (lastNodeByTypeAndLevel(nodePeres, RDT_DIRECTORY_ENTRY, RDT_LEVEL1)->node.directoryEntry.DirectoryData.data.DataIsDirectory) + { + fseek(pe->handle, (raiz + lastNodeByTypeAndLevel(nodePeres, RDT_DIRECTORY_ENTRY, RDT_LEVEL1)->node.directoryEntry.DirectoryData.data.OffsetToDirectory), SEEK_SET); + nodePeres = createNode(nodePeres, RDT_RESOURCE_DIRECTORY); + nodePeres->nodeLevel = RDT_LEVEL2; + nodePeres->rootNode = lastNodeByTypeAndLevel(nodePeres, RDT_DIRECTORY_ENTRY, RDT_LEVEL1); + fread(&nodePeres->node, sizeof(IMAGE_RESOURCE_DIRECTORY), 1, pe->handle); + //showNode(nodePeres); + + for(j = 1, offsetDirectory2 = 0; j <= (lastNodeByTypeAndLevel(nodePeres, RDT_RESOURCE_DIRECTORY, RDT_LEVEL2)->node.resourceDirectory.NumberOfNamedEntries + + lastNodeByTypeAndLevel(nodePeres, RDT_RESOURCE_DIRECTORY, RDT_LEVEL2)->node.resourceDirectory.NumberOfIdEntries); j++) + { if(j == 1) { offsetDirectory2 += 16; @@ -533,7 +532,7 @@ static NODE_PERES * discoveryNodesPeres(PE_FILE *pe) //showNode(nodePeres); } } - } + } } return nodePeres; } diff --git a/src/peres.h b/src/peres.h index b397ce71..d78ba103 100644 --- a/src/peres.h +++ b/src/peres.h @@ -1,6 +1,6 @@ /* pev - the PE file analyzer toolkit - + peres.h - definitions for peres.c Copyright (C) 2012 pev authors @@ -37,24 +37,22 @@ struct options { }; typedef enum { - RDT_LEVEL1 = 1, - RDT_LEVEL2 = 2, - RDT_LEVEL3 = 3 + RDT_LEVEL1 = 1, + RDT_LEVEL2 = 2, + RDT_LEVEL3 = 3 } NODE_LEVEL_PERES; typedef enum { - RDT_RESOURCE_DIRECTORY = 1, - RDT_DIRECTORY_ENTRY = 2, - RDT_DATA_STRING = 3, - RDT_DATA_ENTRY = 4 + RDT_RESOURCE_DIRECTORY = 1, + RDT_DIRECTORY_ENTRY = 2, + RDT_DATA_STRING = 3, + RDT_DATA_ENTRY = 4 } NODE_TYPE_PERES; -typedef struct _NODE_PERES -{ +typedef struct _NODE_PERES { NODE_TYPE_PERES nodeType; NODE_LEVEL_PERES nodeLevel; - union - { + union { IMAGE_RESOURCE_DIRECTORY resourceDirectory; // nodeType == 1 IMAGE_RESOURCE_DIRECTORY_ENTRY directoryEntry; // nodeType == 2 IMAGE_RESOURCE_DATA_STRING dataString; // nodeType == 3 @@ -65,35 +63,34 @@ typedef struct _NODE_PERES struct NODE_PERES *rootNode; } NODE_PERES; -char *resourceDir = "resources"; - -static const RESOURCE_ENTRY resourceTypes[] = -{ - {"RT_CURSOR", 1, ".cur", "cursors"}, - {"RT_BITMAP", 2, ".bmp", "bitmaps"}, - {"RT_ICON", 3, ".ico", "icons"}, - {"RT_MENU", 4, ".rc", "menus"}, - {"RT_DIALOG", 5, ".dlg", "dialogs"}, - {"RT_STRING", 6, ".rc", "strings"}, - {"RT_FONTDIR", 7, ".fnt", "fontdirs"}, - {"RT_FONT", 8, ".fnt", "fonts"}, - {"RT_ACCELERATOR", 9, ".rc", "accelerators"}, - {"RT_RCDATA", 10, ".rc", "rcdatas"}, - {"RT_MESSAGETABLE", 11, ".mc", "messagetables"}, - {"RT_GROUP_CURSOR", 12, ".cur", "groupcursors"}, - {"RT_GROUP_ICON", 14, ".ico", "groupicons"}, - {"RT_VERSION", 16, ".rc", "versions"}, - {"RT_DLGINCLUDE", 17, ".rc", "dlgincludes"}, - {"RT_PLUGPLAY", 19, ".rc", "plugplays"}, - {"RT_VXD", 20, ".rc", "xvds"}, - {"RT_ANICURSOR", 21, ".rc", "anicursors"}, - {"RT_ANIICON", 22, ".rc", "aniicons"}, - {"RT_HTML", 23, ".html", "htmls"}, - {"RT_MANIFEST", 24, ".xml", "manifests"}, - {"RT_DLGINIT", 240, ".rc", "dlginits"}, - {"RT_TOOLBAR", 241, ".rc", "toolbars"} +static const RESOURCE_ENTRY resource_types[] = { + { "RT_CURSOR", 1, ".cur", "cursors" }, + { "RT_BITMAP", 2, ".bmp", "bitmaps" }, + { "RT_ICON", 3, ".ico", "icons" }, + { "RT_MENU", 4, ".rc", "menus" }, + { "RT_DIALOG", 5, ".dlg", "dialogs" }, + { "RT_STRING", 6, ".rc", "strings" }, + { "RT_FONTDIR", 7, ".fnt", "fontdirs" }, + { "RT_FONT", 8, ".fnt", "fonts" }, + { "RT_ACCELERATOR", 9, ".rc", "accelerators" }, + { "RT_RCDATA", 10, ".rc", "rcdatas" }, + { "RT_MESSAGETABLE", 11, ".mc", "messagetables" }, + { "RT_GROUP_CURSOR", 12, ".cur", "groupcursors" }, + { "RT_GROUP_ICON", 14, ".ico", "groupicons" }, + { "RT_VERSION", 16, ".rc", "versions" }, + { "RT_DLGINCLUDE", 17, ".rc", "dlgincludes" }, + { "RT_PLUGPLAY", 19, ".rc", "plugplays" }, + { "RT_VXD", 20, ".rc", "xvds" }, + { "RT_ANICURSOR", 21, ".rc", "anicursors" }, + { "RT_ANIICON", 22, ".rc", "aniicons" }, + { "RT_HTML", 23, ".html", "htmls" }, + { "RT_MANIFEST", 24, ".xml", "manifests" }, + { "RT_DLGINIT", 240, ".rc", "dlginits" }, + { "RT_TOOLBAR", 241, ".rc", "toolbars" } }; +char *resourceDir = "resources"; + struct options config; #endif From fbe456124a3bcfec0ec42470d99b6bc24b0a8517 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Tue, 22 Jan 2013 02:05:06 -0200 Subject: [PATCH 23/24] peres: Fix warnings. --- src/peres.c | 22 +++++++++++----------- src/peres.h | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/peres.c b/src/peres.c index 7d192f23..85bade8d 100644 --- a/src/peres.c +++ b/src/peres.c @@ -145,7 +145,7 @@ static void showNode(NODE_PERES *nodePeres) snprintf(value, MAX_MSG, "%d", nodePeres->node.dataString.length); output("String len", value); - snprintf(value, MAX_MSG, "%d", (int) nodePeres->node.dataString.string); + snprintf(value, MAX_MSG, "%d", nodePeres->node.dataString.string[0]); output("String", value); break; @@ -174,8 +174,8 @@ static void showNode(NODE_PERES *nodePeres) static NODE_PERES * createNode(NODE_PERES *currentNode, NODE_TYPE_PERES typeOfNextNode) { currentNode->nextNode = xmalloc(sizeof(NODE_PERES)); - ((NODE_PERES *) currentNode->nextNode)->lastNode = currentNode; - currentNode = (NODE_PERES *) currentNode->nextNode; + currentNode->nextNode->lastNode = currentNode; + currentNode = currentNode->nextNode; currentNode->nodeType = typeOfNextNode; currentNode->nextNode = NULL; return currentNode; @@ -254,7 +254,7 @@ static void freeNodes(NODE_PERES *currentNode) } } -static RESOURCE_ENTRY * getResourceEntryByNameOffset(DWORD nameOffset) +static const RESOURCE_ENTRY * getResourceEntryByNameOffset(DWORD nameOffset) { for (size_t i = 0; i < (sizeof(resource_types) / sizeof(RESOURCE_ENTRY)); i++) { @@ -273,7 +273,6 @@ static void saveResource(PE_FILE *pe, NODE_PERES *nodePeres, int count) char fileName[100]; DWORD nameOffset; QWORD offsetData; - struct stat statDir = {0}; buffer = xmalloc(lastNodeByType(nodePeres, RDT_DATA_ENTRY)->node.dataEntry.size); memset(buffer, 0, lastNodeByType(nodePeres, RDT_DATA_ENTRY)->node.dataEntry.size); @@ -281,23 +280,24 @@ static void saveResource(PE_FILE *pe, NODE_PERES *nodePeres, int count) fseek(pe->handle, offsetData, SEEK_SET); memset(&fileName, 0, 100); memset(&dirName, 0, 100); - nameOffset = ((NODE_PERES *)nodePeres->rootNode)->node.directoryEntry.DirectoryName.name.NameOffset; + nameOffset = nodePeres->rootNode->node.directoryEntry.DirectoryName.name.NameOffset; if(fread(buffer, lastNodeByType(nodePeres, RDT_DATA_ENTRY)->node.dataEntry.size + 1, 1, pe->handle)) { + struct stat statDir; if (stat(resourceDir, &statDir) == -1) mkdir(resourceDir, 0700); - snprintf(&dirName, 100, "%s/%s", resourceDir, getResourceEntryByNameOffset(nameOffset)->dirName); + snprintf(dirName, sizeof(dirName), "%s/%s", resourceDir, getResourceEntryByNameOffset(nameOffset)->dirName); if (stat(dirName, &statDir) == -1) mkdir(dirName, 0700); if(getResourceEntryByNameOffset(nameOffset) != NULL) - snprintf(&fileName, 100, "%s/%d%s", dirName, count, getResourceEntryByNameOffset(nameOffset)->extension); + snprintf(fileName, sizeof(fileName), "%s/%d%s", dirName, count, getResourceEntryByNameOffset(nameOffset)->extension); else - snprintf(&fileName, 100, "%s/%d.bin", dirName, count); + snprintf(fileName, sizeof(fileName), "%s/%d.bin", dirName, count); - fpSave = fopen(&fileName, "wb+"); + fpSave = fopen(fileName, "wb+"); fwrite(buffer, lastNodeByType(nodePeres, RDT_DATA_ENTRY)->node.dataEntry.size, 1, fpSave); fclose(fpSave); output("Save On", fileName); @@ -524,7 +524,7 @@ static NODE_PERES * discoveryNodesPeres(PE_FILE *pe) fread(&nodePeres->node, sizeof(IMAGE_RESOURCE_DATA_STRING), 1, pe->handle); //showNode(nodePeres); - fseek(pe->handle, (raiz + ((NODE_PERES *)nodePeres->lastNode)->node.directoryEntry.DirectoryData.data.OffsetToDirectory), SEEK_SET); + fseek(pe->handle, (raiz + nodePeres->lastNode->node.directoryEntry.DirectoryData.data.OffsetToDirectory), SEEK_SET); nodePeres = createNode(nodePeres, RDT_DATA_ENTRY); nodePeres->nodeLevel = RDT_LEVEL3; nodePeres->rootNode = rootNodePeres; diff --git a/src/peres.h b/src/peres.h index d78ba103..14015fec 100644 --- a/src/peres.h +++ b/src/peres.h @@ -58,9 +58,9 @@ typedef struct _NODE_PERES { IMAGE_RESOURCE_DATA_STRING dataString; // nodeType == 3 IMAGE_RESOURCE_DATA_ENTRY dataEntry; // nodeType == 4 } node; - struct NODE_PERES *nextNode; - struct NODE_PERES *lastNode; - struct NODE_PERES *rootNode; + struct _NODE_PERES *nextNode; + struct _NODE_PERES *lastNode; + struct _NODE_PERES *rootNode; } NODE_PERES; static const RESOURCE_ENTRY resource_types[] = { From 5d0fa30a406ec0881618b23dec478c7f98086454 Mon Sep 17 00:00:00 2001 From: Jardel Weyrich Date: Tue, 22 Jan 2013 02:16:34 -0200 Subject: [PATCH 24/24] peres: Add constness to string literal. --- src/peres.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/peres.h b/src/peres.h index 14015fec..8af8670e 100644 --- a/src/peres.h +++ b/src/peres.h @@ -89,7 +89,7 @@ static const RESOURCE_ENTRY resource_types[] = { { "RT_TOOLBAR", 241, ".rc", "toolbars" } }; -char *resourceDir = "resources"; +const char *resourceDir = "resources"; struct options config;