|
楼主 |
发表于 2006-4-28 01:32:08
|
显示全部楼层
下面我们看看核心代码!
Part2
- .text:10035DA0 ; 〓〓〓〓〓〓〓〓〓〓〓〓 S U B R O U T I N E 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
- .text:10035DA0
- .text:10035DA0 ; Decode pdg
- .text:10035DA0
- .text:10035DA0 ; int __cdecl sub_10035DA0(int size_pdg_data,int x_pix,int y_pix,int keyToDecode1xH,int,int,int)
- .text:10035DA0 sub_10035DA0 proc near ; CODE XREF: sub_1002CC60+38p
- .text:10035DA0
- .text:10035DA0 var_20 = dword ptr -20h
- .text:10035DA0 var_18 = dword ptr -18h
- .text:10035DA0 var_14 = dword ptr -14h
- .text:10035DA0 var_C = dword ptr -0Ch
- .text:10035DA0 var_4 = dword ptr -4
- .text:10035DA0 size_pdg_data = dword ptr 4
- .text:10035DA0 x_pix = dword ptr 8
- .text:10035DA0 y_pix = dword ptr 0Ch
- .text:10035DA0 keyToDecode1xH = dword ptr 10h
- .text:10035DA0 arg_10 = dword ptr 14h
- .text:10035DA0 arg_14 = dword ptr 18h
- .text:10035DA0 arg_1C = dword ptr 1Ch
- .text:10035DA0
- .text:10035DA0 mov eax, Fibonaci1
- .text:10035DA5 sub esp, 24h
- .text:10035DA8 test eax, eax
- .text:10035DAA jnz short loc_10035DB6
- .text:10035DAC call sub_100361F0
- .text:10035DB1 call sub_10036220
- .text:10035DB6
- .text:10035DB6 loc_10035DB6: ; CODE XREF: sub_10035DA0+Aj
- .text:10035DB6 mov eax, [esp+24h+x_pix]
- .text:10035DBA mov edx, [esp+24h+y_pix]
- .text:10035DBE and eax, 0FFFFh
- .text:10035DC3 and edx, 0FFFFh
- .text:10035DC9 mov ecx, eax
- .text:10035DCB push ebx
- .text:10035DCC and ecx, 0FFh
- .text:10035DD2 push ebp
- .text:10035DD3 mov [esp+2Ch+var_20], ecx
- .text:10035DD7 mov ecx, eax
- .text:10035DD9 sub ecx, edx
- .text:10035DDB push esi
- .text:10035DDC and ecx, 0FFh
- .text:10035DE2 mov esi, edx
- .text:10035DE4 mov [esp+30h+var_18], ecx
- .text:10035DE8 mov ecx, [esp+30h+size_pdg_data]
- .text:10035DEC shr ecx, 8
- .text:10035DEF imul esi, eax
- .text:10035DF2 mov ebx, ecx
- .text:10035DF4 imul ecx, eax
- .text:10035DF7 mov ebp, edx
- .text:10035DF9 and esi, 0FFh
- .text:10035DFF or ebp, eax
- .text:10035E01 add eax, edx
- .text:10035E03 mov edx, [esp+30h+size_pdg_data]
- .text:10035E07 push edi
- .text:10035E08 and ebp, 0FFh
- .text:10035E0E and ecx, 0FFh
- .text:10035E14 mov edi, esi
- .text:10035E16 add eax, edx
- .text:10035E18 imul edi, [esp+34h+var_20]
- .text:10035E1D and ebx, 0FFh
- .text:10035E23 mov [esp+34h+var_14], ebp
- .text:10035E27 mov [esp+34h+var_C], ecx
- .text:10035E2B and eax, 0FFh
- .text:10035E30 imul ecx, ebx
- .text:10035E33 imul ebp, esi
- .text:10035E36 mov [esp+34h+var_4], eax
- .text:10035E3A imul eax, [esp+34h+var_18]
- .text:10035E3F add edi, [esp+34h+keyToDecode1xH]
- .text:10035E43 add ecx, ebp
- .text:10035E45 sub ecx, eax
- .text:10035E47 imul eax, esi
- .text:10035E4A and edi, 0FFh
- .text:10035E50 lea edx, [ecx+edi+0FAh]
- .text:10035E57 mov ecx, [esp+34h+arg_10]
- .text:10035E5B and edx, 1FFh
- .text:10035E61 mov [esp+34h+x_pix], edx
- .text:10035E65 mov [ecx+4], edx
- .text:10035E68 mov edx, edi
- .text:10035E6A imul edx, [esp+34h+var_C]
- .text:10035E6F sub eax, edx
- .text:10035E71 mov edx, [esp+34h+var_14]
- .text:10035E75 mov ebp, edx
- .text:10035E77 imul ebp, edx
- .text:10035E7A xor edx, edx
- .text:10035E7C lea eax, [eax+ebp+0FAh]
- .text:10035E83 mov ebp, 0D7h
- .text:10035E88 and eax, 1FFh
- .text:10035E8D mov [ecx+8], eax
- .text:10035E90 mov eax, [esp+34h+var_C]
- .text:10035E94 imul eax, eax
- .text:10035E97 mov [esp+34h+size_pdg_data], eax
- .text:10035E9B mov eax, edi
- .text:10035E9D div ebp
- .text:10035E9F mov ebp, [esp+34h+size_pdg_data]
- .text:10035EA3 movsx eax, byte ptr Key1[edx] ; "132jksdiau34ukjasdflkj!@#234afdji78#%23"...
- .text:10035EAA mov edx, [esp+34h+var_4]
- .text:10035EAE add eax, ebp
- .text:10035EB0 mov ebp, [esp+34h+var_18]
- .text:10035EB4 add eax, edx
- .text:10035EB6 mov edx, [esp+34h+var_14]
- .text:10035EBA add eax, ebx
- .text:10035EBC add eax, edx
- .text:10035EBE xor edx, edx
- .text:10035EC0 add eax, ebp
- .text:10035EC2 mov ebp, [esp+34h+var_20]
- .text:10035EC6 add eax, esi
- .text:10035EC8 add eax, ebp
- .text:10035ECA mov ebp, 0D7h
- .text:10035ECF div ebp
- .text:10035ED1 movsx ebp, byte ptr Key1[edx] ; "132jksdiau34ukjasdflkj!@#234afdji78#%23"...
- .text:10035ED8 mov eax, edi
- .text:10035EDA xor edx, edx
- .text:10035EDC mov edi, 82h
- .text:10035EE1 div edi
- .text:10035EE3 mov edi, [esp+34h+var_4]
- .text:10035EE7 movsx eax, byte ptr Key2[edx] ; "Afgasdkol!@#$564746Lfat0[9i FDLAas09013"...
- .text:10035EEE mov edx, [esp+34h+size_pdg_data]
- .text:10035EF2 add eax, edx
- .text:10035EF4 mov edx, [esp+34h+var_18]
- .text:10035EF8 add eax, edi
- .text:10035EFA mov edi, [esp+34h+var_14]
- .text:10035EFE add eax, ebx
- .text:10035F00 add eax, edi
- .text:10035F02 mov edi, 82h
- .text:10035F07 add eax, edx
- .text:10035F09 mov edx, [esp+34h+var_20]
- .text:10035F0D add eax, esi
- .text:10035F0F add eax, edx
- .text:10035F11 xor edx, edx
- .text:10035F13 div edi
- .text:10035F15 movsx edx, byte ptr Key2[edx] ; "Afgasdkol!@#$564746Lfat0[9i FDLAas09013"...
- .text:10035F1C imul ebp, edx
- .text:10035F1F and ebp, 800001FFh
- .text:10035F25 jns short loc_10035F2F
- .text:10035F27 dec ebp
- .text:10035F28 or ebp, 0FFFFFE00h
- .text:10035F2E inc ebp
- .text:10035F2F
- .text:10035F2F loc_10035F2F: ; CODE XREF: sub_10035DA0+185j
- .text:10035F2F mov eax, [esp+34h+var_18]
- .text:10035F33 xor edx, edx
- .text:10035F35 imul eax, esi
- .text:10035F38 sub eax, ebx
- .text:10035F3A mov esi, 0D7h
- .text:10035F3F div esi
- .text:10035F41 mov eax, [esp+34h+var_20]
- .text:10035F45 mov [ecx+0Ch], ebp
- .text:10035F48 mov edi, 82h
- .text:10035F4D movsx esi, byte ptr Key1[edx] ; "132jksdiau34ukjasdflkj!@#234afdji78#%23"...
- .text:10035F54 xor edx, edx
- .text:10035F56 div edi
- .text:10035F58 movsx eax, byte ptr Key2[edx] ; "Afgasdkol!@#$564746Lfat0[9i FDLAas09013"...
- .text:10035F5F imul esi, eax
- .text:10035F62 and esi, 800001FFh
- .text:10035F68 jns short loc_10035F72
- .text:10035F6A dec esi
- .text:10035F6B or esi, 0FFFFFE00h
- .text:10035F71 inc esi
- .text:10035F72
- .text:10035F72 loc_10035F72: ; CODE XREF: sub_10035DA0+1C8j
- .text:10035F72 mov eax, [esp+34h+var_C]
- .text:10035F76 and ebx, 1Fh
- .text:10035F79 mov [ecx+10h], esi
- .text:10035F7C and eax, 3Fh
- .text:10035F7F mov edx, Fibonaci1[ebx*4]
- .text:10035F86 mov ebx, 0D7h
- .text:10035F8B and edx, 1FFh
- .text:10035F91 mov [ecx+14h], edx
- .text:10035F94 mov esi, Fibonaci2[eax*4]
- .text:10035F9B mov edi, edx
- .text:10035F9D xor edx, edx
- .text:10035F9F mov eax, edi
- .text:10035FA1 and esi, 1FFh
- .text:10035FA7 div ebx
- .text:10035FA9 mov [ecx+18h], esi
- .text:10035FAC mov ebx, 82h
- .text:10035FB1 movsx eax, byte ptr Key1[edx] ; "132jksdiau34ukjasdflkj!@#234afdji78#%23"...
- .text:10035FB8 imul eax, edi
- .text:10035FBB xor edx, edx
- .text:10035FBD div ebx
- .text:10035FBF mov al, byte ptr Key2[edx] ; "Afgasdkol!@#$564746Lfat0[9i FDLAas09013"...
- .text:10035FC5 imul eax, esi
- .text:10035FC8 and eax, 3Fh
- .text:10035FCB mov edx, Fibonaci2[eax*4]
- .text:10035FD2 mov eax, esi
- .text:10035FD4 and edx, 1FFh
- .text:10035FDA mov [ecx+1Ch], edx
- .text:10035FDD xor edx, edx
- .text:10035FDF div ebx
- .text:10035FE1 movsx eax, byte ptr Key2[edx] ; "Afgasdkol!@#$564746Lfat0[9i FDLAas09013"...
- .text:10035FE8 imul eax, esi
- .text:10035FEB xor edx, edx
- .text:10035FED mov esi, 0D7h
- .text:10035FF2 div esi
- .text:10035FF4 mov esi, [esp+34h+arg_14]
- .text:10035FF8 mov al, byte ptr Key1[edx] ; "132jksdiau34ukjasdflkj!@#234afdji78#%23"...
- .text:10035FFE imul eax, edi
- .text:10036001 and eax, 1Fh
- .text:10036004 mov edx, Fibonaci1[eax*4]
- .text:1003600B mov eax, [esp+34h+x_pix]
- .text:1003600F and edx, 1FFh
- .text:10036015 mov [ecx+20h], edx
- .text:10036018 mov [esi+4], eax
- .text:1003601B mov edi, [ecx+20h]
- .text:1003601E mov ebx, [ecx+1Ch]
- .text:10036021 imul edi, [ecx+8]
- .text:10036025 imul ebx, [ecx+18h]
- .text:10036029 imul edi, [ecx+0Ch]
- .text:1003602D mov edx, [ecx+10h]
- .text:10036030 sub edi, ebx
- .text:10036032 mov ebx, edx
- .text:10036034 imul ebx, edx
- .text:10036037 lea edx, [edi+ebx+0FAh]
- .text:1003603E and edx, 1FFh
- .text:10036044 mov [esi+8], edx
- .text:10036047 mov edx, [ecx+8]
- .text:1003604A imul edx, [ecx+0Ch]
- .text:1003604E sub edx, [ecx+4]
- .text:10036051 and edx, 1FFh
- .text:10036057 mov [esi+0Ch], edx
- .text:1003605A mov edi, [ecx+8]
- .text:1003605D mov ebx, [ecx+4]
- .text:10036060 mov edx, [ecx+14h]
- .text:10036063 mov ebp, edi
- .text:10036065 imul ebp, edi
- .text:10036068 mov edi, ebx
- .text:1003606A imul edi, ebx
- .text:1003606D mov ebx, edx
- .text:1003606F sub edi, ebp
- .text:10036071 imul ebx, edx
- .text:10036074 add edi, ebx
- .text:10036076 and edi, 1FFh
- .text:1003607C mov [esi+10h], edi
- .text:1003607F mov edx, [ecx+0Ch]
- .text:10036082 imul edx, [ecx+4]
- .text:10036086 mov edi, [ecx+18h]
- .text:10036089 sub edi, edx
- .text:1003608B and edi, 1FFh
- .text:10036091 mov [esi+14h], edi
- .text:10036094 mov edx, [ecx+18h]
- .text:10036097 mov edi, [ecx+20h]
- .text:1003609A imul edx, [ecx+14h]
- .text:1003609E imul edi, [ecx+0Ch]
- .text:100360A2 sub edx, edi
- .text:100360A4 mov edi, [ecx+8]
- .text:100360A7 imul edi, [ecx+10h]
- .text:100360AB add edx, edi
- .text:100360AD mov edi, [ecx+1Ch]
- .text:100360B0 mov ebx, 82h
- .text:100360B5 mov ebp, 0D7h
- .text:100360BA lea edx, [edx+edi+0FAh]
- .text:100360C1 and edx, 1FFh
- .text:100360C7 mov [esi+18h], edx
- .text:100360CA mov edx, [ecx+8]
- .text:100360CD imul edx, [ecx+18h]
- .text:100360D1 mov edi, [ecx+1Ch]
- .text:100360D4 sub edi, edx
- .text:100360D6 and edi, 1FFh
- .text:100360DC mov [esi+1Ch], edi
- .text:100360DF mov edx, [ecx+20h]
- .text:100360E2 imul edx, [ecx+1Ch]
- .text:100360E6 and edx, 1FFh
- .text:100360EC mov [esi+20h], edx
- .text:100360EF mov edi, [ecx+8]
- .text:100360F2 add eax, edi
- .text:100360F4 mov edi, [esp+34h+arg_1C]
- .text:100360F8 and eax, 1FFh
- .text:100360FD xor edx, edx
- .text:100360FF mov [edi+4], eax
- .text:10036102 mov eax, [ecx+8]
- .text:10036105 div ebx
- .text:10036107 mov eax, [esi+8]
- .text:1003610A movsx ebx, byte ptr Key2[edx] ; "Afgasdkol!@#$564746Lfat0[9i FDLAas09013"...
- .text:10036111 xor edx, edx
- .text:10036113 div ebp
- .text:10036115 movsx eax, byte ptr Key1[edx] ; "132jksdiau34ukjasdflkj!@#234afdji78#%23"...
- .text:1003611C add ebx, eax
- .text:1003611E and ebx, 800001FFh
- .text:10036124 jns short loc_1003612E
- .text:10036126 dec ebx
- .text:10036127 or ebx, 0FFFFFE00h
- .text:1003612D inc ebx
- .text:1003612E
- .text:1003612E loc_1003612E: ; CODE XREF: sub_10035DA0+384j
- .text:1003612E mov [edi+8], ebx
- .text:10036131 mov eax, [esi+0Ch]
- .text:10036134 mov ebx, [ecx+10h]
- .text:10036137 add eax, ebx
- .text:10036139 mov ebx, 0D7h
- .text:1003613E and eax, 1FFh
- .text:10036143 mov [edi+0Ch], eax
- .text:10036146 imul eax, [ecx+0Ch]
- .text:1003614A and eax, 3Fh
- .text:1003614D mov edx, Fibonaci2[eax*4]
- .text:10036154 and edx, 1FFh
- .text:1003615A mov [edi+10h], edx
- .text:1003615D mov eax, [esi+14h]
- .text:10036160 mov edx, [ecx+0Ch]
- .text:10036163 mov ebp, [esi+18h]
- .text:10036166 sub eax, edx
- .text:10036168 xor edx, edx
- .text:1003616A add eax, ebp
- .text:1003616C and eax, 1FFh
- .text:10036171 mov [edi+14h], eax
- .text:10036174 mov eax, [esi+14h]
- .text:10036177 div ebx
- .text:10036179 movsx edx, byte ptr Key1[edx] ; "132jksdiau34ukjasdflkj!@#234afdji78#%23"...
- .text:10036180 and edx, 8000003Fh
- .text:10036186 jns short loc_1003618D
- .text:10036188 dec edx
- .text:10036189 or edx, 0FFFFFFC0h
- .text:1003618C inc edx
- .text:1003618D
- .text:1003618D loc_1003618D: ; CODE XREF: sub_10035DA0+3E6j
- .text:1003618D mov eax, Fibonaci2[edx*4]
- .text:10036194 mov edx, [edi+0Ch]
- .text:10036197 and eax, 1FFh
- .text:1003619C mov [edi+18h], eax
- .text:1003619F mov eax, [ecx+20h]
- .text:100361A2 mov ebp, [esi+1Ch]
- .text:100361A5 sub edx, eax
- .text:100361A7 add edx, ebp
- .text:100361A9 mov ecx, 82h
- .text:100361AE and edx, 1FFh
- .text:100361B4 mov [edi+1Ch], edx
- .text:100361B7 mov eax, [esi+14h]
- .text:100361BA xor edx, edx
- .text:100361BC div ecx
- .text:100361BE movsx edx, byte ptr Key2[edx] ; "Afgasdkol!@#$564746Lfat0[9i FDLAas09013"...
- .text:100361C5 and edx, 8000001Fh
- .text:100361CB jns short loc_100361D2
- .text:100361CD dec edx
- .text:100361CE or edx, 0FFFFFFE0h
- .text:100361D1 inc edx
- .text:100361D2
- .text:100361D2 loc_100361D2: ; CODE XREF: sub_10035DA0+42Bj
- .text:100361D2 mov eax, Fibonaci1[edx*4]
- .text:100361D9 and eax, 1FFh
- .text:100361DE mov [edi+20h], eax
- .text:100361E1 pop edi
- .text:100361E2 pop esi
- .text:100361E3 pop ebp
- .text:100361E4 pop ebx
- .text:100361E5 add esp, 24h
- .text:100361E8 retn
- .text:100361E8 sub_10035DA0 endp
- .text:100361E8
复制代码 |
|