摘要:
##窗口的本质:GUI编程 ##HANDLE&HWND HANDLE内核对象的句柄表是私有的只能在有效的进程中使用,其它进程中无法使用 HWND(全局句柄表) ##GDI图形设备接口(Graphics Device Interface) 设备对象(HWND) DC(设备上下文,Device Cont 阅读全文
摘要:
##什么是线程 线程是附属在进程上的执行实体,是代码的执行流程。 一个进程可以包含多个线程,但是一个进程至少要包含一个线程。(进程是空间上的概念,线程是时间上的概念) 单核CPU可以执行多线程程序 有几个线程就表示着有几个代码在执行,但是它们并不一定是同时执行,例如单核的CPU情况下是不存在多线程的 阅读全文
摘要:
##回忆 我们了解到CreateProcess()函数创建进程会有一个结构体LPPROCESS_INFORMATION lpProcessInformation,这个结构体会有进程和线程ID、句柄信息,那么什么是ID?什么是句柄? ##内核对象 首先我们来了解一下内核对象,以后会经常与内核对象打交道 阅读全文
摘要:
##ID与句柄 如果我们成功创建一个进程,CreateProcess函数会给我们返回一个结构体,包括四个数 据:进程编号(ID)、进程句柄、线程编号(ID)、线程句柄. 进程ID其实我们早见过了,通常我们称之为PID 句柄每一个进程都有一张自己的私有的表,而操作系统也有一份句柄表,我们称为全局句柄表 阅读全文
摘要:
WIN32 malloc函数的底层实现是Win32API ##字符编码 原始的ASCII编码最多能表示127个符号 0-7F(十六进制) 缺点:表示的符号太少了 ASCII编码的扩展:GB2312或GB2312-80(中文) 127-255(7F-80) 缺点:不能沟通(可能出现乱码) 相当于一个汉 阅读全文
摘要:
##EFLAGS寄存器 ##进位标志CF(Carry Flag) 如果运算的最高位产生了一个进位或借位,那么,其值位1,否则其值为0 mov AL,0FF ADD AL,1 0X80+0X40 0X80:0 1000 0000 0X40:0 0100 0000 结果为:1100 0000 最高位并没 阅读全文
摘要:
##微内核操作系统的特点内核尽量缩小 ##windows内核包括了两大部分 ###操作系统内核(ntoskrnl.exe),另一部分则是迁移到了内核中即系统空间中的视窗服务(win32k.sys) #用户空间和系统空间 8086 80186cpu在寻址技术上还只能支持"实模式",还不能支持现代意义上 阅读全文
摘要:
##环境 VC6.0环境 ##空函数反汇编 #include "stdafx.h" void function(){ } int main(int argc, char* argv[]) { function(); printf("Hello World!\n"); return 0; } 我们通过 阅读全文
摘要:
###OllyDbg调试器 OllyDbg称为Ring3级的首选工具。可以识别数千个被和Windows频繁使用的函数,并能将其注释出来。它会自动分析函数过程、循环语句等 ###OllyDbg主界面 快捷键 Address列:显示被双击行地址的相对地址,再次双击返回标准地址模式。 Hex dump列: 阅读全文