FridaLab - Ross Marks

 

FridaLab

I was struggling with a recent test using frida, knowing it could do what I want but unsure how. After lots of googling and trial and error I eventually got it working. So I decided

rossmarks.uk

 

 

 

//1
setImmediate(function(){
Java.perform(function(){
var chall01 = Java.use("uk.rossmarks.fridalab.challenge_01");
chall01.chall01.value = 1;
console.log("\nlevel01 Success");

// 2
var chall02 = Java.choose("uk.rossmarks.fridalab.MainActivity",{
onMatch : function(chall02){
chall02.chall02();
},
onComplete : function()
{
console.log("\nlevel02 success");
}
})


//3
var chall03 = Java.use("uk.rossmarks.fridalab.MainActivity");
chall03.chall03.implementation = function(){
console.log("\nlevel03 success");
return true;
}

//4

var chall04 = Java.choose("uk.rossmarks.fridalab.MainActivity", {
onMatch : function(chall04){
chall04.chall04("frida");
},
onComplete : function(){
console.log("\nlevel04 success");
}
})

//5

var chall05 = Java.use("uk.rossmarks.fridalab.MainActivity");
chall05.chall05.overload("java.lang.String").implementation = function(arg){
this.chall05("frida");
console.log("\nlevel05 success");
}

//7

var cahll07 = Java.use("uk.rossmarks.fridalab.challenge_07");
Java.choose("uk.rossmarks.fridalab.MainActivity", {
onMatch : function(instance){
for (var i = 1000; i < 10000; i++)
{
console.log("\nlevel07 attach value : " + i);
var tmpStr = String(i);
if (cahll07.check07Pin(tmpStr))
{
instance.chall07(tmpStr);
break;
}
}
},
onComplete : function(){
console.log("\nlevel07 success");
}
})


Java.choose("uk.rossmarks.fridalab.MainActivity", {
onMatch : function(instance){
var klass = Java.use("android.widget.Button");
var checkId = instance.findViewById(2131165231);
var checkBnt = Java.cast(checkId, klass);
var strConfirm = Java.use("java.lang.String");
checkBnt.setText(strConfirm.$new("Confirm"));
},
onComplete : function(){
console.log("\nlevel08 success");
}
})

})
})

//6

setTimeout(function(){
console.log("\n After 10 sec!");
setImmediate(function(){
Java.perform(function(){
var chall06 = Java.use("uk.rossmarks.fridalab.challenge_06");
chall06.addChall06.overload("int").implementation = function(arg){
Java.choose("uk.rossmarks.fridalab.MainActivity", {
onMatch : function(instance){
instance.chall06(chall06.chall06.value);
},
onComplete : function(){
console.log("\nlevel06 success");
}
})
}
})
})

}, 10000)


 

 

 

'개발 > Frida' 카테고리의 다른 글

[DIVA2] 1. Local DAta Storage  (0) 2022.09.29
[IOS] Fairplay DRM 복호화  (1) 2020.10.08
[Frida_IOS] 앱분석_(1)  (0) 2020.09.28
[Frida_IOS] 환경 구축  (0) 2020.09.28

+ Recent posts