TTD历史回顾
2022-7-19 23:59:6 Author: mp.weixin.qq.com(查看原文) 阅读量:34 收藏

2017年,TTD调试技术随着WinDbg Preview进入公众视野。当时我们以为这是微软憋大招后放出来的神器,后来的调试实践也证实其确为神器。但后来才发现,有一点搞错了,这不是憋大招放出来,这是把玩腻了的内部工具随手甩出来。

下面是部分TTD历史回顾,有兴趣了可以读读,就当练英语了。

Time Travel Tracing - Jake Oshins [2008-04]
https://community.osr.com/discussion/129469

2008在OSR论坛有人提到,微软有个Time Travel Tracing (tttracer.exe)。当时该工具并未正式对外提供,一般是正版用户寻求技术支持时,由微软方临时提供并指导使用,以采集生成.run文件,然后反馈回微软,微软再用内部调试工具处理.run文件。

2008年Watcom就有一款调试器,支持反向执行。

Image or ImageButton without ImageUrl Causes HTTP GET for Default Document - Jim Cheshire [2009-01-28]
https://web.archive.org/web/20140513054313/http://blogs.msdn.com/b/jamesche/archive/2009/01/28/image-or-imagebutton-without-imageurl-causes-http-get-for-default-document.aspx

作者当时是微软员工,他处理了一起复杂的BUG反馈。表现形式是空对象引用(null reference),null源自登录页面,BUG发作时已是登录后的某个位置。有个对象不应该是null,但不知何故变成null。更棘手的是,在2003上很容易重现BUG,同样的代码在XP开发机上始终无法重现BUG。

作者动用了TTD技术,当时在微软内部叫"iDNA dump",最终成功定位BUG源头。

This is how we troubleshoot Windows interoperability issues in the Open Specifications support team - Sebastian [2011-06-28]
https://docs.microsoft.com/en-us/archive/blogs/openspecification/this-is-how-we-troubleshoot-windows-interoperability-issues-in-the-open-specifications-support-team

作者提到Network Monitor 3、Time Travel Tracing。

Time Travel Tracing又叫iDNA tracing,包含两部分,一个用于产生日志的工具,基本算是对外开放了;一个用于分析日志的工具,目前只是内部使用,已经支持反向执行。

Application FooBar.exe was randomly locking our computers - Dale [2012-10-23]
https://blog.wisefaq.com/2012/10/23/application-foobar-exe-was-randomly-locking-our-computers/

某软件的客户向厂商反馈,TA们的电脑会被随机锁定。起初厂商脑子里想的类似这种,他们是在那儿抽烟吗?但同样的反馈出现多次,这肯定不是客户的幻觉了。软件厂商也很震惊,TA们寻求微软帮助。微软给TA们一个名为TTTracer的东西,用之采集日志(其实是.run文件)并反馈回微软。最终的调试结论是,厂商的FooBar.exe会发送"lock workstation"指令给Windows,囧。

Time Travel Debugging in Windows 10 - Dale [2020-07-18]
https://blog.wisefaq.com/2020/07/18/time-travel-debugging-in-windows-10/

作者七年前处理自家软件BUG时寻求过微软帮助,微软临时向他提供了TTTracer,靠TTD技术定位了BUG。作者七年后发现微软已在WinDbg Preview中公开提供TTTracer。显然他后知后觉了,微软在2017年就对外开放了TTD,Win10甚至自带tttracer.exe。

后面两篇与TTD无关,搜UWP Calculator时无意中看到的,挺有意思。

An Empirical Study of the Robustness of Windows NT Applications Using Random Testing - Justin E. Forrester, Barton P. Miller [2000-08]
https://pages.cs.wisc.edu/~bart/fuzz/fuzz-nt.html
ftp://ftp.cs.wisc.edu/paradyn/fuzz/fuzz-nt-src.zip
(NT Fuzz Report)

作者在1990年、1995年对UNIX系统做过Fuzz测试,2000年他们对NT 4/2000做类似的Fuzz测试。Fuzz核心思想一直在那儿,本文算是较早的此类技术文献,读来颇有年代感。当年分析Fuzz结果比较依赖目标是否开源,逆向工程、无源码调试尚未流行。二十多年后,Fuzz技术已成长为参天大树,枝繁叶茂。

Fuzzing In The Year 2000 - [2019-03-28]
https://blog.trailofbits.com/2019/03/28/fuzzing-in-the-year-2000/

作者用十九年前"NT Fuzz Report"的测试代码重新测试Win10,仍有93%的崩溃或僵死。这次Calculator未崩,作者点名表扬了计算器的开发团队。十九年前的目标软件不再适用于此次测试,作者介绍了重新挑选目标软件的原则,从中可以看出软件变迁历史。在此过程中作者发现一个非安全类的系统BUG。

所有UWP用同一个进程(ApplicationFrameHost.exe)显示它们的UI。


文章来源: http://mp.weixin.qq.com/s?__biz=MzUzMjQyMDE3Ng==&mid=2247486044&idx=1&sn=53d5721fbc02fe26a486c8ac47808b3a&chksm=fab2c963cdc54075f8f4d77e14e77dea83a2d3c2138891fb627fa062f508537df38b1acb9837#rd
如有侵权请联系:admin#unsafe.sh