9 青城梦远

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 16w+

弹出异常提示框的崩溃分析

前导分析当程序执行崩溃的时候,如果程序并没有设置任何崩溃捕获钩子时,操作系统会弹出提示框,提醒用户是否调试或是关闭程序,如果这个时候我们使用任务管理器或者外部第三方程序创建了一个崩溃程序的dump,那么我们该如何分析呢。调试分析准备尽可能的准备好dump,二进制文件,以及pdb或者是map文件。加载dump到windbg中,设置调试符号的路径。 我们首先看看主线程的堆栈示意,因为我们的模块基本位于

2016-09-01 13:48:47

windows Object Manager

Handles Object Manager Initialization and Shutdown阶段 0 初始化: 1.初始化obci和obnm,创建信息和对象名称链表 2.创建安全描述符缓存 3.初始化默认对象事件和设备映射锁 4.在EPROCESS AND ETHREAD set GrantedAccess 为高等访问权限 5.创建句柄表,并设置到EPROCESS 的ObjectT

2016-08-31 15:00:53

windows handle manager

前导reactos 句柄的设计位于ex执行体中,一般情况下句柄的使用都或多或少的伴随着对象的使用。目前认为句柄是用户层对系统层引用。 内核句柄表的创建 /* Create kernel handle table */ PsGetCurrentProcess()->ObjectTable = ExCreateHandleTable(NULL); ObpKernelHandleT

2016-08-31 14:30:56

windows Heap manager

前缀我们首先看一下关于heap函数的前缀使用: 1. its native interfaces ( prefixed with rtl ) are available only for use in internal windows components or kernel-mode device drivers. 2. The documented windows api interfac

2016-08-31 14:18:41

windows message manager

SendMessage窗口过程函数的调用有两个入口,一个是自己的线程给自己窗口发通知,这样直接调用内部函数进行调用,使用IntCallMessageProc来调用函数,另一种方式是转换用户消息为内核消息,调用NtUserMessageCall来传递消息。LRESULT WINAPI SendMessageW(HWND Wnd, UINT Msg, WPARAM wParam

2016-08-31 10:57:33

windows config manager

Introductionthe configuration manager, the executive subsystem that implements the registry,organizes the registry`s on-disk files. windows organizes the registry data that a hive stores in containers

2016-08-31 10:50:19

chromium中HTTP网络资源的加载过程

chromium中HTTP网络资源的加载主要分两部分,一部分是缓存的网络资源,一部分是线上的网络资源。我们访问http网页的时候,首先访问httpcache,看缓存中的数据是否有效,如果有效,那么我们加载这个数据,如果无效,那么我们访问网络去重新加载资源,当然chromium中HTTP网络资源的加载并没有说起来这么简单,实际上架构设计还是比较复杂的。首先我们先看看HttpCache::Transac

2016-08-23 19:52:43

chromium中DNS主机地址解析过程——基于系统函数查询的方式

使用情景前面我们说过FTP协议的网络资源加载,其中在加载FTP资源的开始就要进行地址解析,对于ftp来说,它处理的状态是STATE_CTRL_RESOLVE_HOST。现在我们来分析一下chromium中是如何解析主机地址的,其代码主要位于net\dns中。 对于dns模块来说,对外的主要接口是HostResolverImpl::Resolve,我们从这个接口切入,来了解dns解析过程。上下文调用

2016-08-19 16:58:11

chromium中FTP网络资源的加载

FTP网络资源的加载render进程的处理我们在浏览器地址中输入ftp://ftp.sjtu.edu.cn/,来请求ftp数据。 此时windbg会中断,因为浏览器启动了一个render进程来渲染绘制。我们在render进程中如下下断 bu chrome_child!content::ResourceDispatcher::StartAsync这个函数由render进程调用,用来和browser进

2016-08-17 13:04:47

regex 源码分析

前期准备以下代码来源于vs2010sp1 路径:\VC\include\regex 文档参阅的是 ISO/IEC 14882 Information Technology - Programming Languages-C++ C++2011-9-1国际标准文档。正则表达式结果类 // TEMPLATE CLASS match_resultstemplate<class _BidIt,

2016-08-13 10:39:41

sql

链接数据库打开数据库chromium数据库使用的是sqlite进行存储数据的,必然在使用的时候需要一个包装,这个项目是sql,其位于chromium的一级目录中,内部项目并不十分复杂,慢慢的进行分析。首先我们要分析的是链接数据库。在一开始,我们要了解,数据库的访问是在数据库线程中的,而不是在UI线程的,这取决于chromium的多线程机制。Connection类是数据库sql的链接类,用来创建数据库

2016-08-12 09:52:14

chromium中的同步机制

chromium中的同步机制我们可以在base\synchronization中看到chromium实现的同步机制,具体的有condition_variable, Lock,Spin_wait, Waitable_event,这几个比较常见的方式。LockLock的使用Lock的实现位于 base\synchronization\Lock*.* 中,在synchronization文件夹中,主要是实

2016-08-12 09:46:15

IPC

创建子进程的主线程创建的时候会创建一个通信管道,用于和主进程进行通信。

2016-08-12 09:40:01

URLRequestFileJob

文件资源的加载过程URLRequestFileJob我们在浏览器的地址栏中输入一个文件的绝对路径,激发浏览器获取加载这个文件的内容。在net层,实际的请求是通过URLRequestFileJob来控制和加载文件的工作启动

2016-08-12 09:37:04

std::bind源码剖析

bind实际上用途极为广泛,特别是在多线程的程序中,经常用它将函数进行包装,然后打包发送给工作线程,让工作线程去执行我们的任务。

2016-07-25 17:25:58

vector源码剖析

vector前导准备源码位置 * C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include源码版本Copyright (c) 1992-2009 by P.J. Plauger. ALL RIGHTS RESERVED.Consult your license regarding permissions and rest

2016-07-21 15:01:39

LazyInstance

chromium 延迟加载实例

2016-05-26 19:25:10

allocator

替换CRT堆处理函数base/allocator 中有个python文件用于处理VS中libcmt.lib静态库中堆的处理函数,将其obj文件去除,这对于我来说是一个比较新颖的思路,一直以为只有hook才是一个方案,没想到这种静态链接的方法也是不错的。

2016-05-26 19:23:08

BrowserProcessSubThread

BrowserProcessSubThreadchromium WinMain中说到,浏览器主进程Browser的工作线程一部分,其类是BrowserProcessSubThread数据结构,那么我们来分析一下这个类。这个类继承自BrowserThreadImpl,而后者继承BrowserThread和base::Thread。base::Thread继承PlatformThread::Delega

2016-05-26 19:19:07

chromium WinMain

这里研究和分析一下chromium启动的初步,浅析一下

2016-05-26 19:14:15

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!