clamav/libclamav/execs.h

68 lines
2.1 KiB
C
Raw Normal View History

/*
2015-09-17 13:41:26 -04:00
* Copyright (C) 2015 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
* Copyright (C) 2007-2008 Sourcefire, Inc.
*
* Authors: Tomasz Kojm
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
#ifndef __EXECS_H
#define __EXECS_H
#include "cltypes.h"
2010-01-04 14:56:04 +01:00
#include "hashtab.h"
2009-09-25 16:57:43 +03:00
#include "bcfeatures.h"
2010-01-04 14:56:04 +01:00
2009-11-24 14:53:15 +02:00
/** @file */
2010-09-02 18:04:00 +03:00
/** Section of executable file.
\group_pe
*/
struct cli_exe_section {
2009-11-24 14:53:15 +02:00
uint32_t rva;/**< Relative VirtualAddress */
uint32_t vsz;/**< VirtualSize */
uint32_t raw;/**< Raw offset (in file) */
uint32_t rsz;/**< Raw size (in file) */
uint32_t chr;/**< Section characteristics */
uint32_t urva; /**< PE - unaligned VirtualAddress */
uint32_t uvsz; /**< PE - unaligned VirtualSize */
uint32_t uraw; /**< PE - unaligned PointerToRawData */
uint32_t ursz; /**< PE - unaligned SizeOfRawData */
};
2010-09-02 18:04:00 +03:00
/** Executable file information
\group_pe
*/
struct cli_exe_info {
2009-11-24 14:53:15 +02:00
/** Information about all the sections of this file.
* This array has \p nsection elements */
2010-09-02 18:04:00 +03:00
struct cli_exe_section *section;
2009-11-24 14:53:15 +02:00
/** Offset where this executable start in file (nonzero if embedded) */
2009-09-30 13:41:02 +03:00
uint32_t offset;
2009-11-24 14:53:15 +02:00
/** Entrypoint of executable */
uint32_t ep;
2009-11-24 14:53:15 +02:00
/** Number of sections*/
uint16_t nsections;
2010-10-19 16:23:19 +03:00
void *dummy;/* for compat - preserve offset */
Spelling Adjustments (#30) * spelling: accessed * spelling: alignment * spelling: amalgamated * spelling: answers * spelling: another * spelling: acquisition * spelling: apitid * spelling: ascii * spelling: appending * spelling: appropriate * spelling: arbitrary * spelling: architecture * spelling: asynchronous * spelling: attachments * spelling: argument * spelling: authenticode * spelling: because * spelling: boundary * spelling: brackets * spelling: bytecode * spelling: calculation * spelling: cannot * spelling: changes * spelling: check * spelling: children * spelling: codegen * spelling: commands * spelling: container * spelling: concatenated * spelling: conditions * spelling: continuous * spelling: conversions * spelling: corresponding * spelling: corrupted * spelling: coverity * spelling: crafting * spelling: daemon * spelling: definition * spelling: delivered * spelling: delivery * spelling: delimit * spelling: dependencies * spelling: dependency * spelling: detection * spelling: determine * spelling: disconnects * spelling: distributed * spelling: documentation * spelling: downgraded * spelling: downloading * spelling: endianness * spelling: entities * spelling: especially * spelling: empty * spelling: expected * spelling: explicitly * spelling: existent * spelling: finished * spelling: flexibility * spelling: flexible * spelling: freshclam * spelling: functions * spelling: guarantee * spelling: hardened * spelling: headaches * spelling: heighten * spelling: improper * spelling: increment * spelling: indefinitely * spelling: independent * spelling: inaccessible * spelling: infrastructure Conflicts: docs/html/node68.html * spelling: initializing * spelling: inited * spelling: instream * spelling: installed * spelling: initialization * spelling: initialize * spelling: interface * spelling: intrinsics * spelling: interpreter * spelling: introduced * spelling: invalid * spelling: latency * spelling: lawyers * spelling: libclamav * spelling: likelihood * spelling: loop * spelling: maximum * spelling: million * spelling: milliseconds * spelling: minimum * spelling: minzhuan * spelling: multipart * spelling: misled * spelling: modifiers * spelling: notifying * spelling: objects * spelling: occurred * spelling: occurs * spelling: occurrences * spelling: optimization * spelling: original * spelling: originated * spelling: output * spelling: overridden * spelling: parenthesis * spelling: partition * spelling: performance * spelling: permission * spelling: phishing * spelling: portions * spelling: positives * spelling: preceded * spelling: properties * spelling: protocol * spelling: protos * spelling: quarantine * spelling: recursive * spelling: referring * spelling: reorder * spelling: reset * spelling: resources * spelling: resume * spelling: retrieval * spelling: rewrite * spelling: sanity * spelling: scheduled * spelling: search * spelling: section * spelling: separator * spelling: separated * spelling: specify * spelling: special * spelling: statement * spelling: streams * spelling: succession * spelling: suggests * spelling: superfluous * spelling: suspicious * spelling: synonym * spelling: temporarily * spelling: testfiles * spelling: transverse * spelling: turkish * spelling: typos * spelling: unable * spelling: unexpected * spelling: unexpectedly * spelling: unfinished * spelling: unfortunately * spelling: uninitialized * spelling: unlocking * spelling: unnecessary * spelling: unpack * spelling: unrecognized * spelling: unsupported * spelling: usable * spelling: wherever * spelling: wishlist * spelling: white * spelling: infrastructure * spelling: directories * spelling: overridden * spelling: permission * spelling: yesterday * spelling: initialization * spelling: intrinsics * space adjustment for spelling changes * minor modifications by klin
2018-02-21 15:00:59 -05:00
/** Resources RVA - PE ONLY */
uint32_t res_addr;
/** Address size - PE ONLY */
uint32_t hdr_size;
2010-10-19 16:23:19 +03:00
/** Hashset for versioninfo matching */
struct cli_hashset vinfo;
};
#endif