APP攻防--安卓逆向&数据修改&逻辑修改&视图修改

@

工具集

MT管理器

NP管理器

APK查壳工具PKID

开发助手专业版破解版 v6.8.4

开发者助手

Smail语法查询

HttpCanary(小黄鸟)

吾爱破解demo(密码52pj)

以上工具均可在吾爱破解论坛视频《安卓逆向这档事》中找到

视频地址《安卓逆向这档事》

apk目录意义



逆向数据修改

在吾爱论坛大佬写的练习逆向app中,第一关完成对app中得图片与文字替换



使用MT管理器对目标APP进行安装包提取定位

提取之后查看APK中得代码



图中得文件夹中就是APK未进行反编译得代码

使用开发者助手抓取APP上的文字内容进行复制





使用MT管理器中的搜索功能对关键字进行搜索



搜索出只有JF.xml文件中包含关键字



将文件进行反编译之后使用搜索功能对文件中关键字进行搜索,找到关键字位置进行修改即可完成对关键字的替换,更换完成保存并对文件更新即可。

下面继续对其他关键字进行搜索,发现结果在resources.arsc文件中存在。

通过搜索资源值进行搜索



通过搜索找到关键字所在的位置,按照搜索结果路径即可顺利找到字符所在位置进行修改。



同样通过查看id值也可以实现定位。



通过id定位的结果也一样。

通过各种方式的查找找到了关键字的位置,即可对关键字进行修改

第三个关键字在dex文件中,这个文件写的是APP的运行逻辑程序。



通过dex编辑器++方式打开classes.dex文件对关键字进行查找,根据查找字符串或者查找代码、类名等方式找到了关键字所在位置。

对关键字进行修改保存即可

最后将apk进行签名覆盖安装即可



签名之后会启动生成一个apk文件,覆盖安装即可



重新启动运行后即可发现,我们所要修改的关键字成功呗修改成我们想要的语句。

逆向逻辑修改

在吾爱破解demo第二关中,在进行一键三连时,需要首先获取10个硬币,我们需要绕过此项验证。

通过对关键提示字进行搜索,定位到了以下smail代码,使用其他工具NP管理器、jadx等进行搜索转为java代码之后,发现是一个if语句进行控制





通过smail语法查询即可获取执行逻辑,将执行逻辑改变即可。如下通过查询smail语法得知,原smail代码通过判断p0和v0的关系来得知是否具备10个硬币,我们只需要将其取反,将if语句由if-ge改为if-le即可修改运行逻辑,在没有10个硬币的情况下也可以进行下一步操作。





修改保存,对apk进行签名后安装即可。再次对修改后的APP启动后发现成功绕过硬币检测。

逆向视图修改

在demo第三关中,发现会弹出广告,要想将他绕过,就需要监视模拟器上视图的跳转情况。



使用MT管理器的Activity记录来监视视图跳转情况



由于广告弹窗是在第三关界面中停留若干秒才弹出来,因此我们需要进行排查,首先从第三关界面的类中去排查。通过搜索关键字类名进行搜索。搜索结果如下



对第一个类进行查看

通过loadAd这个方法名大致意思为加载Activyity的意思,这里的0x3e9是1001 的十进制表示,而 0xbb8则是3000 的十进制表示 ,这里代码的意思是1秒到3秒的时间间隔,尝试将这两个值修改为0。



从转换后的java代码也可以大致猜出什么意思。



将apk进行保存签名后重新安装,打开后发现广告弹窗成功绕过。

某小说升级vip

在vip处找到关键字开通,通过MT管理器进行反编译,然后搜索开通关键字



搜索结果如下,由于dex文件所写的为APP运行逻辑,开通vip的这件事情是逻辑修改,因此优先查看dex文件

在dex文件中搜索结果中几乎全部都是显示的字符串,跟逻辑几乎没有什么关系。



在资源id对应文件中搜索结果如下,其中有一项已开通,另外两个方法在命名中的HK和TW应该是其他地区的逻辑。我们尝试将此方法对应的id值长摁复制,拿去dex文件中去搜索。



在dex文件中搜索结果如下,其中第一个结果为初始化函数,因此第一个一般不会去修改





经过对smail语法分析,其中决定vip是否开通的关键在与y5函数的执行结果,通过对y5函数的追踪,对y5函数的返回结果v0强制赋值为true,0x0变为0x1。



在对目标apk进行签名重打包过后重新安装,再次查看界面,发现成功绕过vip开通检测,成功开通vip。

某兔去除广告

在打开目标APP后,发现界面上加载有广告,想办法去除掉。由于这个广告并没有进行跳转,因此不能使用监控Activity的方式来获取广告的视图。



使用开发助手的布局查看功能查看广告所在的视图



打开布局查看功能后选中广告所在位置即可



选中后会出先两个视图,第一个视图才是广告视图,第二个选中后红框圈中的范围并不是我们想要的范围,因此第一个视图才是我们想要查看的视图。



选中后上面记录着视图实现的类名,根据类名进行查找实现代码。



搜索结果如下,视图设置一般在xml中。

尝试将视图的高度和宽度设置为0。



将目标apk编译重打包加入签名后重新安装并启动,成功将广告去除。

某壁纸升级vip

目标APP开通vip的方式类似于Web中的前端校验绕过,这里实现的方法是固定返回数据包,将身份证明的数据包进行修改,并通过抓包工具将APP每次请求服务器的数据包都进行修改。这个方法的前提是要知道身份伪造的数据包的具体参数。

数据响应包应修改如下

{
"code": 200,
"data": {
"id": 2220156,
"userId": "8kMP5il1",
"phoneNum": "手机号",
"username": null,
"avatarUrl": null,
"coverUrl": null,
"gender": 0,
"vipType": 256,
"vipPastDueTime": 0,
"vipLabelLevel": 3,
"vipLabel": "元老用户",
"createTime": 1693635001297,
"updateTime": 1693635001297,
"vitalityVipPastDueTime":253392455349 ,
"accountSign": null,
"webBackground": null,
"unionId": null,
"age": 0,
"category": null,
"isVirtual": 0,
"qqUnionId": null,
"pcVipType": 256,
"pcVipPastDueTime": 253392455349,
"vitalityPcVipPastDueTime": 253392455349,
"token": "账号token"
},
"error_msg": null
}

使用小黄鸟开启抓包



关键请求数据包如下,使用过滤功能过滤关键字token即可定位。



对目标数据包进行重写



将数据包的数据载荷部分进行修改保存



选择在线编辑,将要固定的数据修改保存即可



在插件管理器中开启插件,同时开启抓包即可。再次打开目标APP即可发现成功开通VIP

以上内容仅作学习记录,如有错误或瑕疵,欢迎批评指正,感谢阅读。

APP攻防--安卓逆向&数据修改&逻辑修改&视图修改的更多相关文章

  1. 记一次数据、逻辑、视图分离的原生JS项目实践

    一切的开始源于这篇文章:一句话理解Vue核心内容. 在文章中,作者给出了这样一个思考: 假设现在有一个这样的需求,有一张图片,在被点击时,可以记录下被点击的次数. 这看起来很简单吧, 按照上面提到到开 ...

  2. SQLServer之通过视图修改数据

    通过视图增删改数据注意事项 需要对目标表的 UPDATE.INSERT 或 DELETE 权限(取决于执行的操作). 如果视图引用多个基表,则不能删除行. 如果视图引用多个基表,只能更新属于单个基表的 ...

  3. Java-马士兵设计模式学习笔记-代理模式-动态代理 修改成可以任意修改代理逻辑

    一.概述 1.目标:动态代理的代理逻辑可以任意修改 2.思路: (1)要把代理逻辑抽离,站在jvm的角度思考,应独立出InvocationHandler接口,并接收被代理的对象及方法作为参数invok ...

  4. A、B同时打开一个页面进行同一条数据库记录进行修改,A修改完成后提交表单,A修改的数据保存完成后;当B也修改完成后,提交数据进行数据修改。此时B修改的内容会覆盖A修改的内容,请问如何避免?

    A.B同时打开一个页面进行数据中的一条数据进行修改,A修改完成后提交表单,数据修改保存完成后B开始页面也修改完成,开始提交进行修改.此时B修改的内容会覆盖A的内容,请问如何避免? 通过搜索和我个人总结 ...

  5. 使用PreparedStatement向数据表中插入、修改、删除、获取Blob类型的数据

    使用PreparedStatement向数据表中插入.修改.删除.获取Blob类型的数据 2014-09-07 20:17 Blob介绍 BLOB类型的字段用于存储二进制数据 MySQL中,BLOB是 ...

  6. 在用easyui中做CRUD功能时,当删除一行或多行数据后再点击修改会提示你选中了多行,如何解决这个bug了?

    在用easyui中做CRUD功能时,当删除一行或多行数据后再点击修改会提示你选中了多行,如何解决这个bug了? 在删除成功后,加上这句话就可以了:$("#dg").datagrid ...

  7. 【转】安卓逆向实践5——IDA动态调试so源码

    之前的安卓逆向都是在Java层上面的,但是当前大多数App,为了安全或者效率问题,会把一些重要功能放到native层,所以这里通过例子记录一下使用IDA对so文件进行调试的过程并对要点进行总结. 一. ...

  8. 【腾讯Bugly干货分享】移动App入侵与逆向破解技术-iOS篇

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e0acc896e9ebb6865f321 如果您有耐心看完这篇文章,您将懂 ...

  9. 安卓逆向(一)--Smali基础

    安卓逆向(一)--Smali基础 标签(空格分隔): 安卓逆向 APK的组成 文件夹 作用 asset文件夹 资源目录1:asset和res都是资源目录但有所区别,见下面说明 lib文件夹 so库存放 ...

  10. 20145307陈俊达_安卓逆向分析_Xposed的hook技术研究

    20145307陈俊达_安卓逆向分析_Xposed的hook技术研究 引言 其实这份我早就想写了,xposed这个东西我在安卓SDK 4.4.4的时候就在玩了,root后安装架构,起初是为了实现一些屌 ...

随机推荐

  1. [转]-- ISP(图像信号处理)算法概述、工作原理、架构、处理流程

    目录 ISP的主要内部构成: ISP内部包含 CPU.SUP IP(各种功能模块的通称).IF 等设备 ISP的控制结构:1.ISP逻辑 2.运行在其上的firmware ISP上的Firmware包 ...

  2. Ui2Code+ChatGPT助力低代码搭建

    前言 低代码开发平台(LCDP),是低代码或无代码通过快速搭建配置的方式完成一个应用程序的开发与上线,可视化低代码就是可视化的DSL,它的优点更多的是来源可视化,相对的,它的局限性也还是来源于可视化, ...

  3. 叶绿素含量测定仪SPAD-502怎么使用?

      本文介绍基于SPAD-502叶绿素仪测定植被叶片叶绿素含量的方法.   SPAD-502是由日本柯尼卡美能达(Konica Minolta)株式会社生产的轻便.手持式叶绿素仪,可以在不破坏作物的情 ...

  4. failed (2: No such file or directory) in /var/www/QQ_Music/nginx.conf:18

    错误原因 解决方案 引入文件 /www/server/nginx/conf/mime.types;

  5. .NET爬取美图官网首页数据实战

    前言: 在当今信息化社会,网络数据分析越来越受到重视.而作为开发人员,掌握一门能够抓取网页内容的语言显得尤为重要.在此篇文章中,将分享如何使用 .NET构建网络抓取工具.详细了解如何执行 HTTP 请 ...

  6. 国标GB28181视频平台EasyGBS视频监控平台无法播放,抓包返回ICMP排查过程

    国标GB28181视频平台EasyGBS是基于国标GB/T28181协议的行业内安防视频流媒体能力平台,可实现的视频功能包括:实时监控直播.录像.检索与回看.语音对讲.云存储.告警.平台级联等功能.国 ...

  7. C#程序变量统一管理例子 - 开源研究系列文章

    今天讲讲关于C#应用程序中使用到的变量的统一管理的代码例子. 我们知道,在C#里使用变量,除了private私有变量外,程序中使用到的公共变量就需要进行统一的存放和管理.这里笔者使用到的公共变量管理库 ...

  8. #Powerbi 1分钟学会,RANK函数,多字段排名函数.

    一:思维导图&数据源示例 1.1思维导图 1.2示例数据源 二:参数构成 三:案例度量值 基础度量值 总销量 = CALCULATE(SUM('数据源'[销量])) 总销售额 = CALCUL ...

  9. 错过这5大AI绘画提示词平台,你会拍大腿!别问,直接收藏!

    如今,AI绘画已经不再是简单的技术展示,而是逐渐转向了商业化的运营. 有的人利用AI生成的图片,再结合ChatGPT产生的文字,然后在平台上发布,这样就可以赚取平台的广告费. 其他一些变现操作参考之前 ...

  10. 《Linux基础》04. 用户管理 · 用户组 · 相关文件 · 权限管理

    @ 目录 1:用户管理指令 1.1:添加用户 1.2:修改用户密码 1.3:用户切换与注销 1.4:删除用户 1.5:查询用户信息 1.6:查看当前登录用户 1.7:查看有哪些用户 2:用户组指令 2 ...