本节主要分析在Dalvik时代怎么做到把壳脱下来的,通过Android 4.x的源码跟踪一下系统帮我们加载dex时候的流程,分析一下脱壳的原理和时机。
-
一二三代壳和壳技术分类识别
动态加载动态加载是DEX加壳和插件化热更新的一个基础(动态加载就是用到的时候再去加载,也叫懒加载用不到的时候是不会去加载的)。 比如说阿里的AndFix还有HotFix,腾讯的tinker、美团Robust等这些热修复框架的基础。动态加载还有热更新可以很方便的解决APP的快速迭代和更新的一个难题。从而避免了每次一发布新版本就需要用户来全量下载APP然后才能更新的过程。这样的话一方面可以提升用... -
加壳APP运行流程和ClassLoader修正
本章内容主要基于分析Android 8.0源码,来学习APP的启动流程和APP加壳原理以及运行流程,以及写代码怎么去从sd卡加载其它dex中的Activity,不涉及加密解密的操作。
-
ClassLoader和动态加载
本章是加壳的一些前置原理,主要是基于Android8.0中ClassLoader的双亲委派模式原理和代码验证以及动态加载的代码验证
-
逆向分析和脱壳的意义
这里是脱壳的一些碎碎念和FART脱壳机的使用流程
-
ios15.7.5越狱
15一下的系统可以使用CheckRa1n越狱,15以上的可以使用palera1n来越狱。两个工具的流程都差不多。 IOS每次重启之后需要重新越狱。 这里使用制作启动盘的方式来进行刷机,使用balenaEtcher制作就行不多赘述。 进去启动盘之后 选择Options,进去后,选择Create Faksfs,空格键选中,回车确认!返回之后,一定要确认左上角有-f -c参数 选择Star... -
RSA加解密-iBuck
rsa加解密 RSA加密属于一种非对称加密算法,对于相同内容的每次加密结果也都是不一样的,但是用私钥解密后的结果却都是可还原的 rsa生成的密匙对 可以通过RSA的私钥提取公钥 公钥提取modulus(模数) 1. 分析iBuck登录加解密本章只分析软件的登录加解密验证 fiddler抓登陆包 先通过frida-trace 寻找RSA加解密相关的函数接口 frida-tra... -
CTF001
用jadx分析代码逻辑先查一下程序没有加壳,用jadx打开apk查看代码 通过_AndroidManifest.xml找到程序的入口点可以看到提示的字符串然后因为它处理flag的函数是在native层所以我们需要用ida去查看这个函数是怎么在so文件中实现的用解压缩软件取出apk的lib库中的so文件,用ida去分析一下ida分析完后在文件中我们可以直接搜索java开头的函数_或者直... -
CTF002
1. 通过hook脚本暴力破解进入入口点之后,简单查看一下代码的逻辑 可以发现密码是一个六位数字,经过encode函数加密后跟预定的值进行比较,比较相等就通过。查看这个encode函数使用了sha1摘要算法,这样我们并不能根据hook某一个点位直接获取到正确的密钥,因为密码是六位数字存在暴力破解的可能,我们可以直接hook这个encode函数来做一个暴力破解。因为这个_public cla... -
CTF003
分析函数逻辑打开入口函数后,可以发现把校验函数写在so库里了 IDA分析so库文件那接下来用ida打开_native-lib.so_进行分析,文件打开之后可以直接搜索到这个函数,可以看到如果没有动态加载的话,java层映射到native层的本地函数命名特点Java+包名+函数名 修复参数这个函数解析的看起来比较乱,我们可以修复一下参数类型看会不会好点 在jadx里面看到只传递了... -
CTF004
1. 脱壳用jadx打开之后发现有加壳那先脱壳再分析 看名字是一个_qihoo_的壳,这个呢我们使用反射大师去脱壳,反射大师需要运行在安卓7.1以下的系统上在root过的手机上安装一个_VMOS Pro_模拟一个安卓7.1的系统安装上反射大师和CTF004,注意:反射大师需要重启才能启用然后打开反射大师,选择我们的CTF004并打开 然后点击这个芒星点击 当前ACTIVITY 然... -
CTF005
PS:这个题目比较简单,尝试采用多种不同的方式去获取flag 第一种方式:静态分析用jadx打开进入口点看代码逻辑 看入口点的代码非常简单明了进入case vip分支就算是通过了验证,那我们跟进去看一下它里面有没有校验的函数 进来之后发现它只是用_setContenView_方法加载了一个新的布局,那去看一眼这个布局的xml文件资源文件在res->layout文件夹里面:...