首页
社区
课程
招聘
贴段代码,需要的拿走
发表于: 2010-4-16 15:40 8037

贴段代码,需要的拿走

2010-4-16 15:40
8037

//依据EPROCESS得到进程全路径
extern VOID GetFullPathByEprocess( ULONG eprocess,PCHAR ProcessImageName );
//得到当前调用函数的进程信息
extern VOID GetCurrentProcess(PULONG pid, PCHAR name, PCHAR path);
//路径解析出子进程名
extern VOID GetSonName( PCHAR ProcessPath, PCHAR ProcessName );
//根据SectionHandle得到进程全路径
extern VOID GetFullPathBySectionHandle( HANDLE SectionHandle, PCHAR ProcessImageName);
//根据ProcessHandle得到进程全路径
extern VOID GetFullPathByProcessHandle( HANDLE ProcessHandle, PCHAR ProcessImageName , PULONG pid );
//FileObject得到进程全路径
extern VOID GetFullPathByFileObject( PFILE_OBJECT FileObject, PCHAR ProcessImageName);
//KeyHandle得到注册表全路径
extern BOOLEAN GetRegKeyNameByHandle(HANDLE handle, char *realpath);
//
extern VOID UnicodeTochar(PUNICODE_STRING dst , char *src);
//
extern VOID WcharToChar(PWCHAR src,PCHAR dst);


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (11)
雪    币: 492
活跃值: (53)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
不错不错,多谢了,
LZ的TDI过滤驱动,进展如何了?
2010-4-16 16:30
0
雪    币: 492
活跃值: (53)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
3
不错不错,多谢了,
LZ的TDI过滤驱动,进展如何了?
2010-4-16 16:34
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
4
继续弄啊
2010-4-16 16:56
0
雪    币: 217
活跃值: (97)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
围观中.......  
2010-4-16 16:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
好东西,谢谢了,收藏
2010-4-16 17:07
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
7
我贴一个吧,由EPROCESS得到进程全路径,网上找的:

PVOID pCurProcess;
ULONG pCurProcess_offset;
POBJECT_NAME_INFORMATION pObjNameInfo =NULL;

static size_t s_cf_proc_name_offset = 0;

void cfCurProcNameInit() //这个函数放在DriverEntry中执行才有效果
{
        ULONG i;
        PEPROCESS  curproc;
        curproc = PsGetCurrentProcess();
        // 搜索EPROCESS结构,在其中找到字符串
        for(i=0;i<3*4*1024;i++)
        {
                if(!strncmp("System",(PCHAR)curproc+i,strlen("System")))
                {
                        s_cf_proc_name_offset = i;
                        DbgPrint("s_cf_proc_name_offset: %x\n",s_cf_proc_name_offset);
                        break;
                }
        }
}

pCurProcess = PsGetCurrentProcess();
pCurProcess_offset = s_cf_proc_name_offset + 0x80; //SE_AUDIT_PROCESS_CREATION_INFO  SeAuditProcessCreationInfo = s_cf_proc_name_offset + 0x80;
pObjNameInfo = *(POBJECT_NAME_INFORMATION *)((DWORD)pCurProcess+pCurProcess_offset);
if(MmIsAddressValid(pObjNameInfo)) //地址有效,有时候,有时候pObjNameInfo会是NULL,所以要做检查
{
   DbgPrint("processoffset %x processname: %ws\r\n",pCurProcess_offset,pObjNameInfo->Name.Buffer);
}
2010-4-18 17:43
0
雪    币: 296
活跃值: (89)
能力值: ( LV15,RANK:340 )
在线值:
发帖
回帖
粉丝
8
很实用的几个函数啊,比如那个 GetFullPathBySectionHandle()
先收下了,也许以后用得着
2010-4-18 17:58
0
雪    币: 1329
活跃值: (5184)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
先收下了,也许以后用得着........
2010-4-18 19:51
0
雪    币: 220
活跃值: (721)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
SHARE精神赞美一个!
2010-4-18 22:34
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
还是用现成的函数保险
2010-4-18 23:53
0
雪    币: 351
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不错,学习了
2010-4-20 23:09
0
游客
登录 | 注册 方可回帖
返回
//