diff --git a/bindings/python/sample_arm.py b/bindings/python/sample_arm.py index a8491d19..e910defc 100755 --- a/bindings/python/sample_arm.py +++ b/bindings/python/sample_arm.py @@ -85,7 +85,8 @@ def test_thumb(): mu.hook_add(UC_HOOK_CODE, hook_code) # emulate machine code in infinite time - mu.emu_start(ADDRESS, ADDRESS + len(THUMB_CODE)) + # Note we start at ADDRESS | 1 to indicate THUMB mode. + mu.emu_start(ADDRESS | 1, ADDRESS + len(THUMB_CODE)) # now print out some registers print(">>> Emulation done. Below is the CPU context") diff --git a/samples/sample_arm.c b/samples/sample_arm.c index 2c69ce6a..fc3570ec 100644 --- a/samples/sample_arm.c +++ b/samples/sample_arm.c @@ -135,7 +135,8 @@ static void test_thumb(void) // emulate machine code in infinite time (last param = 0), or when // finishing all the code. - err = uc_emu_start(uc, ADDRESS, ADDRESS + sizeof(THUMB_CODE) -1, 0, 0); + // Note we start at ADDRESS | 1 to indicate THUMB mode. + err = uc_emu_start(uc, ADDRESS | 1, ADDRESS + sizeof(THUMB_CODE) -1, 0, 0); if (err) { printf("Failed on uc_emu_start() with error returned: %u\n", err); }