能力值:
( LV9,RANK:380 )
|
-
-
2 楼
md5,crc。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
PsGetCurrentProcess获得进程,但是EXE的文件内容如何GET
难道要在打开前就检测MD5?
|
能力值:
( LV12,RANK:400 )
|
-
-
4 楼
双向通讯验证
|
能力值:
( LV12,RANK:250 )
|
-
-
5 楼
通过全局信息就好了。进程起来后可以创建一个有名事件,其他进程检测一下事件存在,那证明就是你的进程
|
能力值:
( LV13,RANK:240 )
|
-
-
6 楼
crc检验?
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
完全搞不懂怎样在驱动层检测程序的CRC、MD5,只好选择最简单注册表……
|
能力值:
(RANK:50 )
|
-
-
8 楼
通过目标进程的EPROCESS可以得到目标进程的可执行文件路径(当然有可能被隐藏),然后检验可执行文件。内核里实现CRC和MD5之类的算法完全没问题,注意好一些小细节即可。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
可信进程名单吧 从类似MapView源头抓起 验证执行文件md5/crc/签名...
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
另外 跑起来后 内存校验也ok
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
PCWSTR GetCurrentProcessFileName()
{
ULONG dwAddress = (ULONG)PsGetCurrentProcess();
if(dwAddress == 0 || dwAddress == 0xFFFFFFFF)
return NULL;
dwAddress += 0x1B0;
if((dwAddress = *(ULONG*)dwAddress) == 0) return 0;
dwAddress += 0x10;
if((dwAddress = *(ULONG*)dwAddress) == 0) return 0;
dwAddress += 0x3C;
if((dwAddress = *(ULONG*)dwAddress) == 0) return 0;
//KdPrint(("%ws", (PCWSTR)dwAddress));
return (PCWSTR)dwAddress;
}
不知道怎么搞,上面那个获取文件路径函数有时候可以,有时候就蓝屏……
不过还是不搞MD5、CRC了,因为要求是内核编译之后就不能换,只能换程序,还是搞进程和内核通信算了。
|
能力值:
(RANK:50 )
|
-
-
12 楼
调试,看蓝屏的错误类型和出错的位置
|
能力值:
( LV15,RANK:670 )
|
-
-
13 楼
白名单模式,让他们把程序交给你
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
Pid 在任务管理器那里,可以用pid来识别进程。
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
进程名字可以一样,但PID是唯一的。
|
|
|