IOS弓箭传说的插件开发
程序员文章站
2022-07-04 23:37:50
1.导出ipa进行解压后,定位到执行程序archero,ida加载后,发现很多都是sub_xxx开头的。 2.搜索资料后,原来Unity编写的程序,可以使用Il2CppDumper进行符号表还原。 下载Il2CppDumper对Payload\archero.app\Data\Managed\Met ......
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.最后轻轻松松通关了,美滋滋。
上一篇: vsto 检测是否在编辑状态或者光标闪动
下一篇: 易优CMS:小白学代码之notempty
推荐阅读
-
iOS App开发中UITextField组件的常用属性小结
-
iOS程序开发中设置UITableView的全屏分隔线的方法(不画线)
-
详解iOS开发中UITableview cell 顶部空白的多种设置方法
-
iOS应用开发中使UITextField实现placeholder属性的方法
-
iOS开发之XLForm的使用方法
-
iOS App开发中的UIStackView堆叠视图使用教程
-
iOS App开发中UIViewController类的使用教程
-
iOS App开发中扩展RCLabel组件进行基于HTML的文本布局
-
详解iOS App开发中Cookie的管理方法
-
iOS开发实现下载器的基本功能(1)