请教一个动态调试的问题

某q登录过程中会提示一个版本过低,应该是服务器返回的错误,我想跟踪下触发错误的函数在哪,错误方法是loginFailed_v2,但是到这里不知道怎么去追踪上一级了,望大佬们解惑
image

是不是服务器返回的抓个包不就知道了

从 bt 中,你可以看到啥?

start函数。appmain。。。以及 一些 block

说明啥呢?
放心大胆的猜。。。这是一个 主线程 调用 block 的 bt 函数调用堆栈

你可以去考虑下,iOS 中,怎么个写法,能把 block 放到 主线程里面执行,然后找到那个放入的地方,
你就可以找到他,是怎么放入的,以及为什么放入,还有就是因为某个 xxx 功能而放入

逆向,贵在基本功…这种基本功,需要你去 分析 你研究的 平台的特性,起码知道这种类型的调用,用正向代码怎么实现

说道抓包呢,其实不是关键点…在加密的情况下,抓包最大的好处 是验证你的猜想,作为出发点,局限性很大

拿block的地址去静态分析工具里面,找交叉引用,就可以看到是哪个方法里面的block,就知道怎么触发的了。
但是就算给你找到,这里肯定也只是一个callback,错误码是服务端返回的,应该是登录的时候,传了客户端的某一个版本号上去,服务端校验太低,就返回了错误码。