APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术

这篇具有很好参考价值的文章主要介绍了APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JEB环境配置

  1. 安装java环境变量(最好jdk11)
  2. 安装adb环境变量

设置adb环境变量最好以Android命名

  1. 启动开发者模式

设置-->关于平板电脑-->版本号(单机五次)
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术

  1. 开启USB调试

设置-->系统-->高级-->开发者选项-->USB调试
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
开启USB调试目的是为了后续让JEB能够获取模拟器上的进程
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术

  1. 安装激活JEB

软件安装包和破解参考吾爱破解文章JEB动态调试Smali-真机/模拟器(详细,新手必看)

JEB动态调试

使用的吾爱破解中大佬课程《安卓逆向那点事》中提供的练习demo第四关来练习动态调试。

  • 在进行动态调试前必须在apk中加入允许动态调试,一般在application标签中加入即可。其他加入动态调试方法相较于加入代码来说有点复杂,可以参考《安卓逆向这档事》五、1000-7=?&动态调试&Log插桩
android:debuggable="true"
  • JEB中打开的apk必须也加入了动态调试才能和模拟器中的进程进行互动,查看方法如下

APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
在对第四关进行练习时,需要输入密钥,可以对关键字进行搜索
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
找到关键字所在位置
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
解析为java代码后发现控制程序逻辑的是一个if语句,在执行check()函数后,通过check()函数的返回值来判断if语句的执行逻辑,这里只需要将check()函数的返回值修改为真即可成功绕过密钥判断。
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
双击查看check()函数,这里有检测提交的密钥是否带关键字flag{}
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术

在函数返回值的地方判断变量v7是否与一串加密数据是否一致,如果一致就返回为真。有两种方式可以绕过密钥检测,一种是从逆向的角度将return的值固定为true,另外一种方法是通过动态调试的方式我们可以通过断点调试来获取这段加密数据,从而成功获取密钥。
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术

逆向修改返回值:
在修改返回值的方法中,我们可以将代码中检测flag{}关键字的检测返回值一并进行固定修改,顺带将关键字检测也一并绕过
在以下三个返回值的地方我们需要全部固定为true
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术

对应的smail代码如下
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
在return返回之前使用const进行重新赋值,由于JEB不能重新打包,使用MT管理器进行修改,修改效果如下
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
在进行修改后对apk进行重新编译后并签名安装即可成功绕过,绕过效果如下,关键字检测以及密钥检测全部成功绕过。
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术

断点调试密钥:
在进行断点调试的时候首先判断需要在那里下断点,我们想要通过断点调试得到什么。
我们需要通过断点调试使得check()函数的最终返回值为true,需要得到与v7进行对比的一串密钥,所以我们在进行断点调试的时候需要在密钥得到的时候、返回值之前进行断点,并且在发送调试数据时必须带有flag{}关键字通过关键字检测才能使程序正常执行。
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
开启调试
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
下断点,在下断点时需要在smail语法视图中
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
发送数据,在开启断点调试后,进行发送数据的时候并不会提示密钥错误,因为程序在执行过程中被断点调试拦截了
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
成功断点后,一步一步执行程序的同时观察和分析局部变量
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术

断点调试执行过程checkNotNullExpressionValue()-->encodeToString(),在encodeToString()函数返回值发现特殊变量
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
在执行到areEqual()函数时,我们发送的数据是和该变量进行比较。
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
通过尝试将密钥换成flag{VEFREgwEAA==}即可成功认证密钥。

LSPosed模块

安装Magisk、LSPosed以及算法助手
XPosed框架因只支持安卓8及以下,故高版本应使用Magisk+LSPosed
参考文章雷电模拟器9.0.56安装Magisk+LSPosd
算法助手
通过LSPosed模块中所提供得集成功能可以大大节省时间。
在使用算法助手时,需要现在LSPosed模块中将进行调试得目标APP选中,系统框架是必须勾选的。
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术

勾选目标APP后,在将算法助手中得APP勾选即可

LSPosed模块中,具有很多集成的功能
比如抓取加密算法
在面对具有加密算法得目标时候,使用算法助手中抓取算法功能可以很快获取到加密算法得位置,或者加密算法采用得加密密钥、偏移量等关键信息

APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术

通过算法助手启动APP在登录时调用加密算法,调用结束后可以在算法助手得日志处看到加密算法得调用过程以及加密细节
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术

APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术

自定义Hook

在算法助手功能中有一项功能可以添加自定义hook
所谓hook技术,通俗来讲就是可以改变程序得执行逻辑,类似与bp抓包得时候修改数据包再将数据包放出,hook可以将程序中得变量或者返回值进行修改。

在添加hook时,需要将关键程序得执行逻辑搞清楚,将关键变量或者返回值进行修改。

例如在之前案例中得某小说APP中,通过关键字定位到关键逻辑,进行反编译后分析程序执行逻辑
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
if语句是否执行根据y5得返回值来判断,如果y5得返回值为true,即可成功进入if语句。我们可以通过自定义hook模块将y5得返回值固定。
使用JEB将鼠标放置在方法上即可查看方法得详细信息
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
根据y5方法所在得类,以及返回值类型构造自定义hook
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
将所添加的hook勾选后,使用算法助手启动即可
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术

在没有勾选自定义得hook模块时,目标APP正常显示逻辑,vip并没有成功开通
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
在勾选自定义hook后,启动之后目标APP成功开通vip
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
在算法助手得日志记录中可以看到算法助手通过自定义得hook将目标APP中得y5()方法进行了拦截并修改了返回值。
APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术文章来源地址https://www.toymoban.com/news/detail-745960.html

到了这里,关于APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小程序逆向动态调试及修复过程

    微信小程序逆向 : https://codeooo.blog.csdn.net/article/details/120219900 app.js错误: TypeError: _typeof3 is not a function 查阅资料找到 @babel/runtime/helpers/typeof.js 原先的文件内容是: 将这个文件里面的所有内容直接替换成下面的: 就可以进入主界面; 未定义 直接先定义为空; 定义全局,以免不

    2024年02月11日
    浏览(25)
  • uniapp app安卓系统真机调试

    注意:本教程前提需要申请生成自有证书,这里不说生成证书过程。         1. 用手机连接电脑 使用USB接口连接电脑 在电脑和手机上下载一个360手机助手软件 在手机上开启开发者模式,开启USB调试 打开手机设置拉到最底部点击关于手机快速点击版本号几下开启开发者模

    2024年02月07日
    浏览(28)
  • uni-app:如何实现安卓设备的无线调试

    在前端开发中,与安卓设备进行调试是一个常见的任务。通常,我们使用ADB(Android Debug Bridge)通过USB连接来进行调试。然而,有时候我们可能需要无线进行调试,这样可以提供更大的灵活性和便利性。在本文中,我们将介绍如何使用uni-app框架和ADB来实现安卓设备的无线调试

    2024年02月01日
    浏览(33)
  • Shamiko模块 - 配合Magisk+LSPosed隐藏ROOT

    在使用Magisk开启Zygisk和遵守排除列表之后,排除列表内被隐藏了ROOT的app就没法在LSP模块内勾选了,会显示在排除列表内,然后呈灰色状态无法勾选。 也就是说,如果只用Magisk自带的隐藏root,就无法再用模块了。Shamiko就是来解决这个冲突的,可以达到,既要又要~ Shamiko下载:

    2024年01月16日
    浏览(25)
  • 详解uni-app项目运行在安卓真机调试

    uni-app项目运行在安卓真机调试 UNI-APP学习系列之详解uni-app项目运行在安卓真机调试 因为安卓模拟器调试有问题,运行项目后白屏,因此使用安卓真机调试。 安卓真机调试 HBuilderX下载真机插件 手机通过USB链接电脑调试 手机开启开发者模式,并且打开USB调试 一般是在设置 =

    2024年02月12日
    浏览(39)
  • 【软件逆向】如何逆向Unity3D+il2cpp开发的安卓app【IDA Pro+il2CppDumper+DnSpy+AndroidKiller】

    课程作业要求使用反编译技术,在游戏中实现无碰撞。正常情况下碰撞后角色死亡,修改为直接穿过物体不死亡。 il2CppDumper。 DnSpy。 IDA Pro。 AndroidKiller。 一、使用il2CppDumper导出程序集 将{my_game}.apk后缀修改为{my_game}.zip,使用解压工具解压至文件夹{my_game}。(my_game为apk的文件

    2024年02月05日
    浏览(34)
  • 【毕设调试二】WiFi模块的AP模式与App Inventor

    提示:在上一篇中我们简单的完成了WIFI模块的STA模式,在此篇中我们将梳理WiFi的AP模式 AP模式 :热点模式,是通过设置WiFi模块来产生一个热点,然后通过连接本热点,来达到在手机   上发送控制信息到单片机,可以使用于app控制单片机类的项目 提示:需要用到上一章所配

    2024年02月11日
    浏览(21)
  • 在雷电模拟器9上安装magisk并安装LSPosed模块以及其Manager管理器(一)

    环境:win10 64, 雷电模拟器9.0.60(9),Android 9 。 之前我都是用雷电模拟器版本4.0.78,Android版本7.1.2,为什么本篇要使用9了呢?先解答下这个问题。原因如下:经过我的测试,LSPosed不支持Android API 25及以下,而Android版本7.1.2对应的就是25,所以是安装不了LSPosed模块的。对应关系

    2024年02月07日
    浏览(65)
  • 安卓渗透指南(二)-Kitsune Mask模块 绕ssl pinning,绕root检测,绕system动态分区

    安卓版本大于11,root之后,system分区无法操作,这让我们把证书安装到根目录泡汤了。现在装上这几个模块,可以绕ssl pinning,绕root检测,绕system动态分区,让抓包不在困难。 一台成功刷入狐狸面具(Kitsune Mask)的手机 magic_overlayfs LSPosed JustTrustMe TrustMeAlready https://github.com/

    2024年03月22日
    浏览(51)
  • 9.网络游戏逆向分析与漏洞攻防-游戏网络架构逆向分析-接管游戏连接服务器的操作

    内容参考于:易道云信息技术研究院VIP课 上一个内容:游戏底层功能对接类GameProc的实现 码云地址(master 分支):https://gitee.com/dye_your_fingers/titan 码云版本号:44c54d30370d3621c1e9ec3d7fa1e2a028e773e9 代码下载地址,在 titan 目录下,文件名为:titan-接管游戏连接服务器的操作.zip 链接

    2024年03月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包