|
[调查]江西的朋友请
南昌人还挺多的。 |
|
[求助]在ring0 如何判断磁盘的类型为U盘
ZwQueryVolumeInformationFile |
|
|
|
[求助]我想进行网络连接监控,选择什么技术实现比较好呢?
SPI应用层的东西,实现简单,但容易被摘掉 TDI我觉得比较符合你的需求,不过新版本的Windows可能不支持这个了,具体可以看WDK里面新的网络过滤相关例子和说明 NDIS没办法获取进程信息,不过可以配合TDI获得进程信息,这个就是底层一些,网上也有一些代码可以参考 如果只想获得一些网络连接信息的话,我觉得调一些API就可以了,要监控的话还是上面一些东西 |
|
[讨论]ReadDirectoryChangesW函数问题
fs filter |
|
|
|
[推荐]手上有个项目,希望有大牛接,紧急
这个程序就是判断是否是远程控制在操作机密文件,或者恶意进程在传送机密文件 |
|
|
|
[求助]郁闷了一宿,一个API用不明白了
msdn现成的 HRSRC hResLoad; // handle to loaded resource HANDLE hExe; // handle to existing .EXE file HRSRC hRes; // handle/ptr. to res. info. in hExe HANDLE hUpdateRes; // update resource handle char *lpResLock; // pointer to resource data BOOL result; // Load the .EXE file that contains the dialog box you want to copy. hExe = LoadLibrary("hand.exe"); if (hExe == NULL) { ErrorHandler("Could not load exe."); } // Locate the dialog box resource in the .EXE file. hRes = FindResource(hExe, "AboutBox", RT_DIALOG); if (hRes == NULL) { ErrorHandler("Could not locate dialog box."); } // Load the dialog box into global memory. hResLoad = LoadResource(hExe, hRes); if (hResLoad == NULL) { ErrorHandler("Could not load dialog box."); } // Lock the dialog box into global memory. lpResLock = LockResource(hResLoad); if (lpResLock == NULL) { ErrorHandler("Could not lock dialog box."); } // Open the file to which you want to add the dialog box resource. hUpdateRes = BeginUpdateResource("foot.exe", FALSE); if (hUpdateRes == NULL) { ErrorHandler("Could not open file for writing."); } // Add the dialog box resource to the update list. result = UpdateResource(hUpdateRes, // update resource handle RT_DIALOG, // change dialog box resource "AboutBox", // dialog box name MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), // neutral language lpResLock, // ptr to resource info SizeofResource(hExe, hRes)); // size of resource info. if (result == FALSE) { ErrorHandler("Could not add resource."); } // Write changes to FOOT.EXE and then close it. if (!EndUpdateResource(hUpdateRes, FALSE)) { ErrorHandler("Could not write changes to file."); } // Clean up. if (!FreeLibrary(hExe)) { ErrorHandler("Could not free executable."); } |
|
|
|
[原创]发一份文件系统相关的代码,顺便求职
LZ找工作的速度好快。。。。 |
|
[求助]问个调试符号API相关的问题
#include <stdio.h> #include <windows.h> //#include <Dbghelp.h> #include <Imagehlp.h> #pragma comment(lib,"Imagehlp.lib") ULONG a=0; BOOL CALLBACK SymEnumSymbolsProc( PSYMBOL_INFO pSymInfo, ULONG SymbolSize, PVOID UserContext ) { a++; printf("%d: %s,0x%08x\n",a,pSymInfo->Name,pSymInfo->Address); if(strcmp(pSymInfo->Name,"KiWaitListHead")==0) getchar(); return TRUE; } void main() { HANDLE hProcess=GetCurrentProcess(); if(!SymInitialize(hProcess, "D:\\symbol", FALSE)) { printf("SymInitializ failed!\n"); return; } PLOADED_IMAGE pLI; pLI=ImageLoad("ntkrpamp.exe", "D:\\symbol"); if(pLI==NULL) { printf("ImageLoad failed!\n"); return; } DWORD dwLoad; dwLoad = SymLoadModule (hProcess, NULL, "D:\\symbol\\ntkrpamp.exe", "ntkrpamp.pdb", [COLOR="Red"](ULONG)pLI->MappedAddress[/COLOR], pLI->SizeOfImage); if(dwLoad==0) { printf("SymLoadModule failed!\n"); return; } if(!SymEnumSymbols(hProcess,dwLoad,NULL,SymEnumSymbolsProc,NULL)) { printf("SymEnumSymbols failed!\n"); return; } getchar(); } 在我的机器上可以找到KiWaitListHead,代码里面红的必须加上 ntkrpamp.exe和ntkrpamp.pdb放在同一个目录 |
|
|
|
[求助]问个调试符号API相关的问题
SymLoadModule的倒数第二个参数改成ploadImage->MappedAddress |
|
|
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值