自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

转载 自己动手写正则表达式引擎

正则表达式的应用场景非常广阔,分布在计算机技术的方方面面,Linux 下很多工具都围绕正则表达式进行工作的,grep 、awk 、sed 都是文本处理的神器,语言方面perl , python ,Js 等各种脚本语音,都有功能强劲的正则表达式模块,前端编程中判断合法邮箱,判断合法ip地址都有正则表达式的身影。在方便使用正则表达式的同时,你是否也想知道,神奇的正则引擎是怎么生成出来的。在自己

2013-01-31 09:36:49 1632

转载 test和cmp一个很菜很基础的话题

看过破解教程,都知道test,cmp是比较关键,可是我一直不清楚它们究竟是怎么比较的,最后下决心找了很多资料,和大家一起把它们弄清楚.首先看看:状态寄存器(即标志寄存器)PSW(Program Flag)程序状态字(即标志)寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成,如下所示:15 14 13 12 11 10 9  8  7  6  5  4

2013-01-30 16:53:18 441

转载 汇编语言中"[]"的用法

内容:举例说明在汇编语言中,"[]"的用法"[]"的用法在"常见问题"已经有所说明,引用如下:1、push dword ptr [024c1100] 压栈024c1100值的双字2、cmp eax,[ebp+14] eax-ebp+14的有效值,不保留值,主要看标志位3、cmp byte ptr [eax],46 字节型eax-46,看标志位4、lea eax,[edx-0

2013-01-30 16:52:53 1540 2

转载 代码优化常识

32位代码优化常识 关于代码优化的文章实在太多了,遗憾的是大部分我都没有看,尽管他们就摆在我的床边(每当我要看的时候就忍不住打哈欠...嘿嘿).这篇文章较短所以翻了一下. 代码优化的含义: 代码优化的目标当然是体积小和速度快,但是在通常的情况下二者就象鱼和熊掌一样不能得兼,我们通常寻找的是这二者的折中,究竟应该偏向何方,那就得具体看我们的实际需要. 但有些常识是

2013-01-30 16:52:25 431

转载 浮点运算简介

浮点运算简介 对于习惯于C的灵活多变的数据类型和方便的计算那些人而言,了解底层的浮点运算似乎没有什么意义,现在Visual盛行的时代还有多少人关心那些所谓的底层呢? 对了AfOs来说,浮点运算是编程中很重要的一部分,因为我们可能会面临一些稍微复杂的运算,如果你和我一样是Die-hard的asm拥护者,不想轻易用C来解决问题,你肯定能想像在asm下用整数运算求sin(2.3)的痛苦,

2013-01-30 16:51:35 666

转载 浮点指令

浮点指令   对下面的指令先做一些说明: st(i):代表浮点寄存器,所说的出栈、入栈操作都是对st(i)的影响 src,dst,dest,op等都是指指令的操作数,src表示源操作数,dst/dest表示目的操作数 mem8,mem16,mem32,mem64,mem80等表示是内存操作数,后面的数值表示该操作数的内存位数(8位为一字节) x 1.  数据传递和对常量

2013-01-30 16:51:04 649

转载 商朝子的汇编语言教学

稍微有点儿计算机知识的朋友一定知道,计算机是只识别0和1的,最初那会儿,要写程序,就要用0和1来写,呵呵,Cool吧!所以曾经有过的对程序员的崇拜,可能就源自那个时候吧  后来,人们发现用0和1来写程序,太不爽了,不但写起来不上手,而且回过头来看的话,应该很难再看明白了,总之出于这些原因,就有了汇编语言。 汇编语言用一些助记符来代替0和1的多种组合,也就是各个指令,这样的话,从一定程度上来说,

2013-01-30 16:50:31 439

转载 8088 汇编跳转

8088 汇编跳转 一、状态寄存器PSW(Program Flag)程序状态字寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成,如下所示:15141312111098765432

2013-01-30 15:56:57 354

转载 8088 汇编速查手册

8088 汇编速查手册                     一、数据传输指令 ───────────────────────────────────────     它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.     1. 通用数据传送指令.         MOV    传送字或字节.         MOVSX  先符号扩展,再传送.

2013-01-30 15:56:19 375

转载 Google Protocol Buffers浅析(四)

本文作为结束篇,会稍微介绍下怎么反序列化GoogleBuffer数据,并在最后提供本系列文章中所用到的代码整理供下载。     上一篇文章介绍了怎样将数据序列化到了addressbook.data中,那么对于接受方而言该怎么解析出原本的数据呢。同样,protoc编译器生成的代码文件中提供了反序列化的接口,基本上和序列化的函数对应的,如下图所示:             上文

2013-01-30 13:51:44 350

转载 Google Protocol Buffers浅析(三)

本文主要会介绍怎么使用Google Protocol的Lib来序列化我们的数据,方法很多种,本文只介绍其中的三种,其他的方法读者可以通过自行研究摸索。但总的来说,序列化数据总的来说分为以下俩步:     1)使用数据源填充数据结构,无论数据源来自文件还是内存还是标准输入     2)利用Lib提供的序列化接口将数据结构序列化,然后存储在内存或者磁盘上

2013-01-30 13:51:12 318

转载 Google Protocol Buffers浅析(二)

本文开始将逐渐介绍怎么使用protocol buffers来完成序列化与反序列化数据的应用,开发环境为VS2008,语言为C++,外部库用的是googlebuffer库。      1、Google Protocol Buffer库      在我们的应用程序里面,需要使用到google buffer提供的库,大家可以到官网去下载,笔者也会提供一个精简后的Win32 Release

2013-01-30 13:50:47 389

转载 Google Protocol Buffers浅析(一)

本文主要偏向于介绍怎么使用Google的Protocol Buffer技术来压缩与解析你的数据文件,更加详细的信息请参阅Google开放的开发者网页文档,地址为:http://code.google.com/apis/protocolbuffers/docs/overview.html 。     一、简单的介绍     当然,在继续本文之前,读者还是需要对Google Proto

2013-01-30 13:49:38 356

转载 RPC漏洞的通用分析方法

一.工具准备1.IDA Pro Advanced 5.2(强大的静态逆向工具)2.HexRays(强大的可以将汇编代码转换为高质量的C代码的IDA插件)3.mIDA(极好的抽象RPC接口的IDA插件)二.找到溢出点1.补丁比较。(1)保留没有更新的文件到文件夹Old   (2)打补丁,将更新后的文件放到文件夹New   (3)使用“Darun Grim”等类似的

2013-01-28 15:18:07 957

转载 CPU同步机制漫谈

更快是计算机世界的一个永恒主题。要做到更快有两个方向:一是提高串行执行的速度,二是并行计算(Parallel Computing)。并行计算又可分为同一CPU内部多个流水线间的并行、同一个系统内多个CPU间的并行、和同一个网络中多个计算机系统间的并行。当并行运行的多个任务彼此无关,互不依赖时,整个系统的性能是最高的。但在现实的并行计算中,这是不可能的。至少同一组内的多个任务之间是存在依赖关系的

2013-01-28 15:11:03 1317

转载 Windows APC机制(二)

上文中讲到投递User Mode APCs是很特殊的,道理很简单,因为User Mode APC是ring3下的回调函数,显然ring0中的KiDeliverAPC()不能像Kernel Mode APC那样直接call,必须要先回到ring3环境下。当然不能像普通情况那样返回(否则就回到ring3系统调用的地方了),只有一个办法,那就是修改TrapFrame ,欺骗系统返回“APC回调函数”!K

2013-01-28 14:54:11 609

转载 Windows APC机制(一)

异步过程调用(APCs) 是NT异步处理体系结构中的一个基础部分,理解了它,对于了解NT怎样操作和执行几个核心的系统操作很有帮助。1) APCs允许用户程序和系统元件在一个进程的地址空间内某个线程的上下文中执行代码。2) I/O管理器使用APCs来完成一个线程发起的异步的I/O操作。例如:当一个设备驱动调用IoCompleteRequest来通知I/O管理器,它已经结束处理一个异步I/

2013-01-28 14:53:45 869

转载 VC++动态链接库(DLL)编程深入浅出

1.概论  先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。  静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该D

2013-01-09 11:39:58 475

空空如也

空空如也

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

TA关注的人

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