本帖最后由 tree_fly 于 2015-2-10 17:45 编辑
先来看下效果。
修改QQ手机类型为iPhone6 Plus
1.一台苹果电脑 or 虚拟机(OS X Yosemite) 2.越狱手机一台(如iPhone5 iOS8.1.1) 3.其他请参考老飘帖子:iOS逆向工程学习之路(工具+设备推荐):
入门步骤: 1.安装VM虚拟系统 OS X Yosemite。
2.安装XCode。
3.安装越狱开发系统theos、iOSOpenDev。
4.配置越狱后的手机,需要Cydia安装的(个别非必须)插件: Core Utilities Core Utilities(/bin) diskdev-cmds file-cmds system-cmds Mobileterminal openSSH sshpass toggle ssh preferencdloader substrate safe mode syslogd to /var/log/syslog
5. 测试SSH连接。
6.处理编译程序到真机可能出现的问题。
实践步骤:1.启动XCode,新建Project : Logos Tweak,命名为:ChangeIPhone6Plus。
新建的项目文档结构图:
2.修改项目Scheme:iOS Device。
3.添加项目必须的头文件及链接库文件。 a) Libsubstrate.dylib 默认安装路径:/opt/iOSOpenDev/lib/ b) Substrate.h 默认路径:/opt/iOSOpenDev/include/ Substrate.h 头文件副本来自:Cydia Substrate。 请复制越狱手机/Library/Frameworks/CydiaSubstrate.framework/Headers/CydiaSubstrate.h 到MAC中/opt/iOSOpenDev/include/,并重命名为 substrate.h。
4.写hook代码:
- /*
- * 修改iPhone QQ手机类型为iPhone6 Plus
- * 作者:tree_fly/P.Y.G, Thanks to creantan/P.Y.G
- */
- #include "substrate.h"
- int (*orig_sysctlbyname)(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen);
- int my_sysctlbyname(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen){
-
- if (strcmp(name, "hw.machine") == 0) {
-
- int ret = orig_sysctlbyname(name, oldp, oldlenp, newp, newlen);
-
- if (oldp != NULL) {
-
- NSLog(@"+++\n+++\n+++\n+++\n+++:before %s +++\n+++\n+++\n++++",(char*)oldp);
-
- const char *mechine1 = "iPhone7,1";
-
- strncpy((char*)oldp, mechine1, strlen(mechine1));
-
- NSLog(@"+++\n+++\n+++\n+++\n+++:after %s +++\n+++\n+++\n++++",(char*)oldp);
- }
-
- return ret;
-
- }else{
- return orig_sysctlbyname(name, oldp, oldlenp, newp, newlen);
- }
-
- }
- %ctor {
-
- MSHookFunction((void *)MSFindSymbol(NULL,"_sysctlbyname"), (void *)my_sysctlbyname, (void **)&orig_sysctlbyname);
- }
复制代码
5.查找QQ软件的Info.plist文件, 并查看其Bundle identifier Windows:
Mac OS:
6.修改项目的Bundle identifier:
7.编译项目(Product/Build for/Profiling)
8.启动日志查看工具,如iTools的实时日志工具。
9.手机端测试,记得点击日志下面的手机型号后,再次选择,否则不显示哦。
10.教程就到这里,祝你好运哦,2015新年新气象。最后,感谢creantan, 飘云悉心指导。
设计插件的配置开关:
|