返回信息流首先通过分析manifest.xml文件,可以知道程序静态注册的broadcast Receiver
广播的注册也可以通过代码动态注册,registerReceiver(BroadcastReceiver receiver, IntentFilter fileter)
该方法可以动态注册广播。
但是,由于程序可以混淆,这样正常的分析源程序去查找动态注册的广播,便比较困难。
请问大家有没有什么办法,可以获取应用程序动态注册的广播呢?
例如进行内核监控什么的方法。
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #30881同步于 2016/6/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖
如何知道应用程序是否注册了broadcast receiver呢?
nijian81
2016/6/15镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
我感觉还是得从反编译源代码上看。
即便onReceive能有内核回调,但那段代码没运行也不是照样不知道嘛。
然后虽然可以用proguard之类的混淆,但像sendBroadcast, registerReceiver这样的android系统的方法是不会被混淆的,所以只要源码能够反编译过,直搜就行。
除非应用使用一些非正常的方法去发广播,一般也没人这么干吧。
【 在 ytinrete 的大作中提到: 】
: 我感觉还是得从反编译源代码上看。
: 即便onReceive能有内核回调,但那段代码没运行也不是照样不知道嘛。
: 然后虽然可以用proguard之类的混淆,但像sendBroadcast, registerReceiver这样的android系统的方法是不会被混淆的,所以只要源码能够反编译过,直搜就行。
: ...................
那加入应用程序确实回调了onreceive方法,那如何去内核层监控这个动作,你知道怎么做呗?
如果是Hook的话,该hook什么函数呢?
【 在 nijian81 的大作中提到: 】
: 那加入应用程序确实回调了onreceive方法,那如何去内核层监控这个动作,你知道怎么做呗?
: 如果是Hook的话,该hook什么函数呢?
不明白lz到底想做什么。。。
想知道应用是否注册了广播我觉得能从反编译源码上就能看出来。
但是要在运行时知道某个OnReceive方法回调,这个我觉得就比较麻烦。
我记得大概是这样 sendBroadcast->广播->ActivityManagerService->ReceiverDispatcher->应用消息队列->注册的Receiver->onReceive 这条路上你要hook哪个得看你具体需求了。
如果你自己编译rom,去改frameworks的ActivityManagerService和LoadedApk(ReceiverDispatcher在里面)也许可以吧?
【 在 ytinrete 的大作中提到: 】
:
: 不明白lz到底想做什么。。。
: 想知道应用是否注册了广播我觉得能从反编译源码上就能看出来。
: ...................
十分感谢
我想通过内核层去监控onreceive方法,这样就能牵扯出linux、hook、netlink通信什么的一堆概念,给论文凑凑字数,显得字多,静态分析方面我已经通过apk-tool去分析manifest文件了,从中可以得到静态分析的broadcast receiver内容,所以动态分析方面我想通过运行时去监控内核获取onreceive()方法的调用情况。