Android USB Gadget 项目教程

Android USB Gadget 项目教程

android-usb-gadgetConvert your Android phone to any USB device you like! USB Gadget Tool allows you to create and activate USB device roles, like a mouse or a keyboard. 🛠🛡📱项目地址:https://gitcode.com/gh_mirrors/an/android-usb-gadget

1. 项目的目录结构及介绍

Android USB Gadget 项目的目录结构如下:

android-usb-gadget/
├── app/
│   ├── src/
│   └── build.gradle
├── fastlane/
│   └── metadata/
│       └── android/
├── gradle/
│   └── wrapper/
├── .gitignore
├── LICENSE
├── README.md
├── build.gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
└── settings.gradle

目录结构介绍

  • app/: 包含应用程序的主要源代码和构建配置。
    • src/: 应用程序的源代码。
    • build.gradle: 应用程序的构建脚本。
  • fastlane/: 包含应用程序的元数据,用于自动化发布。
    • metadata/android/: 特定于 Android 的元数据。
  • gradle/: 包含 Gradle 包装器的文件。
    • wrapper/: Gradle 包装器的具体文件。
  • .gitignore: Git 忽略文件。
  • LICENSE: 项目许可证。
  • README.md: 项目说明文档。
  • build.gradle: 根项目的构建脚本。
  • gradle.properties: Gradle 属性文件。
  • gradlew: Gradle 包装器脚本(Unix)。
  • gradlew.bat: Gradle 包装器脚本(Windows)。
  • settings.gradle: 项目设置脚本。

2. 项目的启动文件介绍

项目的启动文件主要位于 app/src/main/java/ 目录下。具体文件包括:

  • MainActivity.java: 应用程序的主活动,负责初始化和启动应用程序。
  • UsbGadgetManager.java: 管理 USB Gadget 的类,负责配置和激活 USB 设备角色。

启动文件介绍

  • MainActivity.java:

    • 负责应用程序的初始界面显示和用户交互。
    • 调用 UsbGadgetManager 类来管理 USB Gadget。
  • UsbGadgetManager.java:

    • 提供方法来配置和激活不同的 USB 设备角色。
    • 使用 ConfigFS 来创建和管理 USB 复合设备。

3. 项目的配置文件介绍

项目的配置文件主要位于 app/src/main/res/ 目录下,以及根目录下的 build.gradlegradle.properties 文件。

配置文件介绍

  • build.gradle:

    • 根目录下的 build.gradle 文件包含整个项目的构建配置。
    • app/build.gradle 文件包含应用程序的构建配置,包括依赖项、插件和构建类型。
  • gradle.properties:

    • 包含 Gradle 构建系统的属性,如 JVM 参数和项目特定的属性。
  • res/:

    • 包含应用程序的资源文件,如布局、字符串、图标等。
    • res/values/strings.xml: 包含应用程序的字符串资源。
    • res/layout/activity_main.xml: 包含主活动的布局文件。

通过这些配置文件,可以定制应用程序的行为和外观,以及管理项目的构建过程。

android-usb-gadgetConvert your Android phone to any USB device you like! USB Gadget Tool allows you to create and activate USB device roles, like a mouse or a keyboard. 🛠🛡📱项目地址:https://gitcode.com/gh_mirrors/an/android-usb-gadget

个人使用过的一些反编译工具 1、反编译:【jdax】: a、直接拖拽apk文件/dex文件/资源文件等 进入即可自动反编译,可搜索里面常量等进行定位。
 b、如没加壳,可直接查看 c、如有加壳,可以看到是用什么平台加的壳 2、脱壳: a、搭配【frida】+【FRIDA-DEXDump】(https://github.com/hluwa/FRIDA-DEXDump)可在自动脱壳(电脑端) b、搭配【xposed】+【Fdex2】,可自动脱壳(手机端) c、搭配【xposed】+【DumpDex】,可自动脱壳(手机端) 防范方式: a、检测是否有运行frida,有则关闭应用 b、检测是否有运行Fdex2 / DumpDex,有则关闭应用 c、检测是否有运行xposed,有则拒绝请求 3、hook: a、【frida】,通过反编译或其他途径获取目标类的路径、方法名,可以直接打印方法参数/结果,且可修改返回结果 b、【xposed】+【inspeckage】:可在pc端查看app各种信息&hook打印方法参数/结果 防范方式: a、检测是否有运行frida,有则关闭应用 b、检测是否有运行xposed / inspeckage, 有则拒绝请求 3、代理: a、【Postern】使用这个可绕过app屏蔽的系统代理 防范方式: a、检测是否有运行Postern,有则拒绝请求 b、检测是否使用系统代理,有则拒绝请求 4、证书: a、单向证书:使用【xposed】+【JustTrustMe】绕过app的单向证书校验 b、双向证书:反编译后找出证书&找出证书密码 防范方式: a、检测是否有运行xposed / JustTrustMe, 有则拒绝请求 b、在so层保存密钥+so加密等,增加破解难度 5、so文件破解: 需要用到IDA这个工具,还需要继续学习。。。 6、其他常规防范: 代码混淆、资源混淆、加固、字符串加密、密钥存so、xposed检测、常用逆向软件检测、签名验证、防hook等。。。 上面只是简述了几种常用逆向方式&防范方式,还有更多技能待了解&学习。 相关学习链接:
https://book.crifan.com/books/android_app_security_crack/website/ https://www.jianshu.com/p/c37b1bdb4757 https://www.jianshu.com/p/ee0062468251 https://www.jianshu.com/p/bab4f4714d98
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏秦任

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值