Android EagleEye笔记
前言:
Android EagleEye官方介绍在 https://github.com/MindMac/AndroidEagleEye/blob/master/README-zh.md
"Android EagleEye是一个基于Xposed和adbi的应用,可以实现对Android Java和Native方法的Hook,最终会将Hook的方法相关信息以Log的形式输出,包括应用的uid、方法名称、参数信息、返回值等。"
真的像鹰眼检测应用调用了哪些api,作者很厉害!
作为笔记来说,是官方readme的补充,也是自己的备忘。
笔记1,EagleEye源码能否修改再重新打包?
能,修改代码后直接安装就可以了。这里我遇到的坑是运行后死活没用,基于现在浮躁的
人心,网上一通乱搜,看上面readme没啥发现,作者没讲打包部署。还是一句话,人别浮躁,脑子要清醒,
坐下来看人家用了啥。 Xposed框架,重点是这个,所以理所当然去查看Xposed而不是网上一通搜这个EagleEye
怎么不起作用了,怎么这样那样都不行,都3天了急,在线等。。。。哥们,没人理你的,等到头发白也没用!
Xposed部署wiki
人家官方好好躺着答案呢,不谢!
xposed 相关下载:
http://repo.xposed.info/module/de.robv.android.xposed.installer
pid uid 获取 http://blog.csdn.net/jiaoli_82/article/details/49802613
笔记2:
查看Eagleye调用栈:
FileHook.java中调用如下代码:
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); for (StackTraceElement stackTraceElement :stackTraceElements){ Log.e("evab","className = "+stackTraceElement.getClassName()+ " | method = "+stackTraceElement.getMethodName()); }
打印结果如下:
12-17 11:20:54.295 1262-1335/com.happyelements.AndroidAnimal E/evan: FileHook filePath = /system/bin/su
12-17 11:20:54.322 1262-1335/com.happyelements.AndroidAnimal E/evab: className = dalvik.system.VMStack | method = getThreadStackTrace
12-17 11:20:54.323 1262-1335/com.happyelements.AndroidAnimal E/evab: className = java.lang.Thread | method = getStackTrace
12-17 11:20:54.323 1262-1335/com.happyelements.AndroidAnimal E/evab: className = com.mindmac.eagleeye.hookclass.FileHook | method = antiAntiEmu
12-17 11:20:54.323 1262-1335/com.happyelements.AndroidAnimal E/evab: className = com.mindmac.eagleeye.hookclass.FileHook | method = logSpecial
12-17 11:20:54.323 1262-1335/com.happyelements.AndroidAnimal E/evab: className = com.mindmac.eagleeye.hookclass.FileHook | method = after
12-17 11:20:54.323 1262-1335/com.happyelements.AndroidAnimal E/evab: className = com.mindmac.eagleeye.service.Launcher$3 | method = afterHookedMethod
12-17 11:20:54.324 1262-1335/com.happyelements.AndroidAnimal E/evab: className = de.robv.android.xposed.XposedBridge | method = handleHookedMethod
12-17 11:20:54.324 1262-1335/com.happyelements.AndroidAnimal E/evab: className = java.io.File | method = exists
12-17 11:20:54.324 1262-1335/com.happyelements.AndroidAnimal E/evab: className = java.lang.reflect.Method | method = invoke
12-17 11:20:54.324 1262-1335/com.happyelements.AndroidAnimal E/evab: className = java.lang.reflect.Method | method = invoke
12-17 11:20:54.336 1262-1335/com.happyelements.AndroidAnimal E/evab: className = org.keplerproject.luajava.LuaJavaAPI | method = invokeMethod
12-17 11:20:54.340 1262-1335/com.happyelements.AndroidAnimal E/evab: className = org.keplerproject.luajava.LuaJavaAPI | method = objectIndex
12-17 11:20:54.345 1262-1335/com.happyelements.AndroidAnimal E/evab: className = org.cocos2dx.lib.Cocos2dxRenderer | method = nativeInit
12-17 11:20:54.345 1262-1335/com.happyelements.AndroidAnimal E/evab: className = org.cocos2dx.lib.Cocos2dxRenderer | method = onSurfaceCreated
12-17 11:20:54.346 1262-1335/com.happyelements.AndroidAnimal E/evab: className = android.opengl.GLSurfaceView$GLThread | method = guardedRun
12-17 11:20:54.346 1262-1335/com.happyelements.AndroidAnimal E/evab: className = android.opengl.GLSurfaceView$GLThread | method = run
后记:
目的1本笔记是为防止忘记,所以做个记录,当然更多是一种净化大家的浮躁,也许是我自己浮躁想让自己平静而已。
目的2是说 深入 Xposed或者 Eagleye 还有待时间继续学习,加油!
Android EagleEye笔记相关推荐
- Android进阶笔记:Messenger源码详解
Messenger可以理解为一个是用于发送消息的一个类用法也很多,这里主要分析一下再跨进程的情况下Messenger的实现流程与源码分析.相信结合前面两篇关于aidl解析文章能够更好的对aidl有一个 ...
- Android学习笔记21:ImageView获取网络图片
Android平台有3种网络接口可以使用,它们分别是:java.net.*(标准java接口).org.apache(Apache接口)和android.net.*(Android网络接口).本文将使 ...
- Android进阶笔记:AIDL内部实现详解 (二)
接着上一篇分析的aidl的流程解析.知道了aidl主要就是利用Ibinder来实现跨进程通信的.既然是通过对Binder各种方法的封装,那也可以不使用aidl自己通过Binder来实现跨进程通讯.那么 ...
- Android学习笔记(七):多个Activity和Intent
根据www.mars-droid.com:Andriod开发视频教学,先跳过书本<Beginning Android 2>的几个章,我是这两个资源一起看,需要进行一下同步.先初步了解一下应 ...
- Android学习笔记26:图片切换控件ImageSwitcher的使用
在Windows操作系统中,要查看多张图片,可以通过使用"Windows照片查看器"在"上一张"和"下一张"之间切换,进行多张图片的浏览. ...
- Android学习笔记36:使用SQLite方式存储数据
在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...
- Pro Android学习笔记(二九):用户界面和控制(17):include和merge
xml控件代码重用:include 如果我们定义一个控件,需要在不同的layout中重复使用,或者在同一个layout中重复使用,可以采用include的方式.例如定义my_button.xml如下 ...
- Android学习笔记:TabHost 和 FragmentTabHost
2019独角兽企业重金招聘Python工程师标准>>> Android学习笔记:TabHost 和 FragmentTabHostTabHost命名空间:android.widget ...
- 【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge
目录(?)[-] xml控件代码重用include xml控件代码重用merge 横屏和竖屏landsacpe portrait xml控件代码重用:include 如果我们定义一个控件,需要在不同的 ...
- Android学习笔记:TabHost 和 FragmentTabHost(转)
Android学习笔记:TabHost 和 FragmentTabHost(转) 转自:http://www.cnblogs.com/asion/p/3339313.html 作者:Asion Tan ...
最新文章
- python文本处理实例_Python 文件处理的简单示例
- WinCE Heartbeat Message的实现
- macbook所有型号大全_提高MacBook电池寿命的15个技巧
- Arduino与NodeMCU——联网
- django 后台日期_Django中的日期和时间格式 DateTimeField
- 米线店结账程序 装饰着模式_实验报告2_装饰者模式
- Spring Boot笔记-jQuery使用load进行异步调用
- bzoj3110树套树
- python将object转换为float_如何在python中将datatype:object转换为float64?
- [再学Python] - 1 - 数据类型
- 开放 Rake 打包项目
- ios音乐播放器使用综述
- centos下nginx bind() to 0.0.0.0:8090 failed
- DCMTK读取dcm文件信息环境搭建及经验总结
- 希捷ST31000528AS Disk Boot Failure, Insert System Disk and Press Enter和飞利浦的193ei显示器亮的问题
- VS2013 community 官方版下载
- 谷歌浏览器代理服务器出现问题怎么办?(最快的解决办法)
- 内存映射图( 网络IO和磁盘IO详解)
- 蚌埠住了,让我虎躯一震的代码!
- stm32f407探索者开发板资料
热门文章
- Windows 罕见技巧全集3
- 【jdbc】 jndi与“Java:comp/env/“语法
- java 多线程高级,java 多线程高级(传统多线程)
- Elastic 7.12 版重磅发布:读时模式、冻结层技术预览版和自动扩展功能正式发布
- Zabbix 5.0 配置短信报警
- linux发送短信的脚本,shell监控系统资源并通过短信报警的脚本
- 解决无法启动“start web server”:
- gprs信息上传服务器,车载GPS GPRS数据上传 源码带注释
- Spring Security OAuth2实现简单的密钥轮换及配置资源服务器JWK缓存
- 【云主机迁移原理】华为云主机迁移服务SMS的原理分析