diff --git a/misc/testsuite/upx_testsuite_1-expected_sha256sums.sh b/misc/testsuite/upx_testsuite_1-expected_sha256sums.sh index 79394ab7..a9d9027c 100644 --- a/misc/testsuite/upx_testsuite_1-expected_sha256sums.sh +++ b/misc/testsuite/upx_testsuite_1-expected_sha256sums.sh @@ -117,7 +117,7 @@ f9855c0a0842bbe2485790b1c8384a42bf7f296332a7006dd6ffc56a5e9463b6 *powerpc-linux. expected_sha256sums__t140_compress_lzma_2_no_filter="\ d5afc5eddd70c24154115a565aa9b9c10eab2dc451eba427345e30da5877e015 *amd64-linux.elf/upx-3.91 ba1206be08fb1652ab5120189c4f52c59d97fd229f23603db506c0bff40b9132 *amd64-linux.elf/upx-3.95 -78dbd9139a8c44e8bc0474a59bf503d64104272369c7d35ccdb3d44b9b871815 *amd64-win64.pe/upx-3.95.exe +a55ec5a7f2911f6da8b9336daf4f1051e753cfb7a4458c7f7baa6b63340c6daf *amd64-win64.pe/upx-3.95.exe 666cf9f93567d57da44a0786c35f2daa257bc61f7f5b4e20e0d1ca308d0a115e *arm-linux.elf/upx-3.95 4c0ea442efd94c74c87ad40a7e5a56668e5e9f55bedd8ef7e15de06e6fa18f0b *arm-wince.pe/upx-3.91.exe f562d03f79e6df8613894fba608103975d0d25deb0370afef5c970820719be76 *arm64-linux.elf/upx-3.95 @@ -163,7 +163,7 @@ fd8e59a9d7b95345478a4fc735064cae829c0dda7c36a8b446d49238749e1023 *mipsel-linux.e expected_sha256sums__t160_compress_all_methods_1_no_filter="\ a173f4034d7488b2b59c6f9f4281596a36993773bf8cbd64479191dd178e19f0 *amd64-linux.elf/upx-3.91 cf7fa364d5cec9f3218b13e96da6bfee4adf21893db9aa0fb9416dcd78cd70b2 *amd64-linux.elf/upx-3.95 -5d1acaf434af1600f08d107a997dbd91db8d4981802cb168dea00238e8af97ab *amd64-win64.pe/upx-3.95.exe +5a0ecb45658904bcd0b823b77dba039c9814e2eff4ed429784c36b7074b9858c *amd64-win64.pe/upx-3.95.exe 595ff2be7cb920c9b0465b10d3365a4f887bd8c34d488ea610c9586dba95d622 *arm-linux.elf/upx-3.95 28d5c3bdce09aa6f95a833a1a2cb7a99c2d5f03eb6d2a2463a5fc637f49e8c66 *arm-wince.pe/upx-3.91.exe 20010f9f9eddc03996cd9c0930129d763130f5109aacefee5f3d3babc3e941f3 *arm64-linux.elf/upx-3.95 diff --git a/src/p_w64pe_amd64.cpp b/src/p_w64pe_amd64.cpp index e9e28548..92b87997 100644 --- a/src/p_w64pe_amd64.cpp +++ b/src/p_w64pe_amd64.cpp @@ -92,23 +92,23 @@ void PackW64PeAmd64::buildLoader(const Filter *ft) { addLoader(isdll ? "PEISDLL1" : "", "PEMAIN01", // outer "enter" (push rbp; mov rsp,rbp) icondir_count > 1 ? (icondir_count == 2 ? "PEICONS1" : "PEICONS2") : "", tmp_tlsindex ? "PETLSHAK" : "", "PEMAIN02"); + // (ph.first_offset_found == 1 ? "PEMAIN03" : "") - // ph.first_offset_found == 1 ? "PEMAIN03" : ""); - - // LZMA_ELF00 has inner "enter" (push rbp; mov rsp,rbp) - // LZMA_TAIL has inner 'leave' (mov rbp,rsp; pop rbp) + // This if-else corresponds to getDecompressorSections(). if (M_IS_LZMA(ph.method)) { + // LZMA_ELF00 has inner "enter" (push rbp; mov rsp,rbp) + // LZMA_TAIL has inner 'leave' (mov rbp,rsp; pop rbp) addLoader("LZMA_HEAD,LZMA_ELF00", (opt->small ? "LZMA_DEC10" : "LZMA_DEC20"), "LZMA_TAIL"); } else { addLoader(M_IS_NRV2B(ph.method) ? "NRV_HEAD,NRV2B" : M_IS_NRV2D(ph.method) ? "NRV_HEAD,NRV2D" : M_IS_NRV2E(ph.method) ? "NRV_HEAD,NRV2E" - : "UNKNOWN_COMPRESSION_METHOD", - // getDecompressorSections(), - /*multipass ? "PEMULTIP" : */ "", "PEMAIN10"); + : "UNKNOWN_COMPRESSION_METHOD"); } - if (tmp_tlsindex) - addLoader("PETLSHAK2"); + + // (multipass ? "PEMULTIP" : "") + addLoader("PEMAIN10", (tmp_tlsindex ? "PETLSHAK2" : "")); + if (ft->id) { const unsigned texv = ih.codebase - rvamin; assert(ft->calls > 0);