首页
社区
课程
招聘
[旧帖] 求教大牛 0.00雪花
发表于: 2011-2-23 15:23 2189

[旧帖] 求教大牛 0.00雪花

2011-2-23 15:23
2189
.text:10002E80 sub_10002E80    proc near               ; CODE XREF: IAccuMeet::DebugIn(char const *,...)+2Fp
.text:10002E80                                         ; IAccuMeet::DebugOut(char const *,...)+2Fp ...
.text:10002E80
.text:10002E80 var_80C         = dword ptr -80Ch
.text:10002E80 var_804         = dword ptr -804h
.text:10002E80 OutputString    = byte ptr -800h
.text:10002E80 var_400         = dword ptr -400h
.text:10002E80 arg_0           = dword ptr  4
.text:10002E80 arg_4           = dword ptr  8
.text:10002E80
.text:10002E80                 sub     esp, 804h
.text:10002E86                 lea     eax, [esp+804h+var_804]
.text:10002E8A                 push    ebx
.text:10002E8B                 push    esi
.text:10002E8C                 push    edi
.text:10002E8D                 push    eax
.text:10002E8E                 call    sub_1000CDF2    ; [esp+arg_0]存放的是时间
.text:10002E93                 mov     edx, [esp+810h+arg_0] ; 格式
.text:10002E9A                 lea     ecx, [esp+810h+arg_4] ; 地址,需要格式化转换的数据的地址
.text:10002EA1                 push    ecx
.text:10002EA2                 push    edx
.text:10002EA3                 lea     eax, [esp+818h+var_400] ; 参数3 字符串地址
.text:10002EAA                 push    3FFh
.text:10002EAF                 push    eax
.text:10002EB0                 call    __vsnprintf
.text:10002EB5                 mov     edi, offset asc_1001AA48 ; "\r\n"
.text:10002EBA                 or      ecx, 0FFFFFFFFh
.text:10002EBD                 xor     eax, eax
.text:10002EBF                 add     esp, 10h
.text:10002EC2                 repne scasb
.text:10002EC4                 not     ecx
.text:10002EC6                 sub     edi, ecx
.text:10002EC8                 lea     edx, [esp+810h+var_400]
.text:10002ECF                 mov     esi, edi
.text:10002ED1                 mov     ebx, ecx
.text:10002ED3                 mov     edi, edx
.text:10002ED5                 or      ecx, 0FFFFFFFFh
.text:10002ED8                 repne scasb
.text:10002EDA                 mov     ecx, ebx
.text:10002EDC                 dec     edi
.text:10002EDD                 shr     ecx, 2
.text:10002EE0                 rep movsd
.text:10002EE2                 mov     ecx, ebx
.text:10002EE4                 push    eax
.text:10002EE5                 and     ecx, 3
.text:10002EE8                 rep movsb
.text:10002EEA                 lea     ecx, [esp+814h+var_804]
.text:10002EEE                 call    sub_1000CE05
.text:10002EF3                 mov     esi, [eax]
.text:10002EF5                 push    0
.text:10002EF7                 lea     ecx, [esp+814h+var_804]
.text:10002EFB                 call    sub_1000CE05
.text:10002F00                 mov     edi, [eax+4]
.text:10002F03                 push    0
.text:10002F05                 lea     ecx, [esp+814h+var_804]
.text:10002F09                 call    sub_1000CE05
.text:10002F0E                 mov     eax, [eax+8]
.text:10002F11                 push    esi
.text:10002F12                 push    edi
.text:10002F13                 push    eax
.text:10002F14                 lea     eax, [esp+81Ch+OutputString]
.text:10002F18                 push    offset a02d02d02d ; "<%02d:%02d:%02d>  "
.text:10002F1D                 push    eax
.text:10002F1E                 call    _sprintf
.text:10002F23                 lea     edi, [esp+824h+var_400]
.text:10002F2A                 or      ecx, 0FFFFFFFFh
.text:10002F2D                 xor     eax, eax
.text:10002F2F                 add     esp, 14h
.text:10002F32                 repne scasb
.text:10002F34                 not     ecx
.text:10002F36                 sub     edi, ecx
.text:10002F38                 lea     edx, [esp+810h+OutputString]
.text:10002F3C                 mov     esi, edi
.text:10002F3E                 mov     ebx, ecx
.text:10002F40                 mov     edi, edx
.text:10002F42                 or      ecx, 0FFFFFFFFh
.text:10002F45                 repne scasb
.text:10002F47                 mov     ecx, ebx
.text:10002F49                 dec     edi
.text:10002F4A                 shr     ecx, 2
.text:10002F4D                 rep movsd
.text:10002F4F                 mov     ecx, ebx
.text:10002F51                 lea     eax, [esp+810h+OutputString]
.text:10002F55                 and     ecx, 3
.text:10002F58                 push    eax             ; lpOutputString
.text:10002F59                 rep movsb
.text:10002F5B                 call    ds:OutputDebugStringA
.text:10002F61                 mov     eax, dword_1001F42C
.text:10002F66                 inc     eax
.text:10002F67                 mov     dword_1001F42C, eax
.text:10002F6C                 cdq
.text:10002F6D                 mov     ecx, 64h
.text:10002F72                 mov     esi, ds:SendMessageA
.text:10002F78                 idiv    ecx
.text:10002F7A                 mov     ebx, ds:GetWindowTextLengthA
.text:10002F80                 test    edx, edx
.text:10002F82                 jnz     short loc_10002FC0
.text:10002F84                 mov     eax, hWnd
.text:10002F89                 test    eax, eax
.text:10002F8B                 jz      short loc_10002FC0
.text:10002F8D                 push    eax             ; hWnd
.text:10002F8E                 call    ebx ; GetWindowTextLengthA
.text:10002F90                 cmp     eax, 61A8h
.text:10002F95                 jle     short loc_10002FC0
.text:10002F97                 mov     edx, hWnd
.text:10002F9D                 push    1388h           ; lParam
.text:10002FA2                 push    0               ; wParam
.text:10002FA4                 push    0B1h            ; Msg
.text:10002FA9                 push    edx             ; hWnd
.text:10002FAA                 call    esi ; SendMessageA
.text:10002FAC                 mov     eax, hWnd
.text:10002FB1                 push    offset unk_1001F430 ; lParam
.text:10002FB6                 push    0               ; wParam
.text:10002FB8                 push    0C2h            ; Msg
.text:10002FBD                 push    eax             ; hWnd
.text:10002FBE                 call    esi ; SendMessageA
.text:10002FC0
.text:10002FC0 loc_10002FC0:                           ; CODE XREF: sub_10002E80+102j
.text:10002FC0                                         ; sub_10002E80+10Bj ...
.text:10002FC0                 mov     eax, dword_1001F42C
.text:10002FC5                 mov     ecx, 3E8h
.text:10002FCA                 cdq
.text:10002FCB                 idiv    ecx
.text:10002FCD                 test    edx, edx
.text:10002FCF                 jnz     short loc_10002FE8
.text:10002FD1                 mov     ecx, dword_1001F420
.text:10002FD7                 mov     dword_1001F42C, edx
.text:10002FDD                 test    ecx, ecx
.text:10002FDF                 jz      short loc_1000300F
.text:10002FE1                 mov     edx, [ecx]
.text:10002FE3                 push    0
.text:10002FE5                 call    dword ptr [edx+2Ch]
.text:10002FE8
.text:10002FE8 loc_10002FE8:                           ; CODE XREF: sub_10002E80+14Fj
.text:10002FE8                 mov     edx, dword_1001F420
.text:10002FEE                 test    edx, edx
.text:10002FF0                 jz      short loc_1000300F
.text:10002FF2                 lea     edi, [esp+810h+OutputString]
.text:10002FF6                 or      ecx, 0FFFFFFFFh
.text:10002FF9                 xor     eax, eax
.text:10002FFB                 push    ebp
.text:10002FFC                 repne scasb
.text:10002FFE                 mov     ebp, [edx]
.text:10003000                 lea     eax, [esp+814h+OutputString]
.text:10003004                 not     ecx
.text:10003006                 dec     ecx
.text:10003007                 push    ecx
.text:10003008                 push    eax
.text:10003009                 mov     ecx, edx
.text:1000300B                 call    dword ptr [ebp+38h]
.text:1000300E                 pop     ebp
.text:1000300F
.text:1000300F loc_1000300F:                           ; CODE XREF: sub_10002E80+15Fj
.text:1000300F                                         ; sub_10002E80+170j
.text:1000300F                 mov     eax, hWnd
.text:10003014                 test    eax, eax
.text:10003016                 jz      short loc_1000303F
.text:10003018                 push    eax             ; hWnd
.text:10003019                 call    ebx ; GetWindowTextLengthA
.text:1000301B                 mov     ecx, hWnd
.text:10003021                 push    eax             ; lParam
.text:10003022                 push    eax             ; wParam
.text:10003023                 push    0B1h            ; Msg
.text:10003028                 push    ecx             ; hWnd
.text:10003029                 call    esi ; SendMessageA
.text:1000302B                 mov     eax, hWnd
.text:10003030                 lea     edx, [esp+10h]
.text:10003034                 push    edx             ; lParam
.text:10003035                 push    0               ; wParam
.text:10003037                 push    0C2h            ; Msg
.text:1000303C                 push    eax             ; hWnd
.text:1000303D                 call    esi ; SendMessageA
.text:1000303F
.text:1000303F loc_1000303F:                           ; CODE XREF: sub_10002E80+196j
.text:1000303F                 pop     edi
.text:10003040                 pop     esi
.text:10003041                 pop     ebx
.text:10003042                 add     esp, 804h
.text:10003048                 retn
.text:10003048 sub_10002E80    endp ; sp = -8

这是一个编码函数,我看了一整天,但是确实能力有限,求教哪个大牛给小弟解释一下这个函数到底是做什么的,越详细越好。小弟先行谢过!

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

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 8
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
自己顶起!
2011-2-23 15:35
0
游客
登录 | 注册 方可回帖
返回
//