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.最後輕輕鬆鬆通關了,美滋滋。