20楼#
发布于:2010-03-30 16:28
回 19楼(liuhui19842003) 的帖子
这估计不是代码问题,呵呵。 |
|
|
21楼#
发布于:2010-04-05 17:54
我也是在DriverEntry中添加:
Psi_AddProcessInfo("explorer.exe",TRUE); Psi_AddProcessInfo("System",TRUE); Psi_AddProcessInfo("WINWORD.exe",TRUE); processinfo.bMonitor=TRUE; memcpy(processinfo.szProcessName,"WINWORD.EXE",16); Psi_SetProcessMonitor(&processinfo,TRUE); 加密我用异或 pch = newBuf; for(i=0;i<writeLen;i++) pch ^=0x07; 但是安装完驱动怎么一点反应也没有,创建一个WINWORD文档写内容,用写字板打开还是原文。就好像驱动没起作用。 |
|
22楼#
发布于:2010-04-17 18:59
shenhui帮忙回答一下
|
|
23楼#
发布于:2010-04-18 19:30
能否把你的代码发一份给我,我来实验一下。看代码好像没有问题。
|
|
|
24楼#
发布于:2010-04-19 12:55
回 20楼(shenhui) 的帖子
你好,能告诉我怎么样测试吗?这个代码用的是什么加密算法啊?我编译后用inf安装启动,但建一个word文件,写入没反应。开始的时候,建一个word,一打开就是几十页的乱码,后来就没作用了。对记事本开始好用,但后来也没作用了。 |
|
25楼#
发布于:2010-04-19 12:59
回 楼主(shenhui) 的帖子
楼主可否告诉该如何测试啊?能否给个测试的代码? |
|
26楼#
发布于:2010-04-19 13:09
回 21楼(wonjhoncy) 的帖子
你好,这个该如何测试啊?能给个测试的代码吗?最好是测试代码跟这个代码一起的,谢谢!邮箱: 1114907304@qq.com |
|
27楼#
发布于:2010-04-21 22:48
测试可以自己简单写个应用程序与驱动通信,传入需要加解密的程序(包括explorer和system)就可以了。。。
这两天简单测了这个程序,主要是在NTFS和FAT上对记事本进行加解密,NTFS上正常,FAT上需要将驱动程序中稍微修改就可以了。。。 对office的还没测,所以不知道可以否 |
|
28楼#
发布于:2010-04-21 22:59
回 27楼(yiyi507) 的帖子
office也是可以的。请问你实验的记事本在FAT上有什么问题呢?能否把修改的地方告诉大家,谢谢! |
|
|
29楼#
发布于:2010-04-22 14:23
读取时文件头恢复不了是什么原因啊?
|
|
30楼#
发布于:2010-04-22 14:29
回 27楼(yiyi507) 的帖子
能否说点详细点啊?我是菜鸟,刚接触! |
|
31楼#
发布于:2010-04-22 14:31
回 21楼(wonjhoncy) 的帖子
能否将你的测试代码发我一份啊?我不知道怎么测试!dongn0905@126.com,谢谢了! |
|
32楼#
发布于:2010-04-22 16:06
回 28楼(shenhui) 的帖子
我测试的过程发现FAT跟NTFS处理的IRP不一样,FAT上写完Flag文件的大小变为5K,而NTFS上只有1K,觉得应该是set information上有问题,在endof处理了一下。今天测了一下office的不行,加解密我用+1,-1,。请问LS是怎么测的?为什么我测office会不行呢,应该不是加解密算法的问题吧? |
|
33楼#
发布于:2010-04-22 16:26
回 32楼(yiyi507) 的帖子
有可能和你昨天修改的有关系,这个代码在windows XP Professional sp3上已经测试通过了,包括NTFS和FAT32。另外你可以暂时先不关注在explorer中看到的文件长度。 |
|
|
34楼#
发布于:2010-04-22 16:43
大概说一下测试方法。
1. 加载驱动 FilterLoad(...) 2. 建立与驱动通信的通道 FilterConnectCommunicationPort(...) 3. 设置system进程和explorer.exe进程 MSG_SEND_ADD_PROCESS_INFO sSendAddProcInfo ; memset(&sSendAddProcInfo, 0, sizeof(sSendAddProcInfo)) ; sSendAddProcInfo.sSendType.uSendType = IOCTL_ADD_PROCESS_INFO ; sSendAddProcInfo.sProcInfo.bMonitor = TRUE; strncpy(sSendAddProcInfo.sProcInfo.szProcessName, "system", strlen("system")) ; MSG_GET_ADD_PROCESS_INFO sGetAddProcInfo ; memset(&sGetAddProcInfo, 0, sizeof(MSG_GET_ADD_PROCESS_INFO)) ; hRes = FilterSendMessage(hPort, &sSendAddProcInfo, sizeof(MSG_SEND_ADD_PROCESS_INFO), &sGetAddProcInfo, sizeof(MSG_GET_ADD_PROCESS_INFO), &dwReturned) ; MSG_SEND_ADD_PROCESS_INFO sSendAddProcInfo ; memset(&sSendAddProcInfo, 0, sizeof(sSendAddProcInfo)) ; sSendAddProcInfo.sSendType.uSendType = IOCTL_ADD_PROCESS_INFO ; sSendAddProcInfo.sProcInfo.bMonitor = TRUE; strncpy(sSendAddProcInfo.sProcInfo.szProcessName, "explorer.exe", strlen("explorer.exe")) ; MSG_GET_ADD_PROCESS_INFO sGetAddProcInfo ; memset(&sGetAddProcInfo, 0, sizeof(MSG_GET_ADD_PROCESS_INFO)) ; hRes = FilterSendMessage(hPort, &sSendAddProcInfo, sizeof(MSG_SEND_ADD_PROCESS_INFO), &sGetAddProcInfo, sizeof(MSG_GET_ADD_PROCESS_INFO), &dwReturned) ; 4. 设置你要监控的进程(notepad.exe/winword.exe/excel.exe/powerpnt.exe) 方法同3。 通过这四部,就可以进行测试了。 当然结束测试前别忘了关闭与驱动通信的端口,以及调用FilterUnload将驱动卸载。 |
|
|
35楼#
发布于:2010-04-22 16:58
根据楼主的代码,修改的一份我测试的,加密标志在文件头。但是会出现写字板打开文件后,正文正确,后面有4K的空白区域,不知道为何。如果哪位仁兄解决了这个问题,请联系我,谢谢。
由于我没有找到在驱动里获取长度超过16位的完整进程名,不得已,采用应用定时更新的方法,无奈。不过还算满足需求。 刚开始研究这个,有比较小白的做法请勿见笑,有问题请联系:lj5115lj@163.com |
|
|
36楼#
发布于:2010-04-22 17:24
回 34楼(shenhui) 的帖子
LS对word,excel是直接写加密,没有对临时文件进行处理吧?只有对PPT进行特殊处理了吧?这样的话确定测试可以通过吗? |
|
37楼#
发布于:2010-04-22 20:34
回 27楼(yiyi507) 的帖子
可否发一份测试的代码作为参考!谢谢!dongn0905@126.com |
|
38楼#
发布于:2010-04-22 22:24
回 36楼(yiyi507) 的帖子
这个代码并没有特别区分临时文件还是普通文件,一律平等对待。 |
|
|
39楼#
发布于:2010-04-23 17:01
谢分享。。研究中。。。
|
|