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 |