文件名称:
VB拦截windows删除文件(API HOOK)
开发工具:
文件大小: 348kb
下载次数: 0
上传时间: 2011-11-07
详细说明: 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 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.