Пересчёт адресов в патчах
ARM instruction evaluator...
instruction set: thumb
assembly code: команда перехода... считаем в любом калькуляторе разницу между адресами (примеры в hex)
Допустим с 1000 переходим на CA00 получаем BA00
В калькуляторе вставляем b +#0xBA00 и получаем код F00B BCFE, переворачиваем соседние байты и наша команда 0BF0FEBC
если переходим наоборот с CA00 на 1000 то вставляем b -#0xBA00, получаем F7F4 BAFE, переворачиваем и получаем команду F4F7FEBA
Для близких переходов типа СА00 на CA10 тоже только начало beq.w вместо b
т.е.:
+ от меньшего адреса к большему, - наоборот
b - длинный переход (разность в hex xxxx)
beq.w - короткий переход (разность в hex ххх/хх)
Ну и там еще много чего можно посмотреть и ужаснуться... например что у ARM nop 2 байта...