Information Security/iOS

Add UIButton on ViewController Tweak

hackcatml 2022. 2. 13. 11:48
반응형

FlexAll로 최상단 ViewController를 특정한 다음 해당 ViewController를 후킹하여 버튼을 띄우도록 함니다.

예시 앱의 최상단 ViewController는 UIEditingOverlayViewController 입니다.

 

 

최상단 ViewController를 후킹하여 UIButton을 추가하는 트윅을 작성합니다.
#import <QuartzCore/QuartzCore.h>

@interface UIEditingOverlayViewController : UIViewController
@end

%hook UIEditingOverlayViewController
- (void)loadView {
    %orig;
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    // button title, color
    [btn setTitle:@"hackcatml!" forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [btn setBackgroundColor:[UIColor whiteColor]];
    
    // add button touch action
    [btn addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchDown];
    btn.frame = CGRectMake(10, 10, 100, 30);
    
    // button border color, thickness
    [btn.layer setBorderColor:[[UIColor blackColor] CGColor]];
    btn.layer.borderWidth = 1.0f;
    
    // add button
    [self.view addSubview:btn];
}
// button action
%new
-(void)myAction:(UIButton* )sender {
    NSLog(@"[hackcatml] uibutton test");
}
%end

 

 

UIButton이 추가된 것을 확인할 수 있습니다.

 

 

※ 출처

https://github.com/DGh0st/FLEXall (FlexAll github)
https://qiita.com/SsS136/items/ddbf5805205dba2d6504 (Add UIButton)

 

반응형