所谓免逃狱Hook便是在iOS建设未进行逃狱操作的前提下,对APP进行Hook操作,很久之前就有听说过丝袜美腿 自拍偷拍 国产,昨天花了一天技术整环境外加测试,然后又顺带修改了一个比拟让东谈主烦躁的游戏,Unity3D破解其实很早就搞过了,此次借着免逃狱Hook一谈共享给天下。
工欲善其事必先利其器 逃狱iPhone(必须)固然最终修改之后的APP是要装到非逃狱的iPhone上,可是APP需要砸壳,外加PP助部下架之后没啥好场所下载砸壳之后的ipa了,因此必须要有一部逃狱的iPhone。 未逃狱iPhone这个无用说了,谋划APP安设 MonKeyDevAloneMonkey大佬的作品,Hook插件编写神器,大佬还在其中集成了iOSOpenDev,同期也黑白逃狱插件开辟集成的神器。官方安设指南 frida-ios-dumpAloneMonkey大佬的又一力作,砸壳神器,iOS逆向一年多了,目下为止无往不利iOS frida安设 官方安设指南frida-ios-dump使用 名目地址 IDA分析砸壳后的APP,导入符号表python剧本便捷分析 Il2CppDumper名目地址Unity3D游戏分析利器,Unity调遣成IL2CPP的符号表索取用具,目下只复古Windows平台,最毕生成的符号表剧本导入IDA用 IPAPatch名目地址用于重新打包签名ipa并安设到非逃狱iPhone上,相配强盛。如果不念念写Hook插件,也可以收受修改汇编的格式重新打包安设ipa 汇编码调遣器下载地址各式类型汇编代码生成机器码的用具,便捷静态修改可推论文献,重打包签名安设 抽丝剥茧如果上诉用具完全准备皆全,那么就就可以启动逆向责任了,行为一个捕快密,平时可爱玩一些密室游戏,今天修改的这款游戏叫作念密室脱逃绝境系列--游乐土,不得不说情节联想的很可以,在一次尝试使用领导功能时,短暂发现需要金币,关联词免费金币需要看告白,每次只给一枚,可是领导的话费如实渐渐增长的,嗅觉有被冒犯到,是以有了接下来的一切。
砸壳领先咱们需要砸壳后的ipa进行分析,定位到底需要修改什么。
端口转发
iproxy 2222 22
领先通过frida查找要砸壳的APP进度
Mac-mini:frida-ios-dump-master-2 $ frida-ps -U PID Name ---- ------------------------------------------------- 2911 App Store 2947 信息 2980 密室脱逃绝境系列11游乐土 2936 微信 2972 设立 2949 邮件 2814 AppleIDAuthAgent 1412 AssetCacheLocatorService
接着运行dump.py即可脱壳
Mac-mini:frida-ios-dump-master-2 $ python2 dump.py 密室脱逃绝境系列11游乐土 Start the target app 密室脱逃绝境系列11游乐土 Dumping 密室脱逃绝境系列11游乐土 to /var/folders/m7/g2v2sbfd19g9kg7sk20n639h0000gn/T start dump /var/containers/Bundle/Application/617F2079-957E-4005-92B8-7573FE651A8E/app1.app/app1 app1.fid: 100%|███████████████████████████████████████████████████████████████| 35.7M/35.7M [00:07<00:00, 5.03MB/s] InfoPlist.strings: 213MB [00:44, 4.97MB/s] 0.00B [00:00, ?B/s]Generating "密室脱逃绝境系列11游乐土.ipa"Unity3D符号表归附
在作念这一步操作之前,机智的东谈主依然将可推论文献脱到IDA文献中启动分析了,APP脱壳后解压ipa,然后检讨app1包实质,主要领可推论文献使咱们高大分析谋划,一般来说是系数这个词包中最大的阿谁文献。
在IDA分析的进程中,咱们刚好通过Il2CppDumper来索取符号表,索取符号表需要两个文献,一个是上述的主要领可推论文献,另一个则是符号表文献global-metadata.dat,iOS下该文献位于xxx.app/Data/Managed/Metadata目次下
先后采用两个文献之后,要领跳出需要输入Unity version
咱们若何阐发到底是用了什么版块的Unity呢,只有在IDA里搜索字符串X-Unity-Version即可,调用的场所会出现版块号,咱们要找的版块号即2018.4.3f1
在输入版块号之后,采用3即可
同期在Il2CppDumper的目次下,会生成dump.cs和script.py两个文献
将script.py导入IDA,File——>Script File——>采用script.py该剧本的主要作用是支持IDA识别IL2CPP表函数名,在加载剧本之前IDA识别的函数形如sub_xxxxxxx
丝袜美腿 自拍偷拍 国产
加载剧本之后对函数进行了标记变成容貌如类名$$函数名这么的函数
定位修改点在将script.py导入IDA之后,咱们坐窝入部下手分析dump.cs这个文献,该文献内部领会了游戏有关的属性和函数。可以用C#用具掀开,我这里径直用source掀开分析。
与其说是分析,不如说是查找更为准确一些,咱们念念要修改的最终办法折服是领有永远花不完的金币,那么咱们就去针对金币去搜索定位,我搜索了Gold,定位到有一个函数为get_Gold较为可疑
在IDA定位到函数地址
之后通过lldb下断点调试,发当今掀开领导的时候触发了断点,气运可以,复返表层调用检讨适度为0,之后去看了个两个视频赢得了两个金币之后,复返值的确变成了2,可疑笃定要领便是通过这个函数来获取金币的数目。
直捣黄龙分析定位修改点之后,就可以对游戏进行修改了,正本是念念通过免逃狱Hook达成对游戏的修改,可是尝试了屡次一直hook不顺利,屡次查找发现未逃狱iOS并不复古MSHookFunction格式进行hook,同期没法对形如sub_xxxxx函数进行inlinehook。这里先容两种修改格式,一种是通过iOS逃狱Hook来达成对关节函数的Hook修改,主要依赖于MonkeyDev,游戏修改了之后折服不会天天抱着一个逃狱手机来玩,是以这里准备的另一各样修改格式是针对未逃狱手机的,通过径直修改汇编,重打包签名ipa安设平直机上,主要依赖于IPAPatch
iOS逃狱修改iOS逃狱插件的编写这里秉承MonKeyDev,如何使用可见官方文档
扎眼事项 在hook不同APP时将Tweak的plist中Bundles修改支配对应的Bundleid 在Build Settings——>User-Defined新建项CODE_SIGNING_ALLOWED,赋值为NO,不然编译会报错 File——>Project Setting将Build System修改为Legacy Build System不然编译报错 切记安设sshpass 插件编写MonKeyDev复古多种Hook框架,我这里使用Tweak插件。具体hook代码如下:
#import <substrate.h> #import <dlfcn.h> #import <mach-o/dyld.h> // 用于保存原函数指针 int (*old_get_Gold)(); // 新函数 int new_get_Gold() { return 9999; } %ctor{ // 推论hook unsigned long Gold = _dyld_get_image_vmaddr_slide(0) + 0x1011aa060; MSHookFunction((void *)Gold, (void *)&new_get_Gold, (void **)&old_get_Gold); }iOS未逃狱修改修改汇编
领先检讨get_Gold函数复返位置汇编,复返时传入X1进行经过函数调遣为int复返,那么可以将9999传入X0,然后径直ret即可
通过汇编指示生成用具生成咱们需要的机器码
ret的机器码为C0 03 5F D6
临了修改对应地址的机器码即可
重打包签名将修改后的app1可推论文献重新放回原处,将解压后的ipa包重新压缩,最终更名为app.ipa,将该文献放到IPAPatch的Assets目次下,替换掉正本的app.ipa文献。
最终安设到未逃狱手机上成果如下
人妻熟女 隔山打牛iOS免逃狱hook主若是通过iosOpenDev生成dylib注入谋划APP达成Hook,iosOpenDev是apple官方复古的插件生成用具,可径直由Xcode生成。可生成CaptainHookTweak、Logos Tweak两种dylib。在注入dylib之后对APP进行重打包签名。
咱们接下来用到的MonKeyDev是对原有iOSOpenDev的升级,愈加便捷于非逃狱插件的编写。
新建名目&编译MonKeyDev安设完成之后,掀开Xcode新建名目,滑动到最下方可以看到MonKeyDev提供的模块,采用第一个。
新建之后需要树立General——>Signing,设立我方的AppleID后续用于签名。
接下来将砸壳后的ipa或ipa解压后的xxx.app放入Your_Project/TargetApp目次下,编译系数这个词名目,最终安设到未逃狱手机上信任之后浅显运行标明签名顺利。
寻找注入点Hook固然最终没能顺利达成免逃狱hook修改游戏,可是咱们如故拿它下手
领先通过Class-dump将头文献dump下来,在其中寻找一个又代表性的函数进行Hook,最终决定hook UnityAppController这个类中的init函数,在他调用的时候弹出弹框。
在your_projectDylib.xm中Hook代码如下:
#import <substrate.h> #import <sys/sysctl.h> #import <UIKit/UIKit.h> %hook UnityAppController // Hooking an instance method with an argument. - (void)init{ %orig; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hook顺利" message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; //[alert release]; } %end
运行要领将ipa装到未逃狱手机上,游戏掀开之后会有弹框出现
回来本来准备写一篇免逃狱Hook相接Unity3D游戏修改为一体的著述,可是可是在Hook c函数的进程中遭逢了勤奋,目下还莫得找到未逃狱手机上inlinhook的好决策,只可将两者分开来写,之后找到好的决策之后再进行修改为天下共享。
底下附上本东谈主iOS Unity3D初学看的一篇著述,本文约莫参考了这位大佬的框架。iOS上的Unity逆向与弓箭传闻游戏修改
**本文仅用来学习通常,碎裂用来作念坏隐痛情,不然后果自付!如有侵权,请联系作家删除**
[培训]《安卓高档研修班(网课)》月薪三万联想丝袜美腿 自拍偷拍 国产,掌抓调试、分析还原ollvm、vmp的循序,定制art臆造机自动化脱壳的循序