|
    
- 帖子
- 9581
- 缘币
- 1646 元
- 下载币
- 0 元
|
Windows Genuine Advantage Crack 0.1(XP/VISTA适用)
用于Windows XP/Vista,可以使盗版或试用版通过M$的正版验证,从而达到更新和不受封锁的目的
N年前从Xfocus.net上下载到了HideProcess这个小工具,说是能隐藏进程,并公开了源代码,今天有兴趣研究一下。
(注:这个HideProcess.exe会被报毒,先关掉杀毒软件监控)
先看看HideProcess.exe的“威力”。
本例用任务管理器taskmgr.exe“开刀”,先打开任务管理器。
1、运行cmd.exe开一个窗口,再运行HideProcess taskmgr.exe
2、SSM拦截到它也是利用CreateRemoteThread注入DLL到taskmgr.exe中……
3、然后在任务管理器中就会发现自己给没了……
运用一些常用工具(包括我的ksIceProcess)当然无法检测出隐藏的taskmgr.exe,不过:
IceSword =>红色显示taskmgr.exe
SSM =>深红色显示taskmgr.exe (必须是较高版本,低版本无法检测到)
又试了一个新鲜玩意:
knlps -l 成功检测到taskmgr.exe
可见HideProcess利用的不是什么高深的技术,也没有加载驱动(但是沾了点边),正好合胃口。
用VC++ 打开它的EXE源码,将步骤列在下面。
1、定义一个字符串szHideDll,这个字符串很长,是这个程序要释放的DLL的全部数据。
2、入口main()
3、先检测一下用户输入的参数是否合理。
4、调用ReleaseDll()函数。其中releaseDLL调用CreateFile与WriteFile释放Hide.dll
5、GetModuleFileName得到DLL全路径。
6、OpenProcess打开目标进程
7、VirtualAllocEx和WriteProcessMemory在目标进程存放LoadLibrary(/* DLL 路径*/)字符串。
8、调用 CreateRemoteThread()注入DLL到目标进程
9、VirtualFreeEx(),CloseHandle()释放内存和目标进程句柄,DeleteFile()删除DLL文件。
当然,EXE只是一些皮毛,真正的东西还在DLL中。打开它的DLL源码。
由于看不太懂,只将能看出来的写在下面。
1、加载ntdll.dll (LoadLibrary("ntdll.dll")),其实是为了得到ntdll.dll的一个句柄,和GetModuleHandle差不多。
2、GetProcAddress()从ntdll.dll得到导出函数
RtlInitUnicodeString //用于转化Char到Unicode 字符串,因为在内核下必须使用Unicode字符串。
ZwOpenSection
3、调用OpenPhysicalMemory()读物理内存。代码:
RtlInitUnicodeString(&physmemString, L"\Device\PhysicalMemory");
status = ZwOpenSection(&g_hMPM, SECTION_MAP_READ|SECTION_MAP_WRITE, &attributes);
g_pMapPhysicalMemory = MapViewOfFile(g_hMPM, FILE_MAP_READ|FILE_MAP_WRITE, 0, PhyDirectory,
0x1000);
4、下面的看不懂了。好像是修改了导入函数表之类的HOOK掉相关的函数。
5、进程成功隐藏!
写了一个钻空子的程序ProcTest,可以查出被HideProcess隐藏的程序.
注意这个程序需要配合KsIceProcess 0.72使用.它有些系统进程也检测不出来,两者的进程列表一比对,就可以知道被隐藏的进程了(Proctest有而KsIceProcess 0.72无的就是隐藏进程.不可以反过来.).如果大家需要,我可以把这个功能加到KsIceProcess中. |
|