Disable data access memory abort : Патчи : Форум

Страница 1 из 2: [1] 2 »

 ndt:
07.06.09, 16:57
 hi,

im writing small patch, memory viewer to read phone memory, but i stack when invalid address is specified

i tried to disable data abort vector
Код: 
...
bx pc
nop

.code 32
// disable data aborts
mrs r2, CPSR
bic r2, r2, 100
msr CPSR, r2

// read DWORD from memory
ldr r3, r3, 0

//enable data aborts
mrs r2, CPSR
orr r2, r2, 100
msr CPSR, r2

adr lr, @thumb+1
bx lr

@thumb:
...

with no luck :(

i was thinking disabling MMU should help, but i cant even read from coprocessor
Код:
//disable MMU
mrc cp15, 0, r2, c1, c1
bic r2, r2, 1
mcr cp15, 0, r2, c1, c1

causing undefined instruction exception...

regards,
Bartek



[ Редактировано ndt в 7.6.09 14:58 ]

 den_po:
07.06.09, 17:37
 ndt, you can simply use get_mem function

typedef OSBOOLEAN (*GET_MEM)(PROCESS pid, OSADDRESS from, void* to,
OSADDRESS size);

//z610
GET_MEM get_mem=(GET_MEM)0x4442B210;

//w550
//GET_MEM get_mem=(GET_MEM)0x440E84B8;

 Joker XT:
07.06.09, 17:38
 den_po, а можно по-русски =) что он делает?

 ndt:
07.06.09, 18:46
 den_po, i didnt know we have such function to play with, thanks
im using c702, but hopefully this function is easy to locate

now my code is something like that
Код: 
/* ... */

push r3 ; address

ldr r4, _current_process
blx r4

pop r1 ; address

mov r2, sp
sub sp 4
mov r3, 4

ldr r4, _get_mem
blx r4

add sp 4
ldr r3, sp, 0

/* ... */

when the valid address is specified (eg 0x10000000, 0x2AF99AD8) works fine
if i specify wrong address (like 0x12702000, in c702 end of phone_app.cxc) data abort occurs :(




Added 7.6.09 17:16

Joker XT,
я пишу патч "memory viewer". если подан адрес правильный он отлично работает,
но если подан неправильный адрес (нап. 0x12702000 в c702)
появляется data abort exception.
я пытался отключить его

Код:

// disable data aborts
mrs r2, cpsr
bic r2, r2, 100
msr cpsr, r2


не повезло :/

извините за мои русский;)


[ Edited by ndt в 7.6.09 17:29 ]

 KrasH:
07.06.09, 19:55
 ребут короче хочет убрать как понимаю

 Joker XT:
07.06.09, 20:29
 Ребут из-за чего?)
что-то я не понял))

 den_po:
07.06.09, 20:35
 Joker XT, из-за доступа к памяти, которая из usermode недоступна

 ndt:
07.06.09, 21:20
 im pretty sure, im accessing it in supervisor mode ( CPSR, M[4:0] = 0b10011 )

 Joker XT:
07.06.09, 21:58
 den_po, тада другой вопрос, зачем это нужно))

 den_po:
07.06.09, 22:09
 ndt, try to play with DACR
Страница 1 из 2: [1] 2 »

URL этой темы:
https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=4045

© 2005-2018 supertrubka.org