今日内容
1 app必备知识
1.1 逆向原理
1 2 3 4 5 6 7 8 9 10 11 12
| 安卓正向开发: 安卓开发工程师---》Java语法+安卓框架---》实现功能(java+C)---》写的代码 打包---》xx.apk(资源文件:图片,音频 java: .dex)
拿到 xx.apk--->反编译(加壳,混淆)---》java+c 代码---》hook技术(验证代码)---》python还原逻辑--》发送请求获取数据
- 淘宝开店---》挂链接---》学生,公司不会技术的职员---》拍链接---》让你帮他爬取数据 - 猪八戒网:专门的接单平台 - 闲鱼
|
1.2 什么是反编译-什么是hook
反编译
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 通常,安卓应用程序在开发过程中会经过编译,将源代码转换为可执行的二进制代码,这使得源代码不可见和难以理解。反编译的过程旨在还原应用程序的源代码,以便进行分析、理解和修改。
apktool:apktool是一款常用的开源工具,用于反编译和重新打包APK文件。它可以将APK文件解压为资源文件和Smali代码,并提供了对Smali代码进行分析和编辑的功能。
JADX:JADX是一款功能强大的开源工具,用于将APK文件转换为可读的Java源代码。它能够还原大部分Java代码,并提供源代码分析和导航功能
JD-GUI:JD-GUI是一款免费的Java反编译工具,可以将已编译的Java类文件转换为可读的Java源代码。尽管它主要用于Java反编译,但对于某些Smali代码的反编译也有一定的支持
-1 重要:需要先安装 jdk --》jdk全称:java继承开发环境---》jdk8版本 -官网下载:https://www.oracle.com/java/technologies/downloads/ -把我提供你的安装包,一路下一步运行:会装在 C:\Program Files\Java -2 打开cmd创建: java -version 打印出版本号--》成功了 -3 安装jadx--》把老师提供的zip包--》解压--》来到bin路径下 -win:双击 jadx-gui.bat -mac: ./jadx-gui -4 把 xx.apk 拖动到jadx中,就会反编译---》我们就能看到java代码了
|
Hook是什么
1 2 3 4 5 6 7 8 9
| 这种技术允许开发者或黑客在不修改应用程序源代码的情况下,对其进行定制、调试、修改或篡改
动态链接库(DLL)注入:通过加载一个自定义的动态链接库来替换目标应用程序的某些函数或方法。这种方式通常需要在ROOT权限下进行,并且需要一些额外的工具和技术,如Xposed Framework或Frida。
Xposed框架:Xposed是一款强大的安卓框架,它提供了一种简单的方式来HOOK安卓应用程序。通过Xposed框架,开发者可以编写模块,用于修改或替换目标应用程序的函数或方法。
Frida框架:Frida是一款功能强大的动态分析工具,它提供了在运行时修改和HOOK应用程序的能力。通过Frida,开发者可以使用JavaScript编写脚本,动态修改目标应用程序的行为
|
1.3 电脑设备的选择
1 2 3 4 5 6 7 8
| -讲课用win -之前讲课用mac---》后期有些app,非常大---》非常耗资源--》mac撑不住---》配了个台式机
i5处理器,16g以上内存
|
1.4 安卓设备选择
电脑安卓模拟器(网易mumu)
1 2 3 4 5
| win: 网易mumu、逍遥、夜神、雷电(推荐3版本,不要用4版,以后抓包会有问题) mac: 网易mumu(暂不支持m1)
win同学安装模拟器时,开启vt-x: https://mumu.163.com/include/16v1/2016/06/27/21967_625825.html
|
安卓真机(推荐,所有内容都在真机,不是必须)
1 2 3 4 5 6 7
| 推荐:Pixel谷歌手机【逆向+刷自定义安卓系统+脱壳机】 注意:购买时,必须要买解OEM锁的版本(欧版) -Pixel 2XL ---》17年手机--》够用--》300左右 -Pixel 4XL ---》贵 其他:小米手机(官方支持解BL锁) -小米不支持解锁了
|
在逆向时,你的安卓设备必须获取ROOT权限,一般想要获取ROOT的权限,必须:
- 手机解BL锁或OEM锁
- 刷官方系统 + 基于Magisk面具对手机进行ROOT
1.5 什么是oem锁,bl锁
1 2 3 4 5 6 7 8 9
| "Pixel开启OEM锁",通常指的是在Google Pixel设备上启用了OEM锁(也称为Bootloader锁)。 OEM锁是一个安全机制,目的是保护设备免受未经授权的修改和潜在的安全威胁
-小米:可玩性高,运行解,后续都会不允许解 -华为:之前运行,后来不允许了
https://www.cnblogs.com/liuqingzheng/p/17462146.html
|
1.6 谷歌手机扫盲
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
Nexus One - Android 2.1 Eclair - 2010年1月发布 Nexus S - Android 2.3 Gingerbread - 2010年12月发布 Galaxy Nexus - Android 4.0 Ice Cream Sandwich - 2011年11月发布 Nexus 4 - Android 4.2 Jelly Bean - 2012年11月发布 Nexus 5 - Android 4.4 KitKat - 2013年10月发布 Nexus 6 - Android 5.0 Lollipop - 2014年10月发布 Nexus 5X - Android 6.0 Marshmallow - 2015年9月发布 Nexus 6P - Android 6.0 Marshmallow - 2015年9月发布 Nexus 9 - Android 5.0 Lollipop - 2014年11月发布 Nexus Player - Android 5.0 Lollipop - 2014年11月发布
Pixel - Android 7.1 Nougat - 2016年10月发布 Pixel XL - Android 7.1 Nougat - 2016年10月发布 Pixel 2 - Android 8.0 Oreo - 2017年10月发布 Pixel 2 XL - Android 8.0 Oreo - 2017年10月发布 Pixel 3 - Android 9 Pie - 2018年10月发布 Pixel 3 XL - Android 9 Pie - 2018年10月发布 Pixel 3a - Android 9 Pie - 2019年5月发布 Pixel 3a XL - Android 9 Pie - 2019年5月发布 Pixel 4 - Android 10 - 2019年10月发布 Pixel 4 XL - Android 10 - 2019年10月发布 Pixel 4a - Android 10 - 2020年8月发布 Pixel 4a (5G) - Android 11 - 2020年9月发布 Pixel 5 - Android 11 - 2020年9月发布 Pixel 6和Pixel 6 Pro -2021年9月发布 Pixel 7a、Pixel 7 -2023年5月发布
成色:都是二手
-华为解不了 -小米:需要额外操作---》一会咱么聊如何做
-刷安卓那个版本无所谓(默认是8.0,最高能刷到11版本): 我刷的是安卓:11版本 -一定:让它帮你root好,装 面具Magisk 软件
|
2 Root设备
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| ROOT是指获取安卓设备(手机或平板电脑)的超级用户权限,也被称为管理员或根用户权限。通过Root手机,用户可以获得对操作系统的完全控制权限,可以访问和修改系统文件、安装自定义固件、运行需要Root权限的应用程序等。
定制化:Root后,用户可以更深入地定制和个性化他们的设备,如更改主题、修改系统设置、安装自定义ROM等。 删除预装应用程序:有些设备预装了一些无法卸载的应用程序,通过Root可以删除这些预装应用程序,释放存储空间和系统资源。 安装和运行需要Root权限的应用程序:有些应用程序需要Root权限才能正常工作,例如一些备份工具、系统优化工具等。 提高性能和扩展功能:通过Root权限,用户可以进行一些系统优化和调整,以提高设备的性能和功能。 需要注意的是,Root手机可能存在一些风险和潜在的问题,包括安全性问题、失去设备保修、无法正常升级系统等。
|
2.1 Pixel如何root
1 2 3 4 5 6 7
| https://www.cnblogs.com/liuqingzheng/p/17462146.html https://www.cnblogs.com/liuqingzheng/p/17462127.html
一般带BL锁的手机都是可以进如fatsboot模式的,常见按键操作就是关机状态 音量下键+开机键
|
2.2 小米手机root方式
正常拿到一部手机后需要做:
注意:其他机型,请自行解决root问题
3 python虚拟环境
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
用了 requests 2.31.0
用了 requests 1.1.0
不是优先用谁的,使用那个环境运行python代码,它就是使用那个环境的第三方包
|
7.1 pycharm如何创建虚拟环境
7.2 导出项目依赖
1 2 3 4 5 6 7 8 9
|
pip freeze > requirements.txt
pip install -r requirements.txt
|
__END__