IDA分析的是thumb汇编形式,然而gdb调试显示的是arm汇编形式
(gdb) x/10i $pc
0x2ab31c: 81 b0 04 46 strmi r11, [r4], -r1, lsl #1
0x2ab320: 4c f6 28 30 eorcc pc, r8, r12, asr #12
0x2ab324: c0 f2 3a 00 eorseq pc, r10, r0, asr #5
0x2ab328: 44 f2 9a 22 addscs pc, r10, #1073741828 ; 0x40000004
0x2ab32c: c0 f2 3b 02 eorseq pc, r11, #12 ; 0xc
0x2ab330: 78 44 7a 44 ldrbtmi r4, [r10], #-1144
0x2ab334: 01 68 10 68 ldmdavs r0, {r0, r11, sp, lr}
0x2ab338: 41 f2 1c ea b 0x9e7c44
0x2ab33c: 3f 46 41 f2 vmin.s8 d20, d1, d31
0x2ab340: 62 ea 05 46 strmi lr, [r5], -r2, ror #20
此时,寄存器显示的信息,t位是1
gdb) info r
r0 0x161eda00 371120640
r1 0x54eb12 5565202
r2 0x15f53e40 368393792
r3 0x15f00850 368052304
r4 0x161eda00 371120640
r5 0x54eb12 5565202
r6 0x15f53e40 368393792
r7 0x27df5008 668946440
r8 0x15f00850 368052304
r9 0x1623dc90 371448976
r10 0x15da59d0 366631376
r11 0x0 0
r12 0x2ab319 2798361
sp 0x27df4ffc 668946428
lr 0x31418037 826376247
pc 0x2ab31c 2798364
cpsr {
0x60000030,
n = 0x0,
z = 0x1,
c = 0x1,
v = 0x0,
q = 0x0,
j = 0x0,
ge = 0x0,
e = 0x0,
a = 0x0,
i = 0x0,
f = 0x0,
t = 0x1,
mode = 0x10
} {
0x60000030,
n = 0,
z = 1,
c = 1,
v = 0,
q = 0,
j = 0,
ge = 0,
e = 0,
a = 0,
i = 0,
f = 0,
t = 1,
mode = usr
}
网上说用set arm force-mode thumb ,经过实践,只有Android的gdb与gdb_server是有这条命令的,调试IOS的gdb没有.如下
(gdb) set arm force-mode thumb
Undefined set arm command: "force-mode thumb". Try "help set arm".
(gdb) help set arm
Various ARM-specific commands.
List of set arm subcommands:
set arm abi -- Set the ABI
set arm apcs32 -- Set usage of ARM 32-bit mode
set arm disassembler -- Set the disassembly style
set arm fpu -- Set the floating point type
set arm show-opcode-bytes -- Set ARM and Thumb opcode byte display in disassembly
set arm single-step -- Set the ARM stepping mode
Type "help set arm" followed by set arm subcommand name for full documentation.
Command name abbreviations are allowed if unambiguous.
有大牛知道如何解决此问题吗
采用lldb的现象是
iPhone4的debugserver_armv7,采用lldb调试成功且可以正常显示thumb指令.
iPhone5的debugserver_armv7与debugserver_armv7s,采用lldb调试成功,但不可以正常显示thumb指令,会解释成arm指令.
问题:lldb的iPhone5的解释错误如何处理,我要的是ni后,能正常显示thumb指令.
[培训]《安卓高级研修班(网课)》月薪三万计划,掌
握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法