美文网首页iOS开发iOS开发者iOS开发
iOS:通过MonkeyDev逆向微信运动,简单粗暴非越狱

iOS:通过MonkeyDev逆向微信运动,简单粗暴非越狱

作者: 神经骚栋 | 来源:发表于2018-03-22 12:27 被阅读1862次

前言


前一段时间,一直忙于面试,也没做研究什么稀奇古怪的技术.近来也是学习了几天的iOS逆向工程方面的知识,这里就班门弄斧下,看看如何通过逆向工程来修改微信运动数据.先看一下效果图.


前期准备


在逆向之前我们需要准备一下以下工作.以方便我们的逆向功能能顺利开发.

需要技能:

1.懂基本的终端指令以及操作.

2.会使用Xcode.

3.一台未越狱的iPhone.

1. 安装PP助手

PP助手这是主要的功能是下载越狱ipa文件,也就是脱壳文件.这里是什么脱壳文件就不过描述了.

2. 安装class-dump

class-dump主要是用来查看脱壳之后的Mach-O文件的所能暴露出来的头文件.如何安装呢?

方式一:可以直接从下面的下载地址中直接下载运行好的class-dump文件.

→ → →class-dump下载传送门

方式二:也可以去github搜索class-dump下载xcode工程运行取出Finder中的class-dump.

然后把class-dump复制到/usr/local/bin/class-dump即可(OS X 10.11以上).

这时候我们直接在终端上敲出class-dump指令了.如下所示.

3. 安装MonkeyDev

其实为什么安装MonkeyDev呢?MonkeyDev是集成与OpenDev的,但是OpenDev在13年就不在更新了,所以AloneMonkey就在此基础上做了进一步的更新,而且更加简单,更加傻瓜式.具体安装步骤可以查看原文博客.

MonkeyDev原文安装链接

安装完成之后,在新建项目的时候就会有如下的模块.

修改微信运动数据的逻辑原理


整体的示意图如上图所示.我们把通过PP助手下载的越狱ipa文件通过class-dump指令来查看所有包含类的头文件.然后编写动态库.通过runtime的机制动态注入到破壳文件中.然后对注入完成的文件进行重新签名,最后安装应用程序.

其中MonkeyDev的作者已经把其中的三步进行了封装,我玩了玩之后,发现相当的简单粗暴无脑.

通过PP助手下载破壳ipa文件


我们打开PP助手,然后通过"越狱程序"模块下载"微信",如下所示.

下载完成之后,在Finder里面找到对应的ipa文件 拿出来备用.如下图所示.

通过Class-dump指令查看所有头文件信息(本文可不操作)


首先,我们先把.ipa文件进行解压.如下所示.


解压之后找到里面的WeChat,然后显示包内容.

找到包里面的WeChat文件,如下所示.

拿出来.然后使用下面class-dump指令格式

class-dump -H "Mach-O文件路径" -o "导出Headers文件的路径"

这里我直接把WeChat这个Mach-O文件放到了桌面之上.所以指令如下图所示.

执行完成之后,我们就可以看到桌面上多了一个Headers的文件夹,打开之后全是WeChat里面的头文件.然后我们可以使用Sublime Text这个工具快速查找我们所要的类.如下所示.

我们主要是用到的是WCDeviceStepObject中的m7StepCount这个属性.只要我们修改这个值就可以修改微信运动里面的步数了.

使用MonkeyDev完成三部曲.


这时候我们就创建一个MonkeyApp工程出来.如下所示.

紧接着.我们需要做的就是把我们的ipa文件放到指定位置(当然是放在工程目录下了,这里就不多说了.).然后添加到工程中去.里面的put ipa or app here文件不要删除.

接着我们就需要编译所需要的动态库就好.编写DemoDylib.m文件就好.


把DemoDylib.m文件中所有的内容删除(除导入头文件外).添加如下代码.

CHDeclareClass(WCDeviceStepObject); // declare class  
  
CHOptimizedMethod(0, self,  unsigned int, WCDeviceStepObject, m7StepCount) // hook method (with no arguments and no return value)  
{  
    // write code here ...  
      
    return 98888; //随意改数 
}  
  
  
  
CHConstructor // code block that runs immediately upon load  
{  
    @autoreleasepool  
    {  
        CHLoadLateClass(WCDeviceStepObject);  
        CHHook(0, WCDeviceStepObject,m7StepCount);  
    }  
}  

编写完成之后这里有个坑就是不让使用runtime库,修改如图位置即可,改为NO.

然后运行完动态库,在运行App,即可安装成功两个微信.

这时候就算大功告成了.打开新安装的微信运动即可.等待几分钟数据就可修改完成代码中的数字了.

结束


到此就结束了本篇博客,骚栋班门弄斧了,Demo过大,这里就不上传了,如果有问题,欢迎指导批评.骚栋在此谢过了.

相关文章

网友评论

  • YungFan:准备试试 现在还能有效吗
    神经骚栋:@YungFan 这个还是比自己弄简单
    YungFan:@神经骚栋 成功了 :+1:
    神经骚栋:@YungFan 有
  • 阿拉斯加的狗:大佬带我飞
    阿拉斯加的狗:@神经骚栋 早忘了 哈哈哈 去年搞的
    神经骚栋:@阿拉斯加的狗 这个你不是会吗?狗哥
  • 笙绳省盛:成功修改,就是每天步数这么多,会不会被封号呀:smirk: :smirk:
    笙绳省盛:@神经骚栋 那还能改少点嘛
    神经骚栋:@笙绳省盛 有人举报你,封号几率大
    神经骚栋:@笙绳省盛 会的,会被检测的
  • 33a231292dbe:楼主,请问用MonkeyDev对IPA加入代码后重新打包出来的IPA只有十几K是怎么回事啊?还有我对IPA包重签名之后安装在手机上有效期是多久啊
    33a231292dbe:@神经骚栋 好的,谢谢
    神经骚栋:@人生何处不修行 有效期是你的账号决定的 第一个问题不知道~
  • 小杨的app:下载越狱的ipa 放到工程没效果 怎么回事
  • 伊路顺峰:请教大神,我执行完下面这个命令后
    class-dump -H "Mach-O文件路径" -o "导出Headers文件的路径"
    在导出的文件夹中只有 CDStructures.h ,而且里面是空的,这个问题怎么解决?
    伊路顺峰:@神经骚栋 哦,知道了,我下载个越狱App试试。
    神经骚栋:@伊路顺峰 那个是没有砸壳的包,要不你就去学习一下如何砸壳,要不就直接下载越狱app
  • b2c7a522e27e:按照楼主的方法我也试验成功了,有几个tips提醒下新看到的同学:
    1.步数只能增不能减,比如你之前是2000,你改成了1,是不生效的。
    2.步数不能太夸张,不能太大,否则也不生效(可能是微信做了判断的)
    3.楼主提到的 enable strict checking of objc_msgSend Calls,不并不是阻止动态库运行的,这个开关的意义是
    Xcode6之后,苹果不推荐开发者使用Runtime的底层函数,也没有了参数提示,或者要求写全参数类型,否则会报错;设置成NO后就忽略了严格检测。具体的可以参考 https://www.jianshu.com/p/a361c61a3e50
  • TinXie:前輩 其實 MonkeyApp 已經有封裝了導出頭文件
    只要拖入 ipa(已敲殼) 就能導出
    TinXie:@淡漠烟薰 請查看 MonkeyDev 他的說明
    iCode_:请问怎么导出呢
  • TeacherXue:成功修改,学习了~
  • Apple_lx:ipa文件放到指定位置,这个ipa是从pp助手直接下载下来的那个吗
    神经骚栋:@Apple_lx 是的
  • HaleyLiu:你是易序栋?
    神经骚栋:@HaleyLiu :sweat: 骚栋~
  • 魂夕剑陨:大神,为什么我输入class-dump指令会显示/usr/local/bin/class-dump: Permission denied
    神经骚栋:@夜兔神威 仔细看博客 上面有写
    神经骚栋:@夜兔神威 你先把class-dump放在/usr/local/bin下
  • 瀚_:你好,我用同样的方法去改支付宝的步数,运行起来就闪退了,报LLVM Profile Error: Failed to write file "default.profraw": Operation not permitted错误。请问这个怎么解决
  • lattr:为什么我改成其他数字,重新运行还是98800,动态库和程序都重新运行了:joy:
    神经骚栋:老哥,你见过跑着跑着还步数减少的吗?
  • CrazySteven:装俩微信不会被腾讯发现了?
    神经骚栋:@CrazySteven 哈哈
    CrazySteven:@神经骚栋 对啊,我用了一年多,过年那会被腾讯检测出来了。
    神经骚栋:@CrazySteven 其实你是装了两个App 因为你对微信进行了重签名
  • 03cfe6b23ef9:厉害了
  • SJPOP:厉害了我的哥
  • 生命回忆录:请问为什么我按照你的操作运行会报错啊

    Preparing to run Xcode Build Phase for Logos Processor...
    Failed to locate Logos Processor. Is Theos installed? If not, see https://github.com/theos/theos/wiki/Installation.
    Command /bin/sh failed with exit code 1
    生命回忆录:@神经骚栋 下面这个错误
    Preparing to run Xcode Build Phase for Logos Processor...
    Failed to locate Logos Processor. Is Theos installed? If not, see https://github.com/theos/theos/wiki/Installation.
    Command /bin/sh failed with exit code 1
    神经骚栋:@影子爱笑 自己百度即可
    神经骚栋:@影子爱笑 什么报错?

本文标题:iOS:通过MonkeyDev逆向微信运动,简单粗暴非越狱

本文链接:https://www.haomeiwen.com/subject/lmboqftx.html