| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 486 人关注过本帖
标题:借个位置
取消只看楼主 加入收藏
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
结帖率:59.52%
收藏
 问题点数:0 回复次数:1 
借个位置

程序代码:
.386
.model flat,stdcall
option casemap:none
GetKernelBase   proto   
GetApiAddress   proto  :dword
.data
    szFuctionName db 'LoadLibraryA',0
    szFuctionName1 db "GetProcAddress",0
.code
start: 
    mov esi,[esp]
    invoke GetKernelBase
    invoke GetApiAddress,offset szFuctionName
    mov   ebx,eax
    jmp $
    
GetKernelBase   proc uses esi
    .while 1
        xor si,si
        .if word ptr [esi]=="ZM"
            mov eax,[esi+3ch]
            .if word ptr [esi+eax]=="EP"
                mov eax,esi
                .break
            .endif
        .endif
        dec esi
        .if esi<=70000000h
            .break
        .endif
    .endw
        ret
GetKernelBase   endp

GetApiAddress proc uses esi ecx ebx szfunctionname:dword
    LOCAL ad:dword 
    mov ebx,[eax+3ch]       ;获取PE头偏移
    add ebx,eax             ;定位PE头
    add ebx,078h            ;定位数据目录项偏移
    mov ebx,[ebx]           ;提取导出表偏移地址
    add ebx,eax             ;定位导出表
    mov ebx,[ebx+020h]      ;提取字符函数偏移
    add ebx,eax             ;定位字符函数偏移
    mov ad,ebx              
    
    
    
    
    cld 
    xor edx,edx
next1:
    mov ebx,ad             
    mov ebx,[ebx]        ;提取字符函数存放字符串的偏移
    add ebx,eax          ;定位字符串地址
    mov esi,ebx            
    mov ecx,3
    mov edi,szfunctionname
next:
    cmpsd                ;比较字符串
    jz continue
    inc edx
    mov ebx,ad
    sub ebx,2
    cmp edx,[ebx]
    ja  nofind
    add ad,4
    jmp next1
    
continue:
    loop next
    push eax             
    mov  eax,4            
    mul  dx
    shl  dx,8
    or   edx,eax
    pop  eax
    mov  ebx,[eax+24h]
    add  ebx,eax
    add  edx,ebx
    mov  edx,[edx]         ;取得函数的序号
    
    push eax
    mov  eax,4
    mul  dx
    shl  dx,8
    or   edx,eax
    
    pop  eax
    mov  ebx,[eax+01ch]
    add  ebx,eax
    add  edx,ebx
    add  eax,[edx]           ;定位函数的地址
    ret
nofind:
    mov eax,0
    ret



GetApiAddress endp
    
end start


[ 本帖最后由 zhu224039 于 2014-3-6 14:21 编辑 ]
2014-03-06 14:05
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
360报毒  我操

我要成为嘿嘿的黑客,替天行道
2014-03-06 14:23
快速回复:借个位置
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019038 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved