iphone4 双击Home键 截获

测试环境: iphone4 ios4.3.2

之前对于SpringBoard这块的Hook一直不是很熟悉,双击Home键所产生的事件一直也无法跟踪到,所以控制不了。

Hook SpringBoard之后,确实可以做很多事情,但是截获双击Home键盘的事件也不在话下。

关于头文件等的导入, 以及Hook环境的搭建这里不在描述,只描述最基本的代码实现。

下面我们将去除双击Home键调出多任务栏的功能,将其更改为双击Home键Restart SpringBoard的功能,代码如下:

通过查看SpringBoard class-dump出来的头文件,可以发现在SpringBoard.h中有

?
handleMenuDoubleTap函数,其很可疑,猜测其与双击Home键有关。

1. 首先在初始化函数中注册Hook:

?
MSHookMessageEx(objc_getClass( "SpringBoard" ), @selector(handleMenuDoubleTap), (IMP)replaced_SpringBoard_handleMenuDoubleTap, (IMP *)&original_SpringBoard_handleMenuDoubleTap);

2. 在MessageHook.h(函数定义等)中包含下列代码:

?
extern  "C"
{
      extern  IMP original_SpringBoard_handleMenuDoubleTap;
      extern  void  replaced_SpringBoard_handleMenuDoubleTap(SpringBoard *self, SEL cmd);
}

3. 在MessageHook.m (函数实现)中包含下列代码:

?
IMP original_SpringBoard_handleMenuDoubleTap;
 
// 双击Home键
extern  "C"  void  replaced_SpringBoard_handleMenuDoubleTap(SpringBoard *self, SEL cmd)
{
     NSLog(@ "============replaced_SpringBoard_handleMenuDoubleTap enter" );
     // Restart SpringBoard
     [self relaunchSpringBoard];
//    original_SpringBoard_handleMenuDoubleTap(self, cmd);
}

  以上代码即可截获双击Home的事件,并将其更改为重启SpringBoard,虽然这样做的实用性不大,但是可以利用Hook SpringBoard这种方式做很多其他好玩的事情。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值