app逆向实战之定位关键代码

frida动态调试入门01——定位关键代码 frida是一款Python工具可以方便对内存进行hook修改代码逻辑在移动端安全和逆向过程中常用到。 阅读详情

前言

在保证App能够正常使用的前提下,我们可以通过抓包查看是否存在抓包检测。如果可以进行抓包,我们首先进行登录代码定位,并伪造请求进行登录,然后实现App中的某个功能。本文以某嘟牛app为例,抓包结果如下:
g)

控件定位关键代码

由于现在app开发框架相对较多,因此需要确定这个app是什么框架下进行开发的。因为区分不从的开发方式,可以快速定位关键代码位置。通过Android Studio中uiautomatorviewer.bat工具来查看app的哪个框架进行开发的,其结果如下:

在这里插入图片描述

我们可以观察到,该app中按钮控件ID等信息,这个app为传统的Android框架开发。然而app中做了反截屏检测,此时则无法使用这个工具,相关代码如下:

activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);

常用的解决办法是使用Frida hook掉该函数或调用API函数清除截屏标志:

activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);

确认该App为传统Android框架开发后,我们查看其是否加固。在未加固的情况下,可以直接使用进行反编译:
在这里插入图片描述

在反编译完成以后,可以使用t工具查看登录按钮的id,然后在找到相关的代码:
在这里插入图片描述
在Jadx中搜索ID,查看代码引用结果:
在这里插入图片描述
显然这里就是代码的关键位置:

在这里插入图片描述
关键代码:
在这里插入图片描述
登录逻辑如下:

private void login(String userName, String pwd) {
    // 初始化请求返回类型为RequestResult<User>类型
    this.DEFAULT_TYPE = new TypeToken<RequestResult<User>>() { 
        // 类的匿名内部类
    }.getType();
    
    // 清空参数列表
    this.para.clear();
    
    // 将用户名和密码放入参数列表
    this.para.put("username", userName);
    this.para.put("userPwd", pwd);
    
    // 如果设备ID为空,则获取设备ID并赋值
    if (TextUtils.isEmpty(DodonewOnlineApplication.devId)) {
        DodonewOnlineApplication.devId = Utils.getDevId(DodonewOnlineApplication.getAppContext());
    }
    
    // 将设备类型和登录设备ID放入参数列表
    this.para.put("equtype", Config.equtype);
    this.para.put("loginImei", "Android" + DodonewOnlineApplication.devId);
    
    // 发起网络请求,请求登录接口,传递参数列表和返回类型
    requestNetwork("user/login", this.para, this.DEFAULT_TYPE);
}

字符串定位关键代码

抓包以后,点击登录按钮发送的数据包如下:
在这里插入图片描述
搜素结果如下:
在这里插入图片描述

也可以搜索加密的参数Encyrpt,如下图所示:
在这里插入图片描述
在结果较多的情况下,可以加上引号过滤一些搜索结果:
在这里插入图片描述
此时优先查看app包名的类
在这里插入图片描述
找到两个函数后,需要使用Hook或动态调试方式查看哪个方法调用了函数。

总结

可以通过这两种方式定位关键代码,然而控件的方式在有些复杂的app当中,可能离着关键代码很远。针对字符串的方式会面临字符串加密,我们在搜索字符串搜不到相应的代码。

逆向工程实战:突破App长连接抓包与加密协议解析 在移动应用开发与安全分析领域,网络通信抓包是理解应用行为、进行协议分析和安全评估的基础技术。其核心原理是通过拦截和解析应用与服务器之间的数据流,将网络传输的二进制或加密数据转换为可读信息。传统基于HTTP/HTTPS代理的抓包方法,在面对采用自定义TCP长连接与私有加密协议的应用时往往失效,因为这些数据流可能绕过系统代理设置或使用非标准端口。为了应对这一挑战,动态代码注入技术(如Frida)展现出极高的技术价值,它允许在应用运行时拦截关键函数调用,直接获取加密前后的明文数据或密钥。这种技术广泛应用于移动安全 阅读详情

相关推荐

快速定位关键代码

往期推荐 Smali文件详解 Java层逆向分析-Dalvik字节码 修改资源去广告 修改包名实现分身 1.1APK的特点 1.在学习定位技巧之前,先分析一下APK的3个特点: (1)每个APK文件中都包含有一个AndroidManifest.xml文件,它记录着软件的一些基本信息。 (2)一个Android程序包含一个或多个Activity组成,不同的Activity实现不同的功能。每个Android程序有且只有一个主Acitivity。隐藏程序除外,它没有主Acitivity。 每个Activity都是

YJJYXM的博客 3692

安卓逆向_7 --- 六种快速定位关键 Smali 代码的方法 ( 去掉 RE 广告 )

哔哩哔哩:https://www.bilibili.com/video/BV1UE411A7rW?p=34 具体用法,看视频教程(去掉RE的结束广告 ) 6 种定位关键代码的方法,当然还有其他方法,以后遇见了补充上: 1. 信息反馈法( 资源id / 字符串 )。根据程序正常运行的提示信息进行定位,例如:错误提示,运行提示等等。可以在程序中...

墨鱼菜鸡 1293

【爬虫逆向实战篇】巧妙定位加密参数、断点调试与JS代码分析

爬虫JS逆向实战教程:定位加密参数、断点调试与分析实战

吴秋霖的博客 1万+

安卓逆向_4 --- 定位关键Smali、monitor使用、log插桩、栈追踪、methodprofiling(方法分析)

定位关键Smali、monitor使用、log插桩、栈追踪、methodprofiling(方法分析)

freeking101的博客 7116

毫米波雷达IWR1843开箱演示

毫米波雷达IWR1843开箱演示

m0_56120826的博客 7776

无人机避障——4DMmvRadar三维点云坐标转换到无人机坐标系(三)

无人机避障——4DMmvRadar三维点云坐标转换到无人机坐标系(三)

weixin_45390670的博客 1869

学习笔记——Android逆向中快速定位关键代码

给自己新增一个任务,每天学习和记录一篇Android逆向相关的文章。 今天分享的是《OPPO安全应急响应中心》公众号里的一篇文章——移动APP测试中关键代码定位 思路明确,干货不少,现在App防护的整体难度越来越大,单纯静态分析掉头发太多,因此都是动静态结合。静态分析即使用Jadx反编译App(最新版Jadx好用又不占内存),动态分析过去用Xposed,但现在多半用Frida,因为Frida强大(...

lilac的博客 5300

大模型训练方法全面解析:SFT、RFT、TRPO、DPO、PPO、GRPO、RLH、RLHF技术深度剖析

大模型训练方法全面解析 本文系统介绍了当前主流的大模型训练和对齐技术,包括监督微调(SFT)、拒绝采样微调(RFT)、信任域策略优化(TRPO)、直接偏好优化(DPO)、近端策略优化(PPO)等。这些方法各有特点:SFT简单高效但数据依赖性强;RFT通过质量筛选提升输出质量;TRPO训练稳定但计算复杂;PPO是RLHF核心算法,平衡探索与利用。文章详细分析了各方法的实现原理、优势劣势及适用场景,为开发者选择合适的大模型训练策略提供参考。

2795

【逆向-快速定位关键代码】安卓逆向过程中的有效方法

在安卓应用逆向工程中,要理解应用程序的内部工作原理并识别关键代码段是至关重要的。无论是为了安全审计、漏洞研究,还是为了进行定制修改,快速准确地定位关键代码都是必不可少的。本文将介绍一些在安卓逆向过程中快速定位关键代码的有效方法。

哈哈哈哈哈哈哈 1100

YOLOv11改进 | 细节涨点篇 | DySample一种最新的轻量化动态上采样算子(效果完爆CARAFE)

本文给大家带来的最新改进机制是一种号称超轻量级且有效的动态上采样器——DySample。与传统的基于内核的动态上采样器相比,DySample采用了一种基于点采样的方法,相比于以前的基于内核的动态上采样器,DySample具有更少的参数、浮点运算次数、GPU内存和延迟。此外,DySample在包括语义分割、目标检测、实例分割、全景分割和单目深度估计在内的五个预测任务中,性能均优于其他上采样器(截至目前最有效的上采样算子),

Snu77的博客 4210

Python爬虫实战:利用Playwright和反反爬技术高效抓取Bloomberg金融数据

用户行为分析(鼠标移动、点击模式)请求头检测IP频率限制WebSocket通信验证Canvas指纹识别我们的爬虫需要模拟人类行为,使用代理IP池,并合理控制请求频率。

2201_76125261的博客 1020

Android逆向-APP破解练习(一)

0x00 前言 0x01 环境 练习APP 使用工具 0x02 积累学习 破解点 破解积累 0x00 前言 为了可以更好的提高自己的逆向水平,所以决定记录一下每天破解的APP以及破解思路。 0x01 环境 1.练习APP 滑雪大冒险 2.使用工具 Android killer 0x02 积累学习 1.破解点 这里是支付破解的要点,是在java层进

王嘟嘟的博客 4580

RK3568实现蓝牙音箱功能

A2DP旨在通过蓝牙连接传输高质量的立体声音频流。它使用的基本压缩算法是SBC(Sub-Band Coding)来减小音频数据的大小,同时保持高音质,SBC压缩虽然效率较低,但是是必须支持的基本备用方案。A2DP还支持其他高级编解码器,例如AAC、aptX和LDAC,这些编解码器比SBC提供更好的音质,但这些编解码器的支持取决于设备本身的支持情况。注意A2DP协议要与AVRCP协议区分开。A2DP是传输音频的,而AVRCP是用来控制音频的。这里我用到的是RK3568 Android11。

leikko的博客 1175

27.安卓逆向-抓包-实战1

安卓逆向 安卓协议分析 app协议分析 保姆级攻略 app逆向 Android apk逆向

计算机王的博客 1788

王者荣耀AI绝悟如何选英雄?

王者荣耀AI绝悟如何选英雄? 【抢射手?抢中单位?「绝悟」在打王者荣耀时是如何选英雄的?】 腾讯 AI Lab 开发的 AI 智能体「绝悟」已让王者峡谷不再只是人类召唤师的竞技场,而且这个 AI 战队在上月底进化成了「完全体」。在一局完整的比赛中,英雄选择阶段是至关重要的(比如五射手或五法师阵容会有官方劝退)。 近日,腾讯 AI Lab 和上海交通大学发布的一篇论文介绍了绝悟的英雄选择策略:Ju...

不断学习,不断进步,提高自己 1万+

Windows10下安装VMware16虚拟机

由于本人系统为Windows 10 家庭中文版,无法安装Linux子系统WSL,虽然网上也有强制安装的方法,但为保险起见,还是把之前的VMware虚拟机重新进行安装,并浅浅记录一下安装过程。

沉香best的博客 863

逆向实战:用Unidbg+Jadx快速解密某App网络请求参数(以getGameKey为例)

本文详细介绍了如何利用Unidbg和Jadx工具链进行Android应用逆向工程,重点解析了`getGameKey()`方法的解密过程。通过PC端模拟执行SO文件中的Native函数,结合静态分析技术,实现网络请求参数的高效解密,为移动应用安全分析提供实用解决方案。

weixin_30258901的博客 468

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

网安核心知识点:Web / 软件 / 安卓 / APP 逆向全汇总

摘要:逆向工程是通过拆解分析软件程序来推导其源代码、设计原理等的过程,包括Web逆向、软件逆向、安卓逆向等类型。常用工具有OllyDbg、IDA Pro等。学习逆向工程能培养独特的计算机视角,但需要扎实的基础知识积累。网络安全学习建议从基础开始系统掌握,而非追求速成。文中提供了282G网络安全学习资料包,包含视频教程、技术书籍、工具源码等资源,适合从入门到进阶的学习需求。(149字)

m0_71746416的博客 1203

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

网安人必藏!Web & 安卓 & APP & 软件逆向知识点

摘要:本文介绍了逆向工程的基本概念与应用领域。文章将逆向比作拆解玩具的过程,阐述了Web逆向、软件逆向、安卓逆向和移动APP逆向的区别与联系。重点讲解了软件逆向工程的定义和技术手段,列举了OllyDbg、IDA Pro等常用逆向工具,并强调了逆向工程在网络安全领域的重要性。文末提供了网络安全学习资源包获取方式,包含攻防技术教程、工具安装包及面试经验等282G资料,适合网络安全从业者和爱好者系统学习。

m0_56146626的博客 991

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android逆向分析入门:Frida动态Hook原理与实战环境搭建

动态代码注入是软件逆向工程中的核心技术,它允许分析者在程序运行时实时监控和修改其行为。其原理是通过将自定义代码注入目标进程内存空间,拦截函数调用、读写内存数据,从而实现对程序逻辑的动态分析与干预。这项技术的核心价值在于极大提升了逆向分析效率,能够绕过静态混淆、直接观察运行时状态,广泛应用于移动应用安全评估、协议分析、漏洞挖掘等领域。Frida作为当前主流的动态注入框架,通过JavaScript API提供了跨平台的Hook能力,尤其适合Android应用的Java层与Native层逆向分析。本文基于Frid

weixin_31887307的博客 872

移动应用API签名逆向实战:从抓包到算法还原全解析

在移动应用开发与安全领域,API签名是保障客户端与服务器通信安全的核心机制,其本质是一种基于密码学的身份验证与数据完整性校验技术。其原理通常涉及对请求参数、时间戳等关键信息进行特定算法的哈希运算(如HMAC-SHA256),生成唯一的签名值,服务器通过重算验证请求的合法性与防篡改性。这项技术的核心价值在于有效抵御重放攻击、参数篡改等安全威胁,是构建可信通信的基石,广泛应用于电商、金融、社交等各类App的API接口防护。本文以实战视角,聚焦于逆向工程中常见的**x-sign签名参数**,通过**Frida动态

weixin_29324401的博客 683

Android App逆向工程实战:从环境搭建到算法还原的完整流程

逆向工程是理解软件内部工作原理的关键技术,通过分析程序的结构和行为来揭示其实现逻辑。其核心原理包括静态分析和动态分析,静态分析通过反编译工具查看代码结构,动态分析则通过运行时监控观察程序行为。这项技术的价值在于帮助开发者学习优秀架构设计、优化技巧,同时协助安全研究者评估应用的数据安全和通信规范。在实际应用场景中,逆向工程常用于移动应用安全评估、协议分析和兼容性开发等领域。以某信息流App为例,使用Jadx进行静态代码分析可以定位网络请求和签名逻辑,而Frida动态插桩则能实时Hook关键函数,验证算法实现。

weixin_30521161的博客 358

央视频接口加密逆向实战:Python复现签名算法全解析

爬虫逆向是应对App接口数据获取挑战的核心技术,尤其在接口签名机制普遍应用的今天,理解其原理是突破数据壁垒的关键。服务端通过校验签名来防止请求篡改,而逆向工程则需还原其拼接规则与加密算法。掌握这一能力,开发者可合法高效地完成数据采集、分析及自动化测试。本文以央视频App为案例,详细拆解从抓包定位加密参数、静态分析签名逻辑到Python完整复现请求的实战过程,涵盖MD5签名、参数拼接顺序、动态Hook验证等要点,为入门爬虫逆向的开发者提供一条可复现的完整路径。

weixin_26642481的博客 299

【APP逆向小技巧】app逆向之如何定位关键代码

目录1 搜索大法2 栈跟踪法( 动态调试 / 函数调用流程 ) 1 搜索大法 假设我们通过抓包得到的请求参数如下图所示 通过多次抓包分析出请求参数中duid/tyc-hi/Authorization这三个是动态加密的参数,需要我们反编译app进行破解。使用jadx打开app进行反编译 打开搜索框搜索加密参数定位关键代码 字符串搜索tyc-hi/"tyc-hi,查看搜索结果; 由上图所示,通过搜索tyc_hi进入到一个类似配置文件的类中,并且我们需要的加密参数赋值给不同的变量。 那么站在开发者的

ssrf 3544

app逆向专题二:app逆向流程

app抓包分析可以看到有签名有加固,毕竟需要APK去访问服务、获取数据,都需要APK有完整的信息,而这些信息、代码经过各种加密,还是放在APK里面。这里我们使用一款apk查壳软件apk查壳神器,使用方法非常简单,将下载好的apk文件拖动至apk查壳神器的窗口即可。

lyccomcn的博客 2152

安卓逆向 -- 关键代码定位与分析技术

在安卓逆向工程中,定位和分析关键代码是整个逆向过程中的一项核心任务,它涉及到多个步骤,包括抓包分析、加固检测、开发形式分析、关键代码定位、以及算法还原。以下是一步步的技术博客,介绍如何进行高效的安卓逆向工程。

Web安全工具库 1409
上一篇: Android应用的执行入口
下一篇: Frida Hook Java层代码与协议分析
LittleFishC
博客等级 码龄10年 163粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值