솔루션 base 주소 얻기 질문
AndEditz
4
721
2024.01.25 17:55
안녕하세요. 솔루션 우회 해보려고 연습중입니다.
android_dlopen_ext의 인자 값으로는 libtarget.so가 잘 찍히는데,
Loadlibrary -> 인자에서 확인가능
android_dlopen_ext -> 인자에서 확인가능
cat /proc/pid/maps에서 libtarget.so 확인 가능..
onLeave에서 Module.findBaseAddress으로 base 주소값을 가져오려고 하면 찾질 못합니다..
어떤 방식으로 base 주소값을 구해낼 수 있을지, 도움을 구할 수 있을까요..
환경은 nox 입니다.
frida는 현재 x86로 실행되는데, lib은 arm에 있습니다..
감사합니다 ㅜ
코드
function get_base(){
Interceptor.attach(Module.findExportByName(null, 'android_dlopen_ext'), {
onEnter(arg) {
if(arg[0].readCString().includes('libtarget.so')){
this.on = true;
console.log('found target : ' + arg[0].readCString())
}
},onLeave(r){
if(this.on){
var base= Module.findBaseAddress('libtarget.so');
console.log('result : ' + base)
}
}
})
}
setTimeout(()=>{
get_base()
}, 0)
실행 결과
[SM-G977N::com.xxxx.xxxx]-> found target : /data/app/com.xxxx.xxxx-1/lib/arm/libtarget.so
result : null
Process terminated
[SM-G977N::com.xxxx.xxxx]->
android_dlopen_ext의 인자 값으로는 libtarget.so가 잘 찍히는데,
Loadlibrary -> 인자에서 확인가능
android_dlopen_ext -> 인자에서 확인가능
cat /proc/pid/maps에서 libtarget.so 확인 가능..
onLeave에서 Module.findBaseAddress으로 base 주소값을 가져오려고 하면 찾질 못합니다..
어떤 방식으로 base 주소값을 구해낼 수 있을지, 도움을 구할 수 있을까요..
환경은 nox 입니다.
frida는 현재 x86로 실행되는데, lib은 arm에 있습니다..
감사합니다 ㅜ
코드
function get_base(){
Interceptor.attach(Module.findExportByName(null, 'android_dlopen_ext'), {
onEnter(arg) {
if(arg[0].readCString().includes('libtarget.so')){
this.on = true;
console.log('found target : ' + arg[0].readCString())
}
},onLeave(r){
if(this.on){
var base= Module.findBaseAddress('libtarget.so');
console.log('result : ' + base)
}
}
})
}
setTimeout(()=>{
get_base()
}, 0)
실행 결과
[SM-G977N::com.xxxx.xxxx]-> found target : /data/app/com.xxxx.xxxx-1/lib/arm/libtarget.so
result : null
Process terminated
[SM-G977N::com.xxxx.xxxx]->