进程保护 (非Hook;非DKOM)

Posted by JiaJia 13 February,2009 (0)Comment
BOOL Lock_CurrentProcess()
{
HANDLE hProcess = ::GetCurrentProcess();
SID_IDENTIFIER_AUTHORITY sia = SECURITY_WORLD_SID_AUTHORITY;
PSID pSid;
BOOL bSus = FALSE;
bSus = ::AllocateAndInitializeSid(&sia,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&pSid);
if(!bSus) goto Cleanup;
HANDLE hToken;
bSus = ::OpenProcessToken(hProcess,TOKEN_QUERY,&hToken);
if(!bSus) goto Cleanup;
DWORD dwReturnLength;
::GetTokenInformation(hToken,TokenUser,NULL,NULL,&dwReturnLength);
if(dwReturnLength > 0x400) goto Cleanup;
LPVOID TokenInformation;
TokenInformation = ::LocalAlloc(LPTR,0x400);//这里就引用SDK的函数不引用CRT的了
DWORD dw;
bSus = ::GetTokenInformation(hToken,TokenUser,TokenInformation,0x400,&dw);
if(!bSus) goto Cleanup;
PTOKEN_USER pTokenUser = (PTOKEN_USER)TokenInformation;
BYTE Buf[0x200];
PACL pAcl = (PACL)&Buf;
bSus = ::InitializeAcl(pAcl,1024,ACL_REVISION);
if(!bSus) goto Cleanup;
bSus = ::AddAccessDeniedAce(pAcl,ACL_REVISION,0x000000FA,pSid);
if(!bSus) goto Cleanup;
bSus = ::AddAccessAllowedAce(pAcl,ACL_REVISION,0x00100701,pTokenUser->User.Sid);
if(!bSus) goto Cleanup;
if(::SetSecurityInfo(hProcess,SE_KERNEL_OBJECT,DACL_SECURITY_INFORMATION | PROTECTED_DACL_SECURITY_INFORMATION,NULL,NULL,pAcl,NULL) == 0)
bSus = TRUE;
Cleanup:
if(hProcess != NULL)
::CloseHandle(hProcess);
if(pSid != NULL)
::FreeSid(pSid);
return bSus;
}

进程保护 (非Hook;非DKOM)相关推荐

  1. Ring3下实现进程保护,不用hook

    今天在分析一款木马的时候,发现做了进程保护,没加驱动,也没做hook,能做进程保护,感觉非常奇怪,原来是这么一回事,mark一下吧! #include "stdafx.h"#inc ...

  2. 进程隐藏与进程保护(SSDT Hook 实现)(二)

    文章目录: 1. 引子 – Demo 实现效果: 2. 进程隐藏与进程保护概念: 3. SSDT Hook 框架搭建: 4. Ring0 实现进程隐藏: 5. Ring0 实现进程保护: 6. 隐藏进 ...

  3. 进程隐藏与进程保护(SSDT Hook 实现)(二) 转载自 Zachary.XiaoZhen - 梦想的天空

    文章目录:                   1. 引子 – Demo 实现效果: 2. 进程隐藏与进程保护概念: 3. SSDT Hook 框架搭建: 4. Ring0 实现进程隐藏: 5. Ri ...

  4. 进程隐藏与进程保护(SSDT Hook 实现)(三)

    文章目录: 1. 引子: 2. 获取当前系统下所有进程: 3. 服务管理(安装,启动,停止,卸载): 4. 应用程序和内核程序通信: 5. 小结: 1. 引子: 关于这个 SSDT Hook 实现进程 ...

  5. 进程隐藏与进程保护(SSDT Hook 实现)(三) 转载自 Zachary.XiaoZhen - 梦想的天空

    文章目录:                   1. 引子: 2. 获取当前系统下所有进程: 3. 服务管理(安装,启动,停止,卸载): 4. 应用程序和内核程序通信: 5. 小结: 1. 引子: 关 ...

  6. x64下进程保护HOOK

    目录 x64(32)下的进程保护回调. 一丶进程保护线程保护 1.简介以及原理 1.2 代码 1.3注意的问题 二丶丶回调函数写法 2.1 遇到的问题. 2.2 回调代码 x64(32)下的进程保护回 ...

  7. 进程隐藏与进程保护(SSDT Hook 实现)(一)

    文章目录: 1. 引子 – Hook 技术: 2. SSDT 简介: 3. 应用层调用 Win32 API 的完整执行流程: 4. 详解 SSDT: 5. SSDT  Hook 原理: 6. 小结: ...

  8. 进程隐藏与进程保护(SSDT Hook 实现)(一) 转载自 Zachary.XiaoZhen - 梦想的天空

    文章目录:                   1. 引子 – Hook 技术: 2. SSDT 简介: 3. 应用层调用 Win32 API 的完整执行流程: 4. 详解 SSDT: 5. SSDT ...

  9. 驱动型文件保护和进程保护

    经过N多辗转和持续验证,终于搞定了在驱动程序中同时保护进程和文件(经持久测试后,避免了导致系统蓝屏的情况),重点 1)拒绝通过进程管理器关闭进程,同时又允许某些进程可以管理 2)通过比较文件名,截获被 ...

最新文章

  1. WPF中的容器控件——Grid
  2. Leangoo敏捷项目管理软件 6.3.2卡片关联支持链接
  3. 数据模拟工具wgsim
  4. 写入位置 0x00000004 时发生访问冲突_HDFS读取和写入数据简介
  5. dede问答模块 那个php文件相对重要,DEDE问答(ask)模块游客匿名提问和解答
  6. php教学小结,php小结
  7. 面试之 Redis汇总
  8. matlab提示音,matlab发出声音 - osc_45mm6g1p的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. C++ 泛型编程的基础--模板初识及应用
  10. 巴伦变压器电路图_基于变压器原理的巴伦电路系统分析
  11. PTA 7-6 2048游戏模拟(1)--单行向左移动叠加
  12. 智慧农业IOT-onenet平台简单介绍
  13. RXTX for java在arm上的使用
  14. Normal and self-adjoint operator
  15. xlsx文件 wps 可以打开 excel 打不开
  16. 战地2服务器主程序修改,战地2BOT数值怎么更改BOT数值如何更改_BOT数值更改教程_游戏城...
  17. Cipher Code
  18. iOS开发学无止境 - CoreLocation地理编码
  19. SICP ex 1-27
  20. 计算机与通信英语,数据与计算机通信(第十版)(英文版)

热门文章

  1. mysql安装教程8.3,Summary_虚拟机安装centos8.3Linux系统_安装Mysql
  2. matplotlib 横坐标只显示整数_matplotlib初学:这样画折线图和添加标注、箭头
  3. 获取Http协议的请求行,请求头
  4. Activiti工作流入门
  5. 模板方法模式(TemplateMethod) 简介
  6. java rmi 还有用吗_java rmi使用后的感想
  7. java 文件上传 jar_JavaWeb 之 使用 commons-fileupload.jar 实现文件上传
  8. vue处理json数据的原理_Vue解析json数据的渲染
  9. php use,php use和include区别总结
  10. 网工路由基础(6)BGP协议