【安卓应用渗透】第一篇:安卓逆向回顾和梳理-2211
创始人
2024-01-31 11:04:06

文章目录

    • 安卓开发课程回顾
        • 第一课:安卓项目文件结构(逻辑视图)
        • 第五课:文件读取和数据库存取
            • 文件存取
            • SQLite数据库存取
        • 安卓开发:案前资料库
    • 安卓逆向课程回顾
        • 第一课:基础逆向工具(Apktool, Keytool, Jarsigner)
        • 第二课:破解登录的两种方式
        • 第四课:反编译工具-Androidkiller
        • 第五课:破解支付流程、监控分析工具
        • 第六课:动态调试(Smalidea、adb)
        • 安卓逆向:案前资料库
    • 小结:反编译后的渗透设想(前提是没壳或脱壳)
        • 代码包含的常量数据(最常见)
        • 破解签名(极少见但危害大)
        • 动态调试(下断点调试分析)

安卓开发课程回顾

安卓编程理念:逻辑和视图是严格分开的。

第一课:安卓项目文件结构(逻辑视图)

  • manifests(清单文件)
      每个安卓应用系统都一定有AndroidManifest.xml文件,为Android系统提供应用的基本信息,系统必须获得这些信息才能运行任意应用代码。
      举例:程序的activity必须在Manifest文件中定义,定义第一个activity的代码如下:(可以理解为进入app后的首个页面)
    在这里插入图片描述

  • java
      MainActivity存放第一个activity的代码,使用setContentView()函数定义activity的页面布局layout。系统执行java文件,然后寻找布局文件,将布局控件可视化。
    在这里插入图片描述

  • res资源
      drawable 图像包含两个文件,
    前景图ic_launcher_foreground、后景图ic_launcher_background。
      layout 布局文件
      mipmap 图标,包含ic_launcher和ic_launcher_round两个文件。
    此处引用了drawable的两个文件作为图标。
    ic_launcher指桌面图标,包含foregroud、backgroud两个参数。
    ic_launcher_round:圆形图。
    在这里插入图片描述

  values 变量包含colors.xml、strings.xml、styles.xml,添加控件需要定义变量名和变量值,这时候需要修改strings.xml文件:
在这里插入图片描述

  全图:

在这里插入图片描述

第五课:文件读取和数据库存取

文件存取

文件存储是Android最基本的数据存储方式,不对存储的内容进行任何格式化处理。

指定的文件名不能包含路径,默认存储到 /data/data//files/ 目录下。

  写入文件的执行过程:
openFileOutput(filename, mode) ,返回文件输出流对象FileOutputStream -->输出流写入对象OutputStreamWriter() --> 缓冲区写入对象BufferedWriter(),关闭缓冲区写入对象.close()读取文件的执行过程:
openFileInput(filename) ,返回文件输入流对象FileOutputStream --> 输入流写入对象InputStreamReader() --> 缓冲区读取对象BufferedReader() --> 把数据存放到StringBuilder对象,关闭缓冲区读取对象。
SQLite数据库存取

Android系统内置了数据库!SQLite是轻量级的关系型数据库,通常只需要几百KB的内存,因此特别适合在移动设备上使用。

Android专门提供SQLiteOpenHelper帮助类,可以简单地实现数据库的创建和升级。
SQLiteOpenHelper是一个抽象类,使用前提是创建自己的帮助类去继承他。

注意:通过内置类创建数据库和交互,无需数据库账号密码等。

安卓开发:案前资料库

《Android官方培训课程中文版(v0.9.7)》(貌似已过时)
官网Training:https://github.com/kesenhoo/android-training-course-in-chinese
文档在线阅读:http://hukai.me/android-training-course-in-chinese/

Android 开发者指南

《第一行代码 Android 第2版》,郭霖著 (主要参考资料)

安卓逆向课程回顾

第一课:基础逆向工具(Apktool, Keytool, Jarsigner)

Apktool 是一个反编译Android Apk的第三方工具。它可以反编译资源,并在进行修改之后重新打包Apk。

功能:将资源解码成原形式,比如png和xml。将解码资源重新打包成apk/jar等。

安装地址:https://ibotpeaches.github.io/Apktool/install/
开启代理,下载apktool.bat,下载apk-tool_2.4.1.jar,重命名为apktool.jar,把apktool.bat和apktool.jar剪切到C:\Windows目录下,就可以在命令行运行apktool软件啦。

值得一提的是,apktool.jar依赖Java1.8或更高版本。基础命令如下:

	运行命令:apktool 反编译APK文件:apktool d test.apk将反编译后的文件重新打包:apktool b test

使用 KeyTool 生成加密密钥,使用 Jarsigner 根据密钥进行签名:(入门时可以重新设置证书和签名,是因为没有防篡改机制,实战中多半会校验。当然如果能绕过的话,那就可以给 apk 种马然后发布了)

	生成证书:keytool -genkey -alias abc.keystore -keyalg RSA -validity 20000 -keystore abc.keystore对apk进行签名:(把test.apk替换为自己的apk名称,此处是app-debug.apk)
jarsigner -verbose -keystore abc.keystore -signedjar test.apk test.apk abc.keystore

第二课:破解登录的两种方式

1.通过审计 smali 代码,找到内嵌的用户名/口令常量。

2.破解证书和签名,通过修改关键语句,改变程序执行流程或执行内容,从而绕过验证。

第四课:反编译工具-Androidkiller

该反编译工具拥有 UI 界面,比 ApkTool 更加方便。

安装和使用,可以参考实验文章:【移动安全技术】_安卓逆向4-使用AndroidKiller插入广告页

第五课:破解支付流程、监控分析工具

破解支付流程:

  • 第一步,反编译;
  • 第二步,修改相关代码流程;
  • 第三步,重新签名;
  • 第四步,绕过签名检测,启动破解后的应用。

辅助逆向分析的监控工具:Monitor(Windows自带工具)。

进一步了解可参考:ADB、Android Monitor、DDMS、HierarchyViewer、MAT、SysTrace、TraceView 性能分析工具使用大全

第六课:动态调试(Smalidea、adb)

动态调试,可以分析数据流,对渗透测试的帮助较大。

可以参考实验文章:【移动安全技术】_安卓逆向6:使用smalidea动态调试

安卓逆向:案前资料库

反编译工具:安卓逆向_2 — Androidkiller,apktool、dex2jar、jd-gui、jadx反编译工具 的 安装、设置及使用教程…

在这里插入图片描述

(动态)调试分析工具:ADB、Android Monitor、DDMS、HierarchyViewer、MAT、SysTrace、TraceView 性能分析工具使用大全

小结:反编译后的渗透设想(前提是没壳或脱壳)

代码包含的常量数据(最常见)

第一版:

口令信息
敏感接口信息

破解签名(极少见但危害大)

重新打包并启动成功。

动态调试(下断点调试分析)

第一版:

可以掌握数据流进行篡改渗透
可以 Hook 前端代码
可以通过注释绕过各种检测?
甚至在登录校验时通过密码变量获取到非内置的用户密码?

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
呼伦贝尔大草原在哪 呼伦贝尔天... 世界四大草原分别是:呼伦贝尔草原、那拉提草原、潘帕斯草原、锡林郭勒草原。其中内蒙古的呼伦贝尔大草原,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
重阳节是几月几日 24个传统节... 农历 节日1. 正月初一春节2. 二月初二祭社神:二月二既是龙抬头节也是土地公 诞辰,“土地 诞”也...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...