Rename some hook related enums:
- UC_ERR_READ_INVALID -> UC_ERR_READ_UNMAPPED - UC_ERR_WRITE_INVALID -> UC_ERR_WRITE_UNMAPPED - UC_ERR_FETCH_INVALID -> UC_ERR_FETCH_UNMAPPED - UC_MEM_READ_INVALID -> UC_MEM_READ_UNMAPPED - UC_MEM_WRITE_INVALID -> UC_MEM_WRITE_UNMAPPED - UC_MEM_FETCH_INVALID -> UC_MEM_FETCH_UNMAPPED - UC_HOOK_MEM_READ_INVALID -> UC_HOOK_MEM_READ_UNMAPPED - UC_HOOK_MEM_WRITE_INVALID -> UC_HOOK_MEM_WRITE_UNMAPPED - UC_HOOK_MEM_FETCH_INVALID -> UC_HOOK_MEM_FETCH_UNMAPPED - UC_HOOK_MEM_INVALID -> UC_HOOK_MEM_UNMAPPED This also renames some newly added macros to use _INVALID postfix: - UC_HOOK_MEM_READ_ERR -> UC_HOOK_MEM_READ_INVALID - UC_HOOK_MEM_WRITE_ERR -> UC_HOOK_MEM_WRITE_INVALID - UC_HOOK_MEM_FETCH_ERR -> UC_HOOK_MEM_FETCH_INVALID - UC_HOOK_MEM_ERR -> UC_HOOK_MEM_INVALID Fixed all the bindings Java, Go & Python.
This commit is contained in:
@ -10,8 +10,9 @@ class BxHang(regress.RegressTest):
|
||||
def runTest(self):
|
||||
uc = Uc(UC_ARCH_ARM, UC_MODE_ARM)
|
||||
uc.mem_map(0x1000, 0x1000)
|
||||
uc.mem_write(0x1000, '1eff2f010000a0e1'.decode('hex'))
|
||||
uc.mem_write(0x1000, '1eff2f010000a0e1'.decode('hex')) # bxeq lr; mov r0, r0
|
||||
uc.count = 0
|
||||
|
||||
def hook_block(uc, addr, *args):
|
||||
print 'enter block 0x%04x' % addr
|
||||
uc.count += 1
|
||||
|
@ -22,7 +22,7 @@ class JumEbxHang(regress.RegressTest):
|
||||
with self.assertRaises(UcError) as m:
|
||||
mu.emu_start(CODE_ADDR, CODE_ADDR + 2, count=1)
|
||||
|
||||
self.assertEqual(m.exception.errno, unicorn.UC_ERR_CODE_INVALID)
|
||||
self.assertEqual(m.exception.errno, unicorn.UC_ERR_FETCH_UNMAPPED)
|
||||
|
||||
print(">>> jmp ebx (ebx = 0xaa96a47f)");
|
||||
mu = unicorn.Uc(unicorn.UC_ARCH_X86, unicorn.UC_MODE_32)
|
||||
@ -33,7 +33,7 @@ class JumEbxHang(regress.RegressTest):
|
||||
with self.assertRaises(UcError) as m:
|
||||
mu.emu_start(CODE_ADDR, CODE_ADDR + 2, count=1)
|
||||
|
||||
self.assertEqual(m.exception.errno, unicorn.UC_ERR_CODE_INVALID)
|
||||
self.assertEqual(m.exception.errno, unicorn.UC_ERR_FETCH_UNMAPPED)
|
||||
|
||||
if __name__ == '__main__':
|
||||
regress.main()
|
||||
|
@ -224,7 +224,7 @@ int main(int argc, char **argv, char **envp)
|
||||
}
|
||||
|
||||
// intercept invalid memory events
|
||||
if (uc_hook_add(uc, &trace1, UC_HOOK_MEM_WRITE_INVALID, hook_mem_invalid, NULL) != UC_ERR_OK) {
|
||||
if (uc_hook_add(uc, &trace1, UC_HOOK_MEM_WRITE_UNMAPPED, hook_mem_invalid, NULL) != UC_ERR_OK) {
|
||||
printf("not ok %d - Failed to install memory invalid handler\n", log_num++);
|
||||
return 7;
|
||||
} else {
|
||||
|
@ -28,13 +28,13 @@ class MipsExcept(regress.RegressTest):
|
||||
uc.reg_write(UC_MIPS_REG_SP, 0xFFFFFFF0)
|
||||
uc.emu_start(CODE, CODE + len(asm), 200)
|
||||
|
||||
self.assertEqual(UC_ERR_READ_INVALID, m.exception.errno)
|
||||
self.assertEqual(UC_ERR_READ_UNMAPPED, m.exception.errno)
|
||||
|
||||
with self.assertRaises(UcError) as m:
|
||||
uc.reg_write(UC_MIPS_REG_SP, 0x80000000)
|
||||
uc.emu_start(CODE, CODE + len(asm), 100)
|
||||
|
||||
self.assertEqual(UC_ERR_READ_INVALID, m.exception.errno)
|
||||
self.assertEqual(UC_ERR_READ_UNMAPPED, m.exception.errno)
|
||||
|
||||
if __name__ == '__main__':
|
||||
regress.main()
|
||||
|
@ -24,7 +24,7 @@ class RegWriteSignExt(regress.RegressTest):
|
||||
# jmp ebx
|
||||
mu.mem_write(0x10000000, b'\xff\xe3')
|
||||
|
||||
mu.hook_add(unicorn.UC_HOOK_MEM_FETCH_INVALID | unicorn.UC_HOOK_MEM_FETCH_PROT, hook_mem_invalid)
|
||||
mu.hook_add(unicorn.UC_HOOK_MEM_FETCH_UNMAPPED | unicorn.UC_HOOK_MEM_FETCH_PROT, hook_mem_invalid)
|
||||
mu.emu_start(0x10000000, 0x10000000 + 2, count=1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -142,7 +142,7 @@ int main(int argc, char **argv, char **envp)
|
||||
//uc_hook_add(uc, &trace2, UC_HOOK_CODE, hook_code, NULL, (uint64_t)0x400000, (uint64_t)0x400fff);
|
||||
|
||||
// intercept invalid memory events
|
||||
uc_hook_add(uc, &trace1, UC_HOOK_MEM_WRITE_INVALID | UC_HOOK_MEM_WRITE_PROT, hook_mem_invalid, NULL);
|
||||
uc_hook_add(uc, &trace1, UC_HOOK_MEM_WRITE_UNMAPPED | UC_HOOK_MEM_WRITE_PROT, hook_mem_invalid, NULL);
|
||||
|
||||
// emulate machine code in infinite time
|
||||
printf("BEGIN execution - 1\n");
|
||||
|
@ -164,7 +164,7 @@ def print_registers(mu):
|
||||
|
||||
print_registers(uc)
|
||||
|
||||
assert uc.reg_read(UC_SPARC_REG_PC) == 128 # make sure we executed all instructions
|
||||
assert uc.reg_read(UC_SPARC_REG_PC) == 132 # make sure we executed all instructions
|
||||
assert uc.reg_read(UC_SPARC_REG_SP) == 101
|
||||
assert uc.reg_read(UC_SPARC_REG_FP) == 201
|
||||
|
||||
|
@ -408,7 +408,7 @@ static void test_i386_invalid_mem_read(void **state)
|
||||
|
||||
// emulate machine code in infinite time
|
||||
err = uc_emu_start(uc, address, address+sizeof(code), 0, 0);
|
||||
uc_assert_err(UC_ERR_READ_INVALID, err);
|
||||
uc_assert_err(UC_ERR_READ_UNMAPPED, err);
|
||||
|
||||
uc_assert_success(uc_close(uc));
|
||||
}
|
||||
@ -438,7 +438,7 @@ static void test_i386_invalid_mem_write(void **state)
|
||||
|
||||
// emulate machine code in infinite time
|
||||
err = uc_emu_start(uc, address, address+sizeof(code), 0, 0);
|
||||
uc_assert_err(UC_ERR_WRITE_INVALID, err);
|
||||
uc_assert_err(UC_ERR_WRITE_UNMAPPED, err);
|
||||
|
||||
|
||||
uc_assert_success(uc_close(uc));
|
||||
@ -469,7 +469,7 @@ static void test_i386_jump_invalid(void **state)
|
||||
|
||||
// emulate machine code in infinite time
|
||||
err = uc_emu_start(uc, address, address+sizeof(code), 0, 0);
|
||||
uc_assert_err(UC_ERR_CODE_INVALID, err);
|
||||
uc_assert_err(UC_ERR_FETCH_UNMAPPED, err);
|
||||
|
||||
|
||||
uc_assert_success(uc_close(uc));
|
||||
|
Reference in New Issue
Block a user