声明:
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
逆向分析
版本7.3-7.4 都试过加密没什么改变。
由于我账号被封了(大号之前搞web被封了)所以只能找一个检测的接口来做测试。如图。不带数据返回40002.找了很久大部分都是走缓存返回的假如你被封号只有一小部分接口可以使用并且做检测。拼多多也是真狠检测。京东淘宝就很人性化一定限度允许爬虫研究学习。也分别在这两个平台买过手机也算补偿马哥和强哥了。简单说一下anti-token。
这是加密hook位置。学习了2个星期app现在基本看一下就知道他在那里太刻意的做反爬我也总结出了一些技巧找这些加密位置。加固那些另外说还没到那个阶段。
function hook_java(){ Java.perform(function(){ var DeviceNative = Java.use("xxxxxxxx.secure.DeviceNative"); // DeviceNative.info3.implementation = function(a,b,c){ // console.log("DeviceNative.info3 invoked"); // console.log("a: " + a) // console.log("b: " + b) // console.log("c: " + c) // let ret = this.info3(a,b,c); // console.log("ret: " + ret) // return ret; // } DeviceNative.info2.implementation = function(ctx,b) { console.log("DeviceNative.info2 invoked"); console.log("ctx: " + ctx) console.log("ctx.getSystemService", ctx.getSystemService("phone")) console.log("b: " + b) let ret = this.info2(ctx, b); console.log("ret: " + ret) return ret; } }) }
unidbg hook
他需要什么就去hook看看值是什么hook不到说明设置了禁止hook和反射获取有些库是什么这样直接问ai返回什么叫就行了。例子。
let telephonyManager = Java.use('android.telephony.TelephonyManager') telephonyManager.getSimOperatorName.overload().implementation = function(){ console.log("telephonyManager.getSimOperatorName invoked") let result = this.getSimOperatorName() console.log("result: " + result) return result; } telephonyManager.getSimOperatorName.overload('int').implementation = function(a){ console.log("telephonyManager.getSimOperatorName invoked",a) let result = this.getSimOperatorName(a) console.log("result: " + result) return result; }