IOS弓箭传说的插件开发
时间:2019-11-23
本文章向大家介绍IOS弓箭传说的插件开发,主要包括IOS弓箭传说的插件开发使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.导出ipa进行解压后,定位到执行程序archero,ida加载后,发现很多都是sub_xxx开头的。
2.搜索资料后,原来Unity编写的程序,可以使用Il2CppDumper进行符号表还原。
下载Il2CppDumper对Payload\archero.app\Data\Managed\Metadata\global-metadata.dat进行还原。
3.IDA加载对应的脚本,分析script.py和dump.cs。其中dump.cs有点像反编译后的头文件,具体的类以及功能可以看出来。
定位EntityData__GetAttackBase_4319721308
4.编写增加攻击力的插件代码。
1 int (*old_get_AttackValue)(); 2 3 4 // 自创的新版函数 5 int new_get_AttackValue() 6 { 7 return 100000; 8 } 9 int (*old_get_ChangeHp)(); 10 11 12 // 自创的新版函数 13 int new_get_ChangeHp() 14 { 15 return 100; 16 } 17 18 19 %ctor 20 { 21 @autoreleasepool 22 { 23 unsigned long attack = _dyld_get_image_vmaddr_slide(0) + 0x10179b75c; 24 unsigned long ChangeHp = _dyld_get_image_vmaddr_slide(0) + 0x1017a0a74; 25 //MSHookFunction((void*)attack,(void*)&new_get_AttackValue,(void**)&old_get_AttackValue); 26 MSHookFunction((void *)attack, (void *)&new_get_AttackValue,(void **)&old_get_AttackValue); 27 MSHookFunction((void *)ChangeHp, (void *)&new_get_ChangeHp,(void **)&old_get_ChangeHp); 28 } 29 }
5.最后轻轻松松通关了,美滋滋。
原文地址:https://www.cnblogs.com/konf/p/11918823.html
- 关于curl网站运维与开发的那些事
- 并查集Union-find及其在最小生成树中的应用
- go 语言的库文件放在哪里?如何通过nginx代理后还能正确获取远程地址
- 离线Tarjan算法-最近公共祖先问题
- Java文件上传下载实训
- 【网络编程系列】二:socket通信原理及实践
- textrank算法原理与提取关键词、自动提取摘要PYTHON
- 【网络编程系列】一:字节顺序的大端与小端表示法
- Linux下的make命令用法
- 增量数据丢失的原因分析(三)(r8笔记第91天)
- JS之浏览器对象BOM
- 超清晰的makefile解释、编写与示例
- 一个简单的sql审核案例 (r8笔记第90天)
- Linux wait() 和 waitpid()函数介绍
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释