亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言內嵌匯編API內存搜索引擎實例

2020-01-26 15:12:10
字體:
來源:轉載
供稿:網友

本文實例講述了C語言內嵌匯編API內存搜索引擎的方法,分享給大家供大家參考。具體實現方法如下:

復制代碼 代碼如下:
// apisearchEngine.cpp : Defines the entry point for the console application. 
// 
 
#include "stdafx.h" 
#include <Windows.h> 
 
 DWORD __stdcall GetStrLengthA(char* szName) 

    _asm 
    { 
        push edi 
        push ebx 
        mov eax,  szName 
        mov edi, eax 
        mov ebx, eax 
        xor al, al 
 
lstrscan: 
        scas byte ptr [edi]          //字符掃描法檢查字符串指針長度  
        jnz lstrscan 
        dec edi 
        sub edi, ebx 
        mov eax, edi 
        pop ebx 
        pop edi 
         
    } 

 
 DWORD __stdcall CalcBufferCRC(char* lpBuffer) 

    _asm 
    { 
        push ebx 
        push edi 
        push ecx 
        push ebp 
        mov ebx, lpBuffer 
        push ebx 
        call GetStrLengthA 
        mov edi, eax 
        shr edi, 2 
        xor ecx, ecx 
loopBegin: 
        dec edi 
        jl loopOver 
        xor ecx, dword ptr [ebx] 
        add ebx, 4 
        jmp loopBegin 
loopOver: 
        mov eax, ecx 
        pop ebp 
        pop ecx 
        pop edi 
        pop ebx 
    } 

 
DWORD __stdcall GetProcAddressA(HANDLE hModule, DWORD dwExportCRC) 

    //DWORD lpProcNameCRC = ; 
    DWORD dwProcNumber; 
    LPVOID pProcAddress, pProcNameAddress, pProcIndexAddress; 
    _asm 
    { 
        push ebx 
        push esi 
         
        mov eax, hModule 
        mov edx,dwExportCRC      // edx=函數名CRC32 
        mov ebx, eax                // ebx=基址 
        mov eax, [ebx+0x3c]          // eax=文件頭偏移 
        mov esi, [ebx+eax+0x78]      // esi=輸出表偏移,文件頭+可選頭的長度=$78 
        lea esi, [ebx+esi+0x18]      // esi=函數名數量 = 函數數量 [ebx+esi+$14] 
        lods dword ptr ds:[esi] 
        mov dwProcNumber, eax       // eax=函數名數量 
        lods dword ptr ds:[esi] 
        mov pProcAddress, eax       // eax=函數偏移量 
        lods dword ptr ds:[esi] 
        mov pProcNameAddress, eax   // eax=函數名偏移量 
        lods dword ptr ds:[esi] 
        mov pProcIndexAddress, eax  // eax=序列號偏移量 
        mov edx, dwProcNumber       // edx=遍歷次數 
LoopBegin: 
        xor eax, eax                // Result = 0 
        dec edx 
        jl LoopEnd 
        mov eax, pProcNameAddress 
        add eax, ebx                // eax=函數名基地址 
        mov eax, dword ptr ds:[eax+edx*4] 
        add eax, ebx                // eax=遍歷函數名 
        push eax 
        call CalcBufferCRC 
        cmp eax, dwExportCRC      // 對比CRC32 
        jnz LoopBegin 
        shl edx, 1 
        add edx, pProcIndexAddress  // 函數基序列 
        movzx eax, word ptr ss:[edx+ebx] 
        shl eax, 2 
        add eax, pProcAddress       // 函數基地址 
        mov eax, [eax+ebx] 
        add eax, ebx                // Result = 函數地址 
LoopEnd: 
        pop esi 
        pop ebx 
         
    } 

DWORD __stdcall GetKernel32Module() 

    _asm 
    { 
        PUSH    EBP 
        XOR     ECX, ECX 
        //MOV     ESI, [FS:ECX + 0x30]        ; ESI = &(PEB) ([FS:0x30])
        MOV     ESI, FS:[0X30] 
        MOV     ESI, [ESI + 0x0C]           ; ESI = PEB->Ldr     
        MOV     ESI, [ESI + 0x1C]           ; ESI = PEB->Ldr.InInitOrder
next_module:     
        MOV     EBP, [ESI + 0x08]           ; EBP = InInitOrder[X].base_address     
        MOV     EDI, [ESI + 0x20]           ; EBP = InInitOrder[X].module_name (unicode)    
        MOV     ESI, [ESI]                  ; ESI = InInitOrder[X].flink (next module)     
        CMP     [EDI + 12*2], CL            ; modulename[12] == 0 ?     
        JNE     next_module                 ; No: try next module. 
        MOV     EAX, EBP 
        POP     EBP 
    } 

int main(int argc, char* argv[]) 

    printf("write by xiaoju !/n"); 
    printf("*****************/n"); 
    DWORD dwBaseKernel32 = GetKernel32Module(); 
    printf("Kernel32的模塊地址:%08x/n",dwBaseKernel32); 
 
    DWORD LoadLibraryCRC32= CalcBufferCRC("LoadLibraryA") ; 
    printf("LoadLibraryA的CRC值(靜態寫到程序中):%08x/n/n", LoadLibraryCRC32); 
     
    DWORD dwAddrLoadLibrary = GetProcAddressA((HANDLE)dwBaseKernel32, 0x577a7461);  
    printf("在程序中動態得到的LoadLibraryA的地址:%08x/n", dwAddrLoadLibrary); 
    getchar(); 
    return 0; 
}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情亚洲一区| 午夜免费久久久久| 亚洲欧美日韩中文在线制服| 欧美成人一区在线| 国产剧情日韩欧美| 91av在线播放| 欧美性videos高清精品| 久久精品视频亚洲| 亚洲最大av网| 91福利视频网| 性夜试看影院91社区| 青青青国产精品一区二区| 亚洲精品99久久久久中文字幕| 日韩欧美视频一区二区三区| 国产精品吊钟奶在线| 亚洲国产精品电影在线观看| 国产成人精品久久久| 久久精品成人动漫| 在线视频中文亚洲| 欧美视频13p| 三级精品视频久久久久| 国产精品专区第二| 欧美一级bbbbb性bbbb喷潮片| 久久夜色精品国产欧美乱| 国产欧美va欧美va香蕉在| 欧美高清videos高潮hd| 亚洲欧美国产va在线影院| 黑人欧美xxxx| 欧美国产精品日韩| 日韩女在线观看| 在线亚洲国产精品网| 久久精品成人欧美大片| 欧美日韩加勒比精品一区| 欧美精品在线第一页| 色婷婷**av毛片一区| 欧美华人在线视频| 精品国产老师黑色丝袜高跟鞋| 亚洲va久久久噜噜噜久久天堂| 精品国产乱码久久久久久虫虫漫画| 91超碰caoporn97人人| 上原亚衣av一区二区三区| 亚洲天堂一区二区三区| 亚洲精品自拍视频| 一区二区三区国产视频| 国产精品第一视频| 久久久综合av| 亚洲精美色品网站| 欧洲日本亚洲国产区| 久久久久久久国产精品| 精品色蜜蜜精品视频在线观看| 国产精品久久999| 久久亚洲国产精品成人av秋霞| 免费97视频在线精品国自产拍| 成人a级免费视频| 亚洲国产精品悠悠久久琪琪| 91久久久精品| 日韩精品中文字幕有码专区| 日韩视频免费在线观看| 精品色蜜蜜精品视频在线观看| 欧美大片va欧美在线播放| 91精品免费看| 日韩av在线电影网| 久久久久久久久久久人体| 性色av一区二区三区红粉影视| 亚洲va男人天堂| 久久99国产精品自在自在app| 这里只有精品丝袜| 国产一区二区三区高清在线观看| 欧美亚洲国产日本| 亚洲嫩模很污视频| 4438全国亚洲精品在线观看视频| 欧美美女15p| 亚洲精品丝袜日韩| 国产婷婷97碰碰久久人人蜜臀| 国产精品免费看久久久香蕉| 成人有码在线播放| 久久av红桃一区二区小说| 亚洲福利影片在线| 亚洲精品国产精品自产a区红杏吧| 久久中文精品视频| 91禁国产网站| 国产97在线观看| 日本久久精品视频| 国产午夜精品全部视频播放| 日本欧美一级片| 国模视频一区二区| 国产精品一区二区三区免费视频| 91日本视频在线| 日韩精品免费一线在线观看| 国产不卡在线观看| 欧美高清在线视频观看不卡| 精品久久久久久久久久久久| 91色p视频在线| 国产精品嫩草影院一区二区| 欧美激情在线播放| 青青a在线精品免费观看| 国产精品久久精品| 亚洲自拍欧美另类| 91麻豆国产语对白在线观看| 色综合久久天天综线观看| 欧美成人免费播放| 欧美日本精品在线| 亚洲乱码一区av黑人高潮| 色天天综合狠狠色| 国产综合香蕉五月婷在线| 日韩有码在线电影| 国产精品极品美女粉嫩高清在线| 秋霞午夜一区二区| 日韩av片免费在线观看| 日韩免费av片在线观看| 国产精品一区二区久久国产| 成年无码av片在线| 欧美黑人极品猛少妇色xxxxx| 日韩亚洲综合在线| 亚洲欧美另类人妖| 亚洲第一精品夜夜躁人人躁| 国产精品久久久久久久久久| 欧美国产日产韩国视频| 国产性色av一区二区| 久久视频国产精品免费视频在线| 国内精品久久久久久久| 欧美另类极品videosbestfree| 精品亚洲一区二区三区在线观看| 国产精品久久一区| 亚洲精品国产精品国自产观看浪潮| 久久综合色88| 2019中文字幕在线免费观看| 欧美精品18videosex性欧美| 欧美激情免费看| 国产精品第一区| 欧美性在线视频| 美女福利视频一区| 中文字幕久久精品| 国产91ⅴ在线精品免费观看| 中文字幕久热精品视频在线| 国产日韩欧美自拍| 国产91免费观看| 91九色综合久久| 国产精品久久久av久久久| 欧美激情在线观看视频| 欧美国产日韩一区二区三区| 成人免费xxxxx在线观看| 51色欧美片视频在线观看| 欧美日韩国产精品| 日韩免费av片在线观看| 欧美高跟鞋交xxxxhd| 国模精品视频一区二区| 日韩国产精品一区| 国产精品久久久久久久久| 亚洲bt欧美bt日本bt| 国产一区二区日韩| 国产一级揄自揄精品视频| 欧美黑人视频一区| 欧洲亚洲女同hd| 欧美在线一区二区三区四| 日韩在线视频二区| 一区二区三区四区在线观看视频| 97在线精品视频| 少妇久久久久久| 国产精品永久免费视频| 热久久免费国产视频| 中日韩美女免费视频网站在线观看| 最近中文字幕mv在线一区二区三区四区| 国产视频精品久久久|