自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(88)
  • 资源 (1)
  • 收藏
  • 关注

转载 递归获取文件夹下的文件路径

#include #include /* 预处理申明 *///#pragma comment (lib, "User32.lib")/* 函数申明 */DWORD ListAllFileInDrectory(LPSTR szPath);/* 全局变量 *///记录所有的文件和目录数DWORD dwTotalFileNum = 0;/* *******************************

2013-02-03 13:42:34 263

转载 软件调试

http://blog.csdn.net/cuiweican/article/category/1097267

2012-05-10 11:28:47 311

转载 ntoh实现

typedef unsigned short int uint16;typedef unsigned long int uint32;//短整型大小端互换#defineBigLittleSwap16(A)((((uint16)(A) & 0xff00) >> 8) | \(((uint16)(A) & 0x00ff) //长整型大小端互换#d

2012-03-22 18:56:05 346

原创 关于在tcp上做开发的注意

1、包得解析?如果包过短的话怎么做?包过大的话怎么做?字节序问题

2012-03-14 19:22:55 133

原创 AES CBC模式的加解密

在网络上使用此方式的加解密,会出现的问题是,需不需要iv,密钥同步,加解密,大家第一次拿到的密钥可定是相同的,因为是对称加密。关键的问题是,要不要iv同步?CBC的关键点是,只要我的加密顺序和对方的解密顺序一致,(当然双方的初始密钥和iv都要相同)就可以正确加解密,不需要iv在网络上传输。就是说大家在初始化时的key和iv相同就可以了。剩下的iv的变化是在各自的顺序中自动变化的。

2012-03-14 14:18:36 278

转载 C++异常机制的实现方式和开销分析

在我几年前开始写《C++编码规范与指导》一文时,就已经规划着要加入这样一篇讨论 C++ 异常机制的文章了。没想到时隔几年以后才有机会把这个尾巴补完 :-)。还是那句开场白:“在恰当的场合使用恰当的特性” 对每个称职的 C++ 程序员来说都是一个基本标准。想要做到这点,就必须要了解语言中每个特性的实现方式及其时空开销。异常处理由于涉及大量底层内容,向来是 C++ 各种高级机制中较难理解和透彻掌握

2012-03-02 17:34:48 147

转载 如何让网页上的Flash视频在弹出窗口中播放

很多浏览器都有这个功能,当你把鼠标移动到网页视频上,就可以看到顶部有一个按钮出现,弹出独立播放器。当你点击按钮,视频就弹出在新窗口播放了,这时候视频窗口的大小可以自由调整不再受页面的限制。这是如何做到的呢?首先想到的是,浏览器缩放缩放了页面的大小,正好可以显示视频窗口的大小。好像火狐有一个魔镜功能,可以实现网页简报既截取网页任意部分。 要做到这点,浏览器的外框程序必须是自己写的(国

2012-02-22 00:20:54 243

转载 Chrome MessageLoop类分析

Windows程序是基于消息的,不管其封装形式如何,最后都要包含如下代码Cpp代码  MSG msg;   while(GetMesssage(&msg))   {   TranslateMessage(&msg);   DispatchMessage(&msg);    }  MSG msg;while(GetMesssage(&msg)){T

2012-02-22 00:16:12 147

转载 多线程下task的一场处理方式

class MyTask : public Task {public:virtual void Run() {DoSomething();}};ChromeThread::PostTask(ChromeThread::FILE, FROM_HERE, new MyTask); 有封装一个Task其实是很麻烦的事情,特别是我们经常是要调用当前对象的方法。因此Chrom

2012-02-21 23:56:01 283

转载 chrome task分析

多线程编程完全基于消息传递会比较麻烦,因为消息的封装和解析是比较麻烦的。不仅如此,被多个线程调用的其实是同一个对象的不同方法。比如Cpp代码  class Work   {    public:       void Start()       {            //CreateThread ... 创建线程或调用其它异步函数,结束时会调用OnCom

2012-02-21 22:40:59 350

转载 Chrome的线程模型和消息循环

看Chrome已经有一段时间了,但是一直都没有沉淀些内容下来,是该写写笔记什么的了,免得自己忘记了。看的都是Windows平台下的代码,所以记录也都是记录的。。。废话。。那么首先,先从最基础的东西记录起吧:Chrome的线程模型和消息循环。多线程的麻烦多线程编程一直是一件麻烦的事情,线程执行的不确定性,资源的并发访问,一直困扰着众多程序员们。为了解决多线程编程的麻烦,大家想出了很多经典

2012-02-21 22:37:57 417

转载 Chrome学习之LazyInstance

LazyInstance顾名思义,就是延迟创造类实例。    那chrome是怎么做到的呢?    为了性能,或者资源,程序中无法立即用到的对象,我们无需立即创造,比如一个界面的菜单对象,当你还没有点击菜单之前就创造了,那他一定会影响软件的启动性能。再比如数据库对象,或者线程...等等,进可能延迟,chrome高效的原因之一,在于调用无数个LazyInstance对象。研究过chr

2012-02-21 22:31:46 80

转载 Chrome消息系统

前面写了Chrome消息系统(1)前比较抽象,这章来点具体的,当然要结合代码来看了!现在我要关注的问题是:一个RenderProcess的消息怎么发送到BrowserProcess进程中的,这个消息走了那些路?注意,所说的IO线程是Browser进程中的IO线程,非Render进程中发的IO。所谓的IO线程主要用来接受网络消息和进程间的消息,我先把网络消息抛到一边,单独分析

2012-02-20 16:07:15 144

转载 chrome多进程架构

问题     构建一个永远不会崩溃或者挂起的排版引擎基本是不可能的,我们同样也不要指望哪天能够构建出一个绝对安全的排版引擎。     我们现阶段的浏览器运行在一个单用户,多合作,多任务的操作系统中。就像一个笨拙的应用程序可以让整个系统崩溃一样。一个糟糕的网页同样可以让一个现代的浏览器崩溃。其原因可能是一个插件出现bug,最终的结果是整个浏览器以及其他正在运行的标签被销毁。    现

2012-02-14 11:49:42 278

转载 Chromium如何显示网页

本文档从底层原理开始介绍了Chromium如何显示网页。阅读本文之前你应该首先阅读“Chromium的多进程架构”这篇文章,重点要理解主要组件结构图。您可能也有兴趣阅读“多进程资源加载“这篇文章来了解网页是如何从网络获取的。应用层次概念图layers每个盒子代表一个概念中的应用层。通常情况下应该有可能通过替换任意一层及其上层组建来生成一个新的浏览器。因此,没有任何层

2012-02-14 11:47:51 188

转载 Mhook与Detours

Detours vs. MhookDetours is available for free with a noncommercial license but it only supports the x86 platform. Detours can also be licensed for commercial use which also gives you full x64 sup

2012-02-01 16:43:41 323

转载 Understanding Protocols

For over a decade, Internet Explorer has enabled developers to extend the browser with new URL protocol schemes. These protocols can be one of two types:Asynchronous Pluggable Protocols - COM obje

2012-01-17 11:31:49 122

翻译 Authenticode and Weak Certificate Chains

微软在新的ie8版本中对下载做了安全处理,对于下载的文件进行验证,如果所下载的文件的签名用的是md2 md4,则微软会提示安全风险。做法是用WinVerifyTrust去验证,flag是WTD_DISABLE_MD2_MD4

2012-01-12 15:30:31 79

原创 The User-Agent String: Use and Abuse

When I first joined the IE team five years ago, I became responsible for the User-Agent string. While I’ve owned significantly more “important” features over the years, on a byte-for-byte basis, few h

2012-01-11 18:50:54 127

转载 wininet与urlmon

We often have to work with customers to understand why a specific IE scenario fails.  In some instances we may have to enable some custom logging and data collection to get to the root cause.  However

2012-01-11 11:41:41 234

原创 关于在线更新的一些想法

最近在项目中遇到一些问题,就是关于在线更新的。做客户端的严重的问题在于升级。特别是一些数据,当用户安装了浏览器后,以后的升级就是一个问题,不像web那样方便。比如:名牌的同步、双核库的同步、uac的上传、反钓鱼、木马库等等。特别是一些资源需要更新的。 现在自己能够用到的就是两种办法。对于在线更新,一般是小数据量的,这些可能要永久化。对于大批量数据,最好先将数据生成库或者文件存储到服务端

2012-01-06 16:25:09 64

翻译 chrome 多进程资源加载

<!--.goog-ws-layout-system-footer {background:#EAF3FD}-->背景 所有的网络操作都是在主进程的,不仅仅是因为主进程可以控制每一个子进程的网络请求,而且还可以对cookie、缓存进行处理。对连接数的控制也是很重要的。wininet和winhttp的比较winhttp的开发文档更加全面一些,winhttp

2011-12-16 15:33:36 316

翻译 chrome的多进程架构

当前浏览器的问题:没有一款浏览器能保证自己的渲染不发生crash或者挂起,也不能保证其渲染引擎的安全性非常完美。在多任务的操作系统上,浏览器都是单用户的,这里不知道是不是在指IE。浏览器自身的问题可能引起操作系统的问题。同时某一个bug货导致整个浏览器挂掉。多进程能够很好的防治各个进城之间的相互 影响。Architectural overview我们采用每一个tab一个进程的方

2011-12-14 15:17:50 225

转载 autoexp.dat入门

VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,点击上放大镜符号,会弹出单独的窗口内显示其中的字符串内容。    针对这部分功能,微软提供给开发者一个自定义

2011-12-13 10:55:00 78

转载 autoexp.dat入门

2010年06月19日 |本网站遵守CC版权协议 转载请注明出自www.thecodeway.com    VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,

2011-12-13 10:53:14 145

转载 SafeBrowsing Design

#summary High-level design for the SafeBrowsing service.#labels Featured,Phase-Design=!SafeBrowsing Design=Authors: Brian Ryner, Noe Lutz==Overview of the !SafeBrowsing Service==The !SafeBrow

2011-12-06 14:24:58 295

计算

淡淡的怒id号发 到付费纠纷 的附加费、

2011-11-19 14:50:10 66

原创 浏览器登陆及免登

浏览器登陆及免登aliyun.com第一套方案:在这个方案中主要是在浏览器的pendingenity和didnavigate进行url拦截。这样要处理在服务器响应失败的时候能够走原来浏览器的逻辑。同时还有token的加载晚于从设置进去的url时处理。还有只免登一次。处理浏览器刷新后能否免登。第二种方案:OAuth1.0;客户端登陆XAuth免登陆是浏览器自己在服务端返回

2011-11-19 13:23:32 774

原创 OAuth项目的经验

1、要有项目计划 2、按时进行,交付给别人之前要确保质量。多测试 3、及时沟通

2011-11-15 23:02:40 97

原创 IE查找的注意点

IE查找的注意点1、框架查找2、display:none和visibily:hide的过滤3、option即是表单选项的过滤4、当用bookmark创建标签,并且高亮,在取消高亮的时候,由于先前将bookmark存起来了,但是这样在取消的时候不能完全取消,后来就用在查找一次,在查找中将背景设置透明即可。

2011-11-08 15:22:22 53

原创 chrome同步之帐号登录

通过chrome的选项进行登录同步的时候的主要流程。chrome内部支持了基于Oauth的验证;首先用户输入用户名和密码,提交后服务端会返回sid和lsid,这两个内容是加密过的。然后用sid和lsid到服务端去获取这个用户的信息,主要包括:email、昵称、账号的类型及支持的种类。然后将这个用户名存储到profile中,删除密码。最后是获取token,也是用sid和lsid去获取

2011-11-01 09:50:10 552

原创 Oauth验证过程总结

1、basstring在用来生成签名的时候是需要全部进行url编码的;2、basstring作为整体的body上传的时候是不需要url编码的,这个时候的basestring和1中的相比多了签名

2011-10-31 14:59:08 68

转载 Browser Plugins vs Extensions – the difference

Overloaded termsOne of the least understood concepts in the Browser Plugin world is — browser plugins.  What they are, and even more: what they are not.  Probably at least once a week I answer a q

2011-10-25 20:05:09 206

原创 chrome的net库分析

1、Socketstreamsocketstream是用来为websocket服务的;一全双工的方式,支持代理及ssl;代理验证目前只之指出basic认证。

2011-10-14 16:29:34 164

转载 different the first cookies from third party cookies

First- and Third-Party ContextInternet Explorer 6 defines first-party content as that associated with the host domain. Third-party conte

2011-10-09 12:07:08 202

转载 字符编码笔记:ASCII,Unicode和UTF-8

字符编码笔记:ASCII,Unicode和UTF-8作者: 阮一峰日期: 2007年10月28日今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后

2011-10-08 14:01:30 62

转载 数字签名

今天,我读到一篇好文章。它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。我对这些问题的理解,一直是模模糊糊的,很多细节搞不清楚。读完这篇文章后,发现思路一下子就理清了。为了加深

2011-09-28 16:10:46 139

转载 Set a Thread Name in Native Code

//// Usage: SetThreadName (-1, "MainThread");//#include const DWORD MS_VC_EXCEPTION=0x406D1388;#pragma pack(push,8)typedef struct t

2011-09-21 16:45:19 149

翻译 chrome cookie机制翻译

CookieMonster的职责1、处理服务端的响应,确保回来的cookie是正确的并存储      cookie的路径必须是正确的(包含本地的和网络的)      cookie的路径中的预警必须是他所接受的域名中的部分2、当服务端需要cookie的时候,收集      cookie的域名必须是服务端主机名的部分      cookie的路径必须是请求路径的前缀

2011-09-19 16:49:04 140

原创 浏览器开发

1、网络钓鱼2、名牌3、快捷支付4、收藏夹备份5、免登

2011-09-06 11:47:05 99

ACCELERte c++,

ACCELERte c++,很好的一本。主要是介绍c++的入门。很好的。

2008-08-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除