陈辉(chenhui530)在线状态 5小时前

社区头衔:
社区专家 (专家排行榜
社区生日:
2005-03-24 |生日:1982-04-29
所在城市:
技术专长:
vb,vc,winddk
开发工具:
兴趣爱好:
个人简介:
ai
所在行业:
所在公司:
 
(仅好友可见)
联系方式:
(仅好友可见)
 
编辑我的资料
人气:
[人气排行榜] 共 66226 人访问 / 查看详细
专家分:
[专家分排行榜] 共 11405 分 / 查看详细
可用分:
[可用分排行榜] 共 5001 分
所获勋章:
个人动态
昨天
10月09
10月08
10月06
10月02
09月29
09月28
留言
查看全部

共 17 条留言

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)&amp;ff);//这句代码不是向窗口标题为"文件操作监视"发送ff吗?怎么会使标题为"文件操作监视"的窗口更改标题为ff??  <br />               if (!m_hWnd) //全局m_hWnd   <br />                          return FALSE;  <br />               GetWindowThreadProcessId(m_hWnd,&amp;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)&amp;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)&amp;ff);//这句代码不是向窗口标题为"文件操作监视"发送ff吗?怎么会使标题为"文件操作监视"的窗口更改标题为ff??<br />  if (!m_hWnd) //全局m_hWnd<br />   return FALSE;<br />  GetWindowThreadProcessId(m_hWnd,&amp;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)&amp;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