能力值:
( LV2,RANK:10 )
|
-
-
2 楼
父函数还有一个问题:
esi 先是清零,调用完后是 inc esi,紧接又是test esi,esi; jle short _text_805DAE4; 这样test esi, esi的结果肯定是大于0的,而跳转的条件是esi <= 0,这样岂不是根本不会进行跳转的吗?不知道这条指令有何用意?
.text:0805DADF 31 F6 xor esi, esi
.text:0805DAE1 8D 76 00 lea esi, [esi+0]
.text:0805DAE4
.text:0805DAE4 text_805DAE4:
.text:0805DAE4 83 C4 F8 add esp, 0FFFFFFF8h
.text:0805DAE7 FF B3 08 F8 FF FF push dword ptr [ebx-7F8h]
.text:0805DAED 56 push esi
.text:0805DAEE E8 4D FC FF FF call sysStackOneDriverInstall
.text:0805DAF3 83 C4 10 add esp, 10h
.text:0805DAF6 46 inc esi
.text:0805DAF7 85 F6 test esi, esi
.text:0805DAF9 7E E9 jle short _text_805DAE4
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
.text:0805D740 public sysStackOneDriverInstall
.text:0805D740 sysStackOneDriverInstall proc near
.text:0805D740 ; CODE XREF: main+4DEp
.text:0805D740 ; sysStackDriverInstall+3Ep
.text:0805D740
.text:0805D740 var_58= dword ptr -58h
.text:0805D740 var_3C= dword ptr -3Ch
.text:0805D740 var_38= dword ptr -38h
.text:0805D740 var_34= dword ptr -34h
.text:0805D740 var_30= dword ptr -30h
.text:0805D740 var_2C= dword ptr -2Ch
.text:0805D740 var_28= dword ptr -28h
.text:0805D740 var_24= dword ptr -24h
.text:0805D740 var_20= dword ptr -20h
.text:0805D740 var_1C= dword ptr -1Ch
.text:0805D740 var_18= dword ptr -18h
.text:0805D740 var_14= byte ptr -14h
.text:0805D740 arg_0= dword ptr 8
.text:0805D740
.text:0805D740 55 push ebp
.text:0805D741 89 E5 mov ebp, esp
.text:0805D743 83 EC 4C sub esp, 4Ch
.text:0805D746 57 push edi
.text:0805D747 56 push esi
.text:0805D748 53 push ebx
.text:0805D749 90 nop
.text:0805D74A 90 nop
.text:0805D74B 90 nop
.text:0805D74C 90 nop
.text:0805D74D 90 nop
.text:0805D74E 90 nop
.text:0805D74F 90 nop
.text:0805D750 BB F0 1F 08 08 mov ebx, offset $_GLOBAL_OFFSET_TABLE_ ; PIC mode
.text:0805D755 8B 45 08 mov eax, [ebp+arg_0]
.text:0805D758 8D 14 80 lea edx, [eax+eax*4]
.text:0805D75B 8B 83 F4 01 00 00 mov eax, [ebx+1F4h]
.text:0805D761 83 C0 20 add eax, 20h
.text:0805D764 8B 04 D0 mov eax, [eax+edx*8]
.text:0805D767 85 C0 test eax, eax
.text:0805D769 74 11 jz short _text_805D77C
.text:0805D76B FF D0 call eax
.text:0805D76D 85 C0 test eax, eax
.text:0805D76F 74 0B jz short _text_805D77C
.text:0805D771 B8 FF FF FF FF mov eax, 0FFFFFFFFh
.text:0805D776 E9 FE 01 00 00 jmp _text_805D979
.text:0805D776 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:0805D77B 90 align 4
.text:0805D77C
.text:0805D77C _text_805D77C: ; CODE XREF: sysStackOneDriverInstall+29j
.text:0805D77C ; sysStackOneDriverInstall+2Fj
.text:0805D77C 8B 55 08 mov edx, [ebp+arg_0]
.text:0805D77F 8D 04 92 lea eax, [edx+edx*4]
.text:0805D782 8B BB F4 01 00 00 mov edi, [ebx+1F4h]
.text:0805D788 8D 34 C5 00 00 00 00 lea esi, ds:0[eax*8]
.text:0805D78F 8B 44 3E 0C mov eax, [esi+edi+0Ch]
.text:0805D793 FF D0 call eax
.text:0805D795 89 45 CC mov [ebp+var_34], eax
.text:0805D798 85 C0 test eax, eax
.text:0805D79A 0F 84 D7 01 00 00 jz _text_805D977
.text:0805D7A0 C7 45 C8 00 00 00 00 mov [ebp+var_38], 0
.text:0805D7A7 8B 45 CC mov eax, [ebp+var_34]
.text:0805D7AA 39 45 C8 cmp [ebp+var_38], eax
.text:0805D7AD 0F 8D C4 01 00 00 jge _text_805D977
.text:0805D7B3 89 75 C4 mov [ebp+var_3C], esi
.text:0805D7B6 83 C7 10 add edi, 10h
.text:0805D7B9 8D 76 00 lea esi, [esi+0]
.text:0805D7BC
.text:0805D7BC _text_805D7BC: ; CODE XREF: sysStackOneDriverInstall+231j
.text:0805D7BC 8B 8B 94 F7 FF FF mov ecx, [ebx-86Ch]
.text:0805D7C2 8D 0C 49 lea ecx, [ecx+ecx*2]
.text:0805D7C5 C1 E1 04 shl ecx, 4
.text:0805D7C8 03 8B F8 01 00 00 add ecx, [ebx+1F8h]
.text:0805D7CE C7 01 00 00 00 00 mov dword ptr [ecx], 0
.text:0805D7D4 C7 41 08 00 00 00 00 mov dword ptr [ecx+8], 0
.text:0805D7DB C7 41 10 00 00 00 00 mov dword ptr [ecx+10h], 0
.text:0805D7E2 C7 41 20 00 00 00 00 mov dword ptr [ecx+20h], 0
.text:0805D7E9 C7 41 18 00 00 00 00 mov dword ptr [ecx+18h], 0
.text:0805D7F0 C7 41 28 00 00 00 00 mov dword ptr [ecx+28h], 0
.text:0805D7F7 C7 41 04 00 00 00 00 mov dword ptr [ecx+4], 0
.text:0805D7FE C7 41 0C 00 00 00 00 mov dword ptr [ecx+0Ch], 0
.text:0805D805 C7 41 14 00 00 00 00 mov dword ptr [ecx+14h], 0
.text:0805D80C C7 41 24 00 00 00 00 mov dword ptr [ecx+24h], 0
.text:0805D813 C7 41 1C 00 00 00 00 mov dword ptr [ecx+1Ch], 0
.text:0805D81A C7 41 2C 00 00 00 00 mov dword ptr [ecx+2Ch], 0
.text:0805D821 C7 45 E8 00 00 00 00 mov [ebp+var_18], 0
.text:0805D828 83 C4 F8 add esp, 0FFFFFFF8h
.text:0805D82B 8D 45 E8 lea eax, [ebp+var_18]
.text:0805D82E 50 push eax
.text:0805D82F 8B 83 94 F7 FF FF mov eax, [ebx-86Ch]
.text:0805D835 8B 93 FC 01 00 00 mov edx, [ebx+1FCh]
.text:0805D83B 8D 04 40 lea eax, [eax+eax*2]
.text:0805D83E 8D 04 82 lea eax, [edx+eax*4]
.text:0805D841 50 push eax
.text:0805D842 8B 83 94 F7 FF FF mov eax, [ebx-86Ch]
.text:0805D848 8D 14 C0 lea edx, [eax+eax*8]
.text:0805D84B 8D 14 90 lea edx, [eax+edx*4]
.text:0805D84E 8B 83 00 02 00 00 mov eax, [ebx+200h]
.text:0805D854 8D 14 90 lea edx, [eax+edx*4]
.text:0805D857 52 push edx
.text:0805D858 51 push ecx
.text:0805D859 8B 83 94 F7 FF FF mov eax, [ebx-86Ch]
.text:0805D85F 8D B3 1C 09 00 00 lea esi, [ebx+91Ch]
.text:0805D865 8D 04 80 lea eax, [eax+eax*4]
.text:0805D868 8D 44 86 04 lea eax, [esi+eax*4+4]
.text:0805D86C 50 push eax
.text:0805D86D 8B 55 C8 mov edx, [ebp+var_38]
.text:0805D870 52 push edx
.text:0805D871 8B 55 C4 mov edx, [ebp+var_3C]
.text:0805D874 8B 04 3A mov eax, [edx+edi]
.text:0805D877 FF D0 call eax
.text:0805D879 83 C4 20 add esp, 20h
.text:0805D87C 83 F8 FF cmp eax, 0FFFFFFFFh
.text:0805D87F 0F 84 E3 00 00 00 jz _text_805D968
.text:0805D885 8B 83 94 F7 FF FF mov eax, [ebx-86Ch]
.text:0805D88B 8A 55 08 mov dl, byte ptr [ebp+arg_0]
.text:0805D88E 8D 8B 10 09 00 00 lea ecx, [ebx+910h]
.text:0805D894 8D 04 80 lea eax, [eax+eax*4]
.text:0805D897 88 54 81 0C mov [ecx+eax*4+0Ch], dl
.text:0805D89B 8B 83 94 F7 FF FF mov eax, [ebx-86Ch]
.text:0805D8A1 8A 93 94 F7 FF FF mov dl, [ebx-86Ch]
.text:0805D8A7 8D 04 80 lea eax, [eax+eax*4]
.text:0805D8AA 88 54 81 0D mov [ecx+eax*4+0Dh], dl
.text:0805D8AE 8B 55 E8 mov edx, [ebp+var_18]
.text:0805D8B1 85 D2 test edx, edx
.text:0805D8B3 74 6B jz short _text_805D920
.text:0805D8B5 83 C4 FC add esp, 0FFFFFFFCh
.text:0805D8B8 8D 45 E4 lea eax, [ebp+var_1C]
.text:0805D8BB 50 push eax
.text:0805D8BC 8D 45 E0 lea eax, [ebp+var_20]
.text:0805D8BF 50 push eax
.text:0805D8C0 8D 45 DC lea eax, [ebp+var_24]
.text:0805D8C3 50 push eax
.text:0805D8C4 8D 45 D8 lea eax, [ebp+var_28]
.text:0805D8C7 50 push eax
.text:0805D8C8 8D 45 D4 lea eax, [ebp+var_2C]
.text:0805D8CB 50 push eax
.text:0805D8CC 8D 45 D0 lea eax, [ebp+var_30]
.text:0805D8CF 50 push eax
.text:0805D8D0 52 push edx
.text:0805D8D1 E8 7E CF 01 00 call dbufGetPoolWatermarks
.text:0805D8D6 83 C4 20 add esp, 20h
.text:0805D8D9 83 C4 F4 add esp, 0FFFFFFF4h
.text:0805D8DC 6A 08 push 8 ; size
.text:0805D8DE E8 29 DD FE FF call _malloc
.text:0805D8E3 89 C2 mov edx, eax
.text:0805D8E5 8B 83 04 02 00 00 mov eax, [ebx+204h]
.text:0805D8EB 89 02 mov [edx], eax
.text:0805D8ED 8B 83 94 F7 FF FF mov eax, [ebx-86Ch]
.text:0805D8F3 8D 04 80 lea eax, [eax+eax*4]
.text:0805D8F6 8D 04 86 lea eax, [esi+eax*4]
.text:0805D8F9 83 C4 FC add esp, 0FFFFFFFCh
.text:0805D8FC 89 42 04 mov [edx+4], eax
.text:0805D8FF FF 75 E4 push [ebp+var_1C]
.text:0805D902 52 push edx
.text:0805D903 FF B3 08 02 00 00 push dword ptr [ebx+208h]
.text:0805D909 FF 75 D8 push [ebp+var_28]
.text:0805D90C FF 75 D4 push [ebp+var_2C]
.text:0805D90F FF 75 D0 push [ebp+var_30]
.text:0805D912 FF 75 E8 push [ebp+var_18]
.text:0805D915 E8 3E CE 01 00 call dbufSetPoolWatermarks
.text:0805D91A 83 C4 30 add esp, 30h
.text:0805D91D 8D 76 00 lea esi, [esi+0]
.text:0805D920
.text:0805D920 _text_805D920: ; CODE XREF: sysStackOneDriverInstall+173j
.text:0805D920 FF B3 94 F7 FF FF push dword ptr [ebx-86Ch]
.text:0805D926 8D 83 92 D2 FF FF lea eax, [ebx-2D6Eh]
.text:0805D92C 50 push eax
.text:0805D92D 8D 83 9C D2 FF FF lea eax, [ebx-2D64h]
.text:0805D933 50 push eax ; char *
.text:0805D934 8D 75 EC lea esi, [ebp+var_14]
.text:0805D937 56 push esi ; char *
.text:0805D938 E8 6F DF FE FF call _sprintf
.text:0805D93D 83 C4 F8 add esp, 0FFFFFFF8h
.text:0805D940 56 push esi
.text:0805D941 8D 83 B0 D2 FF FF lea eax, [ebx-2D50h]
.text:0805D947 50 push eax ; char *
.text:0805D948 E8 5F DB FE FF call _printf
.text:0805D94D 83 C4 20 add esp, 20h
.text:0805D950 83 C4 F4 add esp, 0FFFFFFF4h
.text:0805D953 8D 83 CF D2 FF FF lea eax, [ebx-2D31h]
.text:0805D959 50 push eax ; char *
.text:0805D95A E8 4D DB FE FF call _printf
.text:0805D95F FF 83 94 F7 FF FF inc dword ptr [ebx-86Ch]
.text:0805D965 83 C4 10 add esp, 10h
.text:0805D968
.text:0805D968 _text_805D968: ; CODE XREF: sysStackOneDriverInstall+13Fj
.text:0805D968 FF 45 C8 inc [ebp+var_38]
.text:0805D96B 8B 45 CC mov eax, [ebp+var_34]
.text:0805D96E 39 45 C8 cmp [ebp+var_38], eax
.text:0805D971 0F 8C 45 FE FF FF jl _text_805D7BC
.text:0805D977
.text:0805D977 _text_805D977: ; CODE XREF: sysStackOneDriverInstall+5Aj
.text:0805D977 ; sysStackOneDriverInstall+6Dj
.text:0805D977 31 C0 xor eax, eax
.text:0805D979
.text:0805D979 _text_805D979: ; CODE XREF: sysStackOneDriverInstall+36j
.text:0805D979 8D 65 A8 lea esp, [ebp-58h]
.text:0805D97C 5B pop ebx
.text:0805D97D 5E pop esi
.text:0805D97E 5F pop edi
.text:0805D97F C9 leave
.text:0805D980 C3 retn
.text:0805D980 sysStackOneDriverInstall endp
|