- 博客(171)
- 收藏
- 关注
原创 王爽之《汇编语言》学习重点五
2.11 修改CS、IP的指令 在CPU中,程序员能够用指令读写的部件只有寄存器,程序员可以通过改变寄存器中的内容实现对CPU的控制。CPU从何处执行指令是由CS、IP中的内容决定的,程序员可以通过改变CS、IP中的内容来控制CPU执行目标指令。 我们如何改变CS、IP的值呢?显然,8086CPU必须提供相应的指令。我们如何修改AX中的值?可以用mov指令,如mov
2009-07-30 17:06:00 3795 2
原创 王爽之《汇编语言》学习重点四
2.9 段寄存器 我们前面讲到,8086CPU在访问内存时要由相关部件提供内存单元的段地址和偏移地址,送入地址加法器合成物理地址。这里,需要看一下,是什么部件提供段地址。段地址在8086CPU的段寄存器中存放。8086CPU有4个段寄存器:CS、DS、SS、ES。当8086CPU要访问内存时由这4个段寄存器提供内存单元的段地址。本章中只看一下CS。 2.10 CS和IP
2009-07-30 15:43:00 1367 1
原创 关于段地址,段的起始地址,基础地址
段地址 * 16 = 基础地址 (段的起始地址) (物理地址) CPU中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址。所以段地址为16位。 以下来源百度: 而段地址是针对内存的分段而言的,将每一段的段首地址定义为段地址.段地址的存在是由系统的分段存储决定的,通过段地址和偏移地址就能对数据进行寻访. 计算它们的物理地址只需要把段地址左移4位
2009-07-30 15:11:00 4349
原创 王爽之《汇编语言》学习重点三
2.5 16位结构的CPU 我们说8086CPU的上一代CPU(8080、8085)等是8位机,而8086是16位机,也可以说8086是16位结构的CPU。那么什么是16位结构的CPU呢? 概括地讲,16位结构(16位机、字长为16位等常见说法,与16位结构的含义相同)描述了一个CPU具有下面几方面的结构特性。 运算器一次最多可以处理16位的数据;
2009-07-30 13:34:00 1558
原创 王爽之《汇编语言》学习重点二
第2章 寄存器(CPU 工作原理) 一个典型的CPU(此处讨论的不是某一具体的CPU)由运算器、控制器、寄存器(CPU工作原理)等器件构成,这些器件靠内部总线相连。前一章所说的总线,相对于CPU内部来说是外部总线。内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系。简单地说,在CPU中:运算器进行信息处理;寄存器进行信息存储;控制器控
2009-07-30 10:57:00 2310
原创 王爽之《汇编语言》学习重点
第1章 基础知识1.1 机器语言 机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。 每一种微处理器,由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制,使它工作。所以每一种微处理器都有自己的机器指令集,也就是机器语言。
2009-07-30 09:31:00 4413 3
转载 VC 关键字 __asm
__asm微软详述:__asm关键字启动内联汇编并且能写在任何c/c++合法语句之处.它不能单独出现.它必须接汇编指令、一组被大括号包含的指令或一对空括号.术语“__asm 块”在这里是任意一个指令或一组指令无论是否在括号内。以下代码片段是在括号内的一个简单的__asm块。__asm{ mov al, 2 mov dx, 0xD007 out al, dx}另一种方法是,你
2009-07-29 15:51:00 946
转载 笔记(Hook API)
下面就说说API Hook的原理、实现以及自己的分析和实际运用中的问题。 一、什么是API Hook 见下图所示,API Hook就是对API的正常调用起一个拦截或中间层的作用,这样可以在调用正常的API之前得到控制权,执行自己的代码。其中Module指映射到内存中的可执行文件或DLL。 module0 module1 | |CALL modul
2009-07-29 15:44:00 640
转载 汇编ring3下实现HOOK API
汇编ring3下实现HOOK API 收藏 导读: 标 题:汇编ring3下实现HOOK API【原创】 作 者:非安全 时 间:2006-07-12,18:39 链 接:http://bbs.pediy.com/showthread.php?t=28895 汇编ring3下实现HOOK API(二次修改版) 【文章标题】汇编ring3下实现HOOK API 【文章作者
2009-07-29 14:58:00 754
转载 vc 下遍历文件夹
2008-12-28 20:26void find(char *lpPath){char szFind[MAX_PATH];char szFile[MAX_PATH];CString info; WIN32_FIND_DATA FindFileData; strcpy(szFind,lpPath); strcat(szFind,"//*.*");
2009-07-29 14:49:00 360 1
转载 pragma 预处理指令详解
2008-11-13 14:20pragma指令简介在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作.下面介绍了一下该指令的一些常用参数,希望对大家有所帮助!一. message 参数。message它能够在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为:#pr
2009-07-29 14:47:00 297
转载 static关键字
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下://Example 1#include v
2009-07-29 14:47:00 288
转载 CreateEvent 作用
当你创建一个线程时,其实那个线程是一个循环,不像上面那样只运行一次的。这样就带来了一个问题,在那个死循环里要找到合适的条件退出那个死循环,那么是怎么样实现它的呢?在Windows里往往是采用事件的方式,当然还可以采用其它的方式。在这里先介绍采用事件的方式来通知从线程运行函数退出来,它的实现原理是这样,在那个死循环里不断地使用WaitForSingleObject函数来检查事件是否满足,如果满足就退
2009-07-29 14:43:00 995
转载 双击dsw打开单独的VC workspace
双击dsw打开单独的VC workspace文件浏览器中->工具->文件夹选项-> 文件类型-> dsw文件-> 高级-> 编辑open操作,把“使用DDE"的勾去掉就行了
2009-07-29 10:11:00 488
转载 检测PE文件的有效性
2008年01月14日 星期一 13:41 本文刊登于2007年第8期的《黑客防线》,有内容部分改动。正文如下:从杀毒软件的角度来讲检测文件是否为PE文件,并再进一步判断使用何种方式对文件进行操作。在病毒感染可执行文件时,也是应该有这样步骤的。那么,就来看看杀毒软件是如何检测PE文件的有效性了。PE文件是在windows系统中任何可执行模块或者DLL
2009-07-29 09:17:00 1059
转载 PE文件格式深入浅出(一)
“ PE 的意思就是 Portable Executable(可移植的执行体)。它是 Win32环境自身所带的执行体文件格式。它的一些特性继承自 Unix的 Coff (common object file format)文件格式。"portable executable"(可移植的执行体)意味着此文件格式是跨win32平台的 :即使Windows运行在非Intel的CPU上,任何win32平台
2009-07-29 09:15:00 647
转载 公司职位简称表
首席品牌官【CBO】 chief brand officer 首席文化官【CCO】 Chief Cultural Officer 开发总监【CDO】 chief Development officer 首席执行官【CEO】 Chief Executive officer 首席财务官【CFO】 Chief finance officer 人事总监 【CHO】
2009-07-29 08:33:00 1409
转载 vc6 生成最小的exe文件
编译出体积尽可能的小的exe,步骤如下: 1.扔掉CRT. CRT提供了大量常用的函数.可说只要C/C++程序基本都会用到它.但是获得了方便的同 时也增大了不少体积.虽然可以通过动态链接到外部的dll来解决,但是自此就有了对一 个更大的dll的依赖.所以要减肥,就要先拿CRT开刀. 在cl的编译参数中加上/MD,再在link中加上/nodefaultlib:msvcrt.lib即可避免链接 到cr
2009-07-29 08:21:00 1849
原创 关于禁止Win系统关机
建立MFC程序,截获WM_QUERYENDSESSION消息,响应ON_WM_QUERYENDSESSION() ,消息响应函数对应为: afx_msg BOOL OnQueryEndSession(); 直接在该函数中return false 则拒绝了Windows的WM_QUERYENDSESSION的请求,Windows则无法正常软关机。(开始->关闭计算机->关机、注销、
2009-07-28 16:03:00 1146
转载 控制台程序的事件处理
控制台程序在Windows程序的角色中是非常強大且方便的,像VC,C#,Delphi等等,好多功能強大的語言都支持控制台程序。她沒有複雜的GUI,完全是32位的程序,能夠調用除GDI 函數之外的API,支持多線程,支持MFC等等。用她來調試程序、學習程序設計、做實驗等是再合適不過的了。我經常把我試驗性的程序用控制台方式來寫,非常方便。 Console程序不像Win32 GUI程序那樣具有消息隊
2009-07-28 14:58:00 1061
转载 如何屏蔽系统低级键
在windows中,通常只有很少的方法能够中断一些系统事件.我们首先考虑的机制是一个hook,因为微软给hook提供了全面的支持,它也存在于系统中,这样他能够中断某种事件.假如hook部工作的话,那么我考虑API hook. 微软并不想正式的支持API hook,所以如果可能的话,我会尽量的避免使用API hook.幸运的是,这个特别的问题可以通过设置hook来解决.在window N
2009-07-28 14:51:00 392
转载 Window关机函数ExitWindowsEx详解
“系统ShutDown”属于Windows系统的一种基本服务。功能上有“关闭系统”,“注销用户”,“锁定工作站”3中操作。SDK中提供了几个函数,来对此服务进行调用。 “关闭系统”功能使计算机可以被安全的关闭。所有在文件系统里缓冲的内容都被强制写入磁盘。然后,显示相应的对话框,提示用户计算机将被关闭或者已经准备好被关闭。可选的情况一般是计算机在关闭后重起,而不是直接切断电源。 如果
2009-07-28 14:24:00 449
转载 Windows消息映射函数原型
Message Map Functions in the Microsoft Foundation Class Library HANDLERS FOR WM_COMMAND MESSAGES Map Entry Function PrototypeON_COMMAND(, ) afx_msg void memberFxn();ON_COMMAND_EX(, ) afx
2009-07-28 13:21:00 594
转载 GetWindowLong函数
函数功能描述:用这个函数能够获得指定窗口的信息函数原型:LONG GetWindowLong( HWND hWnd,int nIndex )参数:hWnd:指定窗口的句柄nIndex:需要获得的信息的类型 值 功能nIndex取值如下:GWL_EXSTYLE 得到扩展的窗口风格GWL_STYLE 得到窗口风格GWL_WNDPROC 得
2009-07-28 11:10:00 929 1
转载 暴力搜索内存空间获得 Api 的线性地址
首先我们来看看为什么要在内存中搜索 Api 的线性地址。我们知道,一个 PE 文件在编译和连接成功后,会有一个 import table ,当需要执行 Api 的时候,会先在 import table 中得到 Api 的地址,然后调用它。这在一般的情况下是足以应付要求的了,可是当有病毒插入宿主的时候,情况就不同了——病毒是在 PE 文件编译好之后才插入的,它本身没有 import
2009-07-27 11:01:00 1730
原创 ASCII 码表
ASCII码表 信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。
2009-07-24 14:55:00 249
转载 大端(Big Endian)与小端(Little Endian)详解
大端(Big Endian)与小端(Little Endian)详解【大端(Big Endian)与小端(Little Endian)简介】 little endian和big endian是表示计算机字节顺序的两种格式,所谓的字节顺序指的是长度跨越多个字节的数据的存放形式. 假设从地址0x00000000开始的一个字中保存有数据0x1234abcd,那么在两种不同的内存
2009-07-23 17:02:00 650
转载 Win32的虚拟内存分配函数
虚拟内存API是其他API的基础。虚拟内存API以页为最小分配单位,X86上页长度为4KB,可以用GetSystemInfo函数提取页长度。虚拟内存分配函数包括以下函数: LPVOID VirtualAlloc(LPVOID lpvAddress, DWORD cbSize,
2009-07-23 15:58:00 734
转载 Windows内存管理与结构体MEMORY_BASIC_INFORMATION
基于32位Windows,摘自http://blog.csdn.net/yeming81/archive/2008/01/16/2046193.aspx 1. 进程地址空间 软件的进程运行于32位系统上,其寻址位也是32位,能表示的空间是2的32 =4G,范围从0x0000 0000~0xFFFF FFFF。 · NULL指针分区范围:0x0000 0
2009-07-23 15:40:00 3513
转载 理解内存分页机制
理解内存分页机制2008-03-17 17:07在8086时期,寄存器是16位,无法存放20位的物理地址,为了解决这问题,人们提出了分段机制,分段机制就是将内存分段,每段大小64kb,在段寄存器中放入段基址,然后+上段偏移量就成了物理地址或者线性地址,为什么说是或呢?因为在采用分页基址的系统中,线性地址加上页偏移量才是真正的物理地址,如果没有用分页机制,计算出来的就是物
2009-07-23 15:36:00 669
转载 列举本程序加载的模块信息
Windows核心编程之一列举本程序加载的模块信息本文作者:jimmy文章性质:原创发布日期:2004-04-02MessageBox(GetActiveWindow(),"即将列举本程序所加载的Dll文件","",MB_OK); MEMORY_BASIC_INFORMATION mbi; PBYTE ptr = NULL; DWORD dwBytesRetur
2009-07-23 15:31:00 397
转载 Windows关机过程分析与快速关机
Windows关机过程分析与快速关机 Windows开机和关机慢,很多时候慢得令人抓狂。特别是做嵌入式开发时(如XPE和WinCE),任谁都无法忍受开发出来的设备开关机的蜗牛速度。所以我们得为她加速。采用HORM是不错的方案,因为是直接从休眠文件中恢复系统现场,开机速度快了不少。采用HORM方案后,Windows默认的关机过程中,很多步骤对我们的设备来说,是完全不需要的,
2009-07-23 11:31:00 954
原创 定时关机
Windows XP系统通过一个名为Shutdown.exe的程序来完成定时关机操作(位置在Windows/System下),一般情况下XP的关机是由关机程序shutdown.exe来实现的,关机的时候是调用shutdown.exe程序的。 下面将其重要参数介绍一下: shutdown.exe -s 关闭此计算机 shutdown.exe -l 注销当前用户。 shu
2009-07-23 11:28:00 327
转载 取计算机特征码(网卡MAC、硬盘序列号、CPU ID、BIOS编号)
©2005 黄友生。本文由原作者发布于MSN Space、CSDN。你可以保存、在非商业软件中使用、在非盈利性文章中引用本文中的部分或全部文字,但请注明作者及原文地址。要用于其它用途,请先联系作者([email protected])。作者不保证本文完全正确无误、不对因本文中的理论或代码缺陷造成的损失负责。本文中所有原理及思想均取自网络,有修改。其中获取硬盘序列号、获取CPU编号、获取BIOS编号的原始代
2009-07-23 10:18:00 954
转载 HOOK API 函数跳转详解
什么是HOOK API: Windows下暴露的对开发人员的接口叫做应用程序编程接口,就是我们常说的API。我们在写应用层应用程序软件的时候都是通过调用各种API来实现的。有些时候,我们需要监控其他程序调用的API,也就是,当其他应用程序调用我们感兴趣的API的时候,我们在他调用前有一个机会做自己的处理,这就是HOOK API的涵义。 思路: 我们知道Wi
2009-07-22 09:46:00 3523 4
转载 内核级利用通用Hook函数方法检测进程
创建时间:2005-05-10文章属性:原创文章提交:LionD8 (liond8_at_126.com)内核级利用通用Hook函数方法检测进程作者: LionD8QQ: 10415468Email: [email protected]: http://blog.csdn.net/LionD8 or http://liond8.126.com介绍通用Hook的一点思想:
2009-07-21 17:26:00 427
转载 进程隐藏的两种方法
进程隐藏的两种方法 作者:dge 进程隐藏的两种方法这两种都是很古老的方法,因为无聊,所以写了一下。代码在XP_SP2下调试通过.(1).从活动进程链表(ActiveProcessLinks)中摘除自身,这种方法可以欺骗任务管理器,下面这个程序做的
2009-07-21 17:22:00 816
转载 自动关机批处理
作者:xyt 时间:2008-06-17 09:25:53 字体:[大 中 小] 我要投稿 @ECHO offTITLE 自动关机程序 作者:廖晓青:startCLSCOLOR 1frem 使用COLOR命令对控制台输出颜色进行更改MODE con: COLS=41 LINES=18rem MODE语句为设定窗体的宽和高set tm1=%time:~0,2%set tm2=
2009-07-21 17:21:00 330
转载 覆盖地址HOOK API范例代码
覆盖地址HOOK API范例代码作者:Gxter 时间:2008-06-17 09:11:44前天看到kruglinski的一段程序,我看了一下今天花了一下午的时间来自己实现了一个。不过我的没有用动态地址的方法,而是自己去写了静态的地址到里面灵活性没有他的大不过功能上面还是差不多的。下面我简单讲一下我的原理。跳转的具体原理就是用两句汇编句: mov eax , 123
2009-07-21 17:08:00 634
转载 HOOK API 简介
挂钩API技术(HOOK API) Hook api 是指截获特定进程或系统对某个API函数的调用,使得API的执行流程转向指定的代码。例如,在挂钩了系统对user32.dll模块中MessageBoxA函数的调用以后,每当有应用程序调用MessageBoxA函数,调用线程都会执行提供的代码,而不去执行真正的MessageBoxA api函数。 Windows 下的应用程序都建
2009-07-21 16:56:00 621
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人