IOS Frameworks Hook 另类hook方法 Logos hook 对照表 Frameworks插件 Tweak 插件

本文介绍了iOS中HOOK技术,包括Method Swizzle、fishhook和Cydia Substrate,着重讨论了如何从Logos转向使用Frameworks插件进行Hook。详细阐述了如何在Frameworks项目中实现自动加载、用户信息Hook、流程控制以及添加界面图标的步骤,为iOS逆向工程提供了一种新的实践方法。
摘要由CSDN通过智能技术生成

 

一、概念

HOOK,中文译为“挂钩”或“钩子”。在iOS逆向中是指改变程序运行流程的一种技术。通过hook可以让别人的程序执行自己所写的代码。在逆向中经常使用这种技术。所以在学习过程中,我们重点要了解其原理,这样能够对恶意代码进行有效的防护。

 

二、iOS中HOOK技术的几种方式

Method Swizzle

     利用OC的Runtime特性,动态改变SEL(方法编号)和IMP(方法实现)的对应关系,达到OC方法调用流程改变的目的。主要用于OC方法。

 

     fishhook

    它是Facebook提供的一个动态修改链接mach-O文件的工具。利用MachO文件加载原理,通过修改懒加载和非懒加载两个表的指针达到C函数HOOK的目的。

 

 Cydia Substrate 

   Cydia Substrate 原名为 Mobile Substrate ,它的主要作用是针对OC方法、C函数以及函数地址进行HOOK操作。当然它并不是仅仅针对iOS而设计的,安卓一样可以用。官方地址:http://www.cydiasubstrate.com/

 

原来Logos实现方法

1.logos获取用户信息

%hook HMIDAppTokenItem

//获取用户appToken
-(NSString *)appToken{
    id s=%orig;
    [xddCode toeknSet:s];
    return s;//s   __NSCFString *    "lsdfs324k23hkh32l5h35h63k4h5"
}

//  获取用户ID
-(NSString *)userId{
    id s=%orig;
    [xddCode userIDSet:s];
    return s;//s    __NSCFString *    "107xxxxxx70"
}

%end

 2.logos界面添加图标,文字,点击事件


//个人设置页面
%hook ProfileViewController
- (void)viewDidLoad{
    
    %orig;

    UILabel *nameLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 60, 80, 37)];
    nameLabel.font = [UIFont systemFontOfSize:15];
    nameLabel.text = @"您APP已被hook";
    nameLabel.backgroundColor = [UIColor clearColor];
    nameLabel.textAlignment = NSTextAlignmentLeft;
    nameLabel.numberOfLines 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ios and Android

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值