最近和Yenkoc聊天时听说了时间无关调试这个概念,赶紧找来文章学习一下
目前各种保护技术愈演愈烈,像加壳、VM等。时间无关调试即记录调试过程中的寄存器和内存变化,使用记录的trace离线调试分析。
相关工具有qira,微软的TTD(Time Travel Debugging),mozilla的record-replay debugging
以下为和传统调试器相同的功能
以下功能和传统调试器不同
内存视图:内存中某个数值,定义为写入它的指令地址
交叉引用视图:不再是某一时刻的交叉引用,而是全局交叉引用
<-
定义链,写入内存的地方
->
使用链,读取内存的地方
字符串参考:全局字符串参考,让字符串加密无可遁形
污点跟踪
正向污点跟踪:分析某个寄存器或内存点对于后续指令或寄存器的影响
反向污点跟踪:分析某个寄存器或内存点的来源
控制流图
使用了自定义的结构化算法
有布局配置导航图