dlua类似 gdb 的 lua 调试器

联合创作 · 2023-10-01 21:33

dlua 是一个类似 gdb 的 lua 调试器。


特性



  • 支持Linux平台

  • C++编写性能高

  • 通过附加到其他进程上,进行调试

  • gdb风格的调试指令,包括设置条件断点、查看变量、设置变量


编译



  • 用脚本编译dlua,生成dluadluaagent.sodlua是控制台,dluaagent.so是调试插件



# ./build.sh


  • 下载编译hookso,生成hooksohookso是注入工具

  • 最后将dluadluaagent.sohookso放在同级目录即可使用


使用



  • 找到目标进程pid,也可以使用项目中的示例代码。假设pid=1234



# lua test.lua


  • 运行dlua,附加到1234进程,出现如下提示,说明连接正常,可以开始调试



# ./dlua 1234
attack to 1234 ok, use ctrl+c to input command, eg: h


  • 输入ctrl+c,输入h回车查看帮助



(dlua) h
h help commands
q quit
bt show cur call stack
b add breakpoint, eg: b test.lua:123
i show info, eg: i b
n step next line
s step into next line
c continue run
dis disable breakpoint, eg: dis 1
en enable breakpoint, eg: en 1
d delete breakpoint, eg: d 1
p print exp value, eg: p _G.xxx
l list code
f select stack frame
fin finish current call
set set value, eg: set aa=1
r run code, eg: r print("test")


  • 其他命令同理,输入ctrl+c,输入命令即可



(dlua) bt
0 in string_time_to_unix_time at test.lua:23
1 in ? at test.lua:50
2 in ? at [C]:-1


  • 退出,则输入q



(dlua) q
#

 

浏览 27
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报