IOS弓箭传说的插件开发

Posted loz2015

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.最后轻轻松松通关了,美滋滋。

以上是关于IOS弓箭传说的插件开发的主要内容,如果未能解决你的问题,请参考以下文章

iOS xcode 代码片段

IOS开发-OC学习-常用功能代码片段整理

iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用(代码片段

WordPress - 代码片段插件

iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用(代码片段

iOS代码片段CodeSnippets