我们来看一下dispatch_after的官方解释 Enqueue a block for execution at the specified time.
可以理解成在指定的时间执行代码块,至于代码块,IDA已经帮我们分析好了,就是这个block_invoke。IDA为了表述方便吧,他重新定义了一个函数表示这个代码块。那就去看这个block吧!
确定是标准的BASE64解码,解码后其实是一个URL地址,就是验证服务器的。接着往下看,向这个地址发起了一个HTTP请求,把那个“加了密”的UUID和我输入的验证码统统发给服务端验证,然后在response里面找code,这个值就是服务器的验证结果。到这里这个验证机制就分析清楚了,这个插件的验证太简单了,方法名没混淆,连个像样的加密算法也没加,严阵以待的LLDB都没用上,就当给刚刚入门的朋友们增加信心吧。On the last,我顺便看了看其他dylib的代码,发现这套验证也是HOOK了其他人的验证,贵圈真乱啊。。。。