| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1134 人关注过本帖
标题:借个地方放下代码,研究的话也欢迎 不过没有注解,前提要对PE比较了解
只看楼主 加入收藏
朱三哥
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:311
专家分:359
注 册:2012-12-11
结帖率:62.07%
收藏
 问题点数:0 回复次数:11 
借个地方放下代码,研究的话也欢迎 不过没有注解,前提要对PE比较了解
.386
.model flat, stdcall
option casemap :none

include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib

    .data
    szcaption      db 'xbn',0
   sztext         db '找到KERNEL32的PE标志!',0
   _lpapi         db 'GetProcAddress',0
   .code
 _getkernelbase proc _dwkernelretaddress
    local @dwret
   
    pushad
    mov @dwret,0
    mov edi,_dwkernelretaddress
    and edi,0ffff0000h
    .repeat
       .if WORD ptr [edi]==IMAGE_DOS_SIGNATURE
              MOV ESI,EDI
              ADD ESI,[ESI+003CH]
              .if WORD ptr [esi]==IMAGE_NT_SIGNATURE
              MOV @dwret,edi
              .break
              .endif
       .endif
     sub edi,10000h
    .break .if edi<70000000h
    .until FALSE
          popad
          mov eax,@dwret
    ret
 _getkernelbase endp
 _getapi proc _dwkernelbase,_lpap1
    local @ret
    pushad
    mov eax,_dwkernelbase
    add eax,[eax+3ch]
    assume eax:ptr IMAGE_NT_HEADERS
    MOV eax,[eax].OptionalHeader.DataDirectory.VirtualAddress
    add eax,_dwkernelbase
    assume eax:ptr IMAGE_EXPORT_DIRECTORY
    MOV ebx,[eax].AddressOfNames
    add ebx,_dwkernelbase
    xor edx,edx
    .repeat
      mov edi,ebx
      mov esi,_lpap1
      mov ecx,sizeof _lpap1
     repz cmpsb
     .if ZERO?
     jmp @F
     .endif
     add ebx,4
     inc edx
    .until edx>=[eax].NumberOfNames
     jmp _ret
    @@:
       shl edx,2
       add ebx,[eax].AddressOfNameOrdinals
       add ebx,_dwkernelbase
       movzx ebx,WORD ptr [ebx]
       shl ebx,2
       add ebx,[eax].AddressOfFunctions
       add ebx,_dwkernelbase
       mov eax,[ebx]
       add eax,_dwkernelbase
       mov @ret,eax
   _ret:
      assume eax:nothing
      popad
      mov eax,@ret
      ret
 _getapi endp
      

start: mov eax,[esp]
       invoke _getkernelbase,eax
       invoke _getapi,eax,addr _lpapi
       ret
end    start
              

[ 本帖最后由 朱三哥 于 2012-12-13 23:43 编辑 ]
搜索更多相关主题的帖子: edi repeat local 
2012-12-13 23:41
朱三哥
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:311
专家分:359
注 册:2012-12-11
收藏
得分:0 
  这个win32有 printf()这类的东西吗?

哥,破你无线很难的,不要老是改,少看路由器上的灯,你会死啊
2012-12-13 23:47
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用朱三哥在2012-12-13 23:47:04的发言:

  这个win32有 printf()这类的东西吗?
可以写cui也可以写gui

DO IT YOURSELF !
2012-12-14 09:20
x64asm
Rank: 2
来 自:X64ASM
等 级:论坛游民
威 望:1
帖 子:45
专家分:36
注 册:2010-5-20
收藏
得分:0 
阁下竟敢暴力搜索内存获取KERNEL32基地址和GetProcAddress地址,
看来阁下是灰色产业联盟的成员,毋庸置疑。

姓名:旖旎[x64asm]
QQ:6405035,6405038
2012-12-15 19:10
suijishu
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:66
专家分:144
注 册:2012-12-1
收藏
得分:0 
以下是引用x64asm在2012-12-15 19:10:03的发言:

阁下竟敢暴力搜索内存获取KERNEL32基地址和GetProcAddress地址,
看来阁下是灰色产业联盟的成员,毋庸置疑。
那你说怎么弄啊,大牛!!!
2012-12-15 21:44
x64asm
Rank: 2
来 自:X64ASM
等 级:论坛游民
威 望:1
帖 子:45
专家分:36
注 册:2010-5-20
收藏
得分:0 
哈哈,PEB获取之

姓名:旖旎[x64asm]
QQ:6405035,6405038
2012-12-15 23:01
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
哇 好厉害

不过俺现在没精力搞了 猪兄你抗起来

梅尚程荀
马谭杨奚







                                                       
2012-12-15 23:05
suijishu
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:66
专家分:144
注 册:2012-12-1
收藏
得分:0 
以下是引用x64asm在2012-12-15 23:01:53的发言:

哈哈,PEB获取之
膜拜大牛!!!你是我除了膜拜zklhp之外的第2个大牛!!!
2012-12-16 01:19
水哥
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:65
专家分:111
注 册:2012-8-11
收藏
得分:0 
暴力索内存到WIN7下没用了,不通用还是x64asm牛说的对PEB才是正理。
2012-12-16 22:38
x64asm
Rank: 2
来 自:X64ASM
等 级:论坛游民
威 望:1
帖 子:45
专家分:36
注 册:2010-5-20
收藏
得分:0 
连SEH都没设置,竟敢暴力搜索。哈哈。

姓名:旖旎[x64asm]
QQ:6405035,6405038
2012-12-17 16:33
快速回复:借个地方放下代码,研究的话也欢迎 不过没有注解,前提要对PE比较了解
数据加载中...
 
   



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

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