目录
app客户端
1.app客户端分类
ios 建立在unix系统之上 沙箱运行机制
android 建立在linux系统之上 虚拟机运行机制
2.安卓基础知识
2.1安卓系统技术:
Android 5.0以前Dalvik:边运行边编译
Android 5.0以后ART:提前编译技术
安卓逆向:apk-->dex-->class-->java
2.2组件基础:
Android的四大基本组件是Activity、Service、Content Provider和Broadcast Receiver。
Activity:相当于一个页面或屏幕,用于显示用户界面,处理用户交互,如点击事件等,所有Android应用都必须至少有一个Activity,每个Activity都需要在AndroidManifest.xml文件中声明。Activity之间通过Intent进行通信。
Service:在后台运行的服务,用于执行不立即需要用户干预的长任务或操作,Service不能直接与用户交互,没有图形用户界面,但可以通过绑定或启动方式与Activity交互。
Content Provider:用于在应用程序之间共享数据,如存储在数据库或文件中的数据,其他应用程序可以通过Content Provider来访问这些数据。
Broadcast Receiver:用于接收系统或应用程序发出的广播消息,如网络变化、电话呼入等,Broadcast Receiver可以接收这些广播消息并对它们做出响应。
2.3apk包解压目录
2.4 apk文件存储位置
2.5 adb基本操作
不建议使用真机 安卓九以上要开启root权限 打开开发者模式 usb调试打开



2.5.1 adb是什么
安卓调试器,客户端电脑 服务端安卓机(或者模拟器安卓机)
2.5.2 为什么要用adb
运行设备的 shell(命令行)
管理模拟器或设备的端口映射
计算机和设备之间上传/下载文件
可以对设备的应用进行卸载安装等
在 App 遇到 ANR/Crash 等 bug 时,可以通过 ADB 来抓取日志
2.5.3 adb基本操作
雷电模拟器安装目录下就有adb.exe
adb version :显示 adb 版本
adb help:帮助信息,查看adb所支持的所有命令
adb devices:查看当前连接的设备,已连接的设备会显示出来
adb root:获取Android管理员(root用户)的权限。
注意:一般测试机可使用root权限。
Android版本9以上,不支持商用机使用root权限,但可以修改底层一些配置
adb shell:登录设备 shell,该命令将登录设备的shell(内核),登录shell后,可以使用 cd,ls,rm 等Linux命令
adb install -d <文件路径\apk>:允许降级覆盖安装
adb install -g <文件路径\apk>:授权/获取权限,安装软件时把所有权限都打开
adb shell screencap -p /sdcard/11.png:屏幕截图
adb shell screencap -p /sdcard/22.png:屏幕截图
adb pull /sdcard/11.png <存放的路径>:将截图导出到本地
adb pull /sdcard/22.png <存放的路径>:将截图导出到本地
3.app扫描
AppInfoScanner
Mobile Security Framework (MobSF)(更强大linux上docker部署)
4.app反编译工具
ApkToolBox
AndroidKiller
ApkToolPlus
AndroidHelper
5.app逆向之脱壳
Xposed+FDex2
Xposed+反射大师
打包加固流程:代码编译/混淆--打包--签名--加固--重新签名
加固的原理可以简单理解为,加固程序首先对apk进行解压获取到原dex, 接着对原dex 进行加密,制作并生成壳dex(加载时用来解密原dex),并重新打包成apk,运行时利用壳dex对加密的dex进行解密并加载到内存中。
6803

被折叠的 条评论
为什么被折叠?



