![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
调试器里看世界
文章平均质量分 74
应该是只菜鸟
这个作者很懒,什么都没留下…
展开
-
signtool无响应排查
一次对signtool无响应的简单分析原创 2022-12-27 21:29:30 · 170 阅读 · 0 评论 -
Windows x64为动态代码添加unwind信息
Windows x64为动态代码添加unwind信息0x000x010x0064位程序的堆栈回溯与32位差别很大,调试器和 RtlCaptureStackBackTrace 无法再使用 ebp 链来遍历整个堆栈,而只能使用 prolog信息来回溯堆栈。正常的C/C++函数的prolog信息在编译时候生成并记录在PE64文件的unwind信息中,另外当前函数对应的异常处理函数也添加在unwind信息的尾部。所以对于不存在unwind信息的函数,异常处理流程无法找到其异常处理函数,也很可能无法正常展开堆栈找原创 2021-11-14 14:28:47 · 783 阅读 · 0 评论 -
x86记录堆栈信息
0x00x86遍历堆栈(忽略FPO)的原理很简单,就不多说了,直接上代码。 __asm push ebx __try { PVOID addr = NULL; __asm mov ebx,ebp for (size_t i = 0; i < 15; i++) { addr = NULL;...原创 2019-07-10 14:18:38 · 318 阅读 · 0 评论 -
windows x64异常分发流程
0x00对windows比较熟悉的同学应该都知道SEH这个概念,我们可以通过SEH来来捕获异常,之后决定怎么处理。具体的内容可以查看:https://bbs.pediy.com/thread-173853.htm在上面的文章中,少讲了VCH。我们根据异常的分发流程,在没有挂上调试器的情况下,异常会先被路由到veh,之后进入seh。那么就存在一个很严重的问题,seh是针对特定线程的特定函数的...原创 2019-06-15 15:31:47 · 2624 阅读 · 1 评论 -
!heap -x命令简介
0x00!heap –x命令在堆问题查找中很常见。它可以搜索包含特定堆地址的block,并且拿到堆对应的状态机前block的大小。比如:我们可以看到 Size=0x20,PrevSize=0x60。根据这两个size我们可以很简单地定位到前后的block。后面的block:可以看到 d13b30 的prevSize = d13b10的size前面的block:所以block...原创 2019-06-15 15:30:06 · 674 阅读 · 0 评论 -
出乎意料的msvcr库链接
0x00最近在维护一个工程代码,因为对可执行文件兼容性的要求,我们就没有链接msvcr* 库。今天增加了一个新功能,编译运行时,提示找不到 msvcr90.dll,直接退出了。使用删减代码的方法,确定了出问题的代码。伪码如下:BOOL bRtn = FALSE;struct A a = {0};struct B b;bRtn = funcA(b.x,b.y,0,&a);if...原创 2019-04-23 19:46:21 · 173 阅读 · 0 评论 -
windbg wt命令
0x00最近好忙,好久没写博客了,更新一波。Windbg中的wt命令可以简便快速追踪函数调用流程,命令格式如下:我在win10 x64 19h1 release 上测试 CoInitializeEx 的调用流程:使用命令: wt =3e13d4 3e13da命令会显示两部分信息:树形显示的调用堆栈与每个被调用子函数的指令数与调用次数。0x01Wt命令除了追踪调用流程以外我认为在...原创 2019-03-04 20:52:41 · 1512 阅读 · 0 评论 -
Mac App Crash分析
0x00最近分析了一个Mac App的crash,感觉挺有意思,记录分享下。背景略有点坑,手头有的只是一个二进制文件,一个crash文件。符号文件有,但是不知道怎么在IDA6.8里加载,map文件也没有。Crash文件:1、 每个线程的堆栈;2、 每个模块加载范围;3、 崩溃时寄存器的值;4、 崩溃的简单原因分析(段错误);5、 无效地址附近的符号及内存属性。另外二进制文件经过比...原创 2019-01-22 19:05:15 · 2344 阅读 · 1 评论 -
ShellExecute引起的句柄泄漏
0x00最近在检查公司Client的时候发现句柄表中存在 Process (9516)与Thread (9615): 17060。很明显,问题应该是CreateProcess之后没有将 PPROCESS_INFORMATION 相关的句柄关闭。于是搜索了下代码,发现至少对 Thread 句柄的处理十分干净。所以只能DUMP了进程,拉进Windbg分析。0x01使用 s –d 命令搜索了下内...原创 2019-01-16 19:32:10 · 1241 阅读 · 1 评论 -
c++虚表指针更新
0x00最近分析了一个dump,和虚函数表的指针有关系,总结下。Debug下编译,exe拖进IDA分析。0x01CI虚表:CC虚表:可以看出:1、 虚表的构成在编译之后就已经确定,运行期确定的是虚表指针的指向;2、 对于纯虚函数,虚函数的位置为 purecall,调用purecall就会导致崩溃。0x02我们知道c++的纯虚类无法被实例化,原因很有可能就是纯虚类对象的虚表...原创 2019-01-03 19:10:03 · 284 阅读 · 0 评论 -
卸载riched20导致崩溃
0x00在公司的crash平台上发现每天都存在调用ClipBoard函数时发生崩溃。函数最终崩溃在 ole32! RemoveClipboardDataObject 中。简易流程如下:pData = (IDataObject *)GetPropW(hClipWnd, L"ClipboardDataObjectInterface");__guard_check_icall_fptr(pDa...原创 2018-12-18 19:33:38 · 334 阅读 · 0 评论 -
windbg简单调试内存泄漏
0x00首先使用 gflags 设置heap堆栈追踪参数:Gflags.exe /i +ust设置完成后后,我们可以在“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options&amp;lt;Image Name&amp;gt;” GlobalFlag 中看到刚才设置的参数。...原创 2018-12-01 20:14:33 · 776 阅读 · 1 评论 -
windows ALPC简单研究
0x00本文是对ALPC的简单研究,由于时间有限,还有很多细节没有搞清楚,还有很多疏漏。希望能起到抛砖引玉的作用,能找到高手讨论学习。ALPC(Advanced/Asynchronous Local Procedure Call),是微软发展出来替代LPC,用于本机RPC的一种C/S模型技术。但是对用户来说,能看到只有RPC概念,很少能看到ALPC。我们看一个典型的ALPC同步调用堆栈:...原创 2018-11-26 20:04:44 · 8957 阅读 · 0 评论 -
windbg调试 wow64 内核dump
由于64位系统的普及,使用windbg调试内核dump时,经常会碰到 wow64的情况。在这种情况下,就不太好查看线程的32位用户栈。这里提供一些命令用于解决这个问题。1、 找到你需要查看的thread地址;2、 .thread /w [thread addr],命令解释看帮助文档;3、 .reload /user4、 Kb操作过后用户的32位栈显示出来了。注意,此时windbg处于...原创 2018-11-24 14:15:47 · 502 阅读 · 0 评论 -
windows驱动创建文件符号链接
0x00最近需要实现一个功能,在驱动中创建文件的符号链接。搜了一圈,只能找到 mklink 命令, mklink 命令显然不能在内核调用。因为大部分的系统调用最终都会调用到内核层的实现,所以整体思路就是搞清楚 mklink 的实现,找到对应的内核接口。0x01简单搜索了下系统目录,发现并没有 mklink 文件,因此怀疑 mklink 是 cmd 的内置命令。验证这个想法很简单,直接把 c...原创 2018-11-24 14:13:46 · 973 阅读 · 1 评论 -
windbg sx命令与简单应用
0x00sx 命令用于控制当异常或者事件发生时调试器的行为。Sx命令对应 windbg.exe(gui)的”debug”菜单项中的”Event Filters”子菜单项。基本语法如下:用法如下:Sx:列出所有支持的event与exception。Sxr:恢复事件与异常处理到默认配置。sx{e|d|i|n} [-c “Cmd1”] [-c2 “Cmd2”] [-h] {Excepti...原创 2018-11-24 14:06:54 · 308 阅读 · 0 评论 -
利用AppInit_Dlls注入在win10上的限制
0x00AppInit_Dlls注入方法特别简便,日常注入测试首选,在win7上屡试不爽,具体原理如下:support.microsoft.com/en-us/help/…docs.microsoft.com/en-us/windo…windows-7-and-windows-server-2008-r2但是最近使用win10系统之后发现,注入方法失效。在检查过所有的配置都正确之后,决定使...原创 2018-11-24 13:58:48 · 3238 阅读 · 2 评论