绕过某邦企业壳root、frida检测
本文主要分析下某梆企业壳的frida反调试 环境设备:pixel 5(Android11已root) app平台:Android app版本:4.66.0 工具: 抓包:Postern + Charles LSPosed版本:1.9.2 Magisk版本:28.1 查壳 检测结果表明是梆梆的壳,并且有root、模拟器检测以及各种反调试检测 绕过检测绕过 root 检测 对此我们采用隐藏 Magisk + Shamiko 的方式来绕过 root 检测 配置好之后再打开 app 就不会检测到设备已经被 root 了 绕过 frida在设备上运行frida-server的时候app会直接闪退 我们只是在设备上运行了 frida-server 在没有执行脚本的情况下 app 就会闪退 端口检测那么,可能是对 frida-server 的默认监听端口 27042 有检测 修改端口后,打开app就不会闪退了 那接下来尝试执行一下 frida-hook 脚本是否能正常执行 可以看到有针对 frida-agent 的检测 agent...
某麦购票Xposed脚本(一)
本文仅研究了某麦app的购票接口,不涉及破盾方法。 本文仅供研究学习使用,请勿用于任何商业和非法用途。否则后果自负。 在之前的文章中我们详细分析了大麦的购票协议接口,并使用了 Python + Frida RPC 的方式成功实现了购票。本文我们尝试将其改为用 Xposed 来实现。 环境设备:pixel 5(Android11已root) app平台:Android app版本:8.10.9 工具: 抓包:Postern + Charles 动态静态分析:jadx、frida LSPosed版本:1.9.2 Magisk版本:26.1 流程拆解先来分解一下我们之前获取订单详情的 frida hook 流程: 构建MtopContext对象作为参数主动调用buildParams获取加密参数 构建MtopContext对象 构造 MtopRequest 对象 构造 MtopBusiness 对象 构造 MtopContext...
某麦APP购票接口分析
...
微信小程序-某某牛仔城
本文中所有内容仅供研究与学习使用,禁止用于任何商业用途和非法用途,否则后果自负!!! 本章来分析一个微信小程序的协议,这个小程序的协议本身比较简单。主要是来学习一下分析微信小程序的流程 0x00 环境设备:pixel 5 Android11.0 抓包:Charles + Postern 发包工具:postman、APIfox 0x01 抓包环境配置好了,那么先来抓个包吧 随便选一个领取,这里我们以预览充值中心为例 抓到的包比较多,找不到多翻翻 分析这个协议 member_no:会员编号 type:操作目标的类型,例如这里33是“每日预览充值中心” store_no:字面翻译是商店编号,这里我们抓了几次包都没变过。暂时当它是个固定值 sign:签名是本篇文章要分析的一个重点,看起来像是一个md5值 time:时间戳 经过分析,看起来只有这个sign需要我们进行分析,其它的都可以直接获取或者是固定值 0x02...
编译Android13-AOSP
本文主要是下载Android13 AOSP源码,并将其编译后刷入设备 环境: 编译环境:Ubuntu 22.04 TLS,需要配置好科学上网 硬盘最少要300G以上,内存最少要16G以上 源码下载和编译都比较花时间 在12个线程的情况下给20G内存就足够了,太多了也用不到 设备:pixel 5 其他配置1. 安装 Repo 工具Repo 工具用于管理 Git 仓库 mkdir ~/bin curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo 2. 设置 Java 环境确保安装的是 OpenJDK 11: sudo update-alternatives --config java sudo update-alternatives --config javac 如果还未安装 OpenJDK 11,可以通过以下命令安装: sudo apt install openjdk-11-jdk 3. 安装依赖:sudo apt-get...
绕过爱奇艺libmsaoaidsec.so的Frida检测
本文中所有内容仅供研究与学习使用,请勿用于任何商业用途和非法用途,否则后果自负! 下面主要分析了如何定位Frida检测位置,以及定位后如何绕过的问题。其原理参见之前写的libcHook 0x00:环境设备:Google Pixel 5 系统版本:Android 13 版本号:TQ2A.230405.003.B2 Frida-Server:16.2.1 爱奇艺:15.7.5 0x01:问题爱奇艺有反Frida机制,在我们使用Frida启动App的时候进程会被干掉 图0 0x02:分析Frida检测一般都是在Native层实现的,那么我们首先需要定位检测机制是在哪个so中实现的,这里我们就需要先hook Android的动态链接库加载函数,观察它加载到哪个so的时候会崩溃 图1 android_dlopen_ext原型 hook android_dlopen_ext查看so的加载流程 function hook_dlopen() { Interceptor.attach(Module.findExportByName(null,...
某易新闻逆向
本文中所有内容仅供研究与学习使用,请勿用于任何商业用途和非法用途,否则后果自负! 环境 App版本:108.1(1807)豌豆荚下载 设备:Pixel XL 抓包工具:Charles + Postern 反汇编工具:jadx-gui 1.5.0、IDA Pro 7.7 hook:frida 12.8.0 抓包 HeaderAdd-To-Queue-Millis 1716155605001 data4-Sent-Millis 1716155605002 Cache-Control no-cache User-Agent NewsApp/108.1 Android/8.1.0...
六层锁机
六层锁机和一个注册机制绕过,这个六层锁机之前分析过有些关卡没过,这里重新分析一遍 环境 Android 13.0 frida 16.1.8 登陆 用jadx打开apk 登陆页面的逻辑是把拿到的username放入a中,计算出来的结果需要相同 a是HmacSHA256加密函数 密码是通过a传入username计算出来的。所以可以通过获取a的返回值来拿到 有三种方式可以获取: 提取出来算法,计算出返回值 import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; public class PasswordGenerator { public static void main(String[] args) { String username = "xiaoeryu"; // 用户名 String password = generatePassword(username,...
妹子图防截屏破解
本章主要是一个简单的hook,破解防截屏机制 抓包没啥反抓包措施,直接使用charle抓包就行 FRIDA破解防截屏 妹纸图无法直接截屏 查找一下Android中禁止截屏的实现方式 使用objection搜索一下addFlags或者setFlags pixel 5的性能还不错能直接搜索到 使用r0tracer搜索一下android.view.Window类的调用记录 frida -U -f com.mmzztt.app -l r0tracer.js -o log.txt 写frida脚本重写setFlags方法 setImmediate(function(){ Java.perform(function(){ Java.use("android.view.Window").setFlags.implementation = function(x){ console.log("setFlags called") } ...
简易闯关
打开App 显然是需要输入密码 没有壳直接使用jadx打开分析 按钮点击的逻辑 public class Check { public boolean checkPassword(String str) { char[] pass = str.toCharArray(); if (pass.length != 12) { // 检查密码长度是否为12 return false; } for (int len = 0; len < pass.length; len++) { pass[len] = (char) (((255 - len) - 100) - pass[len]); // 修改密码字符 if (pass[len] != '0' || len >= 12) { // 检查修改后的字符是否为'0'以及索引是否小于12 return false; ...
协议枚举、爆破及算法模拟
很多的加密算法是在so中编写的,并且加了混淆,死磕的话逆向难度是比较大的,在不必要的情况下可以尝试去主动调用算法实现目的: 测试环境: 测试用的demo 这里使用我们前面写的脚本来抓包,因为协议都是TCP所以可以使用我们前面写的抓取javaTCP的代码,再加上libc 上代码 function LogPrint(log) { var theDate = new Date(); var hour = theDate.getHours(); var minute = theDate.getMinutes(); var second = theDate.getSeconds(); var mSecond = theDate.getMilliseconds(); hour < 10 ? hour = "0" + hour : hour; minute < 10 ? minute = "0" + minute : minute; second < 10 ? second = "0" +...