久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3515|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

獨占式強鎖文件 - K掉易游強制鎖定廣告主頁

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71922 發(fā)表于 2015-1-10 23:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
       今天幫我的朋友設(shè)計了一個小程序。是解決易游強制鎖定IE的廣告主頁。他是幾家連鎖的中型網(wǎng)吧技術(shù)負責(zé)人,所以通過推廣廣告主頁賺點外快。。。嘿嘿。。。

        根據(jù)他解釋,無論怎么設(shè)置主頁,打開IE瀏覽器后總會被強制跳轉(zhuǎn)到易游自己的百度推廣主頁,所以很奸詐。他仔細研究了下,這次易游是在C:\windows\system32\ 目錄下 隨機尋找一個文件夾,然后再在那個文件夾里面建立一個隨機命名的文件夾,在這個隨機命名的文件夾中生成兩個隨機命名的DLL和一個固定名字EyooSecSet.dll的DLL文件。他給出的思路是以EyooSecSet.dll為突破點,遍歷System32文件下所有文件,找到這個EyooSecSet.dll就表示找到該文件夾,然后設(shè)置拒絕控制的權(quán)限,使那這些DLL文件無法被加載到IE瀏覽器中。據(jù)我粗略觀察,其中起作用的是兩個隨機命名DLL文件中的其中一個被注入到IE里面(可能不是注入而是利用了消息鉤子)。這次他找出問題所在并且也有思路,所以這次從設(shè)計到成品時間很短。由于在VC中設(shè)置文件夾權(quán)限比較復(fù)雜點,所以想起當年自己設(shè)計木馬的時候防止360上傳時利用CreateFile獨占方式打開文件,讓360無法讀取文件。這招在當時,360還無法粉碎呢,嘎嘎。。。 覺得反正能達到目的那就從簡開始。給出代碼。方便以后自己復(fù)習(xí)用。

    我自己的設(shè)計思路是利用殺毒軟件的特征碼技術(shù)來確定那是三個DLL,因為DLL的名字或許會變更。后來想想,一般都不會變吧。。到時候變了再說。。。

    [color=#060df9,strength=3);COLOR:white;text-shadow:1px][color=#060df9,strength=3);COLOR:white;text-shadow:1px]以前設(shè)計的程序沒有給出源碼的都會陸續(xù)給出。)

==================================================================================
///************************************************************************/
/* 設(shè)計者:【L、】QQ:1007566569                               */
/************************************************************************/
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
// 遍歷文件代碼
int viewfiles(char *directory);
// 鎖定文件
BOOL OccupyFile( LPCTSTR lpFileName );
BOOL EXIT = TRUE;
// 提升權(quán)限

void RaiseToDebugP()
{
    HANDLE hToken;
    HANDLE hProcess = GetCurrentProcess();
    if ( OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken) )
    {
        TOKEN_PRIVILEGES tkp;
        if ( LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tkp.Privileges[0].Luid) )
        {
            tkp.PrivilegeCount = 1;
            tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
            
            BOOL bREt = AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, 0) ;
        }
        CloseHandle(hToken);
    }   
}

// 這個函數(shù)是為了把文件句柄復(fù)制到 System 進程 這樣本程序即使退出 被鎖定的文件也不會失效
BOOL OccupyFile( LPCTSTR lpFileName )
{
    BOOL    bRet;
   
    RaiseToDebugP();

// 打開System進程
    HANDLE hProcess = OpenProcess( PROCESS_DUP_HANDLE, FALSE, 4);    // 4為system進程號

    if ( hProcess == NULL )
    {
        hProcess = OpenProcess( PROCESS_DUP_HANDLE, FALSE, 8);        
        
        if ( hProcess == NULL )
            return FALSE;
    }

    HANDLE hFile;
    HANDLE hTargetHandle;
// 獨占方式打開文件 網(wǎng)上的不是打開
hFile =CreateFile(lpFileName,GENERIC_READ,0,NULL,OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS,0);

    if ( hFile == INVALID_HANDLE_VALUE )
    {
        CloseHandle( hProcess );
        return FALSE;
    }

    // 禁止內(nèi)核關(guān)閉該句柄 一般情況下如果在內(nèi)核關(guān)閉該句柄會藍屏
    SetHandleInformation(hFile,HANDLE_FLAG_PROTECT_FROM_CLOSE,HANDLE_FLAG_PROTECT_FROM_CLOSE);
// 這步是關(guān)鍵 從當前進程復(fù)制文件句柄到System進程空間 這樣本程序即使退出 但是句柄在System進程內(nèi)仍有效
   bRet = DuplicateHandle( GetCurrentProcess(), hFile, hProcess, &hTargetHandle,
        0, FALSE, DUPLICATE_SAME_ACCESS|DUPLICATE_CLOSE_SOURCE);

    CloseHandle( hProcess );

    return bRet;
}

// 找到該文件夾后 遍歷所有文件 并且鎖定
DWORD WINAPI viewfilesLock( LPVOID lpParam )
{
char directory[MAX_PATH] = {0};
strcpy(directory, (char*)lpParam);
    WIN32_FIND_DATA fdFindData;
    HANDLE hFind;
    char *filename;
    int count=0;
    BOOL done;

    filename=new char[strlen(directory)+5];

strcpy(filename,directory);
    strcat(filename,"\\*.*");
// 這里都是普通的便利文件代碼。。。
    hFind=FindFirstFile(filename,&fdFindData);
    delete[] filename;
    done=hFind!=INVALID_HANDLE_VALUE;
    while(done)
    {
  
  if(strcmp(fdFindData.cFileName,".") && strcmp(fdFindData.cFileName,".."))
  {
   filename=new char[strlen(directory)+strlen(fdFindData.cFileName)+2];
   strcpy(filename,directory);
   strcat(filename,"\\");
   strcat(filename,fdFindData.cFileName);
   if((fdFindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY )
   {
    viewfiles(filename);
   }
   else
   {
    // 凡是文件 都將被鎖定
    printf("文件路徑:%s\n",filename);
    OccupyFile(filename);
   }
   delete[] filename;
  }
  done=FindNextFile(hFind,&fdFindData);
    }
    FindClose(hFind);
EXIT = FALSE;  // 標記可以退出
    return(count);
}

// 遍歷指定文件夾
int viewfiles(char *directory)
{
    WIN32_FIND_DATA fdFindData;
    HANDLE hFind;
    char *filename;
    int count=0;
    BOOL done;

    filename=new char[strlen(directory)+5];

strcpy(filename,directory);
    strcat(filename,"\\*.*");
    hFind=FindFirstFile(filename,&fdFindData);
    delete[] filename;
    done=hFind!=INVALID_HANDLE_VALUE;
    while(done)
    {
  
  if(strcmp(fdFindData.cFileName,".") && strcmp(fdFindData.cFileName,".."))
  {
   filename=new char[strlen(directory)+strlen(fdFindData.cFileName)+2];
   strcpy(filename,directory);
   strcat(filename,"\\");
   strcat(filename,fdFindData.cFileName);
   if((fdFindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY )
   {
    viewfiles(filename);
   }// 如果文件名為 EyooSecSet.dll 這步之所以用 strstr是為了省時間。不想重新處理文件路徑。正確的應(yīng)該先處理文件路徑獲取文件名再比較
   else if (strstr(filename, "EyooSecSet.dll"))
   {
    char DllFile[MAX_PATH] = {0};
    strcpy(DllFile, filename);
    *strrchr(DllFile, '\\') = '\0';
    // 創(chuàng)建線程去鎖定包含了 EyooSecSet.dll 文件的文件夾下所有文件
    CreateThread(NULL, NULL, viewfilesLock, (LPVOID)DllFile, NULL, NULL);
    Sleep(500);  // 保證線程參數(shù)傳遞完畢
   }
        
   delete[] filename;
  }
  done=FindNextFile(hFind,&fdFindData);
    }
    FindClose(hFind);
    return(count);
}
void Scan()
{
while(EXIT)
{
  viewfiles("C:\\windows\\system32");
  Sleep(1000);
}
exit(1); // 如果找到了這些文件 就退出
}


int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
// 運行時 去除鼠標指針漏斗
GetInputState();
PostThreadMessage(GetCurrentThreadId(), NULL, NULL, NULL);
MSG msg;
GetMessage(&msg, NULL, NULL, NULL);
printf("用于解決易游鎖定IE廣告主頁 2013.3.29    【L、】1007566569");
CreateThread(NULL, NULL,(LPTHREAD_START_ROUTINE)Scan, NULL, NULL, NULL);
Sleep(120000); // 如果 兩分鐘后還沒有找到文件 那么就退出
return 0;
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99精品99 | 欧美一级毛片久久99精品蜜桃 | 亚洲色图插插插 | 97超碰人人草 | 亚洲免费精品 | 国产在线中文字幕 | 第四色播日韩第一页 | 亚洲一区二区三区 | 在线色网| 天天草天天干天天 | 亚洲成人一区二区在线 | 欧美综合国产精品久久丁香 | 91精品国产综合久久久久久丝袜 | 国产无人区一区二区三区 | 天天插天天射天天干 | 人妖无码 | 成人精品毛片 | 视频一区 亚洲 | 国产美女一区 | 欧美一级二级三级视频 | 精品欧美乱码久久久久久1区2区 | 国产伦精品一区二区三区照片91 | 午夜爱爱毛片xxxx视频免费看 | 色综合天天天天做夜夜夜夜做 | 免费观看www7722午夜电影 | 成人精品鲁一区一区二区 | 国产精品国产a级 | 亚洲一区二区在线视频 | 免费一看一级毛片 | 午夜精品导航 | 成年人在线观看视频 | 一区二区三区视频在线观看 | 日韩在线免费 | 欧美αv| 亚洲精品久久久一区二区三区 | 视频二区在线观看 | 国产一级片免费在线观看 | 亚洲成人黄色 | 久久久综合精品 | 欧美综合一区二区三区 | 成人亚洲精品久久久久软件 |