Debug某一未知PoC时,相信很多人都会被可能的crash反复折腾,往往只能凭经验在live或对dump debugging时下breakpoint不断尝试,一旦出错,只能重头来过,debugger一般没有提供对trace/dump进行step back的code回溯功能。这里给希望写Code replay plugin for debugger trace的朋友提供一篇以前的MS公开文档(涉及的只是内部系列工具之一,并不在MCPP范围内),希望能有所帮助,包括如何在做到trace到需要的信息(保证code回溯信息可查)的同时,又不至于严重影响系统性能,并且trace数据不会过大
Read More...
GS 校验cookie失败后通常会调用TerminateProcess()终止程序。为了做这个判断,如果我们挂一个Debugger,比如Windbg到进程上,重现问题,当进程终止时Windbg停了下来,但此时的堆栈并不是发生overflow的地方,抛出的exception是fake的,所以此时stack内容也是不可信的。那么重点就是在什么地方设置断点了: bp 在每一个可能发生BO的地方:可能很多; bp __report_gs_failure:因为这个function存在于每个dll或process,因此同样可能很多
Read More...