IOS弓箭传说的插件开发
2024-08-30 03:50:14
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.编写增加攻击力的插件代码。
int (*old_get_AttackValue)(); // 自创的新版函数
int new_get_AttackValue()
{
return ;
}
int (*old_get_ChangeHp)(); // 自创的新版函数
int new_get_ChangeHp()
{
return ;
} %ctor
{
@autoreleasepool
{
unsigned long attack = _dyld_get_image_vmaddr_slide() + 0x10179b75c;
unsigned long ChangeHp = _dyld_get_image_vmaddr_slide() + 0x1017a0a74;
//MSHookFunction((void*)attack,(void*)&new_get_AttackValue,(void**)&old_get_AttackValue);
MSHookFunction((void *)attack, (void *)&new_get_AttackValue,(void **)&old_get_AttackValue);
MSHookFunction((void *)ChangeHp, (void *)&new_get_ChangeHp,(void **)&old_get_ChangeHp);
}
}
5.最后轻轻松松通关了,美滋滋。
最新文章
- 【Win10应用开发】通过拖放来打开文件
- 关于只针对ie7浏览器的css问题
- 目前用到最全的datagrid(easyui)
- Android比较字符串是否为空(isEmpty)
- commons-lang使用
- 鼠标悬停移除更换class
- windows 7 memcached报failed to install service or service already installed的解决方案
- win7下ubuntu14.4双系统安装
- MySQL性能调优——索引详解与索引的优化
- Expo大作战(三十)--expo sdk api之Permissions(权限管理模块),Pedometer(计步器api)
- 皮尔逊残差 | Pearson residual
- c 语言连续输入字符型数据
- Oracle中对数字加汉字的排序(完好)
- 能让程序做的事情坚决不用人来做——批量修复markdownlint MD034警告
- .net正则提取手机号码,并替换带有手机号码的a标签
- k8s 入门系列之介绍篇
- [转] 如何让代码可测试化(C#)
- 【opencv】cv::Mat_ 对单个元素赋值
- Java 创建线程的两种方法
- Maven常用插件整理