安卓逆向 - Frida反调试绕过

本文仅供学习交流,只提供关键思路不会给出完整代码,严禁用于非法用途,谢绝转载,若有侵权请联系我删除!

本文案例 app:5Lqs5LicYXBwMTEuMy4y

一、引言:

Frida是非常优秀的一款 Hook框架,人红是非多,市面上很多app都有相应的检测方案。本人在分析某东app时,android端启动frida-server后,打开app直接卡在首页。

尝试hook: 执行 frida -U -l Hook.js -f  com.jingdong.app.mall

报 Process terminated退出

二、常见检测:

1、检测文件名

2、检测端口

3、双进程保护

4、检测D-Bus

5、检测/proc/pid/maps映射文件

6、检测/proc/pid/task/tip/status

7、检测/data/local/tmp目录

三、绕过

针对以上的检测方式,我们可以尝试改文件名,改端口,spawn启动,隐藏frida特征等方式来绕过检测。

1、使用Frida的魔改版本 Hluda来隐藏Frida特征,其介绍:跟随 FRIDA 上游自动修补程序,并为 Android 构建反检测版本的 frida-server。使用方式跟官方Frida没有区别。

github地址:https://github.com/hzzheyang/strongR-frida-android/

2、修改端口

本人使用的是模拟器,官方Frida默认端口是27042,现在我们来修改启动端口,android端使用命令启动hluda:

 ./hlu-server_x8664 -l 0.0.0.0:8080

本地映射端口:

adb forward tcp:8080 tcp:8080

启动 js hook脚本指定端口:

frida -H 127.0.0.1:8080 -f com.jingdong.app.mall -l Hook.js

使用的hook脚本示例:

function hook1() {var URL = Java.use('java.net.URL');console.log("进入hook1")URL.$init.overload('java.lang.String').implementation = function (a) {console.log('加密前:' + a)showStacks()this.$init(a)}
}function showStacks() {Java.perform(function () {   console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()));});
}

 成功打印出堆栈信息,app也是正常启动,说明我们已经成功绕过检测,收工!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/95532.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Kubernetes部署篇:Ubuntu20.04基于containerd部署kubernetes1.24.17集群(多主多从)》

一、架构图 如下图所示: 二、环境信息 1、部署规划主机名K8S版本系统版本内核版本IP地址备注k8s-master-631.24.17Ubuntu 20.04.5 LTS5.15.0-69-generic192.168.1.63master节点 + etcd节点k8s-master-641.24.17Ubuntu 20.04.5 LTS5.15.0-69-generic192.168.1.64master节点 + …

2022年09月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:stack or queue 栈和队列都是常用的线性结构,它们都提供两个操作: Push:加入一个元素。 Pop:弹出一个元素。 不同的是,栈是”先进后出”,而队列则是”先进先出”。 给出一个线性结构的进出顺序,判定这个结构是栈还是队列。 时…

Unity——工程与资源

本文将详细介绍Unity工程的文件夹结构,以及动态加载资源的技术要点 一、Unity项目的文件夹结构 1.工程文件夹 在新建工程时,Unity会创建所有必要的文件夹。第一级文件夹有Assets,Library,Logs,Packages,ProjectSettings。 Assets:最主要的文…

Python 类和对象

类的创建 Python语言中,使用class关键字来创建类,其创建方式如下: class ClassName(bases):# class documentation string 类文档字符串,对类进行解释说明class_suiteclass是关键字,bases是要继承的父类,…

淘宝/天猫获得淘宝商品详情 API 接口文档

item_get-获得淘宝商品详情 API测试工具 注册开通 taobao.item_get 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_sear…

信息熵 条件熵 交叉熵 联合熵 相对熵(KL散度) 互信息(信息增益)

粗略版快速总结 条件熵 H ( Q ∣ P ) 联合熵 H ( P , Q ) − H ( P ) 条件熵H(Q∣P)联合熵H(P,Q)−H(P) 条件熵H(Q∣P)联合熵H(P,Q)−H(P) 信息增益 I ( P , Q ) H ( P ) − H ( P ∣ Q ) H ( P ) H ( Q ) − H ( P , Q ) 信息增益 I(P,Q)H(P)−H(P∣Q)H(P)H(Q)-H(P,Q) 信息…

IIS perl python cbrother php脚本语言配置及简单测试样例程序

上篇笔记写了 IIS 配置 CGI, IIS CGI配置和CGI程序FreeBasic, VB6, VC 简单样例_Mongnewer的博客-CSDN博客 这篇在IIS上配置一些脚本语言。为了操作方便,每种语言在站点下分设文件夹。 1. IIS perl配置 Perl CGI方式是曾经流行的做法。先下载一个开源…

苹果将在iPhone16系列中引入微透镜阵列技术,亮度更高、功耗更低

根据韩国媒体The Elec的报道,苹果公司正与其主要供应商三星和LG展开合作,以评估并衡量是否有必要在明年的iPhone 16系列中引入微透镜(micro-lens)技术来升级屏幕。 这项方案集中在OLED屏幕架构上,计划采用微透镜阵列&…

ISO/IEC标准组织介绍(三十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

android:控件TextView

一、系统学习Android控制键TextView,我的笔记里面有尝试学着使用自定义控件。 二、具体内容 1.如果在代码中给textView赋值,在xml中也给textView赋值了最后运行出来的结果显示代码中赋的值。因此得出结论,代码中的赋值会覆盖xml所附的值。 …

CSS中如何实现多行文本溢出省略号效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用text-overflow 和 overflow 属性⭐ 使用clamp() 函数⭐ 使用 JavaScript 或 CSS 框架⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到…

Glide的使用及源码分析

前言 依赖 implementation com.github.bumptech.glide:glide:4.16.0 github: GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling 基本使用 //加载url Glide.with(this) .load(url) .placeholder(R.drawable.placehol…