• 编译原生安卓aosp源码,实现硬改以及定位


    系列文章目录

    第一章 安卓aosp源码编译环境搭建
    第二章 手机硬件参数介绍和校验算法
    第三章 修改安卓aosp代码更改硬件参数
    第四章 编译定制rom并刷机实现硬改(一)
    第五章 编译定制rom并刷机实现硬改(二)
    第六章 不root不magisk不xposed lsposed frida原生修改定位
    第七章 安卓手机环境检测软件分享
    第八章 硬改之设备画像
    第九章 修改Art虚拟机对指定app的指定函数进行拦截(一)
    第十章 修改Art虚拟机对指定app的指定函数进行拦截(二)



    前言

    起因是因为一次偶然的机会,需要实现某应用异地打卡,最开始使用的方案是root、框架但瞬间被某应用查到。
    迫于无奈,只能从操作系统源码入手,反正hook也不过是hook那几个系统里的类,直接改系统的类和函数应该一样的效果。既然到FrameWork层了,顺手研究下其他参数的修改。


    一般情况下:我们在移动电话中使用某些基本的技术对不同的基本信息进行更改。包括型号和周边条件的参数。

        作为示例,主要改变的参数包括:
        Android_Id
        IMEI
        移动电话序列号
        移动电话号码
        WIFI-MAC
        WIFI-Name
        Android版本
        ROM固件
        移动电话号码
        移动电话型号
        移动电话品牌
        CPU型号
        移动电话制造商
        GPS定位
        通话记录仿真
        手机短信仿真
        Wi-Fi列表
        等等各种类型的 Android移动电话系统信息的修改能力。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    Android从10起,因为 APP的权限限制,无法获得某款手机的独有代码,不过大厂里的资深开发人员,却可以绕过这些代码,获得该手机的独有代码,各家都有各自的本事。

    再到安卓13, 虽然app已经不能用常规方式获取到imei, meid, mac等设备的唯一标识符, 虽然如此, 但这些信息能改还是尽量改一下, 百利无一害
    例如很多设备信息查看app已经无法获取设备硬件序列号, 但是通过

    adb shell getprop ro.serialno
    adb shell getprop ro.boot.serialno
    adb shell getprop ro.vendor.serialno
    adb shell getprop persist.radio.serialno
    adb shell getprop ro.boot.vbmeta.digest
    
    • 1
    • 2
    • 3
    • 4
    • 5

    仍然可以, 或者通过libc.so导出函数读取linux内核文件也可以获取

    改机的各种方案

    1.HOOK框架

    在201x时, Xposed版本的改机是最受欢迎的,即使在202x时,这个著名的改机也是很靠谱的,改机的方式就是在app_process中对 java层中的功能进行替换和更改。改变机器的变化点,不外乎是在系统架构的层次上的替换。

    博弈
    1.通过获取 xposed残留物、关键字来探测、编码叠层、帧的存在性等;反作用力,hook残留物;xposed变种,其中,所述 xposed变种将, 以自制xposed框架替代市面通用的框架;
    2.将诸如 getpropro.se rial no、 command等的基础参数与框架层的参数进行比较;反制,因为下面的代码超过了 xposed的框架的能力。

    2.ROOT

    在安卓8以前的手机root是相对来说方法比较多的,但随着手机厂商加强的安全防护,root越来越难,只有小米手机的开发版系统能开启root。

    在 magisk面具出世之后,root方法得到了很大的整合。APP制造商对根的检查、 su文档特性、根过程特性、proc-map特性等。应对措施: magisk已经发展出隐藏root、应用程序包名称的随机化等能力(相对薄弱,但在一些方面仍然可以探测到)。

    不管你怎么完美,如果你的手机 root,那就别想了, root的环境是一切软件安全测试的首要重点,一定要免 root。

    而且, Xposed的路径和数据包名称也是被侦测到的关键点之一,修改 Xposed的源代码并没有什么作用,各大厂商都有上千种方法可以判断出你使用的是 Xposed架构。

    3.ROM定制

    主要是将安卓源代码 AOSP编译,进行系统的定制,以实现改字符串,改惟一信息。

    优点:修改的自由度很高,可以通过修改机型, IMEI, MAC,序列号,甚至驱动程序等来实现对 CPU的信息覆盖等功能,不需要 root,xp框架等操作,是当前市面商业版最常用的修改方法;

    缺点:因为是特定型号,所以不能很好地匹配,而且若要匹配多个手机型号,那么就必须为每个型号准备一组 ROM。

    4.其他

    1.不使用 root的 VirtualXposed移动电话,使用化身。主要缺点:
    第一类: 比root设备卡
    第二步:仍然是使用xposed
    第三:不太适应,频繁闪退死机。

    2.硬改:使用 UA或 HW的硬修改工具来修改移动电话的序列。

    3.软改:采用虚拟现实技术、沙盒技术等,不需要 root架构,可以对应用程序进行简单的注入。

  • 相关阅读:
    Spring循环依赖
    [运维|数据库] 在 PostgreSQL 中使用正则表达式进行模式匹配
    [CTF] python的pip源更改及常用python库
    WordPress 后台密码忘记后,重置找回密码的 N 种方法
    2.2 在 Linux 上安装 MySQL Shell
    MyBatis insert标签
    常见面试题-HashMap源码
    A、B、C三类地址中私有地址的范围?
    Helm简易安装使用
    GB/T28181-2016 SDP定义和音视频传输模式解读
  • 原文地址:https://blog.csdn.net/zad522/article/details/132913560