首页
社区
课程
招聘
[求助]又有新问题要询问了,谢谢大家帮忙
发表于: 2006-5-11 00:11 3829

[求助]又有新问题要询问了,谢谢大家帮忙

2006-5-11 00:11
3829
CODE:00406D58 sub_406D58      proc near               ; CODE XREF: sub_406D94+44p
CODE:00406D58                                         ; sub_406D94+55p ...
CODE:00406D58
CODE:00406D58 Buffer          = _MEMORY_BASIC_INFORMATION ptr -1Ch
CODE:00406D58
CODE:00406D58                 push    ebx
CODE:00406D59                 push    esi
CODE:00406D5A                 add     esp, 0FFFFFFE4h
CODE:00406D5D                 mov     esi, edx
CODE:00406D5F                 mov     ebx, eax
CODE:00406D61                 mov     eax, esp
CODE:00406D63                 xor     ecx, ecx
CODE:00406D65                 mov     edx, 1Ch
CODE:00406D6A                 call    sub_402730
CODE:00406D6F                 push    1Ch             ; dwLength
CODE:00406D71                 lea     eax, [esp+20h+Buffer]
CODE:00406D75                 push    eax             ; lpBuffer
CODE:00406D76                 push    ebx             ; lpAddress
CODE:00406D77                 call    VirtualQuery
CODE:00406D7C                 mov     eax, [esp+1Ch+Buffer.RegionSize]
CODE:00406D80                 mov     [esi], eax
CODE:00406D82                 cmp     [esp+1Ch+Buffer.Protect], 2
CODE:00406D87                 setz    al
CODE:00406D8A                 xor     al, 1
CODE:00406D8C                 add     esp, 1Ch
CODE:00406D8F                 pop     esi
CODE:00406D90                 pop     ebx
CODE:00406D91                 retn
CODE:00406D91 sub_406D58      endp

CODE:00402730 sub_402730      proc near               ; CODE XREF: StartAddress+2E5p
CODE:00402730                                         ; sub_406D58+12p ...
CODE:00402730                 push    edi
CODE:00402731                 mov     edi, eax
CODE:00402733                 mov     ch, cl
CODE:00402735                 mov     eax, ecx
CODE:00402737                 shl     eax, 10h
CODE:0040273A                 mov     ax, cx
CODE:0040273D                 mov     ecx, edx
CODE:0040273F                 sar     ecx, 2
CODE:00402742                 js      short loc_40274D
CODE:00402744                 rep stosd
CODE:00402746                 mov     ecx, edx
CODE:00402748                 and     ecx, 3
CODE:0040274B                 rep stosb
CODE:0040274D
CODE:0040274D loc_40274D:                             ; CODE XREF: sub_402730+12j
CODE:0040274D                 pop     edi
CODE:0040274E                 retn
CODE:0040274E sub_402730      endp

我看了很久不知道其作用是什么?有高手能用delphi给我描述下吗?谢谢

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 295
活跃值: (346)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
2
C 语言:

BOOL Proc_406D58(LPCVOID lpAddress, structXX *xx)
{
        MEMORY_BASIC_INFOMATION info;

        memset(&info, sizeof(info), 0);
        VirtualQuery(lpAddress, &info,sizeof(info));

        xx->_0000 = info.RegionSize;
        return (info.Protect != PAGE_READONLY);
}
2006-5-11 01:39
0
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢blackeyes的帮助
2006-5-11 10:25
0
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
CODE:00406DFF                 mov     eax, ds:dword_40A704 ;pUp1
CODE:00406E04                 mov     ebx, [eax]
CODE:00406E06                 mov     eax, ds:dword_40A708 ;pUp2
CODE:00406E0B                 mov     esi, [eax]
....中间就是上面那部分检测内存保护的函数
CODE:00406E50                 lea     eax, [ebp+var_104]   ;bakstr1
CODE:00406E56                 mov     ecx, 0FFh
CODE:00406E5B                 mov     edx, ebx
CODE:00406E5D                 call    StrLCopy
CODE:00406E62                 lea     eax, [ebp+var_204]   ;bakstr2
CODE:00406E68                 mov     ecx, 0FFh
CODE:00406E6D                 mov     edx, esi
CODE:00406E6F                 call    StrLCopy

我在Delphi里这样写
strlcopy(@bakstr1,pchar(plongword(pUp1)^), $FF);
strlcopy(@bakstr2,pchar(plongword(pUp2)^), $FF);
可我自己反汇编程序的时候变成了
CODE:00404363                 mov     eax, ds:dword_40769C
CODE:00404368                 mov     eax, [eax]
CODE:0040436A                 mov     edx, ds:dword_4076A0
CODE:00404370                 mov     ebx, [edx]
CODE:00404372                 lea     edx, [ebp+var_100]
CODE:00404378                 mov     ecx, 0FFh
CODE:0040437D                 xchg    eax, edx           
CODE:0040437E                 call    StrLCopy
CODE:00404383                 lea     eax, [ebp+var_200]
CODE:00404389                 mov     ecx, 0FFh
CODE:0040438E                 mov     edx, ebx
CODE:00404390                 call    StrLCopy

帮忙看下,谢谢
2006-5-11 10:34
0
游客
登录 | 注册 方可回帖
返回
//