iOSOpenDev 跳板

Posted

技术标签:

【中文标题】iOSOpenDev 跳板【英文标题】:iOsOpenDev SpringBoard 【发布时间】:2014-06-27 11:52:11 【问题描述】:

有人可以告诉我如何挂钩 SpringBoard 方法,例如一些带有 iosOpenDev (iOs 7.1) 的 AppSlider 方法。我也不知道我必须采取什么框架。

我已经尝试过了,但控制台上没有显示任何内容:

import UIKit/UIKit.h
import SpringBoard/SpringBoard.h
import "CaptainHook.h"

CHDeclareClass(SBAppSliderScrollingViewController);

CHOptimizedMethod(0, self, void, SBAppSliderScrollingViewController, loadView)

    CHSuper(0, SBAppSliderScrollingViewController, loadView);
    NSLog(@"Ciccia!");


CHConstructor

   @autoreleasepool
   
      CHLoadLateClass(SBAppSliderScrollingViewController);
      CHHook(0, SBAppSliderScrollingViewController, loadView);
   

【问题讨论】:

【参考方案1】:

为什么需要

CHLoadLateClass(SBAppSliderScrollingViewController); //for class available later

你可以写

CHLoadClass(SBAppSliderScrollingViewController);//for class available now ;)

您可以使用 Logos 轻松完成。 这是一个例子......

#import <UIKit/UIKit.h>

%hook SBAppSliderController

- (void)loadView 
     %orig;
     NSLog (@"****AppSwitcher Appeared");

     UIAlertView *testAlert = [[UIAlertView alloc] initWithTitle:@"Test" 
     message:@"app switcher appeared." 
     delegate:self 
     cancelButtonTitle:@"OK" 
     otherButtonTitles:nil];

     [testAlert show];
     [testAlert release]; //for non-arc 



%end

注意: 正确的类是 SBAppSliderController 如果您需要在 AppSwitcher 出现时做某事;)

【讨论】:

我尝试用“CHLoadClass”替换“CHLoadLateClass”,但它不起作用。如果我在尝试构建它时尝试进行徽标调整,这是我得到的错误:“架构 armv7 的未定义符号:“_MSHookMes​​sageEx”,引用自:_logosLocalInit() ld:未找到架构 armv7 的符号clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)"

以上是关于iOSOpenDev 跳板的主要内容,如果未能解决你的问题,请参考以下文章

搭建跳板机

xrdp搭建Windows跳板机(修改版)

跳板机脚本(粗糙版)

XShell SSH 跳板配置之jmeter连接跳板数据库

跳板机是什么

使用xshell通过跳板机连接内网服务器平台