文件
为了处理一些操作, LLInt需要在执行指令时调用一些C函数进行扩展处理, 这些会被调用到的C函数被称为slow_path, 在asm文件中可以看到这些函数 (这一点我们将在后面地址泄漏时提到)...之前提到多值范式没有说的一点是, 它允许块拥有任意数量的返回值, 在JavaScriptCore的实现中也没有强制规定该数量的上限, 这允许我们构造具有大量返回值的块
解析器会执行一些非常基本的分析来确定代码是否为无法访问或是死代码..., 可以使用从shared_cache中获取的方式, 在对应版本的系统中使用以下python方法即可, 总体思路就是debug JavaScriptCore, 从调试器中获取目标方法的第一个call指令...(小坑: 如果脚本停在lldb.recvuntil("\n\n")里没有返回的话, 检查一下你的lldb dis指令结束时是否少一个换行符, 按实际需要修改脚本即可)
def get_jsc_offsets_from_shared_cache..., 只不过目前还没有公开的程序或资料, ret2systems也在博客末尾提到该漏洞将在之后的文章中分享
作为漏洞复现的最终展示, 这里能看到
stage2_server可以成功建立连接
使用lldb