激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - C/C++ - C++實(shí)現(xiàn)查殼程序代碼實(shí)例

C++實(shí)現(xiàn)查殼程序代碼實(shí)例

2021-02-05 14:45C++教程網(wǎng) C/C++

這篇文章主要介紹了C++實(shí)現(xiàn)查殼程序代碼實(shí)例,有比較詳細(xì)的注釋,包含了對(duì)原理的說(shuō)明,有一定的參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了C++實(shí)現(xiàn)查殼程序代碼,分享給大家供大家參考。具體方法分析如下:

一般來(lái)說(shuō),PEID是基于特征碼的,用python只需要兩行代碼,用VC實(shí)現(xiàn)用了這么多代碼……。

python中只要引入pefile模塊,第一句代碼指定數(shù)據(jù)庫(kù)文件,第二句代碼返回結(jié)果。具體的看pefile官方介紹吧

下面是C++的代碼:

 

復(fù)制代碼 代碼如下:
void CMyPeidDlg::OnBnClickedBtnOpen() 

    // 獲取當(dāng)前工作路徑 
    CString strAppName;//當(dāng)前工作目錄 
    ::GetModuleFileName(NULL, strAppName.GetBuffer(_MAX_PATH), _MAX_PATH); 
    strAppName.ReleaseBuffer(); 
    int nPos = strAppName.ReverseFind('//'); 
    strAppName = strAppName.Left(nPos + 1); 
 
    // AfxMessageBox(strAppName); 
 
 
    // 文件擴(kuò)展名過(guò)濾器 
    LPCTSTR szFilter = "EXE Files (*.EXE)|*.EXE|DLL Files (*.DLL)|*.DLL|All Files (*.*)|*.*||"; 
 
    //初始目錄是c:/windows, 初始選擇的文件名是test,初始后綴過(guò)濾器是 Chart Files (*.xlc) 
    CFileDialog dlg(TRUE,NULL ,strAppName.GetBuffer(_MAX_PATH) ,OFN_ENABLESIZING ,szFilter,NULL); 
    if(dlg.DoModal() == IDOK) 
    { 
        CString strFile = dlg.GetPathName(); // 全路徑 
        GetDlgItem(IDC_EDT_FILE)->SetWindowText(strFile.GetBuffer(_MAX_PATH)); 
 
        TRACE("/n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/n"); 
        TRACE(strFile); 
        TRACE("/n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/n"); 
    } 

 
void CMyPeidDlg::OnBnClickedBtnOk() 

    GetDlgItem(IDC_EDT_FILE)->SetWindowText("c:\\1.exe"); 
 
    char buf[_MAX_PATH]; 
    ZeroMemory(buf, _MAX_PATH); 
    GetDlgItemText(IDC_EDT_FILE, buf, _MAX_PATH-1); 
    HANDLE hFile = CreateFile(buf, GENERIC_READ,FILE_SHARE_READ, NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); 
    if (!hFile) 
    { 
        MessageBox("createFile failed.."); 
        return; 
    } 
    HANDLE hMap = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0,NULL); 
    if (!hMap) 
    { 
        MessageBox("hMap failed.."); 
        return; 
    } 
    LPVOID lpBase = MapViewOfFile(hMap, FILE_MAP_READ, 0, 0, 0); 
    if (!lpBase) 
    { 
        MessageBox("lpBase failed.."); 
        return; 
    } 
 
    DWORD dwOEP; 
    IMAGE_DOS_HEADER *pDosHeader = (IMAGE_DOS_HEADER*)lpBase; 
    IMAGE_NT_HEADERS *pNtHeader = (IMAGE_NT_HEADERS*)((char*)lpBase + pDosHeader->e_lfanew); 
    dwOEP = pNtHeader->OptionalHeader.AddressOfEntryPoint; 
 
    PIMAGE_SECTION_HEADER pSectionHeader = IMAGE_FIRST_SECTION(pNtHeader); 
     
    CString strTemp; 
    strTemp.Format("%0x",dwOEP); 
    SetDlgItemText(IDC_EDT_OEP, strTemp.GetBuffer(4)); 
 
    DWORD FileOffset; 
    for(int i=0; i<pNtHeader->FileHeader.NumberOfSections;i++) 
    { 
        if (dwOEP >= pSectionHeader->VirtualAddress &&  
            dwOEP < pSectionHeader->VirtualAddress + pSectionHeader->SizeOfRawData) 
        { 
            FileOffset = dwOEP - pSectionHeader->VirtualAddress + pSectionHeader->PointerToRawData; 
        } 
        pSectionHeader++; 
    } 
 
    strTemp.Empty(); 
    strTemp.Format("%0x",FileOffset); 
    SetDlgItemText(IDC_EDT_FILEOFFSET, strTemp.GetBuffer(4)); 
 
    //從文件偏移開(kāi)始讀特征碼 
    CString strBuf; 
    DWORD dwReaded; 
    SetFilePointer(hFile, FileOffset,0, FILE_BEGIN); 
    ReadFile(hFile, strBuf.GetBuffer(16), 16, &dwReaded,NULL); 
    MessageBox(strBuf.GetBuffer(16)); 
 
    char code[] = "\x60\xE8\x03\x00\x00\x00\xE9\xEB\04\x5D\x45\x55\xC3\xE8\x01"; 
    char fileBuf[16]; 
    memcpy(fileBuf, strBuf.GetBuffer(16),16); 
    char ctype[20]; 
    for (int i=0;i<16;i++) 
    { 
        if (code[i]!=fileBuf[i]) 
        { 
            StrCpy(ctype,"not found"); 
            break; 
        } 
        else if (i==15) 
        { 
            StrCpy(ctype, "aspack"); 
        } 
    } 
    SetDlgItemText(IDC_EDT_SHELLTYPE, ctype); 
}

 

希望本文所述對(duì)大家的C++程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费国产成人高清在线看软件 | 久久精品视频69 | 久久综合色区 | 香蕉在线播放 | 久久99久久99免费视频 | 久久777国产线看观看精品 | 奇米影视四色7777 | 欧美一级不卡视频 | 久久精品欧美一区二区三区不卡 | 55夜色66夜色国产精品视频 | 欧美14一15sex性hd | 国产羞羞视频免费在线观看 | 91九色福利| 国产欧美精品一区二区三区四区 | 亚洲欧美日韩精品久久 | 自拍亚洲伦理 | 精品国产专区 | 91九色蝌蚪国产 | 国产精品一区二区三区在线 | 日本一区二区三区高清不卡 | 亚洲网站免费看 | 精品欧美一区二区精品久久小说 | 香蕉视频99 | 久久99亚洲精品久久99果 | 国产精品一区二区三区在线看 | 九九色网站 | 渔夫荒淫艳史 | 中文字幕 亚洲一区 | xxxxhd73国产| 久久99精品国产99久久6男男 | 欧美一区二区网站 | 欧美18—19sex性hd | 伊人在线 | 久久精品国产亚洲aa级女大片 | 国产精品自拍99 | 国产成人在线一区 | 精品亚洲网站 | 2021国产精品 | 国产精品视频一区二区三区综合 | 国产精品视频一区二区三区四区五区 | 日本黄色免费片 |