本片文章讲的方法是:1.批量hook
需求背景
我手机都是越狱的,但是不让我在越狱机上面用,于是诞生了今天这个案例。
环境
iPhone7->14.6。frida14。某设银x 版本:6.2.0
下载老版本可以使用蜜蜂源里面的《AppStore降级工具》
1.开始分析
在经过前面几课原理性的学习后,我们来看看今天的实战
当然我们是要去砸壳的。因为会闪退。所以我们可以先用frida 挂起app。然后再dump
在之前我们会发现许多的app在越狱检测函数命名的时候都喜欢命名什么呢?
jailbreak 之类的。jail开头
所以这个时候我们可以打开IDA 查看函数表里面是否有这些命名的函数。
找到之后会得到方法的名称与地址。接下来hook地址,
这里用到了比较懒的方法,就是把所有的函数的返回值都返回为0
以下代码缺失后台恢复 越狱代码
var resolver = new ApiResolver("objc");
resolver.enumerateMatches('*[*Jail* *]',{
onMatch:function(match){
let funname = match.name;
let funcaddr = match.address;
console.log("funname",funname,funcaddr);
Interceptor.attach(funcaddr,{
onEnter:function(args){
},
})
},onComplete:function(){}
})
resolver.enumerateMatches('*[*jail* *]',{
onMatch:function(match){
et funname = match.name; let funcaddr = match.address;
consol
})
},onComplete:function(){}
})
resolver.enumerateMatches('*[* *Jail*]',{
onMatch:function(match){
let funname = match.name;
let funcaddr = match.address;
console.log("funname",funname,funcaddr);
// console.log("12211",funcaddr,ptr(funcaddr))
Interceptor.attach(funcaddr,{
onEnter:function(args){
},onLeave:function(retval){
console.log(funname,Thread.backtrace(this.context, Backtracer.ACCURATE)
})
这就是今天所讲的 批量hook方法的实战,在这里我们只做安全研究,可以讲别人的检测学习过来加到自己的app,严谨做各种违法行为。否则与本人无关,一切后果自负。