脚本工具:基于lldb的trace脚本(新增<block级trace命令>,辅助算法分析,过混淆等)

打印了是py3 是不是跟代码是swift编译的有关

汇编级的,和语言,关系不太大。

你路径,有中文么?感觉,你好像有中文的样子

路径是这个 /Users/aimo/Documents/lldbTrace.py 没有中文啊。搞不懂

可以试试老版本的.

y大,我trace的时候从.plt段跳转到.text段,.text段的代码没有记录下来,不知道是不是我操作错误。

我昨天试了试,结果debugserver崩了,有没有大佬解惑一下如何处理

从debug信息看,你进入了 so中,和当前模块 不在同一个模块里

默认调试 —only-tracing-self-module 是 true。这里有两种解决办法,看你自己习惯用哪种了
1,输入命令的时候,设置 -o false
2,直接到断点到那个 state函数里,然后按你之前的 trace 方案,对 state 函数单独trace

3 个赞

感谢y大

把注释去掉

有没有办法把trace的指令扔到ida看伪代码

我正在做的,可以扔进去 :grinning:

最近看到一个收费的一年9000这功能

1 个赞

我也看到了,所以尝试自己写一个,写完来这分享个心得。

1 个赞

本质来说是可以的,不过我的方案,是基于 LLVM IR 的。

扔到ida里的话,那就要处理的是 ida 的 mirco code 好像…应该问题不大。

这不 @nu11 n总不就在折腾么

1 个赞

楼主大哥,这是升级了python版本关系吗?(不确定有没有升级)刚开始还能用的
(lldb) command script import ~/lldb-trace-script/lldbTrace.py
ALSR : 0x0000000004804000
error: cannot add command
WT::The “trace” python command has been installed and is ready for use.

你的 脚本路径可能有问题,先确认下是不是全英文,以及相关的 改动。你可以从git上从新拽一哈

具体出错在:
debugger.HandleCommand(‘command script add -f lldbTrace.trace trace’)
debugger.HandleCommand(‘command script add -f lldbTrace.setDefaultPath setlogpath’)
debugger.HandleCommand(‘command script add -f lldbTrace.defaultPath logpath’)
print(‘WT::The “trace” python command has been installed and is ready for use.’)

噢,我已经重新下载了也没改动 :worried: :worried:
图片还在审核,路径也是全英文


你好,这个路径没问题呀 :worried:

没遇到过这种 debugger.HandleCommand(‘command script add -f lldbTrace.trace trace’) 出现bug的。
因为没法重现现场,所以我没法给你具体的修复意见。

你可以去 lldb 官网看看,以及对脚本做相关的调试看看… 或许能招到解决方案.