From ab7012312f8e6ebf8762b420171cc49d112060d3 Mon Sep 17 00:00:00 2001 From: Jason Hiser <jdhiser@gmail.com> Date: Mon, 6 May 2019 14:32:08 -0400 Subject: [PATCH] arm32 basically working --- src/pinner_arm32.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/pinner_arm32.cpp b/src/pinner_arm32.cpp index 806b0b5..ad21230 100644 --- a/src/pinner_arm32.cpp +++ b/src/pinner_arm32.cpp @@ -46,9 +46,14 @@ void ZiprPinnerARM32_t::doPinning() uint8_t bytes[]={'\x00','\x00','\x00',uint8_t('\xea')}; for(auto i=0U;i<sizeof(bytes);i++) { - assert(memory_space.find(ibta_addr+i) == memory_space.end() ); - memory_space[ibta_addr+i]=bytes[i]; - memory_space.splitFreeRange(ibta_addr+i); + const auto ibta_byte_addr = ibta_addr+i; + if(memory_space.find(ibta_byte_addr) != memory_space.end() ) + { + cout << "Byte is marked as both code and data at: " << hex << ibta_byte_addr << endl; + exit(10); + } + memory_space[ibta_byte_addr]=bytes[i]; + memory_space.splitFreeRange(ibta_byte_addr); } // insert a patch to patch the branch later. const auto patch=Patch_t(ibta_addr, UnresolvedType_t::UncondJump_rel26); -- GitLab