美文网首页 ios零碎记录iOS开发好文iOS开发
分分钟让你在 微信运动 霸占榜首

分分钟让你在 微信运动 霸占榜首

作者: dimsky | 来源:发表于2016-05-08 23:22 被阅读15306次

提示: 这仅仅只是逆向的一次尝试,如果你仅仅只是想单纯的修改步数,建议使用Healthkit的API修改步数,将会更简单。

为了纪念我失去的已越狱iPad, 不得不写点什么。

所以...以下内容 不需要越狱

微信运动

6万步是什么概念,我不知道,因为我没走过,不过有朋友是这么跟我形容的。

破解

首先,这是一个简单的不能再简单逆向实验,也仅仅只是针对于逆向比较简单的验证,这里不会讨论如何砸壳、classdump、hook、dylib 这些东西,因为简单的不需要,也没有详细的逆向分析过程,因为简单的不需要,这里只需要的两个软件 :

  1. PP 助手 (用来下载iOS 版本已经破壳的App)
  2. Hopper Disassembler

并且只需三步来完成破解。

PP助手,只用它来下载破壳的iOS 越狱App,不做说明。

Hopper Disassembler v3 下面是官网的原话:

Hopper is a reverse engineering tool for OS X and Linux, that lets you disassemble, and decompile your 32/64bits Intel Mac, Linux, Windows and iOS executables!Take a look at the feature list!

简单的说就是 Hopper 是一个反编译工具。
可能还有一些类似的工具比如说IDA。因为免费版功能不全,完整版太贵,这里毫不犹豫选择了Hopper。

在2015年,各大音乐平台联合起来打击盗版音频网站,各大音乐平台相互攻击,只能下架未授权的音乐。一些音乐平台也从起初的高品质歌曲收费服务,变成了交钱你才能听,让广大人民群众听歌困难。

下面我们要做的就是重新找回原来的自由。

虾米音乐 for mac

没有会员的虾米就只是只虾米。


虾米音乐

如果要使用虾米Mac版播放器听高品质的歌曲是需要VIP 会员的。
下面我们就给自己一个“会员”。

  1. 先打开Hopper。

  2. 找到虾米音乐的安装目录 /Applications/Xiami.app/Contents/MacOS/ 下的Xiami 二进制文件给拖出来直接扔进 Hopper 窗口中,点OK 然后就会开始分析,虾米音乐 for mac 做的很简单,马上就会反汇编完成,我们可以在左边看到很亲切 的Objective-C 语法的方法调用,我们可以搜索想要了解的方法名,这里很明确,我们就是要给自己一个VIP,直接搜索“vip”。

Hopper

不难发现,函数已经找到了,

[XMUser isVIP]

我们可以通过右上角按钮查看方法的伪代码.
然后用Hopper静态patch 这个方法,把光标放在[XMUser isVIP] 的第一行汇编代码上,然后选择菜单栏的Modify -> Assemble Instruction,并在弹出的文本框里输入mov rax, 0x1,如图所示:

Paste_Image.png

再点击 "Assemble and Go Next",然后输入 ret,在点击按钮完成输入,修改后的代码块会变成白色,最后会变成这个样子:

Paste_Image.png

这里是什么意思呢?我们在方法的伪代码中不难发现最终返回的是一个rax 的寄存器,其实在x86汇编里,函数的返回值存放在rax寄存器里,0x1对应BOOL类型的YES,这句汇编的意思就是 将0x1 送入eax 寄存器,因此我们让[XMUser isVIP] 永远返回YES,告诉虾米你永远都是VIP。

然后操作就基本已经完成了,点击菜单
File-> Produce New Executable 生成出新的二进制文件,替代原目录(/Applications/Xiami.app/Contents/MacOS/ ) 中的二进制文件(Xiami)。

Paste_Image.png

重新打开虾米音乐播放器,接下来就让320kbps 高品质音乐轰炸你的耳朵。


Paste_Image.png

这种是一种比较简单的逆向方式,当然逆向的局限性很大,如果想实现更大范围的hook 还是得使用openDev 等工具来做。

虾米音乐 for iOS

现在虾米音乐周杰伦的歌都没法听了...不得不说高晓松这个花钱请来的董事长,还真的是做了些事...

不过接下来不准备逆向虾米了,因为不想去用,不过你也可以用以上类似的方法去跳过虾米的验证,试听不能听得歌曲。

微信运动

你想每天都受到微信好友的关注么?
想每天霸占你女神/男神微信运动的封面么?
那么接下来我们只需要5分钟 三步 就能实现。

1. 下载破壳应用(越狱应用)

Paste_Image.png

2. 通过Hopper 修改 微信步数

首先我们要找到WeChat.app ,我们可以通过解压工具在WeChat.ipa/Payload/找到并解压出来。

Paste_Image.png

右键点击WeChat.app 显示包内容 ,找到WeChat 二进制文件然后拖到Hopper窗口中进行反汇编,因为微信应用比较大,反汇编时间可能会有点长,不过我们可以先把提供步数的方法找到,等待方法反汇编完成后就可以Patch了,使用上面的提到的老方法即可,下面是替换后的结果。
movw r0, #0xffff
bx lr
这里的0xffff 是16进制,也就是返回的步数,你想要多少步直接改这个数就可以了。

Paste_Image.png

修改完成,Shift+command+E 生成新的二进制文件WeChat。
通过Xcode创建一个作为壳子的项目,要使用有开发权限的bundle Id
任意取名,选好你的证书描述文件,然后编译。会生成一个Mytest1.app。

Paste_Image.png

我们需要这个Mytest1.app文件中的embedded.mobileprovision

Paste_Image.png

然后还需要新建Entitlements.plist, 这里需要用到证书的Team-id,不知道可以在钥匙串中的证书中找到,注意这里的Team-id 一定要是distribution证书的。
如: iPhone Distribution: Tian Xiao (ABCDEFGHIB) 中的 ABCDEFGHIB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>ABCDEFGHIB.dimsky.MyTest1</string>
    <key>com.apple.developer.team-identifier</key>
    <string>ABCDEFGHIB</string>
    <key>get-task-allow</key>
    <true/>
    <key>keychain-access-groups</key>
    <array>
        <string>ABCDEFGHIB.dimsky.MyTest1</string>
    </array>
</dict>
</plist>
被划掉的部分就是TeamId了

所有需要的文件都已经生成,然后把embedded.mobileprovision 和修改后的WeChat二进制文件拷贝至WeChat.app中替换。

3. 重新签名,安装

接下来我们把WeChat.app 重新签名,

codesign -f -s 证书名字 目标文件

下面是需要重新签名的文件,证书名字在钥匙串中可以找到,注意在这一步需要前面创建的 Entitlements.plist 文件。

codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXXX)" WeChat.app/Watch/WeChatWatchNative.app/PlugIns/WeChatWatchNativeExtension.appex
codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXXX)" WeChat.app/Watch/WeChatWatchNative.app
codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXXX)" WeChat.app/PlugIns/WeChatShareExtensionNew.appex
codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXXX)" --entitlements Entitlements.plist WeChat.app

打包生成ipa

xcrun -sdk iphoneos PackageApplication -v WeChat.app  -o ~/WeChat.ipa

然后就可以通过PP助手安装了。

友情提示: 切勿开启暴走模式,让步数更真实为好,不然被删好友了,可别怪我。

长期霸榜的坏处可想而知,还请各位斟酌。

注:

本文仅供学习交流,请勿用于商业用途。

参考: iOS冰与火之歌番外篇

相关文章

  • 分分钟让你在 微信运动 霸占榜首

    提示: 这仅仅只是逆向的一次尝试,如果你仅仅只是想单纯的修改步数,建议使用Healthkit的API修改步数,将会...

  • iOS 逆向 - 收藏集 - 掘金

    分分钟让你在 微信运动 霸占榜首 - iOS - 掘金 为了纪念我失去的已越狱iPad, 不得不写点什么。 所以....

  • iOS 逆向hook微信

    参考资料 分分钟让你在 微信运动 霸占榜首 一步一步实现iOS微信自动抢红包(非越狱) 给微信加 hook 尝试记...

  • 运动霸占榜首有多难

    今天放假在家实在无聊,就想着通过走路打发时间,于是临近中午在街上溜达,周围都没有想吃的东西,于是往城里走,去那家好...

  • 爱自己(5)

    运动:√跑步机20分钟+微信运动4524步 画画:√

  • 健康是最实用的信仰

    向父辈的基因宣战 老友老胡这小半年疯了,天天霸占着微信运动的榜首,而且是大步数领先,更重要的是,从前身高178厘米...

  • 微信运动藏着我爱你的讯息

    文/寸心悟❤ “哎!你微信运动走了多少步啊?” “我今天是微信榜首啊!” “你知道嘛!为了比她微信运动步数多,我连...

  • 今日时光

    今日时光记录: 运动: 走路60+20分钟 太极、八段锦:35分钟 靠山功:30分钟 学习: 微信讲座:60分钟 ...

  • 挽回前任的时候,朋友圈应该怎样发?

    现在聊天软件很多,而微信和QQ长期霸占榜首,也是用的最多的,其中微信的朋友圈和QQ空间都有很多人在玩,大部分的人都...

  • 20210425随笔

    我发现自从你开了微信的健康运动,只要不下大雨你都可以一直霸占我的封面,每天稳居榜首。 而今天的你第一名和我这第六名...

网友评论

  • codeTao:微信运动,没有开发者账号搞不了吧?
  • 小小书童可笑可笑:这个Entitlements.plist文件放哪里的
  • Arxu:请问这个修改后的数据会上传到服务器的吗,还是只有本地能看到而已
    dimsky:@Rany_Xu 哈哈。可以可以。
    Arxu:@dimsky 按照你的方法已成功修改步数并且被微信成功捕获到恶意修改,现在朋友圈已被封,但我还是很开心:smile:
    dimsky:@Rany_Xu 上传到服务器
  • Jlanglang:好多无聊的人啊。。。
  • Lilin_Coder:重签名后安装成功了,就是打开微信运动时候会crash, 使用其它功能也会频频crash
    Lilin_Coder:成功了,不容易啊 ,可以安心休息了
  • Louis_hey:Hopper在哪里下载
  • 主动打电话:好简略,让新手很难操作啊
  • TheRainMan:虾米音乐一直改不成功, 我改完后 mov rax, 0x1 , 和 ret这两行不是白色,不知道为啥按回车就出现了 ;endp。能帮我解答下hopper使用的问题吗,我是网上下的4.08破解版,也不知道是不是我操作的原因,试了很多遍都改不对
    TheRainMan:没呢
    跑神的心:跟你一样的问题,mov rax, 0x1 改完还好好的,加完ret,下面就出现了endp,请问你解决了吗,我也是v4的hoopper
  • LeoCracker:楼主你重签名出现过这个错误吗?invalid or unsupported format for signature
    3a971dbbfab9:我也出现这样的错误了!os 10.12 ,xcode 8.2。请问你解决了吗?
  • LeoCracker:你好,我用codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXXX)" --entitlements Entitlements.plist WeChat.app这命令重签名时,会报这个错误:WeChat.app: invalid or unsupported format for signature,请问您知道原因吗
  • a82aa8bb03b9:签名完成了.打包也成功了.但是通过pp助手安装,也上传成功了,最后一直提示安装失败什么原因 :hushed:
  • 星座是射手座:我尝试什么都没有更改反编译后的二进制文件就50M+,这是怎么回事?
  • 江城北望:重新签名后,无法安装。 :cry:
  • pakio:兄弟,有些问题想问你,可不可以加下我的QQ帮我解答下,万分感谢!!!!!!
  • 865020e67958:重新签名不会
  • ADELEX:为啥我签名啥的都显示没问题了,还是无法安装打包出来的ipa
  • 84c0ca424c72:那第二天,第三天,又需要重复这个步骤?
  • ADELEX:验证失败
  • ADELEX:用itools安装失败!
  • 0a3baefc43e4:...删好友这个逻辑有点难接受
  • Sundial丶Dreams:如果我是你朋友,我也删好友了。
  • 萌小菜:开启暴走模式了。。 :smile:
    萌小菜:@面包大狸 不知道 没试 应该可以
    ali_hilo:@萌小菜 这个方法还可以吗 😂
  • 0bf343767a4b:表示hopper,需要翻墙去下载,速度太慢了。
  • 6c6e72a21c11:有以下疑惑:
    1:我在生成签名的时候,用的是发布证书还是开发证书,我看你的截图是开发.(其实我两个都试了一遍) 在生成ipa后 一直装不到手机上,提示ApplicationVerificationFail(应用审核失败)
    2:如果我想装多个微信,改bundleid 是改weichat.app的 info.plist 还是改自己建的那个
    6c6e72a21c11:@xiaotengda0_0 这个方法现在只能在越狱机上装成功了
    63f84a075342:@李恒昌 应该是改plist的id,改成和配置文件一致
  • 46fdc45388ac:问一下这种方式现在是失效了么?
    我按照步骤来,遇到了两个问题,
    1.Mytest1.app文件中无embedded.mobileprovision。不知道这个是不是因为IOS修改了签名文件机制导致的。
    2.用Hopper Disassembler修改内容后shift+command+E生成的文件远比原微信文件小,原wechat.app有150M+,其内部有一个Wechat文件是114M+,这个保存成wechat.app只有50M+... ...
    46fdc45388ac:@面包大狸 不会了。。
    ali_hilo:@十顿十 一毛一样的情况 关键是重新签名不会 😂 会吗
    df1ea0ab38b9:@十顿十 我也是 搞了半天 应该是这个方式不行了 而起里面的变量我发现也变了
  • imageURL:签名不好弄,
  • codebaby121:虾米破解这个早都用了,
  • 码农农农SL:虾米生成了二进制文件,也替换了,可是闪退啊
  • ningcol:bx lr 用的什么语句添加的呀
  • HHHHHHHHHHD:你好 博主。我想问下,找到m7之后 是怎么修改那个值的。我修改不了。麻烦告知。
    星座是射手座:@MYYYYYYYYYYYYYY 你知道怎么改了?麻烦告诉我一下
  • 一__谷__作气:楼主,微信这个我按照您的步骤做出来了,在越狱机子上可以实现功能,但是安装到非越狱手机失败,,,,是齿轮文件有问题么?求教
    一__谷__作气:我的证书签名打包了啊,codesign --verify WeChat.app 验证签名是完好的。一切都正常,就是在非越狱手机安装不上,是我的证书用的不对么?我用的developer 要用Distribution么?
    dimsky:@一__谷__作气 需要证书重新打包
  • 宝锤:从pp助手上下载下越狱软件为什么是2.23k,解压直接失败!
  • 天才小L:简单实用,举一反三,不错不错
  • 万事笔通:cannot read entitlement data@ dimsky 请问知道是什么问题么?用这个codesign -f -s "iPhone Developer: xxxxxxx" --entitlements Entitlements.plist WeChat.app出现的,网上有说用xcode改entitlements 的格式 但是不成功
    万事笔通:@万事笔通 entitlements 原来是这个文件位置放错了
  • Stark_Dylan:Hopper 试用版本不可以导出0.0
    楼主分享一份到邮箱吧 谢谢了
    13301051937@163.com
  • 06f2f16a28bc:今天试了一天,都没成功,打包后的ipa包装不上手机,不知道哪一步出错了,好纠结
  • 06f2f16a28bc:请问Entitlements.plist中的application-identifier怎么填,我填的是Team-id + 我程序的bundle id,请问这样对吗?
    dimsky:@我的ID已经被使用 team id + bundle id
    06f2f16a28bc:@dimsky 只填team ID 嘛?
    dimsky:@我的ID已经被使用 发布证书的 team id
  • CveniEs:为啥我按照上面的方法做, 虾米音乐mac版本没法破解...求解释
  • 吃蘑菇De大灰狼:新人求助,在重新签名第二步的时候:codesign -f -s 报错:
    -bash: syntax error near unexpected token `('
  • 杨鹏_小宝:哪个是二进制文件 拖到hopper的二进制文件是哪个?
    小鬼别多嘴:@dimsky 没懂,到底是哪个文件啊,显示包内容后不是很多文件吗?
    dimsky:@杨鹏_小宝 目标目录下就一个文件
  • balabalabala:虾米音乐 更改二进制文件之后 不让生成啊
  • 75cba68968ad:楼主,重新签名和打包是命令行吗,到这2步不知道怎么操作了,没搞出来,求教
  • 钱塘老酒酿:我们可以通过解压工具在WeChat.ipa/Payload/找到并解压出来。 这一步,就不会操作了,求教
    宝锤:@儡小傀 解压出来了吗?
  • null_null_:有什么意义
  • fb6a3dd53311:好厉害的样子,可惜我是个文科生,不懂……
  • 53eb12663b43:太牛逼了吧
  • d3f92b96f54b:开个安卓的啊😂😂
  • b19d47d5ed1d:先点赞,然后慢慢去看吧,感觉还是挺厉害的。
  • 3fdea9ba144e:来给我整个能多开几个聊天应用的攻略
    3fdea9ba144e:微信加我,我想拜你:heart_eyes:
    dimsky:@倒霉的小葱 把应用的bundle id 改了,重新签名打包就可以。
  • holly_day:无论怎样,给码了那么一大长段的程序猿点个赞
    dimsky:@holly_day 就喜欢你这样的人。
  • 398944e9e75b:很厉害的样子啊
  • 182516fd602b:废这么大劲,得到什么了,人家多走得到的是健康
    2e3faf145fc6:@皛昸 只是技术上的分享而已,不要老是深究它的实际意义~
    dimsky:@皛昸 文章跟健康没啥关系
  • Nathan_Hu:额,但这有什么卵用吗?到最后还是被删好友的:joy:
    dimsky:@Nathan_Hu 壮士在理。
  • Alan梵高:这比装的给10分:relieved:
    dimsky:@Aquaris_li :joy:
  • 茗记西岭雪:分分钟,别逗了
  • 萌小月:不明觉厉
  • Audrey猪小鱼:来个安卓版平安好医生霸占榜首更实惠
    傅hc:@Audrey猪小鱼 有试过?
  • 096fc1d41d01:我也觉得最可怕的是自己骗自己:smile:
    dimsky:@多多好 没有骗自己:joy:,当玩游戏。
  • Nicole林小白:不明觉厉
  • 101a4313fae2:越狱的应用装不上啊
    101a4313fae2:@dimsky 嗯,已经试了,就是Hopper试用时间太短。
    dimsky:@lyonsreader 需要重新签名
  • 枫小梦:虽然不懂,但总觉得好厉害啊!! :joy:
  • 支枕听河声:并没有什么意义呀,健身锻炼,又骗不了自己。
  • 5a7c2642d9ee:显示包内容没发现embedded.mobileprovision
    dimsky:@双鱼七封信 需要选择自己的profile
  • eef5779c207f:步数那怎么编辑 发现改不了数字啊
    dimsky:@索马里猫 16进制
  • 73269e277f2b:安卓的怎么搞
    73269e277f2b: @dimsky 有教程吗,我不懂安卓
    dimsky:@向右滑动解锁我的心 安卓改起来相对来说应该更简单
  • eef5779c207f:修改步数那怎么编辑
  • eef5779c207f:那你那个微信越狱应用是怎么下载的?
    Fang_OSH:@milk_powder 拔掉手机就可以下载了。
    milk_powder:@dimsky没有越狱根本下载不了,弹出提示: 您的设备未越狱,无法安装越狱应用,建议前往正版应用
    dimsky:@索马里猫 在PP助手中就能下载
  • angelababa:有没有不越狱的方法。。
    dimsky:@angelababa 是的
    angelababa:@dimsky 越狱版的微信重新签名可以直接安装?
    dimsky:@angelababa 是不用越狱啊
  • Seeulater:厉害厉害

本文标题:分分钟让你在 微信运动 霸占榜首

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