主页 详情

《Windows 95系统编程奥秘》_(美)(M.彼得雷克)Matt Pietrek著;米东等译_10275266_7505332783

【书名】:《Windows 95系统编程奥秘》
【作者】:(美)(M.彼得雷克)Matt Pietrek著;米东等译
【出版社】:北京:电子工业出版社
【时间】:1996
【页数】:592
【ISBN】:7505332783
【SS码】:10275266

最新查询

内容简介

目录

引言

关于您和读者的假定

伪码

样本程序

第一章 展望WINDOWS 95

Win32综述

Win32操作系统的地位

Windows NT工具软件

Win32s工具软件

Windows 95工具软件

Microsoft之外的Win32工具

未来开发程序的考虑

Win32的未来

小结

第二章 什么是Windows 95的新特征

与Windows 3.1的相似点

在Windows 3.1上的改进

DOS几乎不存在了

窗式系统

转换成信息系统

16位和32位进程接口

Win16Mutex

Windows 95 GDI

系统资源清除

把内存消耗压缩在IMB以下

新产品特性

Windows 95 Win32工具

Windows 95 Win32系统DLL

Windows 95中ring 0的组成

进程管理

线程管理

进程与线程同步

模块管理

Windows 95地址空间

Windows 95内存管理

内存映射文件

结构异常处理

记录(registry)

给用户附加的内存

系统信息和调试

关于Windows 95的一点“设计垃圾”秘密

Anti-hacking码

Win32 API隐患

自由系统资源的粗制滥造

Win16仍然有生命力

小结

第三章 模块、进程和线程

Win32模块

IMTE(Internal Module Table Entries[?]

IMTE结构

MODREF结构

Module-Related API函数

GetProcAddress和IGetProcAddress

x_FindAddressFromExportOrdinal

x_FindAddressFromExportName

GetModuleFileName和IGetModuleFileName

GetModuleHandle和IGetModuleHandle

x_GetMODREFFromFilename

x_GetHModuleFromMODREF

KERNEL32(简称K32)对象

Windows 95进程

什么是进程柄?什么是进程ID?

Windows 95进程数据库(PDB)

GetExitCodeProcess和IGetExitCodeProcess

SetUnhandledExceptionFiIter

OpenProcess

SetFileApisToOEM

环境数据库(The Environment Database)

FreeEnvironmentStringsA

GetEnvironmentStrings

GetCommandLineA

GetStdHandle

SetStdHandle

进程柄表

线程(Thread)

什么是线程柄?什么是线程ID?

线程数据库

线程信息块(TIB)

线程优先

GetThreadPriority(获得线程优先级函数)

SetThreadPriority(设置线程优先及函数)

CalculateNewPriority(计算新的优先级函数)

SetPriorityClass(设置优先类函数)

GetPriorityClass(获得优先类函数)

线程执行控制

GetThreadContext和IGetThreadContext

x_ThreadContext_CopyRegs

SetThreadContext和ISetThreadContext

SuspendThread和VWIN32 SuspendThread

ResumeThread

结构异常处理

结构异常处理及参数有效化

GetCurrentDirectoryA

x_invalid_param_handler

线程局部存储器(TLS)

TlsAlloc

TlsSetValue

TlsGetValue

TlsFree

GetExitCodeThread和IGetExitCodeThread

SetLastError

GetLastError

其它线程函数

Win32Wlk程序

Win32Wlk的内部解析

小结

第四章 USER和GDI子系统

Windows 95 USER模块

USER32转换例子

32位堆

神秘的GetFreeSystemResources释放

窗口系统的混合16/32位特性

信息系统的变化

线程消息队列

单一队列系统窗口

windows 95中(H)WND结构的改变

windows 95窗口类的改变

SHOWWND程序

选择16位USER.EXE函数的伪码

USER 32并不仅仅转换成USER.EXE

HeapWalk(堆行走函数)

Windows 95中单一码支持

Windows 95 GDI模块

GDI目标

Win16应用程序可用的新Win32 GDI函数

小结

第五章 内存管理

基于页面的Windows 95内存管理

内存分页

内存分页与选择器

Windows 95的地址空间以及Win32进程

共享内存

Windows 95的“写时拷贝”(Copy on Write)

PHYS程序

利用PHYS来检测共享内存

用PHYS来测试写时拷贝(copy on write)

PHYS程序中的“好素材”(适用于高水平读者)

内存文本(先进的内容)

Windows 95内存API

VMM函数

Win32虚拟数

VirtualAlloc

mmPAGEToPC

VirtualFree

VirtualQueryEx

VirtualQuery和lVirtualQuery

VirtualProtectEx

VirtualProtect和IVirtualProtect

VirtualLock和VirtualUnlock

Win32堆函数(HEAP FUNCTlONS)

Win32堆首(heap head)与堆场(heap arenas)

Windows 95堆首(heap header)

行走堆(WALKHEAP)程序

GetProcessHeap(获得进程堆函数)

HeapAlloc(堆配置函数)和IHeapAlloc

HPAlloc

hpCarve(堆分隔函数)

ChecksumHeapBlock(堆块检验和函数)

HeapSize和IHeapSize函数(堆尺寸函数)

HeapFree和IHeapFree(堆释放函数)

hpFreeSub

HeapReAlloc和IHeapReAlloc(堆再配置函数)

HPReAlloc函数

HeapCreate函数(堆生成函数)

HPInit(堆初始化函数)

HeapDestory和IHeapDestory(堆破坏函数)

HeapValidate(堆有效化函数)

HeapCompact(堆压缩函数)

GetProcessHeaps(获取进程堆函数)

HeapLock(堆锁定函数)

HeapUnlock(堆解锁函数)

Win32局部和全局堆函数(Local and Global Heap Functions)

Win32局部堆

LocalAlloc和ILocalAlloc(局部配置函数)

LocalLock和ILocalLock(局部锁定函数)

LocalUnlock(局部解锁函数)

LocalFree和ILocalFree(局部释放函数)

LocalReAlloc和ILocalReAlloc(局部再配置函数)

LocalHandle和ILocalHandle(局部句柄函数)

LocalSize和ILocalSize(局部尺寸函数)

LocalFlags(局部标志函数)

LocalCompact(局部压缩函数)

Win32全局堆函数(Global Heap functions)

LocalShrink(局部压缩函数)

GlobalAlloc

GlobalLock

GlobalUnlock

GlobalFree

GlobalReAlloc

GlobalFlags and IGlobalFlags

GlobalWire

GlobalUnWire

GlobalHandle

GlobalSize

GlobalFix

GlobalUnFix

GlobalCompact

杂函数(Miscellaneous Functions)

WriteProcessMemory和ReadProcessMemory

(写进程内存和读进程内存函数)

GlobalMemoryStatus和IGlobalMemoryStatus

(全局内存状态数)

GetThreadSelectorEntry和IGetThreadSelectorEntry

(获取线程选择器入口函数)

C/C++编译器的malloc和new函数

小结

第六章 Windows 95的三个核心部件

VxD剖析

从其它VxD中调用VxD函数

从Winl6(保护模式)代码调用VxD函数

Win32代码调用VxD函数

从哪儿可以找到Win32 VxD服务?

VMM提供的Win32 VxD服务

应用程序调用Win32 VxD服务

分析VWIN32.VXD

VWIN32.VXD的ring 0 VxD服务API

VWIN32.VXD的16位保护模式API

VWIN32.VXD的Win32 VxD服务APl

VWIN32 TDBX

Windows 95的三个核心部件怎样通信

VWIN32的KRNL386的知识

KERNEL32.DLL的KRNL386.EXE知识

(或者说,微软公司没告诉你的东西)

KERNEL32.DLL的VWIN32知识

VWIN32的KERNEL32.DLL知识

KRNL386的KERNEL32.DLL知识

KRNL386的VWIN32知识

Win32 VxD服务侦探程序(W32SVSPY)

W32SVSPY工作的一个样本

编写W32SVSPY的技术挑战

小结

第七章 Win16模块和任务

16位模块

为什么32位的模块和进程要有16位的表示方法?

NE头

Windows 95中的模块数据库新域

段表

资源表(The Resource Table)

入口表

驻留名表和非驻留名表

HMODULE和HINSTANCE

与模块相关的函数

GetModuleHandle函数

GetExePtr函数

GetProcAddress函数

16位任务

一些关于任务的错误认识

任务数据库(TDB)

关于任务的函数

GetCurrentTask()函数

IsTask()函数

GetTaskQueue()函数

MakeProcInstance()函数

TaskFindHandle函数

SHOW16程序

小结

第八章 可移植的执行模块和COFF OBJ格式

PEDUMP程序

基本的Win32和PE概念

PE头标

节表

经常遇到的节

.text节

Borland的CODE和.icode节

.CRT节

.bss节

DATA节

.data节

.rsrc节

.idata节

.edata节

.reloc节

.tls节

.rdata节

.drective节

名字含$的节(只对OBJ/LIB文件)

.debug$S和.debug$T节

各式各样的节

PE文件引入

IMAGE_THUNK_DATA DWORD

把IMAGE_IMPORT_DESCRIPTOR和

IMAGE_THUNK_DATA并在一起

PE文件引出

引出传递

PE文件资源

PE文件基址重定位

COFF符号表

COFF调试信息

COFF行号表

PE文件和COFF OBJ文件之间的差别

COFF LIB文件

Linker成员

Longnames成员

小结

第九章 读者自身探密

探密概览

用文件转储工具探密

用侦探工具探密

用反汇编探密

反汇编的学习和技术

弄清常用代码序列和约定

一个反汇编例子

高级技巧

使用SoftIce/Windows

应用硬件断点

VAR2MAP工具

VxD.(园点)命令

识别VxD服务程序

识别Win32 VxD服务程序

识别参数有效性检查和Ixxx函数

使用调试版本

Pentium优化的代码

小结

第十章 编写Win32 API侦探程序

拦截函数

在另一个进程内接种一个DLL

用Debug API来控制目标进程

编写登记API函数的程序段

参数信息编码

函数返回值

APISPY32程序

Win32s特有的代码

APISPYLD的代码

使用APISPY32时的注意事项

在你自己的程序中拦截函数

小结

附录A 未公布的KEPNEL32.DLL链接库


书查询(www.shuchaxun.com)本网页唯一编码:
feb8366936d5aa64b53c2f14f3c069df#8dbf0a13eb7f8a542d2de9fe119b6b42#50635935#10275266.zip