- 博客(21)
- 收藏
- 关注
原创 弹出异常提示框的崩溃分析
前导分析当程序执行崩溃的时候,如果程序并没有设置任何崩溃捕获钩子时,操作系统会弹出提示框,提醒用户是否调试或是关闭程序,如果这个时候我们使用任务管理器或者外部第三方程序创建了一个崩溃程序的dump,那么我们该如何分析呢。调试分析准备尽可能的准备好dump,二进制文件,以及pdb或者是map文件。加载dump到windbg中,设置调试符号的路径。 我们首先看看主线程的堆栈示意,因为我们的模块基本位于
2016-09-01 13:48:47
6325
原创 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
1079
原创 windows handle manager
前导reactos 句柄的设计位于ex执行体中,一般情况下句柄的使用都或多或少的伴随着对象的使用。目前认为句柄是用户层对系统层引用。 内核句柄表的创建 /* Create kernel handle table */ PsGetCurrentProcess()->ObjectTable = ExCreateHandleTable(NULL); ObpKernelHandleT
2016-08-31 14:30:56
954
原创 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
2119
原创 windows message manager
SendMessage窗口过程函数的调用有两个入口,一个是自己的线程给自己窗口发通知,这样直接调用内部函数进行调用,使用IntCallMessageProc来调用函数,另一种方式是转换用户消息为内核消息,调用NtUserMessageCall来传递消息。LRESULT WINAPI SendMessageW(HWND Wnd, UINT Msg, WPARAM wParam
2016-08-31 10:57:33
1548
原创 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
1278
原创 chromium中HTTP网络资源的加载过程
chromium中HTTP网络资源的加载主要分两部分,一部分是缓存的网络资源,一部分是线上的网络资源。我们访问http网页的时候,首先访问httpcache,看缓存中的数据是否有效,如果有效,那么我们加载这个数据,如果无效,那么我们访问网络去重新加载资源,当然chromium中HTTP网络资源的加载并没有说起来这么简单,实际上架构设计还是比较复杂的。首先我们先看看HttpCache::Transac
2016-08-23 19:52:43
5863
1
原创 chromium中DNS主机地址解析过程——基于系统函数查询的方式
使用情景前面我们说过FTP协议的网络资源加载,其中在加载FTP资源的开始就要进行地址解析,对于ftp来说,它处理的状态是STATE_CTRL_RESOLVE_HOST。现在我们来分析一下chromium中是如何解析主机地址的,其代码主要位于net\dns中。 对于dns模块来说,对外的主要接口是HostResolverImpl::Resolve,我们从这个接口切入,来了解dns解析过程。上下文调用
2016-08-19 16:58:11
3426
2
原创 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
2274
原创 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
1656
原创 sql
链接数据库打开数据库chromium数据库使用的是sqlite进行存储数据的,必然在使用的时候需要一个包装,这个项目是sql,其位于chromium的一级目录中,内部项目并不十分复杂,慢慢的进行分析。首先我们要分析的是链接数据库。在一开始,我们要了解,数据库的访问是在数据库线程中的,而不是在UI线程的,这取决于chromium的多线程机制。Connection类是数据库sql的链接类,用来创建数据库
2016-08-12 09:52:14
724
原创 chromium中的同步机制
chromium中的同步机制我们可以在base\synchronization中看到chromium实现的同步机制,具体的有condition_variable, Lock,Spin_wait, Waitable_event,这几个比较常见的方式。LockLock的使用Lock的实现位于 base\synchronization\Lock*.* 中,在synchronization文件夹中,主要是实
2016-08-12 09:46:15
2089
原创 URLRequestFileJob
文件资源的加载过程URLRequestFileJob我们在浏览器的地址栏中输入一个文件的绝对路径,激发浏览器获取加载这个文件的内容。在net层,实际的请求是通过URLRequestFileJob来控制和加载文件的工作启动
2016-08-12 09:37:04
889
原创 std::bind源码剖析
bind实际上用途极为广泛,特别是在多线程的程序中,经常用它将函数进行包装,然后打包发送给工作线程,让工作线程去执行我们的任务。
2016-07-25 17:25:58
5161
原创 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
3153
原创 allocator
替换CRT堆处理函数base/allocator 中有个python文件用于处理VS中libcmt.lib静态库中堆的处理函数,将其obj文件去除,这对于我来说是一个比较新颖的思路,一直以为只有hook才是一个方案,没想到这种静态链接的方法也是不错的。
2016-05-26 19:23:08
735
原创 BrowserProcessSubThread
BrowserProcessSubThreadchromium WinMain中说到,浏览器主进程Browser的工作线程一部分,其类是BrowserProcessSubThread数据结构,那么我们来分析一下这个类。这个类继承自BrowserThreadImpl,而后者继承BrowserThread和base::Thread。base::Thread继承PlatformThread::Delega
2016-05-26 19:19:07
1971
原创 如何学好windows下C/C++编程
有时,当我说,我是学计算机的,有些人就会说:那个不好学,你脑袋肯定很聪明吧。我不好意思的一笑而过,其实我很笨,记得当初学C的时候我一个20行左右的排序小程序也会憋很长的时间。然而当真正的突破这个门槛,自然而然就是宽敞无疑的高速公路了。。。而学习编程和脑袋是否聪明也没什么必然的联系,智商高自然能好,然而哪一技术又不是这样呢。。编程最主要的是逻辑思维,计算机很笨的,它一点也不智能,它没有逻辑思维,
2012-03-21 12:29:56
679
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人