自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LewisCheng的专栏

谁能教我怎么在博文中贴稳定的照片阿~~不过没照片,不怎么影响看文章,大家放心!一找到我马上补上

  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

原创 PE格式详解(九)

          好了,如果你确实按进程看到了这里,那么我首先要钦佩你的毅力,感谢你的支持,同时也恭喜你已经对PE格式有了比较全面的了解。回想起来,其实PE格式的理解并不很困难,只是比较复杂,也容易搞混结构关系,所以我写了这第九篇,把PE格式的总体结构按研究的顺序给出,让这个轮廓清晰地出现在脑中。         好,如果我们拿到一个EXE,想要去分析它的格式,我们可以按下面的步骤进行:

2008-08-31 00:15:00 1416 1

原创 PE格式详解(八)

          上次讲了输出区段,还是比较简单的,但输入区段内容就稍稍多了点,保持耐心阿,这是本系列关于PE格式部分的最后一讲啦!         输入区段(Import Section),包含了所有从DLL中引用的函数的信息。与输出区段类似,这些信息是由几个数据结构描述的,其中最重要的是输入目录表(Import Directory)与输入地址表(Import Address Tabl

2008-08-31 00:14:00 2783

原创 PE格式详解(七)

          首先介绍一下DLL相关内容。根据Win32 Programmers Reference所述(自己翻译的):“在Windows中,动态链接库(DLL)是含有函数与数据的模块。一个DLL在运行时期由其调用模块加载,当DLL被加载时,它会被映射到主叫进程的地址空间中去。         DLL内有两类函数:输出(exported)与内部(internal)。输出函数是要

2008-08-31 00:13:00 1717 1

原创 PE格式详解(六)

         前面花了很大的力气终于把复杂的PE header讲完了,在PE header紧接着的就是区段表(Secton Table),所谓的紧接着,就是一个字节也不差的意思,^_^          还记得么?我们在很前面讲File header时,里面一个成员就是NumberOfSections,就是区段的个数,是7个,那么对应的区段表中的表项也应当有7项。         每一

2008-08-31 00:12:00 2034

原创 PE格式详解(五)

          上次文章因为实在太长,所以不得不把这么简单的一点内容单独成文。回顾一下,上次先说到PE header,然后说到其中的成员Optional header,它的最后一个结构成员DataDirectory,是一个含有16个IMAGE_DATA_DIRECTORY类型元素的数组,每一个元素都指向PE文件内的一个很重要的数据结构。    首先列出IMAGE_DATA_DIRECT

2008-08-31 00:11:00 1420

原创 PE格式详解(四)

          特地把Optional header放一篇文章,是因为它比较复杂与庞大,也因为它比较重要。         老样子,先是IMAGE_OPTIONAL_HEADER结构:typedef struct _IMAGE_OPTIONAL_HEADER {    WORD Magic;                     // 又是Magic    BYTE Ma

2008-08-31 00:09:00 1653

原创 PE格式详解(三)

         PE header对应C中的IMAGE_NT_HEADER32结构,如下:typedef struct _IMAGE_NT_HEADERS {    DWORD Signature;                // PE Signature PE.. (50h 45h 00h 00h)    IMAGE_FILE_HEADER FileHeader;       

2008-08-31 00:06:00 1706

原创 PE格式详解(二)

      一个PE程序总是以一个64字节的DOS header结构开头,目的就是为了如果程序在DOS中运行,DOS会识别它为正确的EXE并进而运行DOS  stub,它的作用就是输出字符串”This program cannot run in DOS mode.”然后退出。    下面就是DOS  Header在C语言中的结构表示(来自MinGW的winnt.h)typedef st

2008-08-29 22:12:00 1964 1

原创 PE格式详解(一)

      本系列主要是参考英文原本ARTeam的PE File Format Tutorial并加以注解,以最简洁的语言来阐述PE格式,帮助大家快速入门。在开始之前,请确定您懂得C语言,至少是基本数据类型、数组和结构体,以及会WinHEX的基本使用方法。任何错误都欢迎指出,感激不尽! (一)介绍PE 格式    PE格式(Portable Executable,可移植可执行文件)是原生的

2008-08-29 22:11:00 2928 4

原创 Windows Internals 学习笔记(一)

          《Windows Internals 4th Edition》是著名Windows内核专家Mark E. Russionovich与David Solomon Expert Seminars的主席David A. Solomon合作的一本介绍Windows架构和工作细节的著作。中文版由微软亚洲研究院研究员潘爱民老师翻译,这本书倍受各权威人员和机构所推荐,堪称经典。我第一次遇

2008-08-29 22:08:00 2740 2

原创 C反汇编实例(详细注解版)(三)

          上次我分析了一下,debug模式下反汇编后的算法部分代码,天才的您可能觉得不算糟,想再搞点花样,那么本文就能满足你的需求。天书夜读上其实还贴出来了release模式下的代码,它经过vc编译器O2的优化,我初次看到反汇编代码时,还真汗了一把。不过定下心来细细品位还是可以看懂的,尽管正如原书所说,连语句的对应顺序也已经不见了。。。         废话不多说,先贴出代码大伙

2008-08-29 22:07:00 2959 2

原创 C反汇编实例(详细注解版)(二)

     那么有了上述三方面的基础,我们就可以来逐一解读那段“传奇”的汇编代码了。初始化i00411A3E mov dword ptr [i],0跳转至条件判断00411A45 jmp myfunction+30h (411A50h)循环表达式,对i每轮加100411A47 mov eax,dword ptr [i]00411A4A add eax,100411

2008-08-29 22:06:00 2044 1

原创 C反汇编实例(详细注解版)(一)

 呵,好久没写CSDN文章了,来凑个热闹。最近我阅读了楚狂人,wowocock写的《天书夜读》试读本,对C反汇编感触颇深,书中有一例算法反汇编,其对汇编的阅读确实富有挑战,而该书中也未详解,在此,我谨将此例详细分析如下,帮助大家更好理解C反汇编代码,若有任何错误,请大家批评指正!         该例的要求是求两个3x3矩阵的乘积,其C源代码如下:int myfunction(int

2008-08-29 22:03:00 3604 1

转载 转载:火星人计算pi的牛程序分析

一、源程序 本文分析下面这个很流行的计算PI的小程序。下面这个程序初看起来似乎摸不到头脑,不过不用担心,当你读完本文的时候就能够基本读懂它了。 程序一:很牛的计算Pi的程序 int a=10000,b,c=2800,d,e,f[2801],g;  main() { for(;b-c;)     f[b++]=a/5; for(;d=0,g=c*2;c -=14,printf("%.4d",e+

2007-07-23 20:59:00 1227

原创 原创:大数阶乘的讨论(4) (源码未实现)

(3)中我说过,要根据不同的大小适当调整两个常数,否则会导致计算错误,显然这是相当麻烦,同时由于大量调用multiply函数,又浪费了不少时间。综上,我打算做以下改进:1.为了提高multiply的速度,可以把3里的multiply函数改成inline内联的,理由是(3)中的乘法函数比较简短,而且代码调用也只有1处,不会导致程序体积变得很大。不过注意,请把c后缀改成cpp!2.突然想到

2007-07-23 20:49:00 846

原创 原创:大数阶乘的讨论(3)

上次,我使用了字符数组来实现了大数阶乘的高精度计算,但效率较低,现在我又使用了uint数组来代替char数组,这样的速度又快了很多,代码也得以大为简化,现贴c语言源码如下,gcc编译通过://: High Precision Calculator updated at 17:14 7/11/2007 By Lewis Cheng//PS This program only support 40

2007-07-23 20:38:00 983

原创 原创:大数阶乘的讨论(2)

上次我实现的阶乘虽然速度超快,但精确度实在欠缺,这次使用字符串数组储存每个位,可以实现阶乘完整输出,以下是我不久前写的c++代码,其中还有一个计算大整数乘幂的函数//: High Precision Calculator By Lewis Cheng Completed at 12:55 7/11/2007// P.S. This algorithm is based on char arra

2007-07-23 20:32:00 770

原创 原创:大数阶乘的讨论(1)

阶乘一般定义为n!=nx(n-1)x(n-2)...x2x1用普通函数可以表示为int fact(int n){     int r;     while(n!=1)     {               r*=n;               --n;     }     return r;} 也可以用函数递归形式int fact(int n

2007-07-23 20:26:00 885

原创 原创:基于公钥的LC加密算法

  简易LC公钥密码Elementary Lewis Cheng Public-key Cryptosystem(初级版) 一.此密码体制涉及下列变量:      公开:密文c, 公钥e>2 , 正整数p保密:明文m>0, 私钥d, 正整数n二.计算过程如下:流程:发送者利用e,m执行加密运算得到c,p,d,解密者利用e,d,p,c解出m(1)    任意选

2007-07-23 20:00:00 1257 2

Oracle 8350262补丁!升级到10.2.0.4/5不能起em的进

Oracle 8350262补丁!升级到10.2.0.4/5不能起em的进,补丁体积很小,就是更新了下SSL证书,平台通用。不大好找哦

2011-02-26

算法分析与设计(含java数据结构类库)

算法分析与设计 Michael.T.Goodrich 清晰版 djvu格式,用windjview即可打开,有绿色版 另附该书作者写的jdsl,java数据结构类库,很全面和实用~

2011-01-31

空空如也

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

TA关注的人

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