基于Xposed框架的模块:Android EagleEye

2015-06-26 09:59:42

阅读:0次

一个基于Xposed框架的模块(可对Android 系统APIs和应用的方法进行hook操作)。相关联的被hook的APIs或应用的方法信息将被作为输出被记录。

使用Android EagleEye的一切风险由自己承担

特性

对Android 系统APIs和应用的方法进行hook操作

Hook需要的APIs和方法。

Hook通过DexClassLoader动态加载的方法。

采用方法对抗反仿真器(anti-emulator)

内容

EagleEye: Android      EagleEye的源代码。

EagleEyeTest: EagleEye的测试应用。

testcase_configs: 自定义需要被hook的Android系统APIs和应用的方法(用于EagleEyeTest)的配置。

Usage

确保你有root访问权并已安装了XposedInstaller

步骤如下:

安装 EagleEye.apk并且在 XposedInstaller里开启这个模块。

启动EagleEye应用来初始化环境。如果初始化失败,你可手动输入如下指令来完成环境的初始化$ adb shell su -c mount -o       rw,remount /system

$ adb push       EagleEye/assets/libfd2path.so /system/lib/

$ adb shell su -c chmod 777       /system/lib/libfd2path.so

重启Android设备。

将rw.eagleeye.targetuids属性设置到你要hook的应用的uids,范例如下:adb       shell su -c setprop rw.eagleeye.targetuids "10076|10078" (uids are       splitted by "|")

重启你要hook的应用(无论应用何时被加载,EagleEye将读取 rw.eagleeye.targetuids的属性),因此如果你想hook其它应用,那么你仅需要将此属性设置为恰当的中并重启应用)。

使用 adb      logcat -s EagleEye:I来查看log信息

默认EagleEye已预定义了一些Android系统APIs(为hook作准备),他们引用自com.mindmac.eagleeye.hookclass 包下的类。如果你要hook其它的系统APIs或应用的方法,那么你可以配置如下:

Android系统APIs可被system_apis.config(引用自Configure File      Format 的细节部分)自定义。请将此配置文件移动到安卓设备的/data/local/tmp/目录中。默认可自定义的API数默认限制为500,并且你可将rw.eagleeye.system_api_num属性设置为你要的值。

应用的方法可被app_apis.config(引用自Configure File Format 的细节部分)自定义。请将配置文件移动到Android设备的目录/data/data//中。你可以自定义的方法数默认限制为500,并且你可以将rw.eagleeye.app_api_num 属性设置为你要的值

重启你要hook的应用,当应用被加载时,EagleEye将重载配置文件。

反仿真器(Anti-Emulator)

一些Android应用将检查运行时环境以了解他们是否正运行在Android 仿真器上。EagleEye采用一些基于运行时hook的方法来对抗反仿真器技术。例如作者Tim Strazzere写的反仿真器项目,在部署了EagleEye后,输出结果如下所示:V/AntiEmulator( 2226): Checking for Taint tracking...

V/AntiEmulator( 2226): hasAppAnalysisPackage : false

V/AntiEmulator( 2226): hasTaintClass : false

V/AntiEmulator( 2226): hasTaintMemberVariables : false

V/AntiEmulator( 2226): Taint tracking was not detected.

V/AntiEmulator( 2226): Checking for Monkey user...

V/AntiEmulator( 2226): isUserAMonkey : false

V/AntiEmulator( 2226): Monkey user was not detected.

V/AntiEmulator( 2226): Checking for debuggers...

V/AntiEmulator( 2226): No debugger was detected.

V/AntiEmulator( 2226): Checking for QEmu env...

V/AntiEmulator( 2226): hasKnownDeviceId : false

V/AntiEmulator( 2226): hasKnownPhoneNumber : false

V/AntiEmulator( 2226): isOperatorNameAndroid : false

V/AntiEmulator( 2226): hasKnownImsi : false

V/AntiEmulator( 2226): hasEmulatorBuild:false

V/AntiEmulator( 2226): hasPipes : false

V/AntiEmulator( 2226): hasQEmuDriver : true

V/AntiEmulator( 2226): hasQEmuFiles : false

V/AntiEmulator( 2226): hasEmulatorAdb :true

V/AntiEmulator( 2226): hitsQemuBreakpoint : true

V/AntiEmulator( 2226): QEmu environment detected.

当前仍有许多EagleEye没有用到的反仿真器方法。

Configure File Format

system_apis.confi和 app_apis.config都以同样的格式存在。描述如下:

通过行的形式分割你要hook的APIs或方法

通过rw.eagleeye.system_api_num 或rw.eagleeye.app_api_num属性限制EagleEye将要读取的APIs或方法的数量。默认值为500。

每个API或方法在smali格式的文件中。例如,如果你要hookIntent.putExtra(),那么内容如下:Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;

参数和返回类型可被留空来hook所有APIs或方法(带有一样的方法名)。例如:hook所有intent类下的 putExtramethods你可配置如下:Landroid/content/Intent;->putExtra

确保应用可读取 system_apis.config 和 app_apis.config 的内容。

可以使用chmod命令来修改。

这里的更多细节引用自testcase_configs下的 配置文件。

.Log格式

EagleEye将记录被hook的 APIs的参数值或用JSON的格式来描绘。被hook应用的uid,hook 类型(系统 api或app方法),且如果为自定义的api,那么将被记录。当参数的类型。返回类型和值被记录(自定义的APIs或方法 )         时,预定义的Android系统APIs,参数名也将被记录。

典型的记录如下所示:{"Uid":"10047", "HookType":"system_api", "Customized":"false", "InvokeApi":{"libcore.io.IoBridge->open":{"path":"/data/data/com.mindmac.eagleeyetest/app_apis.config", "flags":"0"}}}

{"Uid":"10047", "HookType":"system_api", "Customized":"true", "InvokeApi":{"Landroid/app/ContextImpl;->getPackageName":{"parameters":{}, "return":{"java.lang.String":"com.mindmac.eagleeyetest"}}}}

{"Uid":"10047", "HookType":"app_api", "Customized":"true", "InvokeApi":{"Lcom/mindmac/eagleeyetest/MainActivity;->add":{"parameters":{"int":"5", "int":"7"}, "return":{"int":"12"}}}}

如果它已经执行了1024字节的内容,所以Android的Logcat将会把log的内容缩短。EagleEye将会把文件(用于读写操作)的内容分割为多个部分。

你可以重建基于idvalue的内容。目标文件路径和文件内容都是用十六进制字节描绘的。文件的操作记录如下:{"Uid":"10047", "HookType":"system_api", "FdAccess": {"path": "2f6d6e742f7364636172642f44796e616d69632e61706b", "id": "1094768956" } }

{"Uid":"10047", "HookType":"system_api", "Customized":"false","FileRW":{ "operation": "write", "data": "504b0304140008080800f4b0d6463100c38daf020000fc06000013000400416e64726f69644d616e69666573742e786d6cfeca00008d543d6f1341149cbdb3938bf381f369c736120515c2074401457449400a52a0004145636207ac248e655f42a021252525053f00217e00250505bf809a9a3a652498f76e8f5b5f1cc19dc6bb3b3b3befeddb3dfb08703a0218d4f0dd072e227dde39fd0ab14c3c240eeddc07e213f185f846fc2042032c11778823e233f195f8459c10a744c5a38ed8209e12af89f7c447e22771428c334a0b3df4d1c63e3a58e76f93ccd9990768604f6726d9b6c93ca272074f0654401111953d3c271f9da319a76297ef3e5e628dfd2d6a0ed0e54c8e9a2dabca53d1c033aeddd5518417ecc739e4a848f21965afc3383dae6bb305ae5019f1ede236aef1edd3335edb603fcce8438db8475d832b76d8f6a8edeb78d0171aad6b336ee81e813219c934c236953d3aad71376d72cdccced3eafeff9ab4ee81e6df21bfadf945e4666dee219923558a6f8be3265ed91a4945011f37c85e67cfc312fb728e37950939aa13b7c82febbba2d10e1843e2d40939c5f8dcba1a413c25fbe44403ad898c0f8988b1c53fc47df272575687cc0a1f3182fcd6b927d97da47b0746fefac5fe953367e6ae0e07d4127515f75839c92bceb3c5b3923a4be44bfff0caae08b149bfc7f45bc706eeeab7796c025c655bf58ca91113449738263c1863087eedc697d61479de5277e0379f31b60519937febf0f25c607f8e6fdedeb6826d652ee0c7652c27edb4ee0ffeb49d9fd0af2fe68a969b643b1373c579cb4de9bd8975b3368f4dbdd9691e73360fcfc9c373f298b29cef70e2efdbbd8e65bc2446a43728e5e76d8c9c136334f563e146de14f42ea41cff0794cb0f709e72b9949b9136d957d189b930645fc3fcd947c9d6a864f3bf6ceb967895ad57f2886645b954b36835c68917d8ff79f1ae3835cbae4bfc161cbe7a8e5fcdfad51cbfecba842f65f690f0e54c9d127e317366095fcddc5b93e1937bfe07504b07083100c38daf020000fc060000504b03040a0000080000568a", "id": "1094768956"}}

{"Uid":"10047", "HookType":"system_api", "Customized":"false","FileRW":{ "operation": "write", "data": "d54662df48f24c1700004c170000240002007265732f6472617761626c652d686470692d76342f69635f6c61756e636865722e706e67000089504e470d0a1a0a0000000d494844520000004800000048080600000055edb347000017134944415478daed5b69905dc575fe4ef75dde326f66342369b401328b8d05212c31066313f00201dbb81c22657116d9a932492a4e2524ae2cae0a0f278e718c8dcb29db31210976e2251a6f0a0107a41805634258a25844022421242446d268f6b7dd7bbbfb9cfce8fb16c9d81ac733b64971abeebc59eebc77fbeb73beef3ba7fb022f1d2f1d2f1d2f1dff4f0f916ab027fdfd759bf75d3722025ad8f77e77f87476c34f6e3df4f6e1c51c835a3c7040ffb2ebf155bbf7effbebac9ebdefe66d6be3938124029a0f902255b5d3b80b0e8d4f7de1c96f8fff6a55aa6aa12760d1010280c7b78fcfec7ef2c8ae2cb5bf7266e5f48db73f7e51d01da4507bb0229bb4882860bd1ac57a2522caffde0f5c443ac089807635c6971f9bacddb2f3bfc7069efeafdab7aba80a116431c6102c1638441091ffac7df0ce4b3f562fa76fa82c897f2f6c15ef13a9eeef62f47b4583152f076a17103ebd92f1fafeb721a40c7fd710ac19cfc04f1cc32d3b4f07e6006093acd7bb005dcb66371e3e347dd1d8fee6a732173ebc38b1938f63b179a85aadaaf8ac7baf1f5e19de1ec56aeb9983a7fefe25eb2e3dcf22bd96e1de2230ab1d2c010286411313c8d002a001c4000a53cee9fb8ce37b9ab6fc8da4b9efac23e3935fddf1c8f88e47b7a46f7fd5cbaf9fad56abfca2050802baedce2b069a61fd96534eeffbf9cbcfb978d7507fe5150a6a10d0ca2121861382c0c2a1854934310d0786858513013b2d9c857576e5c7a6a666fb9f7874ec94677737de3962aebf7731c159d414ebe253a5f18d76d836c2208bf695fa43ba14509221510a408c214458420a1118161a87902003c3003010b6b0d6927169c59a992bc302c9d295f1b70787fa67c7be59850868b1f807791c2fa6ccab43983dbd1f239fa0a8f9b6580f840a054a3043050ca00fa722c410081104", "id": "1094768956"}}

android基于xposed框架,基于Xposed框架的模块:Android EagleEye相关推荐

  1. 【WebRTC】在Android上用NDK编译WebRtc音频增益模块(AGC),降噪(NS),java调用JNI实现功能

    目录 ·········前言 ·········前期工作 ·········编译工作 ·········编码工作(AGC-JAVA) ·········编码工作(AGC-JNI) ·········编 ...

  2. Xposed框架Xposed安装器|Xposed for Android 5.0/5.1/6.0|详细安装教程

    Xposed简介: Xposed Installer(xposed框架)是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同 ...

  3. android hook 第三方app_基于 VirtualApp 结合 whale hook框架实现hook第三方应用

    要点 1. whale hook framework 使用示例: 2. 参考项目:VirtualHook: 3. 按照 VirtualHook 修改 VirtualApp: 4. 编写 hook pl ...

  4. android 游玩南昌 模块,模块玩起来:Android 7.X可用的Xposed框架卡刷包放出

    感谢IT之家网友ZeroSimple的线索投递 7月20日消息 自适用于Android 7.X的Xposed框架现身Github以来,ROM开发者以及喜欢折腾的安卓玩家纷纷尝试编译和使用,毕竟Andr ...

  5. android mvvm框架搭建_轻松搭建基于JetPack组件的MVVM框架

    原文链接:轻松搭建基于JetPack组件的MVVM框架 - 掘金 Brick github gitee 介绍 辅助android开发者搭建基于JetPack组件构建MVVM框架的注解处理框架.通过注解 ...

  6. Android Hawk数据库的源码解析,Github开源项目,基于SharedPreferences的的存储框架

    今天看了朋友一个项目用到了Hawk,然后写了这边文章 一.了解一下概念 Android Hawk数据库github开源项目 Hawk是一个非常便捷的数据库.操作数据库只需一行代码,能存任何数据类型. ...

  7. xposed android 5,还不能愉快玩耍 Android 5.1怎么安装Xposed框架

    Android 5.1发布到现在少说也有将近一月有余.Moto还有亲儿子系列也已经早就吃上了这个新的萝莉炮.当然爱搞机的同学自然已经发现,Xposed框架5.0版本已经不能支持最新的Android 5 ...

  8. [android]了解和使用神器Xposed框架

    了解和使用Android神器Xposed框架-原全文 以下摘录: Xposed框架有什么好玩的 好玩有用的Xposed模块有很多,不过鉴于小编非常纯洁而且正直,像抢红包模块.刷屏模块这种不正义的模块, ...

  9. Xposed及类Xposed框架收集

    常见xposed框架 xposed--原生 Cydia for Androidmagisk--挂载magisk.img vitrualXposed--双开技术 EXposed --太极 VAEXpos ...

  10. 基于.NET平台常用的框架整理(转)

    分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度. Redis:是一个高性能的K ...

最新文章

  1. Python零基础入门(3)——常用操作符介绍
  2. 在caffe上跑自己的数据
  3. TF之CNN:基于CIFAR-10数据集训练、检测CNN(2+2)模型(TensorBoard可视化)
  4. 文件与流 -- fopen/fclose
  5. 在linux系统下挂接(mount)光盘镜像文件、移动硬盘、U盘以及Windows网络共享和UNIX...
  6. Chrome启动后打开第一个网页很慢的解决方案
  7. 欢迎来到嬴政有条北冥的鱼的博客
  8. 博文视点读书节第五日丨IT大咖私房书单继续放送,超级会员返场来袭!
  9. c语言通讯录程序设计个人感言,人生经验 C语言程序设计的感悟
  10. 软件基本功:不要给代码加系数
  11. 2021-2027全球与中国Al2O3氧化铝陶瓷基板白板市场现状及未来发展趋势
  12. linux 拷贝目录报错,Linux复制文件时出现omitting directory错误怎么办
  13. pdf文件预览 浏览器窗口名修改
  14. 高新技术企业认定领域细分有几项
  15. 很‮欢喜‬‎傅首尔的一段话 “当30岁还在为10块打‮费车‬‎‮结纠‬‎,‮天雨
  16. 华为云大数据BI 为中小型企业智慧运营保驾护航
  17. 2转自 饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.25.97]
  18. Scanner(System.in)中读取字符串容易犯的错误!
  19. 联想MIIX520笔记本电脑屏幕亮度无法调节问题
  20. 浅谈VVC(H.266)的变换模块

热门文章

  1. 机械制图类毕业论文文献有哪些?
  2. 发包Byte速率和发包个数速率和带宽的关系
  3. nRF Sniffer抓包环境搭建
  4. ArcGIS网络分析
  5. TRIZ创新方法#学习笔记02# |功能分析、技术矛盾和物理矛盾
  6. 计算机考试中的移动,WPSOffice2002中表格的移动方法
  7. SWOT分析思维的一些基本思考与见解
  8. LINUX系统各发行版镜像源下载
  9. 使用讯飞tts实现安卓语音中文合成播报
  10. Topaz Adjust AI(HDR渲染滤镜) v1.0.0直装破解版