我告诉你 ,一个 window免费系统下载的网站!

一个 window免费系统下载的网站! https://msdn.itellyou.cn/

转载于:https://www.cnblogs.com/brianlai/p/10452949.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一:SSDT表的hook检测和恢复 ~!~~~ 二:IDT表的hook检测和恢复 ~~~~~~(idt多处理器的恢复没处理,自己机器是单核的,没得搞,不过多核的列举可以) 三:系统加载驱动模块的检测 通过使用一个全局hash表(以DRIVEROBJECT为对象)来使用以下的方法来存储得到的结果,最终显示出来 1.常规的ZwQuerySystemInformation来列举 2通过打开驱动对象目录来列举 3搜索内核空间匹配驱动的特征来列举(这个功能里面我自己的主机一运行就死机,别的机器都没事,手动设置热键来蓝屏都不行,没dump没法分析,哎,郁闷) 4从本驱动的Modulelist开始遍历来列举驱动 四:进程的列举和进程所加载的dll检测 采用以下方法来列举进程: 1ZwQuerySystemInformation参数SystemProcessesAndThreadsInformation来枚举 2进程EPROCESS 结构的Activelist遍历来枚举 3通过解析句柄表来枚举进程 4通过Handletablelisthead枚举进程 5进程创建时都会向csrss来注册,从这个进程里面句柄表来枚举进程 6通过自身进程的HANDLETABLE来枚举进程 7通过EPROCESS的SessionProcessLinks来枚举进程 8通过EPROCESS ---VM---WorkingSetExpansionLinks获取进程 9暴力搜索内存MmSystemRangeStart以上查找PROCESS对象 进程操作: 进程的唤醒和暂停通过获取PsSuspendProcess和PsResumeProcess来操作的 进程结束通过进程空间清0和插入apc。 采用以下方法查找DLL: 1遍历VAD来查找dll 2挂靠到对应的进程查找InLoadOrderLinks来枚举dll 3暴力搜索对应进程空间查找pe特征来枚举dll DLL的操作: Dll的卸载是通过MmUnmapViewOfSection和MmmapViewOfSection(从sdt表中相应函数搜索到的)来实现的(本来想直接清0 dll空间,有时行有时不行)(只要将这个进程的ntdll卸载了,进程就结束了,一个好的杀进程的办法撒,绿色环保无污染),注入dll使用的是插入apc实现的。(注入的dll必须是realse版的。Debug版会出现***错误,全局dll注入貌似也是)插入apc效果不是很好,要有线程有告警状态才执行。 五:线程信息的检测 遍历ThreadList来枚举线程 线程的暂停和唤醒都是通过反汇编获取PsResumeThread和PsSuspendThread直接从r3传来ETHREAD来操作的,通过插入APC来结束线程 六:shadow sdt表的hook检测与恢复 没有采用pdb来解决函数名问题,直接写入xp和03的shandow表函数名(主要是自己的网不稳定,连windbg有时都连不上微软) 七:系统所有的过滤驱动的检测 查看各device下是否挂接有驱动之类的,可直接卸载 八:系统常用回调历程的检测和清除 只检查了PsSetLoadImageNotifyRoutine PsSetCreateThreadNotifyRoutine PsSetCreateProcessNotifyRoutine CmRegisterCallback这几个,至于那个什么shutdown回调不知道是啥玩意,就没搞了,有知道的顺便告诉我下撒,谢谢 九:文件系统fat和ntfs的分发函数检测 直接反汇编fat和ntfs的DriverEntry得到对应的填充分发的偏移,然后和当前已经运行的文件系统的分发相比是否被hook,并附带恢复 十:文件查看功能 自己解析ntfs和fat的结构,来实现列举文件和直接写磁盘删除。附带有普通的删除和发生IRP来删除。不过这里面有点问题,ntfs删除有时把目录给搞坏了,大家凑合着吧, Ntfs网上删除这些操作的代码不多,就是sudami大大的利用ntfs-3g来实现的,看了下,太多了,充满了结构。然后自己对照着系统删除文件时目录的变化来自己实现的。只处理了$BITMAP对应的位清除,父目录的对应文件的索引项的覆盖,删除文件对应的filerecord清0. 另外偷懒时间都没处理,呵呵,y的,一个破时间都都搞好几个字节移来移去的。 十一:常用内核模块钩子的检测和恢复 这里只检测了主要的内核模块nkrnlpa**.exe的.win32k.sys,hal.dll,比对它们的原始文件从而查找eat inline hook,iat hook ,和inline hook。Inline是从TEXT段开始一段位置开始比较的。(有点慢貌似,等待显示扫描完成就好了) 十二:应用层进程所加载dll的钩子 应用层钩子检测和内核模块钩子检测原理一样,不过为了能读写别的进程的空间,并没有使用openprocess去打开进程,而是通过KiattachProcess挂靠到当前进程,然后通过在r0直接读写进程空间的。
### 回答1: group by 去重的方法是将查询结果按照指定的列进行分组,然后对每个分组进行聚合操作。在分组的过程中,会将相同的列值合并为一个组,因此可以达到去重的效果。具体实现时可以在查询语句中添加group by子句,例如: ``` SELECT column1, column2, ... FROM table_name GROUP BY column1, column2, ...; ``` 其中,column1, column2, ... 是需要进行分组的列。此时查询结果将按照指定的列进行分组,并对每个分组进行聚合操作,去除了重复的行。需要注意的是,聚合函数如sum、avg等只对分组后的数据进行计算,而不是对所有数据进行计算。 另外,还有其他的去重方法,如使用distinct关键字、使用子查询等,具体应根据实际情况进行选择。但是需要注意的是,不同的去重方法可能会对结果产生不同的影响,需要根据实际需求进行选择。 ### 回答2: Group by 是一种在数据库中对数据进行分组和汇总的操作。在进行 Group by 操作时,经常需要对结果进行去重处理。 常用的去重方法有两种: 1. 使用 Distinct 关键字:在进行 Group by 操作时,可以在查询语句中加上 Distinct 关键字,用于去除重复的结果。Distinct 关键字会对查询结果进行去重,保留每个不同的值,但是它只适用于简单的去重场景,无法满足更复杂的需求。 2. 使用聚合函数:在 Group by 操作中,可以结合使用聚合函数来实现去重。例如,可以使用 COUNT(*) 函数来统计每个分组中的记录数量,然后根据数量进行筛选,只保留数量为 1 的记录,从而达到去重的效果。 至于用什么去重和我无关,这是一个视乎具体情况而定的问题。去重的方法可以根据不同的需求和数据库系统的支持来选择,例如可以使用窗口函数(Window Functions)来进行去重操作,也可以通过子查询或者其他厂商提供的去重函数来实现。 总的来说,Group by 去重的方法有多种选择,我们可以根据具体情况来选择适合自己的方式。但无论是使用 Distinct 关键字还是聚合函数,都可以在 Group by 操作中实现去重的效果。 ### 回答3: 在数据库中,如果我们要对某个字段进行分组并去重,可以使用GROUP BY语句来实现。 GROUP BY的作用是根据指定的字段对数据进行分组。在分组的基础上,我们可以使用聚合函数(例如COUNT、SUM、AVG等)来对每个分组进行计算。但是GROUP BY本身并没有去重的功能。 要实现去重,可以使用GROUP BY语句配合DISTINCT关键字来实现。在SELECT语句中,可以用DISTINCT关键字对某个字段进行去重操作。 例如,我们有一个订单表,包含订单号(OrderNumber)和客户姓名(CustomerName)两个字段。如果我们要对客户姓名进行分组并去重,可以使用以下语句: SELECT DISTINCT CustomerName FROM Orders; 这样就可以得到一个去重后的客户姓名列表。 另外,如果你说"用什么去重和你无关",可能是在指出去重操作并不涉及你个人,而是通用的技术方法。在去重时,我们不需要考虑个人的喜好或特定的需求,只需要根据实际情况选择适合的方法即可。无论是使用DISTINCT关键字、GROUP BY语句还是其他方法,它们本身都是通用的去重技术,与你个人无关。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值