如何通过实例句柄,关闭由A进程ShellExecute出的进程B?

清水火 2009-09-04 09:04:25
如何通过实例句柄,关闭由A进程ShellExecute出的进程B?
...全文
57 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
das_jack 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dirdirdir3 的回复:]
TerminateProcess(handle)
[/Quote]
这是暴力啊,如果没有IPC,不能保证结果是你预期的
dirdirdir3 2009-09-04
  • 打赏
  • 举报
回复
TerminateProcess(handle)
清水火 2009-09-04
  • 打赏
  • 举报
回复
TerminateProcess(handle)
我打开的是CHM文件。。用这个根据就不行。。
第1章 再谈计算机内存访问 1 1.1 引言 1 1.2 内存管理概述 1 1.2.1 虚拟内存 1 1.2.2 CPU工作模式 2 1.2.3 逻辑、线性和物理地址 3 1.2.4 存储器分页管理机制 3 1.2.5 线性地址到物理地址的转换 4 1.3 虚拟内存访问 5 1.3.1 获取系统信息 5 1.3.2 在应用程序中使用虚拟内存 6 1.3.3 获取虚存状态 7 1.3.4 确定虚拟地址空间的状态 8 1.3.5 改变内存页面保护属性 9 1.3.6 进行一个进程的内存读写 10 1.4 文件的内存映射 11 1.4.1 内存映射API函数 11 1.4.2 用内存映射在多个应用程序之间共享数据 13 1.4.3 用内存映射文件读取大型文件 18 1.5 深入认识指针的真正含义 21 .1.5.1 指针的真正本质 21 1.5.2 用指针进行应用程序之间的通信 22 1.6 本章小结 26 参考文献 27 第2章 再谈PE文件结构 28 2.1 引言 28 2.2 PE文件格式概述 28 2.2.1 PE文件结构布局 28 2.2.2 PE文件内存映射 30 2.2.3 Big-endian和Little-endian 31 2.2.4 3种不同的地址 31 2.3 PE文件结构 32 2.3.1 MS-DOS头部 32 2.3.2 IMAGE_NT_HEADER头部 33 2.3.3 IMAGE_SECTION_HEADER头部 36 2.4 如何获取PE文件中的OEP 36 2.4.1 通过文件读取OEP值 37 2.4.2 通过内存映射读取OEP值 38 2.4.3 读取OEP值方法的测试 39 2.5 PE文件中的资源 40 2.5.1 查找资源在文件中的起始位置 40 2.5.2 确定PE文件中的资源 41 2.6 一个修改PE可执行文件的完整实例 43 2.6.1 如何获得MessageBoxA代码 43 2.6.2 把MessageBoxA()代码写入PE文件的完整实例 45 2.7 本章小结 53 参考文献 53 第3章 进程之间通信概述及初级技术 54 3.1 引言 54 3.2 进程通信概述 55 3.2.1 Windows进程间标准通信技术的发展 55 3.2.2 应用程序与进程 56 3.2.3 进程之间通信的类型 56 3.3 使用自定义消息通信 57 3.3.1 通过自定义消息实现进程间通信的方法 57 3.3.2 通过自定义消息实现进程间通信的实例 58 3.4 使用WM_COPYDATA消息通信 60 3.4.1 通过WM_COPYDATA消息实现进程间通信的方法 60 3.4.2 通过WM_COPYDATA消息实现进程间通信的实例 61 3.5 使用内存读写函数和内存映射文件通信 62 3.5.1 使用内存映射文件通信的方法 62 3.5.2 使用内存读写函数实现进程间通信的方法 62 3.5.3 使用内存读写函数实现进程间通信的实例 63 3.6 使用动态链接库通信 64 3.6.1 DLL概述 64 3.6.2 使用DLL通信的方法 65 3.6.3 使用DLL通信的实例 66 3.7 使用Windows剪贴板通信 67 3.7.1 使用剪贴板实现进程间通信的方法 68 3.7.2 使用剪贴板实现进程间通信的实例 68 3.8 使用动态数据交换(DDE)通信 70 3.8.1 使用DDE技术通信原理 70 3.8.2 如何使用DDEML编写程序 71 3.8.3 使用DDE通信的实例 72 3.9 本章小结 77 参考文献 77 第4章 使用消息管道、邮槽和套接字通信 78 4.1 引言 78 4.2 如何用命名管道进行进程间通信 78 4.2.1 命名管道函数 79 4.2.2 命名管道服务端与客户端之间通信的实现流程 80 4.2.3 命名管道服务端与客户端之间通信的实例 81 4.3 如何用邮槽进行进程间通信 85 4.3.1 用邮槽进行进程间通信的步骤 85 4.3.2 邮槽服务器端与客户端之间通信的实例 86 4.4 如何用Windows套接字进行进程间通信 90 4.4.1 套接字分类 90 4.4.2 流式套接字编程流程 91 4.4.3 套接字调用基本函数 92 4.4.4 Winsock程序设计 95 4.4.5 一个通用套接字类 96 4.4.6 套接字服务器端与客户端间通信的实例 101 4.5 本章小结 106 参考文献 106 第5章 使用LPC和RPC通信 107 5.1 引言 107 5.2 接口定义语言(IDL)简介 107 5.3 使用本地过程调用(LPC)通信 108 5.3.1 使用LPC通信方法介绍 108 5.3.2 使用LPC通信的实例 110 5.4 使用远程过程调用(RPC)通信 117 5.4.1 RPC运行机制 117 5.4.2 RPC 绑定模式和属性 118 5.4.3 RPC传输(Transport) 118 5.4.4 如何编写RPC应用程序 119 5.4.5 使用RPC通信的实例 120 5.5 本章小结 128 参考文献 128 第6章 使用组件模型通信 129 6.1 引言 129 6.2 COM/DCOM模型概述 129 6.2.1 COM/DCOM的特点 129 6.2.2 COM/DCOM组件模型分类 130 6.3 使用组件对象模型(COM/DCOM)通信 131 6.3.1 使用COM/DCOM通信方法介绍 131 6.3.2 基于DCOM实现远程会话的实例 136 6.4 本章小结 147 参考文献 147 第7章 进程的创建、控制和隐藏 148 7.1 引言 148 7.2 常见的几种创建进程的方法 148 7.2.1 使用WinExec() 函数 148 7.2.2 使用ShellExecute()和ShellExecuteEx()函数 149 7.2.3 使用CreateProcess()函数 151 7.2.4 使用OLE激活服务程序 154 7.3 如何获得进程句柄 155 7.3.1 获得一个进程句柄 155 7.3.2 提升进程权限级别 156 7.4 如何实现当前进程的枚举 158 7.4.1 通过系统快照实现当前进程的枚举 158 7.4.2 通过psapi.dll提供的API函数实现当前进程的枚举 160 7.4.3 通过wtsapi32.dll提供的API函数实现当前进程的枚举 162 7.4.4 通过ntdll.dll提供的API函数实现当前进程的枚举 163 7.5 如何终止进程 164 7.5.1 如何终止本进程 165 7.5.2 如何终止外部进程 165 7.5.3 终止进程实例 165 7.6 如何隐藏进程(注入代码) 166 7.6.1 基本原理 166 7.6.2 使用CreateRemoteThread()隐藏DLL 167 7.6.3 使用CreateRemoteThread()直接注入API函数代码 173 7.6.4 使用Windows内存映射文件注入代码 174 7.6.5 使用特洛伊DLL注入代码 174 7.6.6 使用注册表注入DLL 175 7.6.7 使用程序挂钩的方法注入代码 175 7.7 本章小结 175 参考文献 176 第8章 应用程序的静态挂钩 177 8.1 引言 177 8.2 使用C/C++语言提取可执行程序代码 177 8.2.1 在C/C++中使用内联汇编 177 8.2.2 如何使用C/C++语言提取可执行程序代码 179 8.3 如何对PE文件加壳 182 8.3.1 PE文件的加壳方法 182 8.3.2 向PE文件中静态注入代码的完整实例 183 8.4 如何实现文件脱壳 191 8.5 本章小结 192 参考文献 192 第9章 应用程序的动态挂钩 193 9.1 动态挂钩概述 193 9.2 使用Windows钩子函数挂钩 194 9.2.1 Windows钩子函数 194 9.2.2 具体实例 195 9.3 替换原API函数入口挂钩 198 9.3.1 如何替换原API函数入口实现挂钩 198 9.3.2 通用的替换原API函数入口挂钩类 199 9.3.3 使用JMP法编写的挂钩实例 201 9.4 替换IAT中的函数地址进行挂钩 202 9.4.1 如何替换IAT中的函数地址实现挂钩 202 9.4.2 通用的替换IAT中的函数地址挂钩类 203 9.4.3 使用IAT法编写的挂钩实例 207 9.5 替换Windows消息处理函数实现挂钩 208 9.5.1 Windows消息处理函数及其替换 209 9.5.2 替换Windows消息处理函数实现挂钩的实例 210 9.6 钩子DLL文件的装载 214 9.7 本章小结 216 参考文献 216 第10章 数据的编码和解码实例 217 10.1 引言 217 10.2 游程编码 218 10.2.1 CX游程压缩方法 218 10.2.2 BI_RLE8压缩方法 218 10.2.3 BI_RLE压缩方法 218 10.2.4 缩位压缩方法(Packbits) 219 10.3 Huffman编码 219 10.3.1 Huffman编码原理 219 10.3.2 Huffman编码过程 220 10.4 算术编码 221 10.4.1 算术编码算法 221 10.4.2 算术解码算法 222 10.5 LZW压缩算法 222 10.5.1 LZW压缩算法原理 223 10.5.2 用VC++实现LZW压缩算法 225 10.6 Base64编码 236 10.6.1 Base64算法原理 236 10.6.2 Base64算法的实现 238 10.7 本章小结 241 参考文献 242 第11章 可执行文件的捆绑和分离 243 11.1 引言 243 11.2 捆绑方式分类 243 11.2.1 结合式捆绑 243 11.2.2 功能式捆绑 245 11.3 文件捆绑相关技术 245 11.3.1 文件捆绑工具及实现 245 11.3.2 木马程序与捆绑 246 11.3.3 文件自身操作特点分析 246 11.4 文件属性的获取和伪装 248 11.4.1 文件属性的获取和更改 248 11.4.2 一个获取文件基本属性类 249 11.4.3 可执行程序自删除的实现 251 11.4.4 如何获取其他应用程序的图标 254 11.4.5 如何改变窗口的图标 255 11.5 被捆绑文件分离后的运行及自分解文件原理 256 11.5.1 异步执行分解法的实现 256 11.5.2 同步执行分解法的实现 256 11.5.3 自动分解法的实现 257 11.6 一个捆绑机(BindHider)软件的设计 258 11.6.1 BindHider的设计 258 11.6.2 BindHider的源代码 259 11.7 一种制作自分解文件的方法 263 11.7.1 母体程序的制作 264 11.7.2 自分解文件的制作 266 11.8 本章小结 267 参考文献 268 第12章 可执行文件的分割和合并 269 12.1 引言 269 12.2 文件分割方式 269 12.2.1 考虑文件格式的分割 269 12.2.2 设置子文件大小的分割 270 12.2.3 具有自合并功能的文件分割 271 12.2.4 依赖文件存放位置的分割 271 12.2.5 依赖磁盘大小的分割 271 12.3 如何使用多线程 272 12.3.1 线程的创建和终止 272 12.3.2 线程的控制函数 273 12.3.3 线程的通信 273 12.4 文件的简单分割与合并 274 12.4.1 文件的简单分割 274 12.4.2 文件的简单合并 275 12.5 用多线程进行文件的分割与合并的实例 277 12.5.1 文件的分割与合并方案设计 277 12.5.2 用多线程进行文件分割 279 12.5.3 用多线程进行文件合并 282 12.6 分割后文件自动合并的方案设计 286 12.6.1 控制程序的制作 286 12.6.2 用于文件自合并的控制程序的制作 287 12.6.3 一种生成自合并文件的分割软件制作 289 12.7 本章小结 292 参考文献 292 第13章 多线程下载和断点续传 293 13.1 引言 293 13.2 使用FTP进行多线程下载和断点续传 293 13.2.1 FTP协议简介 293 13.2.2 FTP的工作模式 295 13.2.3 FTP协议多线程下载和断点续传的实现 295 13.2.4 实例 306 13.3 使用HTTP进行多线程下载和断点续传 307 13.3.1 HTTP协议简介 307 13.3.2 HTTP协议的内部操作过程 308 13.3.3 HTTP协议多线程下载和断点续传的实现 311 13.3.4 实例 321 13.4 BT下载简介 323 13.4.1 BT下载与一般下载的区别 323 13.4.2 BT种子 324 13.4.3 BT的下载过程 324 13.5 本章小结 324 参考文献 325 第14章 带附件的电子邮件发送剖析 326 14.1 引言 326 14.2 电子邮件的发送方法 326 14.3 用WinSock实现SMTP协议 327 14.3.1 SMTP协议 327 14.3.2 SMTP的实现 328 14.4 邮件格式化 335 14.4.1 邮件主体格式化 335 14.4.2 邮件附件格式化 338 14.4.3 邮件格式化 341 14.5 发送电子邮件实例 346 14.6 本章小结 347 参考文献 347 第15章 特洛伊木马与反木马技术 348 15.1 引言 348 15.2 常见的木马种类 349 15.3 木马的载入方式 350 15.4 木马采用的伪装方法 351 15.5 Windows 2K/XP中无法删除文件的常用解决办法 352 15.6 一种木马病毒的检测技术 353 15.7 本章小结 358
API之网络函数1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 WNetEnumResource 枚举网络资源 WNetGetConnection 获取本地或已连接的一个资源的网络名称 WNetGetLastError 获取网络错误的扩展错误信息 WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 WNetGetUser 获取一个网络资源用以连接的名字 WNetOpenEnum 启动对网络资源进行枚举的过程 2. API之消息函数 BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 PostMessage 将一条消息投递到指定窗口的消息队列 PostThreadMessage 将一条消息投递给应用程序 RegisterWindowMessage 获取分配给一个字串标识符的消息编号 ReplyMessage 答复一个消息 SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 SendMessageCallback 将一条消息发给窗口 SendMessageTimeout 向窗口发送一条消息 SendNotifyMessage 向窗口发送一条消息 3. API之文件处理函数 CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 CompareFileTime 对比两个文件的时间 CopyFile 复制文件 CreateDirectory 创建一个新目录 CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 CreateFileMapping 创建一个新的文件映射对象 DeleteFile 删除指定文件 DeviceIoControl 对设备执行指定的操作 DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 FindFirstFile 根据文件名查找文件 FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 GetBinaryType 判断文件是否可以执行 GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 GetCurrentDirectory 在一个缓冲区中装载当前目录 GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 GetDriveType 判断一个磁盘驱动器的类型 GetExpandedName 取得一个压缩文件的全名 GetFileAttributes 判断指定文件的属性 GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 GetFileSize 判断文件长度 GetFileTime 取得指定文件的时间信息 GetFileType 在给文件句柄的前提下,判断文件类型 GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧