证书校验型app抓包

Hook证书校验的函数就行,如果没有抓包的时候也无法登录或者弹出网络繁忙,可能是检测模拟器或者检测pixel机型 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566...

阅读全文

类加载器和双亲委派机制

类加载器类加载的时机1234隐式加载:当访问类的静态变量、为静态变量赋值、调用类的静态方法的时候会加载类 此外,创建类的实例、某个类的子类的时候,父类也会被加载显式加载:使用Class.forName加载、使用loadClass加载 类加载器123456789BootClassLoader:单例模式,用来加载系统类BaseDexClassLoader:是...

阅读全文

界面控件获取及apk结构

adb1234567891011adb shelladb root 需要超级adbd权限adb remount 将系统挂载为可读写adb kill-server 停止adb服务adb start-server 启动adb服务adb devices 显示连接的设备adb install xxx.apk 安装apkadb install -r xxx.apk 覆...

阅读全文

源码分析(ART下的System.loadLibrary)

通过分析loadLibrary源码,可以知道init initarray jnionload这三个函数是在什么时候调用的, 在 Android App 开发中,如果涉及到 jni 开发,常常会使用 System.loadLibray 来加载生成的 so 文件。以下将通过安卓 10 的源码,追踪 System.loadLibrary 的内部流程。 Runtim...

阅读全文

打印so层函数栈

env和env.handle 这两个在一定程度上可以通用,或者可以说会完成自动转换,使用Frida封装的JNI相关API,必须使用env,当参数需要JNIEnv*时,可以使用env和env.handle 123var env = Java.vm.tryGetEnv();// handle可以理解为env的内存地址env.handle; 打印so层函数栈 1...

阅读全文

快速定位关键代码

反编译一个app搜不到关键字 123456H5的app,jadx只反编译dex字符串被加密反射调用的相关类app加固动态加载的dex热修复 Hook系统函数 不管怎么加密,反射,底层都是调用的目标类的目标函数 常用函数 12345678910111213141516java.util.Hashmap putjava.util.ArrayList add,a...

阅读全文

常见的抓包检测

https通信过程1234567服务器返回证书公钥客户端拿着公钥去加密一段随机的字符串(对称加密的密钥)服务器拿着私钥去解密,得到这段字符串,也就是对称加密的密钥服务器和客户端通过对称密钥加密的密文进行通信 抓包的时候,公钥肯定和真实的服务端证书不一样 所谓hook抓包,就是把app发送数据包时调用的函数给hook下来,然后获取发送的数据包,而不是去替换证...

阅读全文

免root使用frita

免root使用fridafrida-server或者frida-inject都需要root权限 使用frida-gadget.so可以免root使用frida 需要把特定的so文件打包到apk中,再修改apk让app加载这个so,再打包成apk 需要使用到objection的patchapk功能,-s指定要patch的apk文件 需要提前准备好aapt命令,...

阅读全文

youpk脱壳原理

所谓整体脱壳,本质都是获取DexFile对象,包括mCookie脱壳点,mCookie的每一个元素都是DexFile对象的指针 只要能够获取DexFile的地方,都可以尝试脱壳 对于youpk脱壳机,本质也是通过ClassLinker获取到内存中DexFile的对象 https://github.com/Youlor/unpacker/blob/master...

阅读全文

so文件dump及修复

如果so是加密的,或者字符串有ollvm加密,可以把so文件dump下来,放到IDA中逆向,但是需要修复so文件 代码实际上就是获取so的基址和大小,然后读取这段内存,然后写出来 123456789101112131415161718192021function dump_so(so_name) { Java.perform(function...

阅读全文