Android 简单的so层逆向

news2024/11/16 0:54:17

前言

最近搞了一下安卓。简单学习记录一下。

目标程序: xiao shui mian

也就是某个参数的逆向

准备环境

  1. 安卓机
  2. scrcpy
  3. adb
  4. frida
  5. 解包软件(不列举了)

这种环境安装这里就不多说了。教程也很多。

参数逆向分析

先抓包看看参数

这里我使用的是postern抓包。因为如果要用网络代理的话可能会有检测。这里一步到位了

如下图配置

然后打开charles 配置下。记得安装证书 这里简单的配置我跳过了。

我们这里直接点进 社区的某个评论

然后我们抓包看看参数

如下图 sig 是我们所需要逆向的参数。

反编译逆向分析

这里直接把apk丢到Jadx中就可以了。

如下图操作即可。

然后发现 他在Java层是由Sinner.sign 返回来的。继续点进去。

然后发现这里上面是逻辑层的判断。下面是调用了 sbase的getSig

这里继续点进去。发现是调用了 lib中的base

如下图文件的位置

这里直接右击解压apk文件。然后找到对应的位置。

把这个libbase 放到 IDA中。记得选择IDA64

点击搜索

然后点进去。发现这就是个md5加密。

然后按tab 进去看方法、发现传了3个参数。

那后面就简单了。先用frida hook下基址。

代码如下

Java.perform(function () {
    var dlsymadd = Module.findExportByName("libbase.so", 'dlsym');
    Interceptor.attach(dlsymadd, {
        onEnter: function (args) {
            this.info = args[1];

        }, onLeave: function (retval) {
            var module = Process.findModuleByAddress(retval);
            if (module == null) {
                return retval;
            }
            // native方法
            var funcName = this.info.readCString();
            console.log(funcName)
            if (funcName.indexOf("GetSig") !== -1) {
                console.log(module.name);
                console.log(module.base);
                console.log('\t', funcName);
            }
            return retval;
        }
    })
});

执行以下命令

frida -U -f  com.psyone.brainmusic  -l static_find_so.js

找到基址了。

然后就根据基质。hook 这个传参就行了。

这里通过Interceptor.attach 来hook 两个传参就行了。

var funcAddress = ptr("0x701bdb8000") // 替换偏移量为实际值
var funcAdd = funcAddress.add(0x1c2c)

然后运行文件 这里切记要用大F

 frida -U -F -l 新的js文件

这里可以打开抓包软件 对比值是否一致。

先看下原本请求

再看下hook到的 然后发现原来是前后加盐了。

我们放到自己的代码中运行下看看是不是3b6198d0e19a919d7db354c4d1dfd5d6

然后发现是一致的 那这个参数就hook成功了。

最近也是刚学安卓。其实也没怎么学 就平时问问大佬。写的不好的 希望各位见谅。

结语

有兴趣的同学可以关注下我的个人公众号和星球
公众号链接
星球链接

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

时序预测双飞轮,全面超越Transformer,纯MLP模型实现性能效能齐飞

本文作者简介:王世宇,蚂蚁集团算法专家,在AI创新技术部NextEvo主要负责时序算法研究方向,主导时序预测平台建设和时序算法创新研发和架构工作,推动预测与决策联动的双引擎能力。在ICLR, IJCAI, KDD, AAAI, WSDM, ICDM,…

C++面试八股文:std::deque用过吗?

100编程书屋_孔夫子旧书网 某日二师兄参加XXX科技公司的C工程师开发岗位第26面: 面试官:deque用过吗? 二师兄:说实话,很少用,基本没用过。 面试官:为什么? 二师兄:因为使…

OverTheWire Bandit 靶场通关解析(上)

介绍 OverTheWire Bandit 是一个针对初学者设计的网络安全挑战平台,旨在帮助用户掌握基本的命令行操作和网络安全技能。Bandit 游戏包含一系列的关卡,每个关卡都需要解决特定的任务来获取进入下一关的凭证。通过逐步挑战更复杂的问题,用户可…

Unity开发者转UE 新手必读

前言 本页面为熟悉Unity的用户概述了 虚幻引擎(UE)。如果你具备一些Unity知识,而且想学习如何运用自己所学的知识在虚幻引擎中工作,下面各小节将帮助你入门。 下面的截图并排显示了Unity和虚幻编辑器。各个区域采用相同的颜色来表示相同的功能。每个区…

评估大型语言模型生成文章的能力

1. AI解读 1.1. 总体概要 本文探讨了大型语言模型(LLMs)如GPT-4在生成特定领域(如计算机科学中的自然语言处理NLP)教育调查文章方面的能力和局限性。研究发现,尽管GPT-4能够根据特定指导生成高质量的调查文章&#x…

商城积分系统的设计方案(上)-- 需求分析

一、背景 用户在参与公司的促销活动,比如邀请用户下单支付,可以获得虚拟货币。它可以用于解锁学习课程。 商品在定价的时候,需支持虚拟货币,用户在购买该商品的时候,可使用虚拟货币进行支付。 在电商体系中&#xf…

logging 模块简单使用记录

文章目录 1、logging 基本架构2、Logger 日志记录器及基础配置2.1 基础配置函数logging.basicConfig() 3、Handler 日志处理器 、 Formatter 格式化器和 Filterer 日志过滤器3.1 logging 模块提供的 Handler:[官方网址](https://docs.python.org/2/howto/logging.ht…

拍照就用华为Pura 70系列,后置真实感人像轻松出片!

平时喜欢用手机记录生活的人是不是总有个烦恼,想要拍出媲美单反的完美人像,又怕照片失真,经过近期对手机摄影的探索,我发现了华为Pura70系列的真实感人像之美,它给予每个热爱生活的人直面镜头的自信,记录真…

基于AiService实现智能文章小助手

顾名思义,这个应用就是希望能利用大模型的能力来帮助我写文章,那这样一个应用该如何利用LangChain4j来实现呢?接下来我们来利用AiService进行实现。 AiService代理 首先,我们定义一个接口Writer,表示作家&#xff1a…

002 使用kibana操作ElasticSearch7.x

文章目录 4.使用kibana操作es4.1.文档操作1.put方式发送数据2.post方式发送数据3.查看索引文档 GET4.更新文档 POST5.删除文档&索引 DELETE6.批量添加数据_bulk 4.2.Query DLS(查询领域对象语言)1.url 检索数据语法2.查询所有数据3.查询全部数据并排序4.查询全部数据排序并…

面试-java异常体系

1.java异常体系 error类是指与jvm相关的问题。如系统崩溃,虚拟机错误,内存空间不足。 非runtime异常不处理,程序就没有办法执行。 一旦遇到异常抛出,后面的异常就不会进行。 (1)常见的error以及exception 2.java异常要点分析…

安全感爆棚,锁定六氟化硫SF6气体泄漏报警监测系统

一、概述 六氟化硫SF6气体已有百年历史,它是法国两位化学家Moissan和Lebeau于1900年合成的人造惰性气体, 1947年提供商用。当前SF6气体主要用于电力工业中。化学性质稳定。微溶于水、醇及醚,可溶于氢氧化钾。不与氢氧化钠、液氨、盐酸及水起…

【Knowledge Graph Context-Enhanced Diversified Recommendation(MSDM2024)】

Knowledge Graph Context-Enhanced Diversified Recommendation 摘要 推荐系统(RecSys)领域已被广泛研究,以通过利用用户的历史交互来提高准确性。 尽管如此,这种对准确性的持续追求常常导致多样性的减少,最终导致众所…

阿里Qwen-2成全球开源大模型排行榜第一,中国处于领导地位。

6月27日凌晨,全球著名开源平台huggingface(笑脸)的联合创始人兼首席执行官Clem在社交平台宣布,阿里最新开源的Qwen2-72B指令微调版本,成为开源模型排行榜第一名。 他表示,为了提供全新的开源大模型排行榜…

KubeCon 香港:移动云与云猿生联合议题《在没有专用 Operator 的情况下管理数据库集群》

KubeCon CloudNativeCon 开源峰会 AI_dev 中国大会将于 2024 年 8 月 21 日至 23 日在香港举行。来自全球的云原生技术专家与爱好者在这里相会,探讨云原生领域的技术创新与最佳实践。此外,本次 KubeCon CloudNativeCon 和开源峰会将与 AI_dev&#x…

使用ESP32开发一款chat机器人

目的:使用语音对话的方式实现和ai机器人对话,核心硬件如下 主板: ESP32S3 语音(拾音器-麦克风):INMP441全向麦克风模块 购买记录: https://oshwhub.com/shukkkk/esp32s3_tft_mp3

隧道管廊人员定位系统的应用与发展

随着城市建设的不断发展,地下管廊和隧道工程的规模和数量也在快速增长。隧道工程处于复杂、封闭的环境中,人员的安全管理成为一项重要任务。隧道管廊人员定位系统作为一种先进的技术手段,可以实时追踪人员位置,提供实时监控和安全…

clip系列改进Lseg、 group ViT、ViLD、Glip

Lseg 在clip后面加一个分割head,然后用分割数据集有监督训练。textencoder使用clip,frozen住。 group ViT 与Lseg不同,借鉴了clip做了真正的无监督学习。 具体的通过group block来做的。使用学习的N个group token(可以理解为聚类…

数字社交的领航者:解析Facebook的引领作用

在当今数字化社会中,社交网络已经成为了人们日常生活不可或缺的一部分。而在众多社交平台中,Facebook凭借其巨大的用户基础和创新的技术应用,被公认为数字社交领域的领航者之一。本文将深入解析Facebook在数字社交中的引领作用,探…

Eclipse代码编辑器自主配色

1. 打开 Eclipse 的设置 - Java - Editor - Syntax Coloring 2. 自定义各种类型的颜色,例如: 1. Interface 勾选,设置为紫色 2. Class 勾选,设置为淡蓝色 3. Abstract classes 勾选,有自己默认的颜色 …