逆向需求:实现评论功能,模拟不同的用户评论
开发环境:脱过壳的抖音IPA(Awemeapp), Xcode(安装MonkeyDev), Hopper(解析执行文件), 导出抖音所有头文件
1>运行MonkeyDev,查看抖音的层级结构,先找到评论的控制器 AWECommentListViewController
搜索头文件,看看里面有什么有用的属性,replyComment:这个可能是回复评论时候生成的模型,model:,listManager:可能是用来处理评论逻辑的,- (_Bool)userTappedSendWithContent:(id)arg1 inputView:(id)arg2:点击发送评论,这个应该是关键方法,随便发一条评论,在该方法下一个断点,进行验证
确实来到了这个方法,而且这个方法是由 AWECommentListInputView 这个View来调起的,猜想这个View应该是文本输入框的View,而且评论控制器实现了这个View的代理方法- (_Bool)commentInputViewShouldReturn:(id)arg1,代理方法里面调用了评论控制器的- (_Bool)userTappedSendWithContent:(id)arg1 inputView:(id)arg2方法, 所以理论上我们可以手动调用这个方法,能实现发送评论,
2>在评论控制器添加一个按钮,按钮的点击事件设为- (_Bool)userTappedSendWithContent:(id)arg1 inputView:(id)arg2 这个方法,看是否能够评论成功,
验证评论可以发送成功,
3>继续跟进方法调用,查看是哪个类来发送的评论请求,我们需要了解必须上送什么参数,以及请求路径 打开Hopper 寻找突破口,搜索AWECommentListViewController userTappedSendWithContent,找到三个可疑的方法,点进去跟进
实现这三个方法,分别打入断点,运行Xcode,当发送一条评论时,会进到-sendCommentContent 这个方法,进到这个方法里面,看到一条有用信息
点进这个方法,发现一个熟悉的味道 AWECommentListManager,方法是属于它的,还记不记得在文章开始的那个listManager,就是它,惊不惊喜,还原成控制器的调用就是 [selflistManager commentWithContent: replyId: replySubCommentID: replySubCommentAuthorID: extraInfo: referString: completion:], 顺藤摸瓜,继续往下走,最终跟进到+(void)commentAwemeItemWithID:(void )arg2 content:(void )arg3 replyCommentID:(void )arg4 replySubCommentID:(void )arg5 extraInfo:(void )arg6 sticker:(void )arg7 referString:(void )arg8 completion:(void )arg9 这个方法之后,就无法再跟进了;于是转换思路,看看listManager里面会不会调用其他方法,我的做法是将里面的所有方法都打上断点,来到了_cmd 对应的这个方法,看到了传入的那个字典,aweme_id 是评论的id,就是你当前刷的这条抖音,text是我评论的内容,">苹果显示46011可能是由以下几个原因导致的:
1 设备激活问题:如果您的设备未经过激活或激活出现问题,可能会出现46011错误。您可以尝试重新激活您的设备来解决问题。
2 网络连接问题:网络连接不稳定或出现故障也可能导致46011错误。请确保您的设备已正确连接到稳定的网络。
3 来自苹果服务器的错误:出现46011错误可能是苹果服务器出现问题所导致的,这时只能等待苹果公司解决问题。
针对这些问题,您可以尝试以下方法来解决46011错误:
1 尝试使用其他网络连接设备。
2 将您的设备重启,并尝试重新连接到网络。
3 检查您的苹果ID是否正确,并尝试重新激活设备。
4 等待苹果公司修复服务器问题。
如果以上方法都无法解决问题,建议您联系苹果客服或前往苹果授权服务提供商进行咨询和维修。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)