首页
社区
课程
招聘
[原创]安卓trace可视化面板
发表于: 20小时前 575

[原创]安卓trace可视化面板

20小时前
575

Trace 面板可视化工具

成品样例
这是我自己开发的一个 TUI 可视化 trace 面板,用来辅助理解 CPU 指令执行和调用逻辑。最初是因为直接看汇编让人懵逼——指令太碎片化,调用栈、寄存器和内存状态的关系很难直观理解,于是就想做一个“模拟执行”的可视化工具,只需要让人感觉它在执行即可,而不需要真正运行代码。

  • 汇编太碎片化,单看 CPU 指令很难理解上下文
  • 调用栈、寄存器、内存状态之间的关系很难直观把握

然后想到我的可视化 gdb,感觉二者感官差距并不大,一个是真正执行一个是模拟执行,模拟二字精髓又在于模拟而不是执行,只需要让人感觉它再执行即可,所以诞生了这个面板项目

我选择 TUI 进行编写:

  1. 我自己用 Linux(我电脑没 Windows)受社区文化熏陶,喜欢这种终端上的 UI 开发
  2. 我选择 go 语言和 tview 库进行开发,因为我自己在练习 go,各位也可以看代码自己改自己喜欢的语言

数据处理:

  1. 使用 Go 异步读取数据,避免界面卡顿。
  2. 上下指令使用链表结构维护,便于滑动和跳转
  3. 先使用 bufio 扫描文件获取总行数,再动态加载窗口显示内容。
  4. 默认只加载两千行,用户可通过命令行 goto 跳转任意位置。
  5. 整个加载逻辑使用滑动窗口,只加载窗口显示出来的内容,其他不管

可视化逻辑:

  1. 分区显示不同功能模块(如指令、寄存器、调用栈)
  2. 逻辑上模拟“执行”过程,让用户直观感受到 trace 的动态变化

有一个小 bug,进入的时候会卡住,需要按任意键加载内容,不是卡了是代码 bug

下面是GitHub的连接,有更多使用方面的内容 GitHub 地址


[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

收藏
免费 5
支持
分享
最新回复 (7)
雪    币: 621
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
感谢制作,期待更新
11小时前
0
雪    币: 5784
活跃值: (9937)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
太强了
10小时前
0
雪    币: 1161
活跃值: (642)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
mark一下
10小时前
0
雪    币: 597
活跃值: (785)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
666
10小时前
0
雪    币: 1855
活跃值: (2587)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
强啊 导师 什么时候带我
8小时前
0
雪    币: 524
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
导师什么时候带带我
8小时前
0
雪    币: 104
活跃值: (7531)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
tql
5小时前
0
游客
登录 | 注册 方可回帖
返回