VB拦截Windows Explorer删除进程,内含API HOOK,源代码:倒霉蛋儿,程序有时候也会窗口勾挂失败!   勾住了SHFileOperation等函数,DLL用Delphi写的C会的太少,查了半天才知道原来explorer是用SHFileOperation删除文件,经过测试很稳定,没有出现崩溃的情况,由于只勾住了SHFileOperation函数,所以别的程序要是调用DeleteFile删除文件,拦截不到,要是想拦截DeleteFile自己接着写吧。      mod_Inject.bas类的注释摘录:   Dim MyAddr As Long ‘执行远程线程代码的起始地址。这里等于LoadLibraryA的地址   ‘dll文件路径   MyDllFileLength = LenB(StrConv(MyDllFileName, vbFromUnicode)) + 1    ‘这里把dll文件名从Unicode转换成Ansi,否则英文字母是2个字节。 _   顺便说一下,学过C的应该知道字符串要以/0标志结尾,所以dll文件名长度要加上1个字节存放Chr(0)   ‘得到进程的句柄   在目标进程中申请分配一块空白内存区域。内存的起始地址保存在MyDllFileBuffer中。 _   这块内存区域我们用来存放dll文件路径,并作为参数传递给LoadLibraryA。   在分配出来的内存区域中写入dll路径径。注意第二个参数传递的是MyDllFileBuffer的内容, _   而不是MyDllFileBuffer的内存地址?   If MyReturn = 0 Then Inject = False   MyAddr = GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA")   ‘得到LoadLibraryA函数的起始地址。他的参数就是我们刚才写入的dll路径。但是LoadLibraryA本身是不知道参数在哪里的。 _   接下来我们就用CreateRemoteThread函数告诉他参数放在哪里了? If MyAddr = 0 Then Inject = False   MyResult = CreateRemoteThread(ProcessHandle, 0, 0, MyAddr, MyDllFileBuffer, 0, 0)   好了,现在用CreateRemoteThread在目标进程创建一个线程,线程起始地址指向LoadLibraryA, _   参数就是MyDllFileBuffer中保存的dll路径?    If MyResult = 0 Then    Inject = False    Else    Inject = True    End If    ‘接下来你可以使用WaitForSingleObject等待线程执行完毕。 _    并用GetExitCodeThread得到线程的退出代码,用来判断时候正确执行了dll中的代码。    CloseHandle MyResult    CloseHandle ProcessHandle    ‘扫地工作   End Function
2025-10-30 11:49:42 348KB VB源码 文件操作 删除进程
1
操作系统实验报告----进程管理 本实验报告的主要目的是掌握 Linux 中进程的创建方法及执行情况,深入理解进程进程树等概念,并掌握系统调用 exit() 和 _exit() 的使用。此外,还将分析进程竞争资源的现象,并学习解决进程互斥的方法。 一、进程管理实验目的 1. 掌握 Linux 中进程的创建方法及执行情况 2. 加深对进程进程树等概念的理解 3. 掌握 Linux 中如何加载子进程自己的程序 4. 掌握父进程通过创建子进程完成某项任务的方法 5. 掌握系统调用 exit() 和 _exit() 的使用 6. 分析进程竞争资源的现象,学习解决进程互斥的方法 二、实验内容 (一)进程的创建 1. 编写一段程序,使用系统调用 fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符。 (二)进程树的创建 1. 运行以下程序,分析程序执行过程中产生的进程情况。 #include main(){ int p,x; p=fork(); if (p>0) fork(); else{ fork(); fork(); } sleep(15); } 实验步骤: 1. 编译连接:gcc –o forktree forktree.c 2. 后台运行:./forktree & 3. 使用 pstree –h 查看进程树 运行结果: ├─gnome-terminal─┬─bash─┬─forktree─┬─forktree─┬─forktree───forktree │ │ │ │ └─forktree │ │ │ └─forktree │ │ └─pstree 分析:程序运行,系统首先创建一个进程 forktree,执行到 p=fork() 创建一个子进程 forktree,子进程获得处理机优先执行,父进程等待;执行 else,当执行到第一个 fork() 函数时,子进程创建了一个进程 forktree,称之为孙进程,孙进程获得处理机往下执行,子进程等待;执行到第二个 fork() 函数时,孙进程又创建一个进程 forktree,称之为重孙进程,重孙进程很快执行完,将处理机还给孙进程,孙进程很快执行完,将处理机还给子进程;子进程继续往下执行,执行到第二个 fork() 函数,又创建一个进程 forktree,称之为第二孙进程,并获得处理机执行,此进程很快执行完,将处理机还给子进程,子进程也很快执行完,将处理机还给父进程,父进程 P>0 执行 if 语句,运行 fork() 函数,又创建一个进程 forktree,称之为第二子进程,此进程获得处理机执行很快运行完,将处理机还给父进程,父进程运行 sleep(15) 语句,休眠 15 秒,用 pstree 命令查询进程树。 (三)进程之间的关系 1. 运行程序,分析运行结果。 #include main(){ int p,x,ppid,pid; x=0; p=fork(); if(p>0) { printf("parent output x=%d\n",++x); ppid=getpid(); printf("This id number of parent is:ppid=%d\n",ppid); } else { printf("child output x=%d\n",++x); pid=getpid(); printf("This id number of child is:pid=%d\n",pid); } } 运行结果: Parent output x=1 This id number of parent is:ppid=3110 Child output x =1 This is number of child is:pid=3111 分析:fork 创建进程的时候子进程与父进程共享代码区,子进程复制父进程的数据区,所以,两个进程中的数据互不影响都是 1。 (四)进程的竞争资源 1. 编写一个死循环程序,观察进程的行为。 #include main(){ while(1){ } } 实验步骤: 1. 编译:gcc loop.c –o loop 2. 运行:./loop & 本实验报告旨在让学生掌握 Linux 中进程的创建方法及执行情况,深入理解进程进程树等概念,并掌握系统调用 exit() 和 _exit() 的使用。此外,还将分析进程竞争资源的现象,并学习解决进程互斥的方法。
2025-10-14 17:10:57 51KB 文档资料
1
易语言重定向输入输出源码,重定向输入输出,创建子进程,API打开文件对话框,API保存文件对话框,API浏览文件夹,API信息框,DLL信息框,DLL打开文件对话框,DLL保存文件对话框,DLL命令浏览文件夹,DLL命令取文件夹路径,DLL命令关闭内核对象,DLL命令创建匿名管道,DLL命
1
易语言进程通信源码,进程通信,收到信息,收到图片,收到文件,接收端_初始化,接收端_开始监听,接收端_关闭监听,接收端_停止监听,接收端_取出数据,接收端_清除数据,接收端_清空数据,发送端_发送数据,接收端_读数据,取得窗口句柄,SetWindowLong,CallWindowProc2,Re
1
收到信息,接收端_开始监听,接收端_读数据,接收端_取出数据,发送端_发送数据,取得窗口句柄,SetWindowLong,CallWindowProc2,RegisterWindowMessage,OpenProcess,ReadProcessMemory,CloseHandle,SendMessage,GetCurrentProcessId,IsWindow,FindWindow,CallWindow
1
易语言进程通信模块源码,进程通信模块,收到信息,接收端_开始监听,接收端_读数据,接收端_取出数据,发送端_发送数据,取得窗口句柄,SetWindowLong,CallWindowProc2,RegisterWindowMessage,OpenProcess,ReadProcessMemory,CloseHandle,SendMessage,GetCurrentProc
1
易语言是一种专为中国人设计的编程语言,它以简化的语法和汉字编程为特色,旨在降低编程门槛,让更多的人能够参与到编程中来。在提供的压缩包文件中,我们主要关注的是"易语言主程序源码"、"易语言子进程源码"以及"易语言进程通讯例程"。这些内容都是关于如何在易语言环境下进行多进程通信的实践教程。 进程通信是操作系统中的一个关键概念,它允许不同进程之间交换数据,协同工作。在易语言中,实现进程通信可以帮助开发者构建复杂的软件系统,提高程序的并发性和模块化。`GetCurrentProcessId`函数是Windows API中用于获取当前进程ID的一个函数,这对于识别和管理进程非常有用。 在易语言子进程源码中,你可能会学到如何创建和控制子进程,包括启动新的进程、传递参数、读取或写入子进程的输入输出等。这涉及到易语言的进程管理函数和API调用,例如`CreateProcess`和`WaitForSingleObject`等。理解和掌握这些功能对于编写能够同时执行多个任务的程序至关重要。 易语言进程通讯例程则着重于演示如何在不同进程中传递信息。常见的进程间通信方式有管道(Pipe)、消息队列(Message Queue)、共享内存(Shared Memory)、套接字(Socket)等。在易语言中,开发者可以利用其内建的函数库实现这些通信方式。例如,通过管道通信,你可以创建一个读端和写端,一个进程向管道写数据,另一个进程从管道读数据;通过共享内存,两个或多个进程可以直接访问同一块内存区域,实现高效的数据交换。 学习并理解这些源码,你需要掌握易语言的基本语法和调用API的方法。同时,了解Windows操作系统对进程管理的机制也是必要的。在这个过程中,你将学习到如何定义进程间通信协议,处理同步和异步问题,以及如何防止竞态条件和其他并发问题。 这个压缩包提供的资料对于想深入学习易语言和进程通信的开发者来说是非常宝贵的资源。通过实际操作和分析源码,你可以加深对易语言的理解,提升编写多进程应用程序的能力。在实践中,你还可以尝试结合不同的进程通信方式,解决更复杂的问题,如跨进程数据共享、服务间的协调等。这是一次难得的学习和提升编程技能的机会。
1
易语言强力反调试模块源码,强力反调试模块,强力打开进程,反调试器,调试器脱钩,结束自身,kill,是否被调试,取进程路径,取进程文件名,取本进程PID,ZwOpenProcess,ZwQuerySystemInformation,取指针_字节集,RtlMoveMemory3,RtlMoveMemory1,ZwDuplicateObject,ZwQue
2025-10-05 22:47:07 11KB 强力反调试模块 强力打开进程
1
# 基于Linux的进程间通信课程项目 多进程共享内存通讯 ## 项目简介 本项目是一个基于Linux操作系统的进程间通信(IPC)课程设计,主要使用共享内存和消息队列进行进程间的数据交换和同步控制。该项目包含多个源文件,每个文件都实现了特定的功能,共同构成了完整的进程间通信解决方案。 ## 项目的主要特性和功能 1. 共享内存通信: 通过创建和使用共享内存区域,实现不同进程之间的数据共享。 2. 消息队列通信: 使用消息队列实现进程间的消息传递。 3. 信号量和互斥锁: 使用信号量和互斥锁进行同步和互斥控制,确保对共享资源的正确访问。 4. 多线程支持: 项目中包含多个线程,用于并发执行不同的任务。 ## 安装和使用步骤 ### 假设用户已经下载了项目的源码文件 1. 环境准备: 确保在Linux环境下进行开发和使用,确保已安装必要的库和工具。 2. 编译: 使用C编译器(如gcc)编译项目中的各个源文件。
2025-09-28 23:56:56 43KB
1
----------学习虚拟机经典教材 397页完整版PDF -------------- 作者: [美] James E. Smith / Ravi Nair 《虚拟机:系统与进程的通用平台》的作者从计算机体系结构研究者的角度,以计算机系统接口抽象层次中两个最重要的接口——应用的二进制接口(Application Binary Interface,ABI)和应用程序接口(Application Program Interface,API)为边界,将计算机系统资源的各种虚拟化技术划分为进程虚拟机和系统虚拟机两大类展开讨论,清晰地展现了虚拟化技术各种方法的各个层面和各类应用。 《虚拟机:系统与进程的通用平台》可以作为讲授计算机系统结构研究生课程《虚拟机技术》的教材或教学参考书。工作在虚拟机技术领域的专业人士可以用于自学这些领域的前沿技术。《虚拟机:系统与进程的通用平台》还可以作为一本计算机系统软硬件参考资料。
2025-09-24 14:18:01 48MB 虚拟机 经典教材
1