iOS 逆向常用代码片段

2024-05-17 04:48
文章标签 代码 常用 ios 逆向 片段

本文主要是介绍iOS 逆向常用代码片段,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、在导航条上添加按钮

UINavigationItem *navigatItem = [self performSelector:@selector(navigationItem)];UIBarButtonItem *rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"群助手" style:UIBarButtonItemStylePlain target:self action:@selector(pushViewController)];navigatItem.rightBarButtonItem = rightBarButtonItem;

2、判断是非为好友

 CContact *contact = self.arrData[indexPath.row];NSString *m_nsNickName = contact.m_nsNickName;Ivar m_uiFriendSceneIvar = class_getInstanceVariable(objc_getClass("CContact"), "m_uiFriendScene");ptrdiff_t m_uiFriendSceneOffset = ivar_getOffset(m_uiFriendSceneIvar);
unsigned char *stuffBytes = (unsigned char *)(__bridge void *)contact;
NSUInteger m_uiFriendScene = * ((NSUInteger *)(stuffBytes + m_uiFriendSceneOffset));cell.textLabel.text = m_nsNickName; if (m_uiFriendScene == 0) {cell.detailTextLabel.text = @"非好友";
} else {cell.detailTextLabel.text = @"好友";
}

3、添加一个按钮

UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-80, 74, 70, 70)];[btn setTitle:@"上传群" forState:UIControlStateNormal];
[btn setBackgroundColor:kColor_Green];
btn.layer.cornerRadius = 35.0f;
[btn addTarget:self action:@selector(upLoadGroupChat) forControlEvents:UIControlEventTouchUpInside];
[((UIViewController *)self).view addSubview:btn];

4、调用多个参数的方法

SEL startSendVerifyMsg = @selector(startForSendVerifyMsg:parentView:verifyMsg:);
NSMethodSignature *signature = [[CContactVerify class] instanceMethodSignatureForSelector:startSendVerifyMsg];NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setTarget:CContactVerify];
[invocation setSelector:startSendVerifyMsg];
[invocation setArgument:&wrap atIndex:2];
[invocation setArgument:&view atIndex:3];
[invocation setArgument:&msg atIndex:4];
[invocation invoke];

5、遍历字典

    //返回的参数NSDictionary *responseObject = [[[NSString alloc] initWithData:arg1.retText.buffer encoding:NSUTF8StringEncoding] JSONDictionary];  for (NSInteger i=0; i<responseObject.count; i++) {NSString *key = responseObject.allKeys[i];NSString *value = responseObject.allValues[i];NSLog(@"%@:%@",key, value);}

6、微信判断是否是自己发送的消息

//接收消息
- (void)AsyncOnAddMsg:(NSString *)fromUser MsgWrap:(CMessageWrap* )wrap{%orig;if ([%c(CMessageWrap) isSenderFromMsgWrap:wrap] == YES) {NSLog(@"自己发的消息");return;}
}

7、打开某个指定的APP

 Class CLSApplicationWorkspace = objc_getClass("LSApplicationWorkspace");NSObject * workspace = [CLSApplicationWorkspace performSelector:@selector(defaultWorkspace)];[workspace performSelector:@selector(openApplicationWithBundleID:) withObject:@"com.alimama.moon"];

8、判断是否为我的好友

%hook ContactInfoViewController- (void)viewDidLoad
{%orig;BOOL isFriend = [self isInMyContactList];if (isFriend) {NSLog(@"是我的好友");} else {NSLog(@"不是我的好友");}
}%end

9、获取对象所属的类名

例如我们已知事例对象A *a;

我们可以通过下面的语句获取这个对象的所属类名。

[NSString stringWithUTF8String:object_getClassName(a)]

这篇关于iOS 逆向常用代码片段的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/995481

相关文章

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.