国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

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

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

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

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

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

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

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

下面是C++的代碼:

 

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

    // 獲取當前工作路徑 
    CString strAppName;//當前工作目錄 
    ::GetModuleFileName(NULL, strAppName.GetBuffer(_MAX_PATH), _MAX_PATH); 
    strAppName.ReleaseBuffer(); 
    int nPos = strAppName.ReverseFind('//'); 
    strAppName = strAppName.Left(nPos + 1); 
 
    // AfxMessageBox(strAppName); 
 
 
    // 文件擴展名過濾器 
    LPCTSTR szFilter = "EXE Files (*.EXE)|*.EXE|DLL Files (*.DLL)|*.DLL|All Files (*.*)|*.*||"; 
 
    //初始目錄是c:/windows, 初始選擇的文件名是test,初始后綴過濾器是 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)); 
 
    //從文件偏移開始讀特征碼 
    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); 
}

 

希望本文所述對大家的C++程序設計有所幫助。

延伸 · 閱讀

精彩推薦
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    strcpy 和strcnpy函數(shù)是字符串復制函數(shù)。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數(shù)使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C語言實現(xiàn)電腦關(guān)機程序

    C語言實現(xiàn)電腦關(guān)機程序

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)電腦關(guān)機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    這篇文章主要介紹了c++ 單線程實現(xiàn)同時監(jiān)聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++C/C++經(jīng)典實例之模擬計算器示例代碼

    C/C++經(jīng)典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關(guān)于C/C++經(jīng)典實例之模擬計算器的相關(guān)資料,文中通過示...

    jia150610152021-06-07
  • C/C++深入理解goto語句的替代實現(xiàn)方式分析

    深入理解goto語句的替代實現(xiàn)方式分析

    本篇文章是對goto語句的替代實現(xiàn)方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網(wǎng)7342020-12-03
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內(nèi)存中的數(shù)據(jù)都是暫時的,當程序結(jié)束時,它們都將丟失,為了永久性的保存大量的數(shù)據(jù),C語言提供了對文件的操作,這篇文章主要給大家介紹了關(guān)于C語言中文件...

    針眼_6702022-01-24
主站蜘蛛池模板: 精品久久97| 色综合欧美 | 久久久一区二区精品 | 国产成人久久 | 色中色综合 | 亚洲欧美日韩一区 | 欧美成人精品一区二区 | 最色网| 一区亚洲| 在线日韩视频 | 一级在线观看视频 | 小情侣高清国产在线播放 | 国产成人影院 | 一区二区三区高清不卡 | 精品国产一区二区三区性色av | av免费网站 | 91精品国产综合久久福利软件 | 成人免费xxxxx在线观看 | 亚洲影视一区 | 小视频免费在线观看 | 久久91久久久久麻豆精品 | 欧美久久视频 | 国产精品一区久久久 | 亚洲欧美激情精品一区二区 | 亚洲精品成人在线 | 国产欧美日韩 | 日本不卡高字幕在线2019 | 女人爽到高潮aaaa电影 | 99亚洲精品 | 91精品蜜臀在线一区尤物 | 婷婷激情五月 | 精品一区二区不卡 | 91久久精品一区二区二区 | 在线视频国产一区 | 亚洲精品国产综合99久久夜夜嗨 | 综合色综合 | 日韩欧美网 | 毛片在线播放网站 | av久久 | 免费一级a毛片免费观看 | 久草 在线 |