iOS逆向之代码注入!(下)

本文详细介绍了如何使用Objective-C的Method Swizzing技术破坏微信注册过程,通过代码注入获取用户登录密码。讲解了动态调试获取及hook代码注入方式,包括在点击登录时获取密码的步骤,以及解决hook过程中遇到的问题和优化方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要是以WeChat为例,讲解如何破坏WeChat注册、以及如何获取登录密码

引子

在进行WeChat实践操作时,首先需要了解一个概念:Method Swizzing(即方法交换)

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

在OC中,SEL和IMP之间的关系,类似与一本书的目录,是一一对应的

  • SEL:方法编号,类似于目录中的标题

  • IMP:方法实现的真实地址指针,类似于目录中的页码

同时,Runtime中也提供了用于交换两个SEL和IMP的方法,method_exchangeIMP,我们可以通过这个函数交换两个SEL和IMP的对应关系

破坏微信注册

准备工作:需要新建一个工程,并重签名,且采用Framework注入的方式

  • 重签名参考文章:iOS逆向之应用重签名(下)
  • Framework注入方式参考文章:iOS逆向之代码注入(上)

这里破坏的微信的注册,主要是通过runtime方法进行注册方法的hook

1、获取注册的相关信息

  • 1、通过lldb调试获取WeChat的注册

  • 2、获取注册的target、action

    • target:WCAccountLoginControlLogic

    • action:onFirstViewRegister

2、简单hook演示

  • 1、通过class_getInstanceMethod +method_exchangeImplementations方法,hook注册的点击事件
@implementation inject

+ (void)load{
//    改变微信的注册
    Method oldMethod = class_getInstanceMethod(objc_getClass("WCAccountLoginControlLogic"), @selector(onFirstViewRegister));
    Method newMethod = class_getInstanceMethod(self, @selector(my_method));

    method_exchangeImplementations(oldMethod, newMethod);

}

- (void)my_method{
    NSLog(@"CJLHook --- 注册不了了!");
}

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值