[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对应的正确代码

参考网址

Android应用APP脱壳笔记的更多相关文章

  1. Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例

    引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...

  2. Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境

    引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...

  3. android模块化app开发笔记-2插件间布局文件共享

    android编程时布局文件,图片资源等都是放在同一个文件夹下,这样照成一个问题就是我们想重用UI布局文件和图片时就还需要其分离这些资料,相信大部分android程序员都遇到过这样的问题,其痛苦程度不 ...

  4. Android APP性能测试笔记(一)

    Android APP性能测试笔记(一) (1)工具使用   Android Studio  GT, root的真机 (2)记录apk大小(对比竞品)   使用Android Studio导入需要测试 ...

  5. Android APP开发笔记

    环境搭建 windows系统上需要以下软件: android SDK -- app开发工具包, 开发运行环境(包括SDK管理工具,和虚拟设备管理). JDK -- java 开发工具包, 负责app代 ...

  6. Android开发——Kotlin开发APP使用笔记

    之前一直使用java来开发Android项目,学了新的kotlin语言,前来试一试,并说一下kotlin对Android的一些功能增强 创建项目 我使用的是Android Studio3.0+,所以默 ...

  7. Android 高级UI设计笔记07:RecyclerView 的详解

    1. 使用RecyclerView       在 Android 应用程序中列表是一个非常重要的控件,适用场合非常多,如新闻列表.应用列表.消息列表等等,但是从Android 一出生到现在并没有非常 ...

  8. Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上)

    原文:[置顶] Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上) 我们在用手机的时候可能会发现,即使应用被放到后台再返回到前台数据依然保留(比如说我们正在玩游戏,突然电话 ...

  9. Android菜鸟的成长笔记(13)——异步任务(Async Task)

    原文:[置顶] Android菜鸟的成长笔记(13)——异步任务(Async Task) Android的UI线程主要负责处理用户的事件及图形显示,因此主线程UI不能阻塞,否则会弹出一个ANR(App ...

随机推荐

  1. CentOS5.5下直接安装MySQL5.6

    1.安装平台:CentOS5.5 2.由于从MySQL5.0升到MySQL5.6出现重大问题,为了不影响进度,暂时先直接安装MySQL5.6 2.1首先确认yum源,这里使用http://repo.m ...

  2. 1.8(java学习笔记)继承与方法的重写

    继承 在java中可以通过继承提高代码的复用率. 例如A继承了B,就可以是 例如,首先有一个类似Person,这个类中有有一些属性和方法,我们再新建一个Student类,其中有一部分属性和方法与Per ...

  3. Mybatis更新用户

    xml配置 <!--更新用户 --> <update id="updateUserById" parameterType="com.itheima.my ...

  4. IntelliJ IDEA控制台输出中文乱码问题解决

    如果还不行,那么再极端的设置,在IDEA启动的时候强制设置为UTF-8: 打开增加-Dfile.encoding=UTF-8,重启Intellij IDEA 再或者直接在项目运行的时候加入UTF-8的 ...

  5. Android Studio Emulator 提示 “/dev/kvm is not found” 解决办法

    重新安装HAXM即可解决 1.确定已经安装HAXM SDK Manager -> Extras -> Intel x86 Emulator Accelerator (HAXM instal ...

  6. Android实现二维码扫描登录网页

        之前写过一个二维码扫描demo,用的Zxing的框架,点击下载.兴许扫描二维码中出现一些问题,比方解决压缩图片.调整扫描窗体大小等等. 兴许单位要求做扫描登录实现,发现难点就是怎么知道你扫描的 ...

  7. Mac上安装使用Nginx

    1.brew search nginx 2.brew install nginx 启动nginx ,sudo nginx ;访问localhost:8080 发现已出现nginx的欢迎页面了. 备注: ...

  8. hibernate hql 语句中 in 的用法

    例子描述查询一些班级中的学生 /** * * @param city * @return */ public List<Student> studentList(final Integer ...

  9. vue - rimraf

    rimraf 包的作用:以包的形式包装rm -rf命令,用来删除文件和文件夹的,不管文件夹是否为空,都可删除 const rimraf = require('rimraf'); rimraf('./t ...

  10. Unity3D教程宝典之Web服务器篇:(第三讲)PHP的Hello World

    转载自风宇冲Unity3D教程学院 引言:PHP是比较简单的编程语言,即使没接触过的也可以现学现用.PHP教程文档PHP100视频教程                           Unity接 ...