原理
文章平均质量分 78
chief1985
好好学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第二人生的源码分析(九十五)LLCheckBoxCtrl类实现复选按钮 - 大坡3D软件开发 - 优快云Blog
导读: 新一篇: 第二人生的源码分析(九十六)LLMenuItemGL实现菜单的显示 在第二人生的登录界面里,可以看到输入密码的下面有一个复选按钮,如下图所示: 这个按钮在这里主要用来设置是否帮助用户保存密码在磁盘里的,这样可以使用户每次不用输入密码,就可以登录进去。那么这个按钮是怎么样实现的呢?现在就分析跟这个相关的代码,它的继承代码如下: class LLC原创 2008-06-21 21:58:00 · 1243 阅读 · 0 评论 -
小波变换与傅里叶变换--机器视觉之旅
导读: 如果有人问我,如果傅里叶变换没有学好(深入理解概念),是否能学好小波。答案是否定的。如果有人还问我,如果第一代小波变换没学好,能否学好第二代小波变换。答案依然是否定的。但若你问我,没学好傅里叶变换,能否操作(编程)小波变换,或是没学好第一代小波,能否操作二代小波变换,答案是肯定的。一、一、基的概念我们要明确的是基的概念。两者都是基,信号都可以分成无穷多原创 2008-04-19 23:04:00 · 1914 阅读 · 0 评论 -
让你的MASM支持__fastcall调用方式
导读: 让MASM支持__fastcall调用方式作者:thebutterfly(Cloud)熟悉逆向工程和破解的朋友都知道, 调用函数是要遵循一定的调用约定的. 常见的调用约定有C调用约定(__cdecl), 标准调用约定(__stdcall), Pascal调用约定, 快速调用约定(__fastcall)等几种. 在这些调用约定中, MASM对前三者都有很好的支持, 唯独对__fas原创 2008-04-19 00:15:00 · 2080 阅读 · 0 评论 -
名词解释:DEADBEEF
导读: 名词解释:DEADBEEF搜索自googleDEADBEEF /ded-beef/ n. (From the Jargon file)The hexadecimal word-fill pattern for freshly allocated memory under a number of IBM environments, including the RS/6000.原创 2008-04-18 21:07:00 · 1649 阅读 · 0 评论 -
crt0.c代码内容解释和编译器构造
导读: 下面用红色字体,做部分解释: 1/**//*** 2*crt0.c - C runtime initialization routine 3* 4* Copyright (c) 1989-1997, Microsoft Corporation. All rights reserved. 5* 6*Purpose: 7* This the转载 2008-04-15 22:52:00 · 3242 阅读 · 1 评论 -
有谁能讲讲 一个EXE 文件是怎样被WINDOWS 给执行的,比如它是怎么被加载的,是怎么被装入内存的,CPU是怎么处理的。
导读: 在>一书中,候先生对一个进程从诞生到死亡的流程进行了简单的阐述。虽然只有十几点,但对于初学者来说,能够完全理解其中的含义已经不是一件易事了。总结自己的一些经验,对候先生的阐述进行了一些扩充,希望对初学者有所帮助,也希望高手指正其中的错误或不妥之处。**************************************************我对一个PROCESS (例App.原创 2008-04-15 20:42:00 · 4509 阅读 · 1 评论 -
mainCRTStartup 如何屏蔽控制台应用程序的窗口?
导读: 如何屏蔽控制台应用程序的窗口?(hangwire发表于2004-9-11 15:40:02) 众所周知,控制台应用程序一般都会显示一个控制台窗口(虚拟DOS窗口),但很多时候控制台程序的执行逻辑根本不需要与用户进行交互,所以显示这个难看的窗口纯属多余,那么如何将它屏蔽掉呢?下面我向大家介绍一种方法。 操作系统装载应用程序后,做完初始化工作就转到程序的入口点执行。程序的默认入口原创 2008-04-15 20:07:00 · 1699 阅读 · 1 评论 -
调试寄存器(DRx)理论与实践
导读: 标 题:DRx寄存器的使用(待续) (4千字)发信人:hume 时 间:2003-06-18 17:33:11详细信息:调试寄存器(DRx)理论与实践By Hume/冷雨飘心前言+牢骚:生活的苦痛就象烈火,时时煎熬着伤痕累累疲惫不堪的那颗心。我拼力挣扎,然而却无济于事……太残酷了….上帝也在苦笑。原创 2008-04-13 19:25:00 · 5790 阅读 · 0 评论 -
用 Graphviz 可视化函数调用
导读: 花一些时间遍历一下源代码,可以向您展现所有的函数调用过程;但是如果函数指针非常复杂,或者代码太长且晦涩难懂,那么这个过程就可能更加困难了。本文将向您介绍如何使用开源软件和一些定制的代码来构建一个动态的图形函数调用生成器。可以将以图形形式查看应用程序的调用过程看作是一个学习经历。这样做可以帮助您理解应用程序的内部行为,并获得有关程序优化方面的信息。例如,通过对那些经常调用的函数进原创 2008-04-11 23:50:00 · 1716 阅读 · 2 评论 -
函数调用堆栈变化分析 - quanming1119的专栏 - 优快云Blog
导读: 标 题: 献给汇编初学者-函数调用堆栈变化分析作 者: 堕落天才时 间: 2007-01-19,19:20链 接: http://bbs.pediy.com/showthread.php?threadid=38234跟一个朋友谈堆栈的时候 就写下了这段文字,顺便发到这里给需要的看看吧汇编初学者比较头痛的一个问题///////////////////////////////////原创 2008-04-11 23:35:00 · 1111 阅读 · 0 评论 -
内存管理内幕
导读: 本文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半手工地管理内存,以及如何使用垃圾收集自动管理内存。为什么必须管理内存内存管理是计算机编程最为基本的领域之一。在很多脚本语言中,您不必担心内存是如何管理的,这并不能使得原创 2008-04-11 23:06:00 · 833 阅读 · 1 评论 -
[《网络渗透技术》学习笔记(1)]——Windows平台上一个最简单溢出程序的调试分析--漫步阳光的BLOG
导读: 本文适合缓冲区溢出的初学者,高手请勿浪费时间:)买了xfocus的《网络渗透技术》一书,目前已经拜读了前两章。今晚用OllyDbg调试了一下第2章关于windows程序溢出的第一个也是最简单的例子,才开始有种豁然开朗的感觉。原来看的时候也感觉看懂了,但如果仔细琢磨,就会发现其实就连这么一个简单的例子也有好几个疑点。通过亲自调试,疑点逐步打消,目前就还剩下一个了(后面您会看到)。原创 2008-04-12 21:39:00 · 2784 阅读 · 0 评论 -
ENTER和leave
原文出处:http://www.wangchao.net.cn/bbsdetail_27691.html 高级语言支持,条件字节设置指令 AA.高级语言支持指令,开始于80186,主要是用来简化高级语言的某些特征,总共有3条指令:ENTER,LEAVE,BOUND a.ENTER,LEAVE,建立与释放堆栈框架命令。在C语言中,栈不仅用来向函数传递入口参数,而且在函数内部的局部变量也存转载 2008-04-11 23:32:00 · 1857 阅读 · 0 评论 -
[转]void及void指针深层探索
[转]void及void指针深层探索 1.概述许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。2.void的含义void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。void几乎只有“注释”和限制转载 2008-05-06 21:39:00 · 1515 阅读 · 2 评论 -
CRT Initialization
导读: Hi, I’m George Mileka and I work on the Visual C++ libraries team. My team owns the CRT, ATL, MFC and STL…One subject I have always been interested in is the startup code and initialization.原创 2008-05-10 23:23:00 · 1045 阅读 · 0 评论 -
C++ 初始化函数的实现 - Ling Xu 的 C++ 技术随笔 - C++博客
导读: 讲一点和实现细节相关的东西。在Visual C++中,所有在main之前执行的函数调用实际上都通过一个自动生成的函数来调用,比如下面这段代码:int func(){ return 1;}int data = func();int main(){ return 0;}实际上生成了三个函数:?func@@YAHXZ,对应于 func_main 对应于 main_$E1 对原创 2008-05-10 23:26:00 · 1762 阅读 · 0 评论 -
几个简单的汇编初学者问题总结
导读: 新一篇: 对C++ STL iostram 中 cin.get(char* cs,int size,char c=/n) 的理解 几个简单的汇编初学者问题总结 0 关于指令时间的问题 上次有兄弟问关于 指令时间的问题,答复查看 intel 手册是一个办法。 但很多人没有那个东东吧!,所以可以用另一招,在编译时加入 /Sc 选项: ML /原创 2008-06-15 22:58:00 · 1412 阅读 · 0 评论 -
【原创】我眼中的数据对齐
导读: 发帖人:hejiwen 时 间: 2005-06-16 16:37 原文链接:http://bbs.pediy.com/showthread.php?threadid=14526 详细信息: 我眼中的数据对齐 作者:溟初 在看雪论坛关于memcpy的帖子 (http://bbs.pediy.com/showthr原创 2008-06-05 17:54:00 · 2266 阅读 · 0 评论 -
【翻译】“PE文件格式”1.9版 完整译文(附注释) - 看雪软件安全论坛
标 题: 【翻译】“PE文件格式”1.9版 完整译文(附注释) 作 者: ah007 时 间: 2006-02-28,13:32 链 接: http://bbs.pediy.com/showthread.php?t=21932 $Id: pe.txt,v 1.9 1999/03/20 23:55:09 LUEVELSMEYER Exp $ PE文件格式系列译文之一---- 【翻译】“PE文原创 2008-05-19 21:33:00 · 3016 阅读 · 0 评论 -
C++编译器如何实现异常处理
http://www.51cto.com/art/200511/11258.htmhttp://localvar.blogchina.com/blog/1068938.htmlVishal Kochhar C++编译器如何实现异常处理- - 从实现的角度讲解VC++中的异常处理机制转载 2008-05-21 22:28:00 · 2179 阅读 · 0 评论 -
deadbeef---Hexspeak http://en.wikipedia.org/wiki/Hexspeak
Hexspeak, like leetspeak, is a novelty form of variant English spelling.Hexspeak was created by programmers who wanted a magic number, a clear and unique identifier with which to mark memory or data转载 2008-05-17 21:38:00 · 2321 阅读 · 0 评论 -
JIURL玩玩Win2k进程线程篇 PEB http://blog.youkuaiyun.com/imquestion/archive/2003/08/18/16421.aspx
JIURL玩玩Win2k进程线程篇 PEB 作者: JIURL转载 2008-05-17 21:24:00 · 1882 阅读 · 0 评论 -
windows进程中的内存结构http://blog.chinaunix.net/u2/66119/showart_548336.html
在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识。接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Globa转载 2008-05-12 21:45:00 · 1322 阅读 · 0 评论 -
Before main() 分析
导读: 本文分析了在main()之前的ELF程序流程,试图让您更清楚的把握程序的流程的脉络走向。 从而更深入的了解ELF。不正确之处,还请斧正。 ★ 综述 ELF的可执行文件与共享库在结构上非常类似,它们具有一张程序段表,用来描述这些段如何映射到进程空间. 对于可执行文件来说,段的加载位置是固定的,程序段表中如实反映了段的加载地址.对于共享库来说,段的加 载位置是浮动的,位转载 2008-05-12 23:06:00 · 1343 阅读 · 0 评论 -
分析应用程序加载时堆栈中的参数结构(opera)
导读: 标题 分析应用程序加载时堆栈中的参数结构 作者 opera (enthusiast) 时间 04/13/01 09:17 PM 内核在运行应用程序之前要在用户堆栈最顶部建立一参数块,缺省配置下参数块最大为32个页面. 用户堆栈最顶部(0xBFFFFFFC)的字保留为0,接下来依次为执行文件名字符串,环境字符串表,命令行参数字符串表,处理器名称字符串,然后是一段辅助信息表原创 2008-05-12 22:46:00 · 1555 阅读 · 0 评论 -
如何减小EXE和DLL的文件长度&init&crt&startup
作者: Matt Pietrek 翻译: lostall 原文: Under The Hood: Reduce EXE and D转载 2008-05-10 23:41:00 · 1910 阅读 · 0 评论 -
Windows应用程序的启动过程
导读: 操作系统实际上并不调用你编写的进入点函数。它调用的是C/C++ run-time startup function。该函数负责对C/C++ run-time library进行初始化,这样,就可以调用malloc和free之类的函数。它还能够确保已经声明任何全局对象和静态对象能够在代码执行以前正确的创建。所有的C/C++ run-time startup function的作用原创 2008-05-10 23:28:00 · 1348 阅读 · 0 评论 -
运行时和运行时库 (摘录) - Gavin - 博客园
导读: c运行时库除了给我们提供必要的库函数调用(如memcpy、printf、malloc等)之外,它提供的另一个最重要的功能是为应用程序添加启动函数。 C运行时库启动函数的主要功能为进行程序的初始化,对全局变量进行赋初值,加载用户程序的入口函数。 不采用宽字符集的控制台程序的入口点为mainCRTStartup(void)。下面我们以该函数为例来分析运行时库究竟为我们添加了怎样的入口程序。转载 2008-05-10 23:39:00 · 1035 阅读 · 0 评论 -
进入/退出过程指令
导读: 在许多高级语言中,每个子程序(函数)都有自己的局部变量,这些局部变量只有当它们所在的子程序执行时才有意义。为了保存这些局部变量,当执行到这些子程序时,因为其局部变量已建立起相应的堆栈框架,因而当退出子程序时,应将这个框架撤除。ENTER和LEAVE指令相互配合,可完成上述工作。指令格式 ENTER imm16 ,imm8 指令格式 LEAVE原创 2008-04-11 23:30:00 · 1605 阅读 · 0 评论 -
浅析malloc()的几种实现方式
导读: malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。 动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时原创 2008-04-11 23:03:00 · 1472 阅读 · 0 评论 -
Before main() 分析
导读: 本文分析了在main()之前的ELF程序流程,试图让您更清楚的把握程序的流程的脉络走向。 从而更深入的了解ELF。不正确之处,还请斧正。 ★ 综述 ELF的可执行文件与共享库在结构上非常类似,它们具有一张程序段表,用来描述这些段如何映射到进程空间. 对于可执行文件来说,段的加载位置是固定的,程序段表中如实反映了段的加载地址.对于共享库来说,段的加 载位置是浮动的,位转载 2008-04-08 18:45:00 · 1840 阅读 · 0 评论 -
好的计算机书籍 http://outmyth.blogdriver.com/outmyth/1122212.html
【动机】就计算机这个专业来说吧,因为我是非科班出身的学生,要重新开始补相应的知识,目前定下来要学习的基础理论知识有:离散数学,数据结构与算法,组成原理,汇编,操作系统,网络等等,有的时候觉得这里每一个知识点要学的深入的话都是无底洞,不过我又是那种喜欢追根究底的人,比如学习a知识的时候要用到b知识,我会停下来学学b知识,然后一直这样下去.....有时候也会觉得很累,觉得没有一个尽头。最近也看转载 2007-11-22 20:34:00 · 12303 阅读 · 1 评论 -
密码学领域重大发现:山东大学王小云教授成功破解MD5
导读: 2004年8月17日的美国加州圣巴巴拉,正在召开的国际密码学会议(Crypto’2004)安排了三场关于杂凑函数的特别报告。在国际著名密码学家Eli Biham和Antoine Joux相继做了对SHA-1的分析与给出SHA-0的一个碰撞之后,来自山东大学的王小云教授做了破译MD5、HAVAL-128、 MD4和RIPEMD算法的报告。在会场上,当她公布了MD系列算法的破解结果原创 2007-11-18 16:12:00 · 2192 阅读 · 0 评论 -
大内高手—内存模型 http://www.it221.cn/viewthread.php?tid=806
大内高手—内存模型作者:佚名 文章来源:本站原创 点击数:148 更新时间:2006-6-26 21:28:31 了解linux的内存模型,或许不能让你大幅度提高编程能力,但是作为一个基本知识点应该熟悉。坐火车外出旅行时,即时你对沿途的地方一无所知,仍然可以到达目标地。但是你对整个路途都很比较清楚的话,每到一个站都知道自己在哪里,知道当地的风土人情,对比一下所见所想,旅程可能更有趣一些。类似转载 2007-11-14 15:44:00 · 16669 阅读 · 0 评论 -
在Javascript中,什么是闭包(Closure)
导读: 时间:2006-10-13 11:12:02 来源:中国站长资讯网 作者:佚名 闭包的两个特点: 1、作为一个函数变量的一个引用 - 当函数返回时,其处于激活状态。 2、一个闭包就是当一个函数返回时,一个没有释放资源的栈区。 例1。 function sayHello2(name) { var text = Hello + name; //原创 2007-11-04 23:09:00 · 856 阅读 · 0 评论 -
对 "闭包-closure" 的一些见解http://wj.cnblogs.com/archive/2006/04/22/381851.html
导读: 今天在群里面瞎谈,就谈到“闭包”上来了,何种语言支持闭包?自己g下吧,其中JavaScript是支持闭包概念的一种语言/脚本(?)。以下是我对他的见解(以javascript举例)。 先了解下在一个对象内如何声明变量,一下以Test对象为例: Public变量: function Test() { this.x = 1} 或者 Test.protot原创 2007-11-04 23:06:00 · 911 阅读 · 0 评论 -
javascript语言中的闭包http://www.blogjava.net/zkjbeyond/archive/2006/05/19/47025.html
写在前面的话:试图翻译自 http://jibbering.com/faq/faq_notes/closures.html文中大量提到《ECMA 262 》,我也没时间读这东西,可能有问题理解有误。希望纠正。只译了前边部分,我得理解几天再继续下去。英文水平差,凑合看吧。国内找了半天没这篇文章中文版,献丑了就。读后有种豁然开朗的感觉,清楚了很多javascript的问题。一、Introd转载 2007-11-04 22:58:00 · 1405 阅读 · 0 评论 -
闭包(Closures)在各种语言中的例子 http://blog.youkuaiyun.com/ruby_cn/archive/2004/11/23/192588.aspx
作者:huangpuzhuang.com>http://www.ruby-cn.org/2004/11/23 在Martin Fowler的一篇关于闭包的文章中(http://martinfowler.com/bliki/Closures.html,中文版:http://www.ruby-cn.org/articles/closures.html),提到了一个例子,主要是用转载 2007-11-04 23:04:00 · 1301 阅读 · 0 评论 -
Closure http://www.martinfowler.com/bliki/Closure.html
As there is a growing interest in dynamic languages, more people are running into a programming concept called Closures or Blocks. People from a C/C++/Java/C# language background dont have closures a转载 2007-11-04 23:00:00 · 1183 阅读 · 0 评论 -
闭包 (closure)是啥?http://liubin.itpub.net/post/325/6688
关於闭包的说明,请看 perlref 。闭包 (closure)是个精确但又很难解释的电脑名词。在 Perl 里面,闭包是以匿名函数的形式来实现,具有持续参照位於该函数范围之外的文字式变数值的能力。这些外部的文字变数会神奇地保留它们在闭包函数最初定义时的值 (深连结)。 本文节选自:http://www.overk.com/feature/teach/prel/perlfaq7.html#转载 2007-11-04 22:53:00 · 917 阅读 · 0 评论
分享