arm64 --nrv2d instruction confusion
https://github.com/upx/upx/issues/806 ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile Section C6.2.47, page C6-595 (note the 'invert'!) CINC <Wd>, <Wn>, <cond> is equivalent to CSINC <Wd>, <Wn>, <Wn>, invert(<cond>) modified: src/stub/src/arch/arm64/v8/nrv2d_d32.S modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh modified: src/stub/arm64-darwin.macho-entry.h modified: src/stub/arm64-linux.elf-entry.h modified: src/stub/arm64-linux.elf-so_fold.h modified: src/stub/arm64-linux.shlib-init.h modified: src/stub/arm64-win64.pe.h
This commit is contained in:
parent
d48a7d303d
commit
91f5fe1c0e
@ -74,7 +74,7 @@ f1ecf2d3ccb1738b54d8abad053cc2055cb37dc75dfbf40d0a0d90ff3f7999a7 *amd64-linux.el
|
||||
0314c6974f29d180e46e41a1004d46a3993fe96f03de7f78d45ad89ad3b2177e *amd64-win64.pe/upx-3.95.exe
|
||||
01d2d7ed5173bf4241977a7987000c9b41c9ec99631f9b800311194bc986df71 *arm-linux.elf/upx-3.95
|
||||
d7839b7dee866794e4ca3df32e2b1084b35aa22dee5f060fa14b5ca09c612ba3 *arm-wince.pe/upx-3.91.exe
|
||||
b535ebb234fc5948c6905eb3407b745bd14168a5d57d07dd72eda5a9a58ceeb4 *arm64-linux.elf/upx-3.95
|
||||
cb2c76f8399ed174a3042fbaf4c0a17777d52a35747a4e5514589b7734c8b166 *arm64-linux.elf/upx-3.95
|
||||
1fb7f4523bb64348252e379860687d9fae9dae4ef0f91c6c7b43af5ae3f6eede *armeb-linux.elf/upx-3.91
|
||||
975471f7f85a3044fefca41550b46ef83cf8db4b74cb1134286be31a9b1a0dfc *armeb-linux.elf/upx-3.95
|
||||
4a434c3a14686786369c8bede8736d15e307ed7dd8c40cccb8f22003b05db968 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
|
||||
6
src/stub/arm64-darwin.macho-entry.h
generated
6
src/stub/arm64-darwin.macho-entry.h
generated
@ -33,8 +33,8 @@
|
||||
/* clang-format off */
|
||||
|
||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_SIZE 7365
|
||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0xb6c76f2b
|
||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0x34c5965d
|
||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0x1bf86f1b
|
||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0xb61e8421
|
||||
|
||||
unsigned char stub_arm64_darwin_macho_entry[7365] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
@ -86,7 +86,7 @@ unsigned char stub_arm64_darwin_macho_entry[7365] = {
|
||||
/* 0x02e0 */ 2, 0, 0, 20,226,255,255,151, 33, 0, 1, 58,224,255,255,151,
|
||||
/* 0x02f0 */ 33, 0, 1, 58,225, 0, 0, 84, 33, 0,128, 82,220,255,255,151,
|
||||
/* 0x0300 */ 33, 0, 1, 58,218,255,255,151,163,255,255, 84, 33, 8, 0, 17,
|
||||
/* 0x0310 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 52,129, 26, 67, 0, 64, 57,
|
||||
/* 0x0310 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 36,129, 26, 67, 0, 64, 57,
|
||||
/* 0x0320 */ 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,
|
||||
/* 0x0330 */ 215,255,255, 23, 1, 64, 33,139,225, 11,190,169,227,123, 1,169,
|
||||
/* 0x0340 */ 5, 0,128, 18, 4, 0,176, 82, 52, 0, 0, 20,228,123, 65,169,
|
||||
|
||||
6
src/stub/arm64-linux.elf-entry.h
generated
6
src/stub/arm64-linux.elf-entry.h
generated
@ -33,8 +33,8 @@
|
||||
/* clang-format off */
|
||||
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 7437
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x90057585
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x2ca610ba
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0xf1277575
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x3732046d
|
||||
|
||||
unsigned char stub_arm64_linux_elf_entry[7437] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
@ -87,7 +87,7 @@ unsigned char stub_arm64_linux_elf_entry[7437] = {
|
||||
/* 0x02f0 */ 33, 0, 1, 58,224,255,255,151, 33, 0, 1, 58,225, 0, 0, 84,
|
||||
/* 0x0300 */ 33, 0,128, 82,220,255,255,151, 33, 0, 1, 58,218,255,255,151,
|
||||
/* 0x0310 */ 163,255,255, 84, 33, 8, 0, 17, 33, 4, 0, 17,191, 0, 20, 49,
|
||||
/* 0x0320 */ 33, 52,129, 26, 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56,
|
||||
/* 0x0320 */ 33, 36,129, 26, 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56,
|
||||
/* 0x0330 */ 33, 4, 0,113,161,255,255, 84,215,255,255, 23, 1, 64, 33,139,
|
||||
/* 0x0340 */ 225, 11,190,169,227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82,
|
||||
/* 0x0350 */ 52, 0, 0, 20,228,123, 65,169,225, 15,194,168, 0, 0, 1,203,
|
||||
|
||||
6
src/stub/arm64-linux.elf-so_fold.h
generated
6
src/stub/arm64-linux.elf-so_fold.h
generated
@ -33,8 +33,8 @@
|
||||
/* clang-format off */
|
||||
|
||||
#define STUB_ARM64_LINUX_ELF_SO_FOLD_SIZE 16470
|
||||
#define STUB_ARM64_LINUX_ELF_SO_FOLD_ADLER32 0xa5255ed2
|
||||
#define STUB_ARM64_LINUX_ELF_SO_FOLD_CRC32 0x6f40b8e7
|
||||
#define STUB_ARM64_LINUX_ELF_SO_FOLD_ADLER32 0x7b285ec2
|
||||
#define STUB_ARM64_LINUX_ELF_SO_FOLD_CRC32 0x0dde2064
|
||||
|
||||
unsigned char stub_arm64_linux_elf_so_fold[16470] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
@ -256,7 +256,7 @@ unsigned char stub_arm64_linux_elf_so_fold[16470] = {
|
||||
/* 0x0d80 */ 2, 0, 0, 20,226,255,255,151, 33, 0, 1, 58,224,255,255,151,
|
||||
/* 0x0d90 */ 33, 0, 1, 58,225, 0, 0, 84, 33, 0,128, 82,220,255,255,151,
|
||||
/* 0x0da0 */ 33, 0, 1, 58,218,255,255,151,163,255,255, 84, 33, 8, 0, 17,
|
||||
/* 0x0db0 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 52,129, 26, 67, 0, 64, 57,
|
||||
/* 0x0db0 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 36,129, 26, 67, 0, 64, 57,
|
||||
/* 0x0dc0 */ 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,
|
||||
/* 0x0dd0 */ 215,255,255, 23, 1, 64, 33,139,225, 11,190,169,227,123, 1,169,
|
||||
/* 0x0de0 */ 5, 0,128, 18, 4, 0,176, 82, 52, 0, 0, 20,228,123, 65,169,
|
||||
|
||||
6
src/stub/arm64-linux.shlib-init.h
generated
6
src/stub/arm64-linux.shlib-init.h
generated
@ -33,8 +33,8 @@
|
||||
/* clang-format off */
|
||||
|
||||
#define STUB_ARM64_LINUX_SHLIB_INIT_SIZE 7923
|
||||
#define STUB_ARM64_LINUX_SHLIB_INIT_ADLER32 0x70502fb3
|
||||
#define STUB_ARM64_LINUX_SHLIB_INIT_CRC32 0x41670c6c
|
||||
#define STUB_ARM64_LINUX_SHLIB_INIT_ADLER32 0xb3122fa3
|
||||
#define STUB_ARM64_LINUX_SHLIB_INIT_CRC32 0xb5f30aee
|
||||
|
||||
unsigned char stub_arm64_linux_shlib_init[7923] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
@ -87,7 +87,7 @@ unsigned char stub_arm64_linux_shlib_init[7923] = {
|
||||
/* 0x02f0 */ 33, 0, 1, 58,224,255,255,151, 33, 0, 1, 58,225, 0, 0, 84,
|
||||
/* 0x0300 */ 33, 0,128, 82,220,255,255,151, 33, 0, 1, 58,218,255,255,151,
|
||||
/* 0x0310 */ 163,255,255, 84, 33, 8, 0, 17, 33, 4, 0, 17,191, 0, 20, 49,
|
||||
/* 0x0320 */ 33, 52,129, 26, 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56,
|
||||
/* 0x0320 */ 33, 36,129, 26, 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56,
|
||||
/* 0x0330 */ 33, 4, 0,113,161,255,255, 84,215,255,255, 23, 1, 64, 33,139,
|
||||
/* 0x0340 */ 225, 11,190,169,227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82,
|
||||
/* 0x0350 */ 52, 0, 0, 20,228,123, 65,169,225, 15,194,168, 0, 0, 1,203,
|
||||
|
||||
6
src/stub/arm64-win64.pe.h
generated
6
src/stub/arm64-win64.pe.h
generated
@ -33,8 +33,8 @@
|
||||
/* clang-format off */
|
||||
|
||||
#define STUB_ARM64_WIN64_PE_SIZE 6445
|
||||
#define STUB_ARM64_WIN64_PE_ADLER32 0x85ff67f0
|
||||
#define STUB_ARM64_WIN64_PE_CRC32 0xea750c60
|
||||
#define STUB_ARM64_WIN64_PE_ADLER32 0x20b067e0
|
||||
#define STUB_ARM64_WIN64_PE_CRC32 0x6272f953
|
||||
|
||||
unsigned char stub_arm64_win64_pe[6445] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
@ -82,7 +82,7 @@ unsigned char stub_arm64_win64_pe[6445] = {
|
||||
/* 0x02a0 */ 2, 0, 0, 20,226,255,255,151, 33, 0, 1, 58,224,255,255,151,
|
||||
/* 0x02b0 */ 33, 0, 1, 58,225, 0, 0, 84, 33, 0,128, 82,220,255,255,151,
|
||||
/* 0x02c0 */ 33, 0, 1, 58,218,255,255,151,163,255,255, 84, 33, 8, 0, 17,
|
||||
/* 0x02d0 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 52,129, 26, 67, 0, 64, 57,
|
||||
/* 0x02d0 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 36,129, 26, 67, 0, 64, 57,
|
||||
/* 0x02e0 */ 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,
|
||||
/* 0x02f0 */ 215,255,255, 23,254, 15, 31,248,226, 15,191,169, 7, 64, 33,139,
|
||||
/* 0x0300 */ 5, 0,128, 18, 4, 0,176, 82, 45, 0, 0, 20,227, 19,193,168,
|
||||
|
||||
@ -172,7 +172,7 @@ lenmore_n2d:
|
||||
gotlen_n2d: // 'cmn': add the inputs, set condition codes, discard the sum
|
||||
ADD2(len,#1) // 1..3 ==> 2..4; 4.. ==> 5..
|
||||
cmn off,#5<<8 // displ<=M2_MAX_OFFSET ==> no increment
|
||||
csinc len,len,len,cc // too far away, so minimum match length is 3
|
||||
cinc len,len,cc // too far away, so minimum match length is 3
|
||||
#if 1==SAFE /*{*/
|
||||
ldr tmp,[sp,#sp_DST0]
|
||||
SUB2( tmp,dst)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user