首页
社区
课程
招聘
使用SPI注入导致多进程调用DLL怎么办
发表于: 2017-6-10 23:39 3267

使用SPI注入导致多进程调用DLL怎么办

2017-6-10 23:39
3267

现在遇到的问题就是 使用了 SPI注入 很多进程都会调用到DLL 导致无法访问网络 请问如何过滤进程 只让一个进程使用那个DLL呢


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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 7
活跃值: (333)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
BOOL  APIENTRY  DllMain(HMODULE  hModule,
       DWORD    ul_reason_for_call,
       LPVOID  lpReserved
)
{
       switch  (ul_reason_for_call)
       {
       case  DLL_PROCESS_ATTACH:
       {
               if  (IsProcessInWhiteList())  {

               }
       }
2017-6-11 01:03
0
雪    币: 1285
活跃值: (1774)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
叁毛 BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { swit ...
  @叁毛  if    IsProcessInWhiteList()  请问这是函数是什么功能
2017-6-11 11:21
0
雪    币: 7
活跃值: (333)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
Cohen @叁毛 if IsProcessInWhiteList() 请问这是函数是什么功能
判断当前进程是不是要放行的,放行的进程不加载此DLL
2017-6-11 22:28
0
雪    币: 1285
活跃值: (1774)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
叁毛 判断当前进程是不是要放行的,放行的进程不加载此DLL
可否发这个函数功能出来  不清楚具体怎么写
2017-6-12 08:40
0
雪    币: 1285
活跃值: (1774)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
叁毛 判断当前进程是不是要放行的,放行的进程不加载此DLL
帅哥  救命呀
2017-6-13 17:59
0
雪    币: 1795
活跃值: (63)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
帅哥已经给了思路,身下就是白名单和比较而已了。。
2017-6-13 18:05
0
雪    币: 7
活跃值: (333)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8

void  GetProBaseName(DWORD  dwProcessid,WCHAR  *  szwProBaseName,DWORD  len)
{
       if (len  <=  0)
       {
               return  ;
       }

       memset(szwProBaseName,0,len  *  sizeof(WCHAR));
       PROCESSENTRY32  pe  =  {sizeof(PROCESSENTRY32)};
       HANDLE  hSnapshot  =  CreateToolhelp32Snapshot(TH32CS_SNAPALL,  0);
       if  (hSnapshot  ==  INVALID_HANDLE_VALUE)
       {
       }
       else
       {
               if  (!Process32First(hSnapshot,  &amp;pe))
               {
                       goto  Leave;
               }
               while  (Process32Next(hSnapshot,  &amp;pe))
               {
                       if  (pe.th32ProcessID  ==  dwProcessid)
                       {
                               lstrcpynW(szwProBaseName,pe.szExeFile,len);
                               break;
                       }
               }
       }
Leave:
       if(hSnapshot  !=  NULL)
       {
               CloseHandle(hSnapshot);
       }
       hSnapshot  =  NULL;
}


DWORD  dwProcessId  =  0;
dwProcessId  =  GetCurrentProcessId();

if (IsInWhiteList(dwProcessId))
 {
 }


static BOOL IsInWhiteList(DWORD dwProcessId)
{
 WCHAR wszProcessName[MAX_PATH];
 if (!GetProBaseName(dwProcessId, wszProcessName, _countof(wszProcessName)))
 {
  return FALSE;
 }

//比较

}

        

2017-6-13 23:28
0
雪    币: 1285
活跃值: (1774)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
叁毛 void&nbsp; GetProBaseName(DWORD&nbsp; dwProcessid,WCHAR&nbsp; *&nbsp; szw ...
帅哥  貌似都不完整呀
2017-6-13 23:52
0
游客
登录 | 注册 方可回帖
返回
//