Lachesis Shield 设计上的抉择

最近有很多朋友和同学跟我谈起 Lachesis Shield 设计上的一些问题。我想我需要总结一下我的设计策略,虽然这是个看起来简单得不能再简单的工具。
我面临的选择:
1 界面位置
显然,有很多位置可以摆放这么个不起眼的东西,比如说:
a 就放在桌面上做成悬浮窗口,用 layered window 做成半透明。
b systray。
c deskband。
2 权限调整
a 只有两种状态,受限和不受限。并且对被控制进程来说一旦创建就不可更改。
b 用驱动定义多种权限并可以自由转换。
3 界面
a 鼠标单击切换。
b 针对软件复杂的功能设计复杂的界面和配置系统。
ok,以上就是我可以做出的选择,当然一切技术上的问题都不是问题。以下就是我的选择和理由:
首先这个工具最好是随系统启动,这个不影响选择。
其次,为了hook api,我可以用注册表,常规钩子注入dll,remotethread等等,我甚至可以用驱动。
我注意到一个事实:大部分的程序其实都是用户操作运行起来的,而这第一道门就是explorer。那么其实我只要把explorer的口封上,对于我来说目的基本就达到了。
于是,deskband成了不二之选。为什么呢?
作为进程内COM组件,deskband会被explorer自动加载,自然就完成了随系统的启动(其实是登录了)而启动,而且explorer被关闭还会自动重新启动,免除了额外设计恢复机制的麻烦。
其次,既然是进程内COM,自然就免除了注入代码这个手续。注意一个事实:很多杀毒软件对CreateRemoteThread这个调用是敏感的。
最后,deskband毫无疑问就是用来做界面的。
剩下的问题就比较简单,我没有必要也不可能选择驱动,这样不仅仅是带来额外的复杂性的问题。用驱动来修改windows内核的安全子系统的内部数据结构我不是不会,问题是这已经属于rootkit,绝对会被杀软封杀。其次这属于在windows内核的安全子系统插入第三方代码并且加入了令牌权限调整功能接口,这本身就是一个安全悖论。最后,这种奇技淫巧在windows x64上行不通,除非我再强迫系统关闭PatchGuard,这又是另外一个安全悖论了,我不能为了自己这么一个工具在系统上开两个大大的口子。
至于复杂的配置,我考虑过黑白名单,但是短期内我并不想加上,如果这个黑白名单被篡改就得不偿失了。
当然具体实现上还有一些其它的问题,比如必须用themeapi自绘,没有采用微软的detrous等等。目前被gdi+和safer api限定也很不爽。还有就是deskband这个接口貌似只有微软用得很正常(WMP),第三方包括msdn的例子运行起来都有点小问题。

转载于:https://www.cnblogs.com/skogkatt/archive/2008/03/20/4163685.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql表恢复报错binlog_mysqlbinlog 恢复报错ERROR at line 24826643: Unknown command '\'汗血宝马...

有两个binlog日志文件mysql-bin.000001,mysql-bin.000002,大小都是1G左右。现在要在另外一个库上做完全恢复。想到通常的恢复方法:mysqlbinlog /usr/local/var/mysql1/mysql-bin.000001 | mysql -uroot -S /usr/local/var/mysql2/mysql2.sockmysqlbinlog…

oracle数据库实验讲义-读书笔记(一)

1、激活锁定的用户alter user scott account unlock identified by tiger;2、使用内含脚本建立scott用户%oracle_home%\rdbms\admin\utlsampl.sql3、查看当前用户所有的表select * from tab;4、将屏幕显示输入到文本文件内spool D:1.txtselect * from emp;spool off spool D:1.…

linux分盘笔记

一磁盘分区 首先磁盘分区:计算机中存放信息的主要的存储设备就是硬盘,但是硬盘不能直接使用,必须对硬盘进行分割,分割成的一块一块的硬盘区域就是磁盘分区。在传统的磁盘管理中,将一个硬盘分为两大类分区:主…

sqlite mysql pgsql_比较MySQL,PostgreSQL和SQLite中的数据库列类型?(跨图)

小编典典我会做不同的事情清单:MySQL中的MEDIUMINT是一个奇怪的鸭子(3个字节)。我会避免它,但否则也将其映射到INTEGER。MySQLBOOLEAN(别名BOOL,别名TINYINT(1))与pg布尔类型不兼容。您可能无法移植应用程序,具体取决于它们用作布…

[导入]毕业的日子

出来快一年了,真有点怀念毕业前的那份时光。没有太多的事情可做,整天忙着以后的工作。来往与学校与市区两边。不停的学着新出来的技术,好像也有很多事情要做,想着自己以后会做什么,一点底也没有,虽然是学程…

python 析构函数_常用的python类的魔术方法

对于很少使用python编写大型代码的朋友可能会忘记python还是一种面向对象的语言。在其他面向对象的语言中有构造函数、析构函数等等在生命周期不同时机自动调用的函数,python当然也是有的。除此之外,python类还有很多神奇的编写方式让对象的表现更加丰富…

【linux基础】关于ARM板子使用O3编译选项优化

前言 应领导要求需要将最初级版本的算法移植到ARM板子上,并进行优化,以期达到实时。 平台 移植前: TX2 移植后: ARM() processor : 3 model name : ARMv7 Processor rev 10 (v7l) BogoMIPS : 7.54 Features : swp h…

微软桌面虚拟化vdi 安装测试体验

最近同事在讨论桌面虚拟化,说目前很多企业都准备上桌面虚拟化,结合众多的解决方案,觉得微软的桌面虚拟化方案不错,相对与citrix的xendesktop,vmware view 有一定的价格优势,心里想,微软是大公司&#xff0c…

ASP应用之模板采用

初学ASP,程序是能勉强写出来了,但若每进行一次网站页面的改版,所有的源程序都将进行一次移植手术。为此所耗费的人力精力不计其数,甚至一不小心得不偿失、前功尽弃。所以,梦想着那么大段的程序代码变成几个简单的字符代…

mysql 8.0.22_最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)

前言前几天下载安装了最新版的MySQL 8.0.22,遇到了不少问题,参考了一些方法,最终得以解决。今天将自己的安装过程记录下来,希望对各位有所帮助。一、MySQL 8.0.22官网下载点击进入MySQL官网:https://www.mysql.com/① …

RedHat 脚本搭建dns服务!

1.配置好yum脚本 #!/bin/bash# by breaklinux echo "--------------- mount cdrom ------------------"umount /dev/cdrom &> /dev/nullmount /dev/cdrom /mnt &> /dev/nullecho "--------------- create yum ------------------"touch /etc…

国外开源.Net 系统概述

转载自:http://www.aspx1.com (ASP.NET学习门户) 搜索了几个搜索引擎,找了一些.net的开源系统,(申明一下,下面的看只是个人看法,只供参考)。 一、DotNetNuke DotNetNuke是一个.Net平台下&#x…

dateframe行列插入和删除操作

ar np.array(list("ABCDEFG")) # array只是Convert,默认会copy源值。asarray也是Convert,如果源值是array则不copy.print(ar)ar np.full((2,4), 3, np.int32) # 创建一个指定初始值的数组print(ar)zero_ar np.zeros(10, np.int32) # 创建一个初始…

android获取网络图片

2019独角兽企业重金招聘Python工程师标准>>> 资源描述: 关于android获取网络图片主要是把网络图片的数据流读入到内存中然后用1.Bitmap bitMap BitmapFactory.decodeByteArray(data, 0, length); 方法来将图片流传化为bitmap类型 这样才能用到1.imageView.setImage…

gitlab备份及恢复

gitlab备份步骤 https://blog.csdn.net/qq_31666147/article/details/79844107 gitlab版本 下载地址 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ gitlab-ce-10.4.4-ce.0.el7.x86_64.rpm 备份恢复gitlib版本必须相同 转载于:https://www.cnblogs.com/mutong1228…

WSS Alert(邮件提醒) 定制

项目需要&#xff0c;研究了一下WSS的Alert定制。 定制有两种方法: (方法1)修改模板文件 默认模板是12\TEMPLATE\XML\alerttemplates.xml,将这个模板复制一份修改,然后用stsadm命令添加模板: STSADM -o updatealerttemplates -url <http://urlname> -filename <your w…

windows log日志分割_如何将日志记录到 Windows事件日志 中

每当出现一些未捕获异常时&#xff0c;操作系统都会将异常信息写入到 Windows 事件日志 中&#xff0c;可以通过 Windows 事件查看器 查看&#xff0c;如下图&#xff1a; 这篇文章将会讨论如何使用编程的方式将日志记录到 Windows 事件日志 中。 安装 EventLog 要想在 .NET Co…

偷窃转基因玉米种子引发中美打农业官司

偷窃转基因玉米种子引发中美打农业官司 请看下面相片&#xff1a; 这张相片是孩子们与转基因玉米在一起的景象。转基因玉米颗粒饱满&#xff0c;孩子们的小手差点儿抓不住&#xff08;由于玉米棒子非常粗&#xff09;。广大农民喜欢这样的抗虫、耐药并且产量高的农作物&#xf…

SQL Server : 禁止在SQL Server中生成用户实例

一、打开SQL工具&#xff0c;右键点服务器&#xff0c;新建查询 二、输入如下查询&#xff1a;exec sp_configure user instances enabled, 1 三、在查询中再运行&#xff1a;Reconfigure 四、然后重启SQL SERVER服务转载于:https://www.cnblogs.com/dushouke/arch…

mysql中视图的概念_MySql中的视图的概念及应用

视图的基本概念视图是从一个或几个基本表(或者视图)导出的表。它与基本表不同&#xff0c;是一个虚表。数据库只存放视图的定义&#xff0c;而不存放视图对应的数据&#xff0c;这些数据仍存放在原来的基本表中。所以基本表中的数据发生变化&#xff0c;从视图中查询出的数据也…