-
fhbmonkey
2008-09-10
-
兄弟,问一个多线程的问题,我的多线程怎么好像死机一样呢,我开了10线程
-
jingjing54008
2008-08-22
-
陈辉大哥帮帮忙,期待你的回答!!谢谢!!
http://www.vbgood.com/viewthread.php?tid=73711&extra=page%3D1
-
a294447011294447011
2008-07-17
-
陈辉兄弟,我好长时间没有来csdn了,怎么我的好友被删了!现在没有你在里面了!我加不了你 <br />帮帮忙!
-
a294447011294447011
2008-06-19
-
陈辉兄弟:我在http://bbs.pediy.com/showthread.php?p=299980看了“内核级HOOK的几种实现与应用”着篇文章,里面有两个代码例子,我用vc++6.0,新建makefile工程,再新建一个cpp文件,再把里面的例子代码编译,有一些英文提示对话筐,看不懂什么意思!我看代码,有驱动代码。可以告诉我怎么连接吗?好象要有ddk或sdk之类的?<br /><br />麻烦陈辉兄弟把解决办法贴到:<br />http://blog.csdn.net/a294447011294447011/archive/2008/06/19/2566545.aspx
-
a294447011294447011
2008-06-17
-
陈辉兄弟:为什么我钩CreateProcessInternalW 会蓝屏,而且会弹出一对话框:终止,重试,取消。是不是有其他监视程序在运行的原因或有杀毒程序运行的原因?
-
a294447011294447011
2008-06-09
-
陈辉:我在NtCreateFile钩子代码里,实现dll的多个实例数据共享用以下代码,为什么我的vb窗口标题会被改为“进程数:1”?<br />我添加以下代码到:“ mydllfile.cpp”的头文件包含结束后面<br />#pragma data_seg("Shared") <br />volatile int hh=0; <br />volatile HWND hm =0;<br />#pragma data_seg()<br />#pragma comment(linker,"/Section:Shared,RWS")<br />然后DllMain是这样的:<br />BOOL APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)//DLL入口点函数<br />{ <br /> m_hinstDll=hInstance;//全局m_hinstDll <br /> if (dwReason == DLL_PROCESS_ATTACH)//判断是否是进程载入,DLL_PROCESS_ATTACH是进程载入标识 <br /> { <br /> ::hh++; <br /> m_hWnd=FindWindow(NULL,"文件操作监视");//查找窗口标题为"文件操作监视"的窗口代号(句柄)给m_hWnd <br /> ::hm=m_hWnd; <br /> char f[10],ff[526]="进程数:"; <br /> itoa(::hh ,f,10); //strcat(ff, "进程数:"); <br /> strcat(ff, f); <br /> //MessageBoxA(NULL,ff,"进程",MB_OK); <br /> SendMessage(::hm ,12,strlen(ff),(LPARAM)&ff);//这句代码不是向窗口标题为"文件操作监视"发送ff吗?怎么会使标题为"文件操作监视"的窗口更改标题为ff?? <br /> if (!m_hWnd) //全局m_hWnd <br /> return FALSE; <br /> GetWindowThreadProcessId(m_hWnd,&m_ProcessId);//获取窗口标题为"文件操作监视"的进程pid给long m_ProcessId <br /> HMODULE hMod = LoadLibrary("ntdll.dll");//载入指定的动态链接库,成功则返回库模块的句柄<br />//ZwQueryObject1=(ZWQUERYOBJECT) (GetProcAddress(hMod,"ZwQueryObject")); <br /> CreateFile1=(NTCREATEFILE)(GetProcAddress(hMod,"NtCreateFile"));//检索指定的动态链接库(DLL)中的输出库函数地址。如果函数调用成功,返回值是DLL中的输出函数地址。如果函数调用失败,返回值是NULL。得到进一步的错误信息,调用函数GetLastError。 <br /> FreeLibrary(hMod);//释放指定的动态链接库,它们早先是用LoadLibrary API函数装载的 <br /> if (GetCurrentProcessId()!=m_ProcessId)//获取当前进程pid判断是否是原来的pid,窗口标题不是"文件操作监视" <br /> ChookNtCreateFile = new CHookInfo("ntdll.dll","NtCreateFile",(DWORD)NtCreateFileCallback); <br /> } <br /> else if (dwReason == DLL_PROCESS_DETACH)//判断是否是进程卸载,DLL_PROCESS_DETACH是进程卸载标识 <br /> { <br /> ::hh--; <br /> char f[10],ff[526]="进程数:"; <br /> itoa(::hh ,f,10); <br /> strcat(ff, f); <br /> //MessageBoxA(NULL,ff,"进程",MB_OK); <br /> SendMessage(::hm ,12,strlen(ff),(LPARAM)&ff); <br /> if (GetCurrentProcessId()!=m_ProcessId)//获取当前进程pid判断是否是原来的pid <br /> delete ChookNtCreateFile; <br /> } <br /> return TRUE; //<br />}<br />vb代码:<br />Private Sub Form_Load()<br /> Me.Caption = "文件操作监视"<br /> If SubClass(Me.hWnd) Then <br /> MsgBox "更改窗口消息处理成功!"Else: MsgBox "更改窗口消息处理失败!"<br /> End If<br /> InstallRegHook<br />End Sub<br />Public Function WndProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long <br />Dim a() As Byte, i As Long, str As String <br /> If 12 = uMsg Then <br /> ReDim a(wParam - 1) <br /> CopyMemory a(0), ByVal lParam, wParam <br /> str = StrConv(a, vbUnicode) <br /> Form1.Text1 = Form1.Text1 + Chr(13) + Chr(10) + str <br /> 'Form1.Caption = "文件操作监视" <br /> End If <br />WndProc = CallWindowProc(GetProp(hWnd, OLDWNDPROC), hWnd, uMsg, wParam, lParam)<br />'Form1.Caption = "文件操作监视"<br />End Function<br />今天我没有碰到你,如何解决就帮忙贴到:http://hi.csdn.net/a294447011294447011/profile/notebook/1.html还有一个问题是:客户太(ring3)的NtCreateFile在ntdll.dll里,那核心太(ring0)的NtCreateFile在什么地方?
-
a294447011294447011
2008-06-07
-
陈辉:<br />我在NtCreateFile钩子代码里,实现dll的多个实例数据共享用以下代码,为什么我的vb窗口标题会被改为“进程数:1”?<br />我添加以下代码到:“ mydllfile.cpp”的头文件包含结束后面<br />#pragma data_seg("Shared")<br /> volatile int hh=0;<br /> volatile HWND hm =0;<br />#pragma data_seg()<br />#pragma comment(linker,"/Section:Shared,RWS")<br />然后DllMain是这样的:<br />BOOL APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)//DLL入口点函数<br />{<br /> m_hinstDll=hInstance;//全局m_hinstDll<br /> if (dwReason == DLL_PROCESS_ATTACH)//判断是否是进程载入,DLL_PROCESS_ATTACH是进程载入标识<br /> { <br /> ::hh++;<br /> m_hWnd=FindWindow(NULL,"文件操作监视");//查找窗口标题为"文件操作监视"的窗口代号(句柄)给m_hWnd<br /> ::hm=m_hWnd;<br /> char f[10],ff[526]="进程数:";<br /> itoa(::hh ,f,10);<br /> //strcat(ff, "进程数:");<br /> strcat(ff, f);<br /> //MessageBoxA(NULL,ff,"进程",MB_OK);<br /> SendMessage(::hm ,12,strlen(ff),(LPARAM)&ff);//这句代码不是向窗口标题为"文件操作监视"发送ff吗?怎么会使标题为"文件操作监视"的窗口更改标题为ff??<br /> if (!m_hWnd) //全局m_hWnd<br /> return FALSE;<br /> GetWindowThreadProcessId(m_hWnd,&m_ProcessId);//获取窗口标题为"文件操作监视"的进程pid给long m_ProcessId<br /> HMODULE hMod = LoadLibrary("ntdll.dll");//载入指定的动态链接库,成功则返回库模块的句柄<br /> // ZwQueryObject1=(ZWQUERYOBJECT)(GetProcAddress(hMod,"ZwQueryObject"));<br /> CreateFile1=(NTCREATEFILE)(GetProcAddress(hMod,"NtCreateFile"));//检索指定的动态链接库(DLL)中的输出库函数地址。如果函数调用成功,返回值是DLL中的输出函数地址。如果函数调用失败,返回值是NULL。得到进一步的错误信息,调用函数GetLastError。<br /> FreeLibrary(hMod);//释放指定的动态链接库,它们早先是用LoadLibrary API函数装载的 <br /> if (GetCurrentProcessId()!=m_ProcessId)//获取当前进程pid判断是否是原来的pid,窗口标题不是"文件操作监视"<br /> ChookNtCreateFile = new CHookInfo("ntdll.dll","NtCreateFile",(DWORD)NtCreateFileCallback);<br /> }<br /> else if (dwReason == DLL_PROCESS_DETACH)//判断是否是进程卸载,DLL_PROCESS_DETACH是进程卸载标识<br /> {<br /> ::hh--;<br /> char f[10],ff[526]="进程数:";<br /> itoa(::hh ,f,10);<br /> strcat(ff, f);<br /> //MessageBoxA(NULL,ff,"进程",MB_OK);<br /> SendMessage(::hm ,12,strlen(ff),(LPARAM)&ff);<br /> if (GetCurrentProcessId()!=m_ProcessId)//获取当前进程pid判断是否是原来的pid<br /> delete ChookNtCreateFile;<br /> }<br /> return TRUE; //<br />}<br />vb代码:<br />Private Sub Form_Load()<br />Me.Caption = "文件操作监视"<br />If SubClass(Me.hWnd) Then<br /> MsgBox "更改窗口消息处理成功!"<br />Else: MsgBox "更改窗口消息处理失败!"<br />End If<br />InstallRegHook<br />End Sub<br />Public Function WndProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long<br /> Dim a() As Byte, i As Long, str As String<br /> If 12 = uMsg Then<br /> ReDim a(wParam - 1)<br /> CopyMemory a(0), ByVal lParam, wParam<br /> str = StrConv(a, vbUnicode)<br /> Form1.Text1 = Form1.Text1 + Chr(13) + Chr(10) + str<br /> 'Form1.Caption = "文件操作监视"<br /> End If<br /> WndProc = CallWindowProc(GetProp(hWnd, OLDWNDPROC), hWnd, uMsg, wParam, lParam)<br />'Form1.Caption = "文件操作监视"<br />End Function<br /><br />今天我没有碰到你,如何解决就帮忙贴到:<br />http://hi.csdn.net/a294447011294447011/profile/notebook/1.html<br /><br />还有一个问题是:客户太(ring3)的NtCreateFile在ntdll.dll里,那核心太(ring0)的NtCreateFile在什么地方?
-
a294447011294447011
2008-05-16
-
陈辉大哥:好几个数据类型VC里面都没有定义!你帮帮我吧!
-
a294447011294447011
2008-05-16
-
陈辉大哥:我的createfile钩子程序可以运行了,不过只是钩CreateCileA,致以CreateCileW,我忘了一个宽字符串连接函数,没有继续添加到程序里。<br />我还想做个NtCreateFile钩子,它的各个参数说明是什么?<br />NTSTATUS <br />NTAPI <br /> NtCreateFile( <br /> OUT PHANDLE FileHandle, //??<br /> IN ACCESS_MASK DesiredAccess, //??<br /> IN POBJECT_ATTRIBUTES ObjectAttributes, //??<br /> OUT PIO_STATUS_BLOCK IoStatusBlock, //??<br /> IN PLARGE_INTEGER AllocationSize OPTIONAL, //??<br /> IN ULONG FileAttributes, //??<br /> IN ULONG ShareAccess, //??<br /> IN ULONG CreateDisposition, //??<br /> IN ULONG CreateOptions, //??<br /> IN PVOID EaBuffer OPTIONAL, //??<br /> IN ULONG EaLength //??<br /> );
-
freemxl
2007-12-17
-
你好,有个VB网络编程的问题请教一下:本人用vb编写了一个多个客户机向服务器发送文件的程序,使用winsock控件。程序运行时是全自动的,无人值守。在运行中winsock接收时会出现: <br/>1.客户机执行一次sockClient.SendData方法,而服务器端接收时触发sockServer_dataarrival事件两次(可能更多) <br/>2.客户机执行两次sockClient.SendData方法,服务器端接收时只触发一次sockServer_dataarrival事件 这样服务器端接收的数据与预期的不同,导致程序处理数据时出现错误。<br/>请问应该怎么解决 thx