github.com/saferwall/pe@v1.5.2/CHANGELOG.md (about)

     1  # Changelog
     2  
     3  All notable changes to this project will be documented in this file.
     4  
     5  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
     6  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
     7  
     8  ## [1.4.0] - Unreleased
     9  
    10  ### Added
    11  
    12  - Permit more granular control over which data directories are parsed by [rabbitstack](https://github.com/rabbitstack) [#72](https://github.com/saferwall/pe/pull/72).
    13  - Support parsing the different `retpoline` types: Imported Address, Indirect Branch and Switchable retpoline [#70](https://github.com/saferwall/pe/pull/70).
    14  - Unit tests for load config directory [#70](https://github.com/saferwall/pe/pull/69).
    15  - Unit tests for TLS directory [#69](https://github.com/saferwall/pe/pull/69).
    16  - Unit tests for debug directory [#68](https://github.com/saferwall/pe/pull/68).
    17  - Unit tests for resource directory and add functions to prettify resource (sub)languages [#66](https://github.com/saferwall/pe/pull/66).
    18  - Annotate PE structures with JSON tags during JSON encoding [#64](https://github.com/saferwall/pe/pull/64), [#65](https://github.com/saferwall/pe/pull/65)  and [#67](https://github.com/saferwall/pe/pull/67).
    19  - Improve PE dumper to print imports and unit test parsing imports data directory[#63](https://github.com/saferwall/pe/pull/63).
    20  - Improve PE dumper to print section headers [#62](https://github.com/saferwall/pe/pull/62).
    21  - Improve PE dumper to print PE headers [#61](https://github.com/saferwall/pe/pull/61).
    22  - Add `SerialNumber`, `SignatureAlgorithm` and `PubKeyAlgorithm` to the `CertInfo` [#60](https://github.com/saferwall/pe/pull/60).
    23  - Option to disable certificate validation [#59](https://github.com/saferwall/pe/pull/59).
    24  - Improve PE dumper to print exceptions [#57](https://github.com/saferwall/pe/pull/57).
    25  - Unit tests for debug directory [#49](https://github.com/saferwall/pe/pull/49).
    26  
    27  ### Fixed
    28  
    29  - Bug while iterating over VolatileInfoRangeTable entries [#70](https://github.com/saferwall/pe/pull/70).
    30  - Bug while iterating  (additional padding and loop condition) over DVRT relocation block entries [#70](https://github.com/saferwall/pe/pull/70).
    31  - Bug while appending (twice) Control Flow Guard IAT entries [#70](https://github.com/saferwall/pe/pull/70).
    32  - Bug while parsing `POGO` debug entry types [#68](https://github.com/saferwall/pe/pull/68).
    33  - `Authentihash()` for instances w/o fd thanks to [flanfly](https://github.com/flanfly) [#47](https://github.com/saferwall/pe/pull/47).
    34  
    35  ### Changed
    36  
    37  - Some fields has been renamed for consistency:
    38    - `RichHeader.XorKey` -> `RichHeader.XORKey`.
    39    - Any `Rva` substring -> `RVA` and any `Iat` substring -> `IAT`.
    40    - And many more.
    41  - Some fields used internally in imports parsing were changed from a slice of pointers to a simple slice.
    42  - Certificate.Content changed from `*pkcs7.PKCS7` to `pkcs7.PKCS7`.
    43  - `Section.Entropy` changed from `float64` to `float64*` to distinguish between the case when the section entropy is equal to zero and the case when the entropy is equal to nil - meaning that it was never calculated.
    44  - Remove `cobra` dependency from `cmd/pedumper` [#56](https://github.com/saferwall/pe/pull/56).
    45  
    46  ## [1.3.0] - 2022-08-04
    47  
    48  ## Added
    49  
    50  - Authenticode signature validation in Windows [#43](https://github.com/saferwall/pe/pull/43).
    51  - File information structure that helps to identify what parts of the PE file we have, such as `HasImports()` [#42](https://github.com/saferwall/pe/pull/42)..
    52  - Calculate Rich header hash thanks to [wanglei-coder](https://github.com/wanglei-coder) [#38](https://github.com/saferwall/pe/pull/38).
    53  - PE Overlay thanks to [wanglei-coder](https://github.com/wanglei-coder) [#37](https://github.com/saferwall/pe/pull/37).
    54  - Unit tests for DOS header parsing.
    55  - Unit tests for CLR directory [#34](https://github.com/saferwall/pe/pull/28).
    56  - Unit tests for Rich header [#33](https://github.com/saferwall/pe/pull/33).
    57  
    58  ## Changed
    59  
    60  - Do not return an error when parsing a data directory fails [#45](https://github.com/saferwall/pe/pull/45).
    61  - Remove pointers from fields in the main `File` structure [#44](https://github.com/saferwall/pe/pull/44).
    62  
    63  ### Fixed
    64  
    65  - Fix getting section data repeatedly thanks to [wanglei-coder](https://github.com/wanglei-coder) [#41](https://github.com/saferwall/pe/pull/41).
    66  - Fix `adjustSectionAlignment()` thanks to [wanglei-coder](https://github.com/wanglei-coder) [#40](https://github.com/saferwall/pe/pull/40).
    67  - Fix authentihash calculation thanks to [wanglei-coder](https://github.com/wanglei-coder) [#38](https://github.com/saferwall/pe/pull/38).
    68  - Memory leak in `Close()` function that missed a call to `unmap()` thanks to [Mamba24L8](https://github.com/Mamba24L8).
    69  
    70  ## [1.2.0] - 2022-06-12
    71  
    72  ## Added
    73  
    74  - Unit tests for export directory [#28](https://github.com/saferwall/pe/pull/28).
    75  - Add a new option to allow usage of a custom logger [#24](https://github.com/saferwall/pe/pull/24).
    76  - Unit tests for delay imports directory [#23](https://github.com/saferwall/pe/pull/23).
    77  - Allow access to the raw certificates content [#22](https://github.com/saferwall/pe/pull/22).
    78  - Unit tests for security directory [#19](https://github.com/saferwall/pe/pull/19).
    79  - Unit tests for bound imports directory [#18](https://github.com/saferwall/pe/pull/18).
    80  
    81  ## Changed
    82  
    83  - Make `GetData()` and `GetRVAFromOffset()` and `GetOffsetFromRva()` helper routines public.
    84  - Keep parsing in exports directories even when anomalies are found [#26](https://github.com/saferwall/pe/pull/26).
    85  
    86  ## Fixed
    87  
    88  - Incorrect check for `skipCertVerification` in security directory.
    89  - Null pointer dereference in `GetExportFunctionByRVA()` and out of bounds when calculating `symbolAddress` in export directory [#28](https://github.com/saferwall/pe/pull/28).
    90  - Reading unicode string from resource directory `readUnicodeStringAtRVA()` [#26](https://github.com/saferwall/pe/pull/26).
    91  - Null pointer dereference in resource directory parsing [#25](https://github.com/saferwall/pe/pull/25).
    92  - Imphash calculation [#17](https://github.com/saferwall/pe/pull/17) thanks to [@secDre4mer](https://github.com/secDre4mer).
    93  - Null certificate header in security directory [#19](https://github.com/saferwall/pe/pull/19)
    94  
    95  ## [1.1.0] - 2021-12-20
    96  
    97  ### Added
    98  
    99  - Add .editorconfig and .vscode config.
   100  - Add github action CI workflow to test the package.
   101  - Add few badges for the README.md to track build status, coverage and code quality.
   102  - Introduce a new API to parse a file from a byte array.
   103  - Parse .net metadata Module table.
   104  - Parse .net metadata stream headers and metadata tables stream header.
   105  - Add cmd/pedumper to illustrate how to use the library.
   106  - Add unit test for relocation, exception, security, symbol, file, nt header, section and helper files.
   107  - Add an option `New()` to customize max of relocations entries and COFF symbols to parse.
   108  
   109  ### Changed
   110  
   111  - Remove uneeded break statements & lowercase error messages and anomalies.
   112  - Make COFF entry in File struct a pointer.
   113  - Remove unsafe pointer usage from resource directory.
   114  - Do not return an error when COFF symbol table is not found.
   115  - License from Apache 2 to MIT.
   116  
   117  ### Fixed
   118  
   119  - Probe for invalid Nt Header offset.
   120  - Fix authenticode hash calculation.
   121  - Compile correctly on 32 bit thnkas to @Max Altgelt.
   122  - COFF symbol table `readASCIIStringAtOffset()` out of bounds exception.
   123  - Probe for optional header section alignment != 0.
   124  - Fix infinite loop in exception unwind code parsing.
   125  - Fix last data directory entry is reserved and must be zero.
   126  - Safe ready of global pointer register
   127  
   128  ## [1.0.0] - 2021-03-04 (Initial Release)
   129  
   130  - Works with PE32/PE32+ file fomat.
   131  - Supports Intel x86/AMD64/ARM7ARM7 Thumb/ARM8-64/IA64/CHPE architectures.
   132  - MS DOS header.
   133  - Rich Header (calculate checksum).
   134  - NT Header (file header + optional header).
   135  - COFF symbol table and string table.
   136  - Sections headers + entropy calculation.
   137  - Data directories:
   138    - Import Table + ImpHash calculation.
   139    - Export Table.
   140    - Resource Table.
   141    - Exceptions Table.
   142    - Security Table + Authentihash calculation.
   143    - Relocations Table.
   144    - Debug Table (CODEVIEW, POGO, VC FEATURE, REPRO, FPO, EXDLL CHARACTERISTICS debug types).
   145    - TLS Table.
   146    - Load Config Directory (SEH, GFID, GIAT, Guard LongJumps, CHPE, Dynamic Value Reloc Table, Enclave Configuration, Volatile Metadata tables).
   147    - Bound Import Table.
   148    - Delay Import Table.
   149    - COM Table (CLR Metadata Header, Metadata Table Streams).
   150    - Report several anomalies.