总所周知,砸壳之后的iOS应用动态调试一般都使用lldb,相较于Android通过AS动态调试smali界面化操作,lldb的命令行无疑显得操作繁琐许多。作为一个合格的懒人,追求简单是我的本能,经过多方资料的收集,了解到lldb+python可极大的提高lldb动态调试效率。简单整理出lldb+python提高iOS动态调试效率的几个函数。
lldb脚本桥接
LLDB的脚本桥接是调试器的一个Python接口。通过这个接口可以在LLDB中加载和执行Python代码。在Python代码中,你可以引入lldb模块来与调试器交互来获取各种信息(比如命令的参数等)。
首先可以通过script命令直接打开lldb中的python解释器,script命令添加各种参数即可进行桥接。
查看python版本
|
|
Helloword
首先新建一个目录存放你的lldb Python脚本,比如我把它放在~/lldb中,该目录下新建HelloWorld.py
|
|
在lldb中输入以下命令即可使用上述Python代码
|
|
但是每次输入这么繁琐的命令明显不是我们的初衷,llldb有个函数lldb_init_module,一旦Python模块被加载到LLDB中时它就会被调用。因此只要我们在这个函数里面将helloworld安装到LLDB里面去.
在HelloWorld.py中加入下面的代码
|
|
然后在~/.lldbinit中import这个脚本,如果没有.lldbinit这个文件,touch ~/.lldbinit新建一个即可
|
|
这样在加载lldb之后输入hello直接会输出helloworld了。
分享脚本(持续更新)
|
|