《Windows 95系统编程奥秘》求取 ⇩

目录1

引言1

关于您和读者的假定1

伪码2

样本程序2

第一章 展望WINDOWS 953

Win32综述3

Win32操作系统的地位5

Windows NT工具软件6

Win32s工具软件7

Windows 95工具软件8

Microsoft之外的Win32工具10

未来开发程序的考虑11

Win32的未来11

小结11

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

与Windows 3.1的相似点14

在Windows 3.1上的改进19

DOS几乎不存在了19

窗式系统20

转换成信息系统21

16位和32位进程接口22

Win16Mutex24

Windows 95 GDI25

系统资源清除26

把内存消耗压缩在IMB以下26

新产品特性26

Windows 95 Win32工具27

Windows 95 Win32系统DLL27

Windows 95中ring 0的组成28

进程管理30

线程管理32

进程与线程同步33

模块管理35

Windows 95地址空间36

Windows 95内存管理37

内存映射文件39

结构异常处理39

记录(registry)40

给用户附加的内存42

系统信息和调试43

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

Anti-hacking码45

Win32 API隐患46

自由系统资源的粗制滥造47

Win16仍然有生命力47

小结47

第三章 模块、进程和线程49

Win32模块50

IMTE(Internal Module Table Entries[?]51

IMTE结构52

MODREF结构55

Module-Related API函数57

GetProcAddress和IGetProcAddress57

x_FindAddressFromExportOrdinal61

x_FindAddressFromExportName64

GetModuleFileName和IGetModuleFileName66

GetModuleHandle和IGetModuleHandle69

x_GetMODREFFromFilename71

x_GetHModuleFromMODREF72

KERNEL32(简称K32)对象73

Windows 95进程74

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

Windows 95进程数据库(PDB)77

GetExitCodeProcess和IGetExitCodeProcess84

SetUnhandledExceptionFiIter85

OpenProcess85

SetFileApisToOEM86

环境数据库(The Environment Database)87

FreeEnvironmentStringsA89

GetEnvironmentStrings89

GetCommandLineA89

GetStdHandle90

SetStdHandle90

进程柄表91

线程(Thread)92

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

线程数据库95

线程信息块(TIB)102

线程优先103

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

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

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

SetPriorityClass(设置优先类函数)107

GetPriorityClass(获得优先类函数)109

线程执行控制110

GetThreadContext和IGetThreadContext110

x_ThreadContext_CopyRegs113

SetThreadContext和ISetThreadContext114

SuspendThread和VWIN32 SuspendThread117

ResumeThread118

结构异常处理119

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

GetCurrentDirectoryA124

x_invalid_param_handler126

线程局部存储器(TLS)128

TlsAlloc129

TlsSetValue131

TlsGetValue131

TlsFree132

GetExitCodeThread和IGetExitCodeThread134

SetLastError134

GetLastError134

其它线程函数134

Win32Wlk程序136

Win32Wlk的内部解析138

小结140

第四章 USER和GDI子系统141

Windows 95 USER模块141

USER32转换例子144

32位堆148

神秘的GetFreeSystemResources释放153

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

信息系统的变化162

线程消息队列165

单一队列系统窗口171

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

windows 95窗口类的改变178

SHOWWND程序181

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

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

HeapWalk(堆行走函数)192

Windows 95中单一码支持196

Windows 95 GDI模块199

GDI目标201

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

小结208

第五章 内存管理209

基于页面的Windows 95内存管理209

内存分页209

内存分页与选择器212

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

共享内存218

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

PHYS程序221

利用PHYS来检测共享内存226

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

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

内存文本(先进的内容)230

Windows 95内存API234

VMM函数235

Win32虚拟数237

VirtualAlloc238

mmPAGEToPC242

VirtualFree243

VirtualQueryEx244

VirtualQuery和lVirtualQuery246

VirtualProtectEx247

VirtualProtect和IVirtualProtect250

VirtualLock和VirtualUnlock251

Win32堆函数(HEAP FUNCTlONS)251

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

Windows 95堆首(heap header)256

行走堆(WALKHEAP)程序259

GetProcessHeap(获得进程堆函数)261

HeapAlloc(堆配置函数)和IHeapAlloc262

HPAlloc263

hpCarve(堆分隔函数)267

ChecksumHeapBlock(堆块检验和函数)269

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

HeapFree和IHeapFree(堆释放函数)271

hpFreeSub273

HeapReAlloc和IHeapReAlloc(堆再配置函数)276

HPReAlloc函数278

HeapCreate函数(堆生成函数)281

HPInit(堆初始化函数)283

HeapDestory和IHeapDestory(堆破坏函数)287

HeapValidate(堆有效化函数)290

HeapCompact(堆压缩函数)290

GetProcessHeaps(获取进程堆函数)291

HeapLock(堆锁定函数)291

HeapUnlock(堆解锁函数)291

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

Win32局部堆293

LocalAlloc和ILocalAlloc(局部配置函数)295

LocalLock和ILocalLock(局部锁定函数)299

LocalUnlock(局部解锁函数)301

LocalFree和ILocalFree(局部释放函数)303

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

LocalHandle和ILocalHandle(局部句柄函数)310

LocalSize和ILocalSize(局部尺寸函数)312

LocalFlags(局部标志函数)314

LocalCompact(局部压缩函数)316

Win32全局堆函数(Global Heap functions)316

LocalShrink(局部压缩函数)316

GlobalAlloc317

GlobalLock317

GlobalUnlock317

GlobalFree317

GlobalReAlloc317

GlobalFlags and IGlobalFlags318

GlobalWire318

GlobalUnWire318

GlobalHandle318

GlobalSize318

GlobalFix319

GlobalUnFix319

GlobalCompact319

杂函数(Miscellaneous Functions)319

WriteProcessMemory和ReadProcessMemory319

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

GlobalMemoryStatus和IGlobalMemoryStatus322

(全局内存状态数)322

GetThreadSelectorEntry和IGetThreadSelectorEntry324

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

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

小结328

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

VxD剖析330

从其它VxD中调用VxD函数331

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

Win32代码调用VxD函数334

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

VMM提供的Win32 VxD服务341

应用程序调用Win32 VxD服务342

分析VWIN32.VXD345

VWIN32.VXD的ring 0 VxD服务API345

VWIN32.VXD的16位保护模式API347

VWIN32.VXD的Win32 VxD服务APl348

VWIN32 TDBX354

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

VWIN32的KRNL386的知识358

KERNEL32.DLL的KRNL386.EXE知识360

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

KERNEL32.DLL的VWIN32知识360

VWIN32的KERNEL32.DLL知识360

KRNL386的KERNEL32.DLL知识364

KRNL386的VWIN32知识365

Win32 VxD服务侦探程序(W32SVSPY)365

W32SVSPY工作的一个样本367

编写W32SVSPY的技术挑战370

小结372

第七章 Win16模块和任务373

16位模块374

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

NE头376

Windows 95中的模块数据库新域384

段表385

资源表(The Resource Table)387

入口表390

驻留名表和非驻留名表391

HMODULE和HINSTANCE392

与模块相关的函数394

GetModuleHandle函数394

GetExePtr函数397

GetProcAddress函数401

16位任务406

一些关于任务的错误认识409

任务数据库(TDB)410

关于任务的函数418

GetCurrentTask()函数418

IsTask()函数419

GetTaskQueue()函数420

MakeProcInstance()函数421

TaskFindHandle函数425

SHOW16程序427

小结432

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

PEDUMP程序435

基本的Win32和PE概念436

PE头标437

节表444

经常遇到的节450

.text节450

Borland的CODE和.icode节451

.CRT节452

.bss节452

DATA节452

.data节452

.rsrc节453

.idata节453

.edata节453

.reloc节453

.tls节454

.rdata节455

.drective节456

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

.debug$S和.debug$T节456

各式各样的节457

PE文件引入457

IMAGE_THUNK_DATA DWORD460

把IMAGE_IMPORT_DESCRIPTOR和461

IMAGE_THUNK_DATA并在一起461

PE文件引出463

引出传递466

PE文件资源467

PE文件基址重定位470

COFF符号表472

COFF调试信息477

COFF行号表479

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

COFF LIB文件481

Linker成员483

Longnames成员485

小结485

第九章 读者自身探密487

探密概览488

用文件转储工具探密489

用侦探工具探密497

用反汇编探密503

反汇编的学习和技术504

弄清常用代码序列和约定506

一个反汇编例子521

高级技巧526

使用SoftIce/Windows526

应用硬件断点527

VAR2MAP工具528

VxD.(园点)命令528

识别VxD服务程序530

识别Win32 VxD服务程序531

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

使用调试版本533

Pentium优化的代码533

小结534

第十章 编写Win32 API侦探程序535

拦截函数536

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

用Debug API来控制目标进程541

编写登记API函数的程序段543

参数信息编码545

函数返回值546

APISPY32程序548

Win32s特有的代码567

APISPYLD的代码568

使用APISPY32时的注意事项581

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

小结588

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

1996《Windows 95系统编程奥秘》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由(美)(M.彼得雷克)Matt Pietrek著;米东等译 1996 北京:电子工业出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

Windows 95实用教程(1996 PDF版)
Windows 95实用教程
1996 北京:电子工业出版社
Windows 3.1奥秘续篇( PDF版)
Windows 3.1奥秘续篇
清华大学出版社
21天学通WINDOWS 95编程  下(1997 PDF版)
21天学通WINDOWS 95编程 下
1997 人民邮电出版社;西蒙与舒斯特国际出版公司
Windows 3.1奥秘(1994 PDF版)
Windows 3.1奥秘
1994 成都:电子科技大学出版社
Windows 3.1奥秘 续篇(1995 PDF版)
Windows 3.1奥秘 续篇
1995 北京:清华大学出版社
Word for Windows 95奥秘(1996 PDF版)
Word for Windows 95奥秘
1996 北京:电子工业出版社
Windows 95编程指南(1997 PDF版)
Windows 95编程指南
1997 清华大学出版社;西蒙与舒斯特国际出版公司
Windows 95特色编程(1997 PDF版)
Windows 95特色编程
1997 北京:北京航空航天大学出版社
Windows 95操作系统(1998 PDF版)
Windows 95操作系统
1998 北京:北京科学技术出版社
Windows 98系统秘笈(1999 PDF版)
Windows 98系统秘笈
1999 北京:人民邮电出版社
Windows 95实用编程与范例(1997 PDF版)
Windows 95实用编程与范例
1997 北京:清华大学出版社
Windows 95技巧秘诀(1997 PDF版)
Windows 95技巧秘诀
1997 武汉:华中理工大学出版社
Windows 95图解教程(1998 PDF版)
Windows 95图解教程
1998 北京:国防工业出版社
Windows 95和Windows NT 4.0特色编程(1997 PDF版)
Windows 95和Windows NT 4.0特色编程
1997 北京:清华大学出版社
中文Windows 95系统应用程序入门(1996 PDF版)
中文Windows 95系统应用程序入门
1996 大连:大连理工大学出版社