
C/C++
文章平均质量分 79
sunweiqq
这个作者很懒,什么都没留下…
展开
-
C++ 实现MergeSort算法
算法思想:假设有两个人,每人手里都有一部分牌,而且每个人手中的牌都按大小顺序排列好了。那么,现在要把两个人手中的牌合并到一起,并且合并后要从小到大依次排好,可以这样做:每个人都从手中拿出最小的牌,然后比较,谁的牌小就把该张牌放在桌面上,牌大的一方牌仍然拿在手中,待下次再比较。下一次每个人又拿最小的牌进行比较,如此下去。。。直到一方手中的牌全部放在了桌面上,这时另一方就可以把牌按从小到大的顺序全原创 2009-12-08 22:26:00 · 1486 阅读 · 0 评论 -
C++实现快速排序算法QuickSort()
算法基本思想:第一步:教官面对一列无序的队伍,他指着最右边的一个人A说:“比他高的站他右边,比他矮的站他左边。”完成之后,队伍被他分割成了两列,第一列:比A矮的在A的左边;第二列:比A 高的在A 的右边。第二步:他首先处理第一列,指着在A的左边的一个人B(也就是第一列中的最右边的一个人)说到:“比B高的站他右边,比B矮的站他左边”。这样完成之后,第一列又他成了两列。同样的方法处理第二列,第二列原创 2009-12-09 15:29:00 · 1991 阅读 · 0 评论 -
贪心算法--Dijkstra单源最短路径
今天兴致勃勃的开始做了贪心算法的第一道题目:Single-Source Shortest-Paths Problem也就是所谓的单源最短路径,课件上有算法,但是代码实现起来还真是不容易(仅仅对于我这个菜鸟来说),下面是算法框架: 设S为最短距离已确定的顶点集(看作红点集),V-S是最短距离尚未确定的顶点集(看作蓝点集)。①初始化 初始化时,只有源点s的最短距离是已知的(D(s)=0),原创 2009-12-23 00:21:00 · 3346 阅读 · 1 评论 -
无用的,ring0暴力枚举进程模块
<br />//////////////////////////////////////////////////////////////////////////VOID ListModuleThread(PVOID Context){ NTSTATUS ntStatus = STATUS_UNSUCCESSFUL; ULONG StepAddress; ULONG Step2Address; ULONG BufferSize = 0x200; U原创 2010-12-22 16:17:00 · 1286 阅读 · 0 评论 -
两种方法获取shadow ssdt
<br />ULONG GetShadowSsdtCurrentAddresses( PSSDT_ADDRESS AddressInfo, PULONG Length ){ PSYSTEM_SERVICE_TABLE KeServiceDescriptorTableShadow = NULL; ULONG NumberOfService = 0; ULONG ServiceId = 0; PKAPC_STA原创 2010-12-22 16:28:00 · 1955 阅读 · 2 评论 -
栈回溯法的一个例子
代码转自看雪论坛【驱动防火墙的一个例子】,直接复制过来的,看起来比较乱,不过还是很容易看懂的看了几个例子,一般都是在ExAllocatePoolWithTag这里挂钩啊,根据MemoryTag来判断,以后再发现发现有没有更精准的挂钩位置#include #include #include #include #include "MmLoadSystemImage.h"#defi原创 2010-12-22 16:52:00 · 2626 阅读 · 1 评论 -
多核发dpc安全inline hook
VOID OpSafeInlineHook(PVOID TargetAddress, PVOID ReadyOpCode, ULONG OpCodeLength){ PMDL MdlFuncAddress; ASSERT(TargetAddress && ReadyOpCode && OpCodeLength); if (ScmMapVirtualAddress(T原创 2010-12-22 16:23:00 · 1849 阅读 · 0 评论