Android应用APP脱壳笔记

时间:2024-08-09 16:06:56

[TOC]

天下游 模拟定位技术点简析

通过代码分析初步猜测模拟定位用到的几处技术点:

  1. 获取了Root权限
  2. 通过反射获取 android.os.ServiceManager 对应的函数 getService addService sCache
  3. com.txyapp.ipc.ITxySystemServerService
  4. 自定义了TxyWiFi TxyCell TxyLocation TxyMoveStatus 类,猜测支持模拟基站,WiFi,GPS定位,位置移动状态 .

测试应用脱壳信息

测试时间:2017年8月18日
测试应用1:天下游 v13.1.2(2017年04月01号 16:50 编译的版本,当下官网最新版本)
测试应用2:DayDao v4.4.2(2017年08月14号 15:54 编译的版本,360应用市场下载的是360加固)

腾讯市场下载的是腾讯加固,这里测试的是360的加固能正常导出

测试结果:成功导出被加固的DEX文件能看到对应的代码.

360加固脱壳步骤

  1. 下载 [原创]分享一个360加固脱壳模拟器(2017/07/17更新)-『Android安全』-看雪安全论坛 里分享的虚拟机 armeabi-v7a.zip

  2. 将其解压放入 android-sdk\system-images\android-4.4.4\default\armeabi-v7a 里.

  3. 打开Android模拟器管理工具 - 创建新模拟器 - 选择 对应的版本 API19(armeabi-v7a)

  4. 运行创建好的模拟器 - 设置 - 开发者选项 - 运行模式 - 修改为ART模式

    自动重启时,会卡死,直接杀掉进程重新启动模拟器.
    重新开机时需要好长的时间十几二十分钟才进入桌面.

  5. 装上加固过的APP - 运行

    08-18 03:07:02.090 1934-1934/? I/dex2oat: dex2oat: /data/data/com.xx/.jiagu/classes.oat
    08-18 03:07:05.010 1934-1934/? I/dex2oat: harvey:dex file name-->/data/data/com.xx/.jiagu/classes.dex
    08-18 03:07:05.130 1934-1934/? I/dex2oat: harvey:write tartget dex file successfull->>/data/data/com.xx/.jiagu/classes.dex_7541924.dex
    08-18 03:07:05.130 1934-1934/? I/dex2oat: harvey:dex file name-->/data/data/com.xx/.jiagu/classes2.dex
    08-18 03:07:05.140 1934-1934/? I/dex2oat: harvey:write tartget dex file successfull->>/data/data/com.xx/.jiagu/classes2.dex_262720.dex
  6. 刷新 data/data/{App.PackageName}/.jiagu 目录,查看是否有还原成功后的 .dex 文件

    通过 ADB 命令 - 查看目录文件
    adb shell ls -l /data/data/com.txy.anywhere/.jiagu

      -rw------- u0_a53   u0_a53    4672748 2017-08-18 03:06 classes.dex
    -rwx------ u0_a53 u0_a53 7541924 2017-08-18 03:07 classes.dex_7541924.dex
    -rw-r--r-- u0_a53 u0_a53 25514420 2017-08-18 03:08 classes.oat
    -rw------- u0_a53 u0_a53 0 2017-08-18 03:06 classes2.dex
    -rwx------ u0_a53 u0_a53 262720 2017-08-18 03:07 classes2.dex_262720.dex
    -rwxr-xr-x u0_a53 u0_a53 323264 2017-08-18 03:06 libjiagu.so

    通过 ADB 命令 - 将整个目录导出到 PC
    adb pull /data/data/com.txy.anywhere/.jiagu

  7. 使用 GDA 或 JEB 测试打开导出的 .dex 文件

    classes.dex GDA提示“文件打开失败,请确认文件是否正常或者被占用”
    classes.dex_7541924.dex 能正常解析出来. 是APP对应的正确代码

参考网址