摘要: http://blogs.msdn.com/b/ntdebugging/archive/2010/06/22/part-3-understanding-pte-non-pae-and-x64.aspxHello, Ryan Mangipano (ryanman) again with part three of my series on understanding the output of th... 阅读全文
posted @ 2016-12-29 09:00 BCN 阅读(494) 评论(0) 推荐(0) 编辑
摘要: http://blogs.msdn.com/b/ntdebugging/archive/2010/04/14/understanding-pte-part2-flags-and-large-pages.aspx Hello, it's Ryan Mangipano with part two of my PTE series. Today I'll discuss PDE/PTE flags, t... 阅读全文
posted @ 2016-12-29 09:00 BCN 阅读(760) 评论(0) 推荐(0) 编辑
摘要: http://blogs.msdn.com/b/ntdebugging/archive/2010/02/05/understanding-pte-part-1-let-s-get-physical.aspx Hello. It’s Ryan Mangipano again (Ryanman). To 阅读全文
posted @ 2016-12-29 08:58 BCN 阅读(736) 评论(0) 推荐(0) 编辑
摘要: 之前想手动查找线性地址对应的物理地址,以更好的理解操作系统的分页机制,cr3的值和指定进程的EPROCESS的值总是对不上。 具体参考笔记[原]线性地址到物理地址转换 今天突然灵光一闪,想起来张老师说过的关于CR3的相关知识,CR3是操作系统在切换进程的时候才会更新的,我们用.process /p 阅读全文
posted @ 2016-12-29 08:58 BCN 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 参考 [转]Part1: Understanding !PTE , Part 1: Let’s get physical [转]Part2: Understanding !PTE, Part2: Flags and Large Pages [转]Part 3: Understanding !PTE 阅读全文
posted @ 2016-12-29 08:55 BCN 阅读(1587) 评论(0) 推荐(0) 编辑
摘要: 原调试debugwindbgcrash崩溃COM 前言这是几年前在项目中遇到的一个崩溃问题,崩溃在了ComFriendlyWaitMtaThreadProc()里,没有源码。耗费了我很大精力,最终通过反汇编并结合原代码才最终搞清楚了事情的来龙去脉。本文的分析还是基于真实项目进行的,中间略去了很多反汇编的分析工作。文末有我整理的测试代码,大家可以实际体验一把TerminateThread()的杀... 阅读全文
posted @ 2016-12-27 17:49 BCN 阅读(408) 评论(0) 推荐(0) 编辑
摘要: c++代码(大体逻辑没问题,细节需要确认) DWORD __stdcall *ComFriendlyWaitMtaThreadProc(LPVOID lpThreadParameter) { CoInitializeEx(0,0); ThreadParam* pParam =(ThreadParam 阅读全文
posted @ 2016-12-27 14:57 BCN 阅读(274) 评论(0) 推荐(0) 编辑
摘要: structThreadParam { unsignedint p1;// +00h ebp-24h unsignedint p2;// +04h ebp-20h unsignedint cookie;// +08h ebp-1Ch LPSTREAM xxx;// +0Ch ebp-18h HAND 阅读全文
posted @ 2016-12-27 14:38 BCN 阅读(695) 评论(0) 推荐(0) 编辑
摘要: 原调试debugwindbg死锁deadlock 前言这是几年前在项目中遇到的一个死锁问题,在博客园发布过。我对之前的笔记进行了整理重新发布于此。本文假设小伙伴们知道一些基本概念,比如什么是.dump文件(转储文件,进程在某一时刻的快照),什么是windbg(windows下的调试利器),windbg的基本用法,调用栈,调用约定,等等。 背景介绍我们的程序会把dll注入到其它进程,然后后调用... 阅读全文
posted @ 2016-11-29 08:43 BCN 阅读(724) 评论(0) 推荐(0) 编辑
摘要: amd机器上使用android studio进行调试。因为amd的cpu不支持IntelVT,所以可能会有如下错误提示 我们有几个选择:1. 使用真机调试2. 配合genymotion3. 根据上图中的4) User an Android Virtual Device based on an ARM system image (This is 10x slower than hardware ac... 阅读全文
posted @ 2016-10-11 12:44 BCN 阅读(19905) 评论(0) 推荐(1) 编辑
摘要: 通过网线进行双机内核调试,被调试机器要求win8及以上的系统 被调试端设置: bcdedit /dbgsettings net hostip:192.168.1.2 port:55555 key:your.own.safe.key 调试主机端连接: windbg.exe -k net:port=55 阅读全文
posted @ 2016-09-21 15:22 BCN 阅读(1787) 评论(0) 推荐(0) 编辑
摘要: 有时候我们希望定义同一个宏,但是在选择不同平台进行编译的时候希望该宏的值指向不同的值。类似vs自带的Platform宏,在win32平台编译的时候,该宏指向win32,在选择x64平台进行编译的时候,该宏指向x64。如下图: 如果我们想定义一个宏,在win32平台下指向x86 在x64平台下指向x6 阅读全文
posted @ 2016-07-21 09:33 BCN 阅读(508) 评论(0) 推荐(0) 编辑