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

相关文章

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例