-
-
挑战大家的神经,询问算法如何得出,消失就在眼前
-
发表于: 2005-11-7 21:49 3802
-
终于要离开这座城市了
她的离我而去
让我不知该如何是好
原本像我这种菜虫
是无法做到看完这段汇编代码的
可是现在我却麻木了
把汇编翻了一遍
看到了算法却没有得出结果
如果你只是想知道结果
就不要再往下看了
Active WebCam
http://www.pysoft.com/
Filesize: 10.8MB
Active WebCam captures images up to 30 frames per second from any
video device including USB, analog cameras, TV-boards, camcorders,
and from network IP cameras.
查看程序about时就可以看到有这几种License可以选
006051EC |. />ja short WebCam.00605256
006051EE |. |>jmp near dword ptr ds:[eax*4+6051F5]
006051F5 |. |>dd WebCam.00605256 ; Switch table used at 006051EE
006051F9 |. |>dd WebCam.0060520D
006051FD |. |>dd WebCam.0060521C
00605201 |. |>dd WebCam.0060522B
00605205 |. |>dd WebCam.0060523A
00605209 |. |>dd WebCam.00605249
0060520D |> |>lea eax, dword ptr ss:[ebp-4] ; Case 1 of switch 006051E9
00605210 |. |>mov edx, WebCam.0060536C ; ASCII " [REGULAR Version]"
00605215 |. |>call WebCam.00403F4C
0060521A |. |>jmp short WebCam.00605256
0060521C |> |>lea eax, dword ptr ss:[ebp-4] ; Case 2 of switch 006051E9
0060521F |. |>mov edx, WebCam.00605388 ; ASCII " [PRO Version]"
00605224 |. |>call WebCam.00403F4C
00605229 |. |>jmp short WebCam.00605256
0060522B |> |>lea eax, dword ptr ss:[ebp-4] ; Case 3 of switch 006051E9
0060522E |. |>mov edx, WebCam.006053A0 ; ASCII " [Deluxe Version]"
00605233 |. |>call WebCam.00403F4C
00605238 |. |>jmp short WebCam.00605256
0060523A |> |>lea eax, dword ptr ss:[ebp-4] ; Case 4 of switch 006051E9
0060523D |. |>mov edx, WebCam.006053BC ; ASCII " [Site License]"
00605242 |. |>call WebCam.00403F4C
00605247 |. |>jmp short WebCam.00605256
00605249 |> |>lea eax, dword ptr ss:[ebp-4] ; Case 5 of switch 006051E9
0060524C |. |>mov edx, WebCam.006053D4 ; ASCII " [World-Wide License]"
00605251 |. |>call WebCam.00403F4C
00605256 |> \>mov edx, dword ptr ds:[6666B8]; WebCam.0065D218; Default case
0060525C |. >mov edx, dword ptr ds:[edx]
==== 检测的地方 ====================================
00586BB8 . 8>cmp eax, 10 ; length - 16位
00586BBB . 0>jnz WebCam.00586DFB
00586BC1 . B>mov ebx, 1
00586BC6 . 8>lea esi, dword ptr ss:[ebp-19]
00586BC9 > 8>lea eax, dword ptr ss:[ebp-1B8]
00586BCF . 8>mov edi, ebx
00586BD1 . 0>add edi, edi
00586BD3 . 8>mov edx, dword ptr ss:[ebp-C]
00586BD6 . 8>mov dl, byte ptr ds:[edx+edi-2]
00586BDA . 8>mov byte ptr ds:[eax+1], dl
00586BDD . C>mov byte ptr ds:[eax], 1
00586BE0 . 8>lea edx, dword ptr ss:[ebp-1B8]
00586BE6 . 8>lea eax, dword ptr ss:[ebp-1BC]
00586BEC . E>call WebCam.00402CDC
00586BF1 . 8>lea eax, dword ptr ss:[ebp-1C0]
00586BF7 . 8>mov edx, dword ptr ss:[ebp-C]
00586BFA . 8>mov dl, byte ptr ds:[edx+edi-1]
00586BFE . 8>mov byte ptr ds:[eax+1], dl
00586C01 . C>mov byte ptr ds:[eax], 1
00586C04 . 8>lea edx, dword ptr ss:[ebp-1C0]
00586C0A . 8>lea eax, dword ptr ss:[ebp-1BC]
00586C10 . B>mov cl, 2
00586C12 . E>call WebCam.00402CAC
00586C17 . 8>lea edx, dword ptr ss:[ebp-1BC]
00586C1D . 8>lea eax, dword ptr ss:[ebp-120]
00586C23 . E>call WebCam.00402CDC
00586C28 . 8>lea eax, dword ptr ss:[ebp-120]
00586C2E . E>call WebCam.00426A78
00586C33 . 8>mov byte ptr ds:[esi], al
00586C35 . 4>inc ebx
00586C36 . 4>inc esi
00586C37 . 8>cmp ebx, 9
00586C3A .^ 7>jnz short WebCam.00586BC9
00586C3C . 8>mov eax, dword ptr ss:[ebp-10]
00586C3F . E>call WebCam.00404130
00586C44 . 5>push eax
00586C45 . 8>lea eax, dword ptr ss:[ebp-10]
00586C48 . E>call WebCam.00404300
00586C4D . 5>pop edx
00586C4E . E>call WebCam.00428AF8 ==A== ; 对用户名运算 ==A==
00586C53 . 8>mov ebx, eax ;
00586C55 . B>mov eax, WebCam.00586E30 ; ASCII "Active WebCam"
00586C5A . E>call WebCam.004042F4
00586C5F . B>mov edx, 0D
00586C64 . E>call WebCam.00428AF8 ==A=== ; 对License类型运算
00586C69 . 8>mov dword ptr ss:[ebp-20], eax ;
00586C6C . 6>push 0 ; /Arg1 = 00000000
00586C6E . 8>lea edx, dword ptr ss:[ebp-20] ; |
00586C71 . 8>lea eax, dword ptr ss:[ebp-1B4] ; |
00586C77 . B>mov ecx, 4 ; |不同的License,Map[]不同
00586C7C . E>call WebCam.004D5208 ==B=== ; \WebCam.004D5208 ==B===
00586C81 . 8>lea ecx, dword ptr ss:[ebp-8]
00586C84 . 8>lea edx, dword ptr ss:[ebp-19]
00586C87 . 8>lea eax, dword ptr ss:[ebp-1B4]
00586C8D . E>call WebCam.004D60EC ==C=== ; [WebCam.004D60EC]==C===
00586C92 . 3>cmp ebx, dword ptr ss:[ebp-8] ; 比对是否是有效值
00586C95 . 7>jnz short WebCam.00586CAB ; 以下都同上了
00586C97 . C>mov byte ptr ss:[ebp-11], 1
00586C9B . A>mov eax, dword ptr ds:[666214]
00586CA0 . C>mov dword ptr ds:[eax], 1
00586CA6 . E>jmp WebCam.00586DFB
00586CAB > B>mov eax, WebCam.00586E48 ; ASCII "Active WebCam Pro"
00586CB0 . E>call WebCam.004042F4
00586CB5 . B>mov edx, 11
00586CBA . E>call WebCam.00428AF8 ;
00586CBF . 8>mov dword ptr ss:[ebp-20], eax
00586CC2 . 6>push 0 ; /Arg1 = 00000000
00586CC4 . 8>lea edx, dword ptr ss:[ebp-20] ; |
00586CC7 . 8>lea eax, dword ptr ss:[ebp-1B4] ; |
00586CCD . B>mov ecx, 4 ; |
00586CD2 . E>call WebCam.004D5208 ; \WebCam.004D5208
00586CD7 . 8>lea ecx, dword ptr ss:[ebp-8]
00586CDA . 8>lea edx, dword ptr ss:[ebp-19]
00586CDD . 8>lea eax, dword ptr ss:[ebp-1B4]
00586CE3 . E>call WebCam.004D60EC
00586CE8 . 3>cmp ebx, dword ptr ss:[ebp-8]
00586CEB . 7>jnz short WebCam.00586D01
00586CED . C>mov byte ptr ss:[ebp-11], 1
00586CF1 . A>mov eax, dword ptr ds:[666214]
00586CF6 . C>mov dword ptr ds:[eax], 2
00586CFC . E>jmp WebCam.00586DFB
00586D01 > B>mov eax, WebCam.00586E64 ; ASCII "Active WebCam Dx"
00586D06 . E>call WebCam.004042F4
00586D0B . B>mov edx, 10
00586D10 . E>call WebCam.00428AF8
00586D15 . 8>mov dword ptr ss:[ebp-20], eax
00586D18 . 6>push 0 ; /Arg1 = 00000000
00586D1A . 8>lea edx, dword ptr ss:[ebp-20] ; |
00586D1D . 8>lea eax, dword ptr ss:[ebp-1B4] ; |
00586D23 . B>mov ecx, 4 ; |
00586D28 . E>call WebCam.004D5208 ; \WebCam.004D5208
00586D2D . 8>lea ecx, dword ptr ss:[ebp-8]
00586D30 . 8>lea edx, dword ptr ss:[ebp-19]
00586D33 . 8>lea eax, dword ptr ss:[ebp-1B4]
00586D39 . E>call WebCam.004D60EC
00586D3E . 3>cmp ebx, dword ptr ss:[ebp-8]
00586D41 . 7>jnz short WebCam.00586D57
00586D43 . C>mov byte ptr ss:[ebp-11], 1
00586D47 . A>mov eax, dword ptr ds:[666214]
00586D4C . C>mov dword ptr ds:[eax], 3
00586D52 . E>jmp WebCam.00586DFB
00586D57 > B>mov eax, WebCam.00586E80 ; ASCII "Active WebCam St"
00586D5C . E>call WebCam.004042F4
00586D61 . B>mov edx, 10
00586D66 . E>call WebCam.00428AF8
00586D6B . 8>mov dword ptr ss:[ebp-20], eax
00586D6E . 6>push 0 ; /Arg1 = 00000000
00586D70 . 8>lea edx, dword ptr ss:[ebp-20] ; |
00586D73 . 8>lea eax, dword ptr ss:[ebp-1B4] ; |
00586D79 . B>mov ecx, 4 ; |
00586D7E . E>call WebCam.004D5208 ; \WebCam.004D5208
00586D83 . 8>lea ecx, dword ptr ss:[ebp-8]
00586D86 . 8>lea edx, dword ptr ss:[ebp-19]
00586D89 . 8>lea eax, dword ptr ss:[ebp-1B4]
00586D8F . E>call WebCam.004D60EC
00586D94 . 8>mov ebx, dword ptr ss:[ebp-8]
00586D97 . 7>jnz short WebCam.00586D99
00586D99 > C>mov byte ptr ss:[ebp-11], 1
00586D9D . A>mov eax, dword ptr ds:[666214]
00586DA2 . C>mov dword ptr ds:[eax], 4
00586DA8 . E>jmp short WebCam.00586DFB
00586DAA . B>mov eax, WebCam.00586E9C ; ASCII "Active WebCam Wr"
00586DAF . E>call WebCam.004042F4
00586DB4 . B>mov edx, 10
00586DB9 . E>call WebCam.00428AF8
00586DBE . 8>mov dword ptr ss:[ebp-20], eax
00586DC1 . 6>push 0 ; /Arg1 = 00000000
00586DC3 . 8>lea edx, dword ptr ss:[ebp-20] ; |
00586DC6 . 8>lea eax, dword ptr ss:[ebp-1B4] ; |
00586DCC . B>mov ecx, 4 ; |
00586DD1 . E>call WebCam.004D5208 ; \WebCam.004D5208
00586DD6 . 8>lea ecx, dword ptr ss:[ebp-8]
00586DD9 . 8>lea edx, dword ptr ss:[ebp-19]
00586DDC . 8>lea eax, dword ptr ss:[ebp-1B4]
00586DE2 . E>call WebCam.004D60EC
00586DE7 . 3>cmp ebx, dword ptr ss:[ebp-8]
00586DEA . 7>jnz short WebCam.00586DFB
00586DEC . C>mov byte ptr ss:[ebp-11], 1
00586DF0 . A>mov eax, dword ptr ds:[666214]
00586DF5 . C>mov dword ptr ds:[eax], 5
00586DFB > 3>xor eax, eax
00586DFD . 5>pop edx
00586DFE . 5>pop ecx
00586DFF . 5>pop ecx
00586E00 . 6>mov dword ptr fs:[eax], edx
00586E03 . 6>push WebCam.00586E1D
00586E08 > 8>lea eax, dword ptr ss:[ebp-10]
00586E0B . B>mov edx, 2
00586E10 . E>call WebCam.00403ED8
00586E15 . C>ret
****************************************************************************
现在看看都有什么
================= WebCam.00428AF8 ==A== ==============================
00428AF8 /$ 5>push ebp
00428AF9 |. 8>mov ebp, esp
00428AFB |. 8>add esp, -1C
00428AFE |. 8>mov dword ptr ss:[ebp-8], edx
00428B01 |. 8>mov dword ptr ss:[ebp-4], eax
00428B04 |. C>mov dword ptr ss:[ebp-18], -1
00428B0B |. 8>mov eax, dword ptr ss:[ebp-4]
00428B0E |. 8>mov dword ptr ss:[ebp-10], eax
00428B11 |. 8>mov eax, dword ptr ss:[ebp-8]
00428B14 |. 8>test eax, eax
00428B16 |. 7>jle short WebCam.00428B55
00428B18 |. 8>mov dword ptr ss:[ebp-1C], eax
00428B1B |. C>mov dword ptr ss:[ebp-14], 1
00428B22 |> 8>/mov eax, dword ptr ss:[ebp-10]
00428B25 |. 8>|mov edx, dword ptr ss:[ebp-14]
00428B28 |. 0>|movzx eax, byte ptr ds:[eax+edx-1]
00428B2D |. 3>|xor eax, dword ptr ss:[ebp-18]
00428B30 |. 2>|and eax, 0FF
00428B35 |. 8>|mov eax, dword ptr ds:[eax*4+65C>
00428B3C |. 8>|mov edx, dword ptr ss:[ebp-18]
00428B3F |. C>|shr edx, 8
00428B42 |. 8>|and edx, 0FFFFFF
00428B48 |. 3>|xor eax, edx
00428B4A |. 8>|mov dword ptr ss:[ebp-18], eax
00428B4D |. F>|inc dword ptr ss:[ebp-14]
00428B50 |. F>|dec dword ptr ss:[ebp-1C]
00428B53 |.^ 7>\jnz short WebCam.00428B22
00428B55 |> 8>mov eax, dword ptr ss:[ebp-18]
00428B58 |. 8>xor eax, FFFFFFFF
00428B5B |. 8>mov dword ptr ss:[ebp-C], eax
00428B5E |. 8>mov eax, dword ptr ss:[ebp-C]
00428B61 |. 8>mov esp, ebp
00428B63 |. 5>pop ebp
00428B64 \. C>ret
public int createKey(String s) {
char[] cs = s.toCharArray();
int hs1;
int hs = 0xFFFFFFFF;
Mapdata map = new Mapdata();
for (int i = 0; i < cs.length; i++) {
int tag = 0;
int k = 1;
hs1 = ((cs[i] ^ hs) & 0xFF) * 4;
for (int j = 0; j < 4; j++) {
tag = tag + map.key[hs1 + j] * k;
k *= 0x100;
}
hs = (format(hs) & 0xFFFFFF) ^ tag;
}
hs = hs ^ 0xFFFFFFFF;
return hs;
}
map.key[] 是从程序中找到的一段数据,当做字典用了
输入"HUNTER" 得到key1 = 0xE34B2FBA
输入"Active WebCam" 得到一个要进一步处理的key2 0x6BEA18E3
================= WebCam.004D5208 ==B== ==============================
004D5208 /$ 5>push ebp
004D5209 |. 8>mov ebp, esp
004D520B |. 8>add esp, -34
004D520E |. 5>push ebx
004D520F |. 5>push esi
004D5210 |. 5>push edi
004D5211 |. 8>mov edi, ecx
004D5213 |. 8>mov dword ptr ss:[ebp-4], edx
004D5216 |. 8>mov ebx, eax
004D5218 |. 8>lea esi, dword ptr ss:[ebp-14]
004D521B |. 8>test edi, edi
004D521D |. 7>jle short WebCam.004D5224
004D521F |. 8>cmp edi, 10
004D5222 |. 7>jle short WebCam.004D5237
004D5224 |> 3>xor ecx, ecx
004D5226 |. B>mov dl, 1
004D5228 |. A>mov eax, dword ptr ds:[4093FC]
004D522D |. E>call WebCam.0040D970
004D5232 |. E>call WebCam.0040390C
004D5237 |> 8>cmp dword ptr ss:[ebp+8], 0
004D523B |. 7>jnz short WebCam.004D525C
004D523D |. 8>mov eax, ebx
004D523F |. 3>xor ecx, ecx
004D5241 |. B>mov edx, 8
004D5246 |. E>call WebCam.00402E1C
004D524B |. 8>lea eax, dword ptr ds:[ebx+8]
004D524E |. 3>xor ecx, ecx
004D5250 |. B>mov edx, 8
004D5255 |. E>call WebCam.00402E1C
004D525A |. E>jmp short WebCam.004D527B
004D525C |> 8>mov edx, ebx
004D525E |. 8>mov eax, dword ptr ss:[ebp+8]
004D5261 |. B>mov ecx, 8
004D5266 |. E>call WebCam.004029DC
004D526B |. 8>lea edx, dword ptr ds:[ebx+8]
004D526E |. 8>mov eax, dword ptr ss:[ebp+8]
004D5271 |. B>mov ecx, 8
004D5276 |. E>call WebCam.004029DC
004D527B |> 8>cmp edi, 0A
004D527E |. 7>jg short WebCam.004D528C
004D5280 |. C>mov dword ptr ds:[ebx+90], 0C
004D528A |. E>jmp short WebCam.004D5296
004D528C |> C>mov dword ptr ds:[ebx+90], 10
004D5296 |> 8>mov eax, esi
004D5298 |. 3>xor ecx, ecx
004D529A |. B>mov edx, 10
004D529F |. E>call WebCam.00402E1C
004D52A4 |. 8>mov edx, esi
004D52A6 |. 8>mov eax, dword ptr ss:[ebp-4]
004D52A9 |. 8>mov ecx, edi
004D52AB |. E>call WebCam.004029DC
004D52B0 |. 8>mov eax, dword ptr ds:[esi] ; 开始 加载通过License类型获得的 key2
004D52B2 |. 8>mov edx, eax
004D52B4 |. C>shr edx, 18
004D52B7 |. 8>mov ecx, eax
004D52B9 |. C>shr ecx, 8
004D52BC |. 8>and ecx, 0FF00
004D52C2 |. 0>or edx, ecx
004D52C4 |. 8>mov ecx, eax
004D52C6 |. C>shl ecx, 8
004D52C9 |. 8>and ecx, 0FF0000
004D52CF |. 0>or edx, ecx
004D52D1 |. C>shl eax, 18
004D52D4 |. 0>or edx, eax
004D52D6 |. 8>mov dword ptr ds:[esi], edx ; 倒序 6BEA18E3 -> E318EA6B
004D52D8 |. 8>mov eax, dword ptr ds:[esi+4] ; 后面相同,这次均为00000000
004D52DB |. 8>mov edx, eax
004D52DD |. C>shr edx, 18
004D52E0 |. 8>mov ecx, eax
004D52E2 |. C>shr ecx, 8
004D52E5 |. 8>and ecx, 0FF00
004D52EB |. 0>or edx, ecx
004D52ED |. 8>mov ecx, eax
004D52EF |. C>shl ecx, 8
004D52F2 |. 8>and ecx, 0FF0000
004D52F8 |. 0>or edx, ecx
004D52FA |. C>shl eax, 18
004D52FD |. 0>or edx, eax
004D52FF |. 8>mov dword ptr ds:[esi+4], edx
004D5302 |. 8>mov eax, dword ptr ds:[esi+8]
004D5305 |. 8>mov edx, eax
004D5307 |. C>shr edx, 18
004D530A |. 8>mov ecx, eax
004D530C |. C>shr ecx, 8
004D530F |. 8>and ecx, 0FF00
004D5315 |. 0>or edx, ecx
004D5317 |. 8>mov ecx, eax
004D5319 |. C>shl ecx, 8
004D531C |. 8>and ecx, 0FF0000
004D5322 |. 0>or edx, ecx
004D5324 |. C>shl eax, 18
004D5327 |. 0>or edx, eax
004D5329 |. 8>mov dword ptr ds:[esi+8], edx
004D532C |. 8>mov eax, dword ptr ds:[esi+C]
004D532F |. 8>mov edx, eax
004D5331 |. C>shr edx, 18
004D5334 |. 8>mov ecx, eax
004D5336 |. C>shr ecx, 8
004D5339 |. 8>and ecx, 0FF00
004D533F |. 0>or edx, ecx
004D5341 |. 8>mov ecx, eax
004D5343 |. C>shl ecx, 8
004D5346 |. 8>and ecx, 0FF0000
004D534C |. 0>or edx, ecx
004D534E |. C>shl eax, 18
004D5351 |. 0>or edx, eax
004D5353 |. 8>mov dword ptr ds:[esi+C], edx
004D5356 |. 3>xor eax, eax
004D5358 |> 8>/mov edx, eax
004D535A |. 8>|and edx, 4
004D535D |. 8>|sub edx, 1 ; Switch (cases 0..4)
004D5360 |. 7>|jb short WebCam.004D5370
004D5362 |. 8>|sub edx, 3
004D5365 |. 0>|je WebCam.004D54F0
004D536B |. E>|jmp WebCam.004D5666
004D5370 |> 8>|mov edx, dword ptr ds:[esi+C] ; Case 0 of switch 004D535D
004D5373 |. 8>|mov ecx, edx
004D5375 |. C>|shr ecx, 10 ; 第2段
004D5378 |. 8>|and ecx, 0FF
004D537E |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D5385 |. 3>|xor ecx, dword ptr ds:[esi]
004D5387 |. 8>|mov edi, edx
004D5389 |. 8>|and edi, 0FF ; 第4段
004D538F |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D5396 |. 8>|mov edi, edx
004D5398 |. C>|shr edi, 18 ; 第1段
004D539B |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D53A2 |. C>|shr edx, 8 ; 第3段
004D53A5 |. 8>|and edx, 0FF
004D53AB |. 3>|xor ecx, dword ptr ds:[edx*4+660C84]
004D53B2 |. 8>|mov edx, dword ptr ds:[esi+8]
004D53B5 |. C>|shr edx, 18 ; 第1段
004D53B8 |. 3>|xor ecx, dword ptr ds:[edx*4+660884]
004D53BF |. 8>|mov dword ptr ss:[ebp-34], ecx ; [ebp-34] 赋值
004D53C2 |. 8>|mov edx, dword ptr ss:[ebp-34]
004D53C5 |. 8>|mov dword ptr ss:[ebp-24], edx ; [ebp-24] 赋值
004D53C8 |. 8>|mov edx, dword ptr ss:[ebp-34]
004D53CB |. C>|shr edx, 18 ; 1
004D53CE |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D53D5 |. 3>|xor edx, dword ptr ds:[esi+8]
004D53D8 |. 8>|mov ecx, dword ptr ss:[ebp-34]
004D53DB |. C>|shr ecx, 8 ; 3
004D53DE |. 8>|and ecx, 0FF
004D53E4 |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D53EB |. 8>|mov ecx, dword ptr ss:[ebp-34]
004D53EE |. C>|shr ecx, 10 ; 2
004D53F1 |. 8>|and ecx, 0FF
004D53F7 |. 3>|xor edx, dword ptr ds:[ecx*4+660884]
004D53FE |. 8>|mov ecx, dword ptr ss:[ebp-34]
004D5401 |. 8>|and ecx, 0FF ; 4
004D5407 |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D540E |. 8>|mov ecx, dword ptr ds:[esi+8]
004D5411 |. C>|shr ecx, 8
004D5414 |. 8>|and ecx, 0FF
004D541A |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D5421 |. 8>|mov dword ptr ss:[ebp-30], edx ; [ebp-30] 赋值
004D5424 |. 8>|mov edx, dword ptr ss:[ebp-30]
004D5427 |. 8>|mov dword ptr ss:[ebp-20], edx ; [ebp-20] 赋值
004D542A |. 8>|mov edx, dword ptr ss:[ebp-30]
004D542D |. 8>|and edx, 0FF ; 4
004D5433 |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D543A |. 3>|xor edx, dword ptr ds:[esi+C]
004D543D |. 8>|mov ecx, dword ptr ss:[ebp-30]
004D5440 |. C>|shr ecx, 8 ; 3
004D5443 |. 8>|and ecx, 0FF
004D5449 |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D5450 |. 8>|mov ecx, dword ptr ss:[ebp-30]
004D5453 |. C>|shr ecx, 10 ; 2
004D5456 |. 8>|and ecx, 0FF
004D545C |. 3>|xor edx, dword ptr ds:[ecx*4+660884]
004D5463 |. 8>|mov ecx, dword ptr ss:[ebp-30]
004D5466 |. C>|shr ecx, 18 ; 1
004D5469 |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D5470 |. 8>|mov ecx, dword ptr ds:[esi+8]
004D5473 |. C>|shr ecx, 10
004D5476 |. 8>|and ecx, 0FF
004D547C |. 3>|xor edx, dword ptr ds:[ecx*4+661084]
004D5483 |. 8>|mov dword ptr ss:[ebp-2C], edx ; [ebp-2C] 赋值
004D5486 |. 8>|mov edx, dword ptr ss:[ebp-2C]
004D5489 |. 8>|mov dword ptr ss:[ebp-1C], edx ; [ebp-1C] 赋值
004D548C |. 8>|mov edx, dword ptr ss:[ebp-2C]
004D548F |. C>|shr edx, 8 ; 3
004D5492 |. 8>|and edx, 0FF
004D5498 |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D549F |. 3>|xor edx, dword ptr ds:[esi+4]
004D54A2 |. 8>|mov ecx, dword ptr ss:[ebp-2C]
004D54A5 |. C>|shr ecx, 10 ; 2
004D54A8 |. 8>|and ecx, 0FF
004D54AE |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D54B5 |. 8>|mov ecx, dword ptr ss:[ebp-2C]
004D54B8 |. 8>|and ecx, 0FF ; 4
004D54BE |. 3>|xor edx, dword ptr ds:[ecx*4+660884]
004D54C5 |. 8>|mov ecx, dword ptr ss:[ebp-2C]
004D54C8 |. C>|shr ecx, 18 ; 1
004D54CB |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D54D2 |. 8>|mov ecx, dword ptr ds:[esi+8]
004D54D5 |. 8>|and ecx, 0FF
004D54DB |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D54E2 |. 8>|mov dword ptr ss:[ebp-28], edx ; [ebp-28] 赋值
004D54E5 |. 8>|mov edx, dword ptr ss:[ebp-28]
004D54E8 |. 8>|mov dword ptr ss:[ebp-18], edx ; [ebp-18] 赋值
004D54EB |. E>|jmp WebCam.004D5666
004D54F0 |> 8>|mov edx, dword ptr ss:[ebp-30] ; Case 4 of switch 004D535D
004D54F3 |. 8>|mov ecx, edx
004D54F5 |. C>|shr ecx, 10 ; 2
004D54F8 |. 8>|and ecx, 0FF
004D54FE |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D5505 |. 3>|xor ecx, dword ptr ss:[ebp-2C]
004D5508 |. 8>|mov edi, edx
004D550A |. 8>|and edi, 0FF ; 4
004D5510 |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D5517 |. 8>|mov edi, edx
004D5519 |. C>|shr edi, 18 ; 1
004D551C |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D5523 |. C>|shr edx, 8 ; 3
004D5526 |. 8>|and edx, 0FF
004D552C |. 3>|xor ecx, dword ptr ds:[edx*4+660C84]
004D5533 |. 8>|mov edx, dword ptr ss:[ebp-34]
004D5536 |. C>|shr edx, 18
004D5539 |. 3>|xor ecx, dword ptr ds:[edx*4+660884]
004D5540 |. 8>|mov dword ptr ds:[esi], ecx ; [ESI] 赋值
004D5542 |. 8>|mov edx, dword ptr ds:[esi]
004D5544 |. 8>|mov dword ptr ss:[ebp-24], edx ; [ebp-24] 赋值
004D5547 |. 8>|mov edx, dword ptr ds:[esi]
004D5549 |. C>|shr edx, 18 ; 1
004D554C |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D5553 |. 3>|xor edx, dword ptr ss:[ebp-34]
004D5556 |. 8>|mov ecx, dword ptr ds:[esi]
004D5558 |. C>|shr ecx, 8 ; 3
004D555B |. 8>|and ecx, 0FF
004D5561 |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D5568 |. 8>|mov ecx, dword ptr ds:[esi]
004D556A |. C>|shr ecx, 10 ; 2
004D556D |. 8>|and ecx, 0FF
004D5573 |. 3>|xor edx, dword ptr ds:[ecx*4+660884]
004D557A |. 8>|mov ecx, dword ptr ds:[esi]
004D557C |. 8>|and ecx, 0FF ; 4
004D5582 |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D5589 |. 8>|mov ecx, dword ptr ss:[ebp-34]
004D558C |. C>|shr ecx, 8
004D558F |. 8>|and ecx, 0FF
004D5595 |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D559C |. 8>|mov dword ptr ds:[esi+4], edx ; [ESI+4] 赋值
004D559F |. 8>|mov edx, dword ptr ds:[esi+4]
004D55A2 |. 8>|mov dword ptr ss:[ebp-20], edx ; [ebp-20] 赋值
004D55A5 |. 8>|mov edx, dword ptr ds:[esi+4]
004D55A8 |. 8>|and edx, 0FF
004D55AE |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D55B5 |. 3>|xor edx, dword ptr ss:[ebp-30]
004D55B8 |. 8>|mov ecx, dword ptr ds:[esi+4]
004D55BB |. C>|shr ecx, 8
004D55BE |. 8>|and ecx, 0FF
004D55C4 |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D55CB |. 8>|mov ecx, dword ptr ds:[esi+4]
004D55CE |. C>|shr ecx, 10
004D55D1 |. 8>|and ecx, 0FF
004D55D7 |. 3>|xor edx, dword ptr ds:[ecx*4+660884]
004D55DE |. 8>|mov ecx, dword ptr ds:[esi+4]
004D55E1 |. C>|shr ecx, 18
004D55E4 |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D55EB |. 8>|mov ecx, dword ptr ss:[ebp-34]
004D55EE |. C>|shr ecx, 10
004D55F1 |. 8>|and ecx, 0FF
004D55F7 |. 3>|xor edx, dword ptr ds:[ecx*4+661084]
004D55FE |. 8>|mov dword ptr ds:[esi+8], edx ; [ESI+8] 赋值
004D5601 |. 8>|mov edx, dword ptr ds:[esi+8]
004D5604 |. 8>|mov dword ptr ss:[ebp-1C], edx ; [ebp-1C] 赋值
004D5607 |. 8>|mov edx, dword ptr ds:[esi+8]
004D560A |. C>|shr edx, 8
004D560D |. 8>|and edx, 0FF
004D5613 |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D561A |. 3>|xor edx, dword ptr ss:[ebp-28]
004D561D |. 8>|mov ecx, dword ptr ds:[esi+8]
004D5620 |. C>|shr ecx, 10
004D5623 |. 8>|and ecx, 0FF
004D5629 |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D5630 |. 8>|mov ecx, dword ptr ds:[esi+8]
004D5633 |. 8>|and ecx, 0FF
004D5639 |. 3>|xor edx, dword ptr ds:[ecx*4+660884]
004D5640 |. 8>|mov ecx, dword ptr ds:[esi+8]
004D5643 |. C>|shr ecx, 18
004D5646 |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D564D |. 8>|mov ecx, dword ptr ss:[ebp-34]
004D5650 |. 8>|and ecx, 0FF
004D5656 |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D565D |. 8>|mov dword ptr ds:[esi+C], edx ; [ESI+C] 赋值
004D5660 |. 8>|mov edx, dword ptr ds:[esi+C]
004D5663 |. 8>|mov dword ptr ss:[ebp-18], edx ; [ebp-18] 赋值
004D5666 |> 8>|mov edx, eax ; Default case of switch 004D535D
004D5668 |. 8>|and edx, 0C
004D566B |. 8>|mov ecx, edx
004D566D |. 8>|sub ecx, 1 ; Switch (cases 0..C)
004D5670 |. 7>|jb short WebCam.004D568D
004D5672 |. 8>|sub ecx, 3
004D5675 |. 0>|je WebCam.004D57AE
004D567B |. 8>|sub ecx, 4
004D567E |. 0>|je WebCam.004D57AE
004D5684 |. 8>|sub ecx, 4
004D5687 |. 0>|jnz WebCam.004D58CA
004D568D |> 8>|mov ecx, dword ptr ss:[ebp-1C] ; Cases 0,C of switch 004D566D
004D5690 |. C>|shr ecx, 18 ; 1
004D5693 |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D569A |. 8>|mov edi, dword ptr ss:[ebp-1C]
004D569D |. C>|shr edi, 10 ; 2
004D56A0 |. 8>|and edi, 0FF
004D56A6 |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D56AD |. 8>|mov edi, dword ptr ss:[ebp-20]
004D56B0 |. 8>|and edi, 0FF ; 4
004D56B6 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D56BD |. 8>|mov edi, dword ptr ss:[ebp-20]
004D56C0 |. C>|shr edi, 8 ; 3
004D56C3 |. 8>|and edi, 0FF
004D56C9 |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D56D0 |. 8>|mov dword ptr ds:[ebx+eax*4+10], ecx
004D56D4 |. 8>|mov ecx, dword ptr ss:[ebp-1C]
004D56D7 |. C>|shr ecx, 8 ; 3
004D56DA |. 8>|and ecx, 0FF
004D56E0 |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D56E7 |. 8>|mov edi, dword ptr ss:[ebp-1C]
004D56EA |. 8>|and edi, 0FF ; 4
004D56F0 |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D56F7 |. 8>|mov edi, dword ptr ss:[ebp-20]
004D56FA |. C>|shr edi, 10 ; 2
004D56FD |. 8>|and edi, 0FF
004D5703 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D570A |. 8>|mov edi, dword ptr ss:[ebp-20]
004D570D |. C>|shr edi, 18 ; 1
004D5710 |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D5717 |. 8>|mov dword ptr ds:[ebx+eax*4+14], ecx
004D571B |. 8>|mov ecx, dword ptr ss:[ebp-18]
004D571E |. C>|shr ecx, 18 ; 1
004D5721 |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D5728 |. 8>|mov edi, dword ptr ss:[ebp-18]
004D572B |. C>|shr edi, 10 ; 2
004D572E |. 8>|and edi, 0FF
004D5734 |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D573B |. 8>|mov edi, dword ptr ss:[ebp-24]
004D573E |. 8>|and edi, 0FF ; 4
004D5744 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D574B |. 8>|mov edi, dword ptr ss:[ebp-24]
004D574E |. C>|shr edi, 8 ; 3
004D5751 |. 8>|and edi, 0FF
004D5757 |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D575E |. 8>|mov dword ptr ds:[ebx+eax*4+18], ecx
004D5762 |. 8>|mov ecx, dword ptr ss:[ebp-18]
004D5765 |. C>|shr ecx, 8 ; 3
004D5768 |. 8>|and ecx, 0FF
004D576E |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D5775 |. 8>|mov edi, dword ptr ss:[ebp-18]
004D5778 |. 8>|and edi, 0FF ; 4
004D577E |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D5785 |. 8>|mov edi, dword ptr ss:[ebp-24]
004D5788 |. C>|shr edi, 10 ; 2
004D578B |. 8>|and edi, 0FF
004D5791 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D5798 |. 8>|mov edi, dword ptr ss:[ebp-24]
004D579B |. C>|shr edi, 18 ; 1
004D579E |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D57A5 |. 8>|mov dword ptr ds:[ebx+eax*4+1C], ecx
004D57A9 |. E>|jmp WebCam.004D58CA
004D57AE |> 8>|mov ecx, dword ptr ss:[ebp-24] ; Cases 4,8 of switch 004D566D
004D57B1 |. 8>|and ecx, 0FF ; 4
004D57B7 |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D57BE |. 8>|mov edi, dword ptr ss:[ebp-24]
004D57C1 |. C>|shr edi, 8 ; 3
004D57C4 |. 8>|and edi, 0FF
004D57CA |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D57D1 |. 8>|mov edi, dword ptr ss:[ebp-18]
004D57D4 |. C>|shr edi, 18 ; 1
004D57D7 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D57DE |. 8>|mov edi, dword ptr ss:[ebp-18]
004D57E1 |. C>|shr edi, 10 ; 2
004D57E4 |. 8>|and edi, 0FF
004D57EA |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D57F1 |. 8>|mov dword ptr ds:[ebx+eax*4+10], ecx
004D57F5 |. 8>|mov ecx, dword ptr ss:[ebp-24]
004D57F8 |. C>|shr ecx, 10 ; 2
004D57FB |. 8>|and ecx, 0FF
004D5801 |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D5808 |. 8>|mov edi, dword ptr ss:[ebp-24]
004D580B |. C>|shr edi, 18 ; 1
004D580E |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D5815 |. 8>|mov edi, dword ptr ss:[ebp-18]
004D5818 |. C>|shr edi, 8 ; 3
004D581B |. 8>|and edi, 0FF
004D5821 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D5828 |. 8>|mov edi, dword ptr ss:[ebp-18]
004D582B |. 8>|and edi, 0FF ; 4
004D5831 |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D5838 |. 8>|mov dword ptr ds:[ebx+eax*4+14], ecx
004D583C |. 8>|mov ecx, dword ptr ss:[ebp-20]
004D583F |. 8>|and ecx, 0FF ; 4
004D5845 |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D584C |. 8>|mov edi, dword ptr ss:[ebp-20]
004D584F |. C>|shr edi, 8 ; 3
004D5852 |. 8>|and edi, 0FF
004D5858 |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D585F |. 8>|mov edi, dword ptr ss:[ebp-1C]
004D5862 |. C>|shr edi, 18 ; 1
004D5865 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D586C |. 8>|mov edi, dword ptr ss:[ebp-1C]
004D586F |. C>|shr edi, 10 ; 2
004D5872 |. 8>|and edi, 0FF
004D5878 |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D587F |. 8>|mov dword ptr ds:[ebx+eax*4+18], ecx
004D5883 |. 8>|mov ecx, dword ptr ss:[ebp-20]
004D5886 |. C>|shr ecx, 10 ; 2
004D5889 |. 8>|and ecx, 0FF
004D588F |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D5896 |. 8>|mov edi, dword ptr ss:[ebp-20]
004D5899 |. C>|shr edi, 18 ; 1
004D589C |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D58A3 |. 8>|mov edi, dword ptr ss:[ebp-1C]
004D58A6 |. C>|shr edi, 8 ; 3
004D58A9 |. 8>|and edi, 0FF
004D58AF |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D58B6 |. 8>|mov edi, dword ptr ss:[ebp-1C]
004D58B9 |. 8>|and edi, 0FF ; 4
004D58BF |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D58C6 |. 8>|mov dword ptr ds:[ebx+eax*4+1C], ecx
004D58CA |> 8>|sub edx, 1 ; Switch (cases 0..C)
004D58CD |. 7>|jb short WebCam.004D58EB
004D58CF |. 8>|sub edx, 3
004D58D2 |. 7>|je short WebCam.004D5946
004D58D4 |. 8>|sub edx, 4
004D58D7 |. 0>|je WebCam.004D599A
004D58DD |. 8>|sub edx, 4
004D58E0 |. 0>|je WebCam.004D59F2
004D58E6 |. E>|jmp WebCam.004D5A41
004D58EB |> 8>|mov edx, dword ptr ss:[ebp-34] ; Case 0 of switch 004D58CA
004D58EE |. C>|shr edx, 8 ; 3
004D58F1 |. 8>|and edx, 0FF
004D58F7 |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D58FE |. 3>|xor dword ptr ds:[ebx+eax*4+10], edx
004D5902 |. 8>|mov edx, dword ptr ss:[ebp-30]
004D5905 |. C>|shr edx, 8 ; 3
004D5908 |. 8>|and edx, 0FF
004D590E |. 8>|mov edx, dword ptr ds:[edx*4+660484]
004D5915 |. 3>|xor dword ptr ds:[ebx+eax*4+14], edx
004D5919 |. 8>|mov edx, dword ptr ss:[ebp-2C]
004D591C |. C>|shr edx, 10 ; 2
004D591F |. 8>|and edx, 0FF
004D5925 |. 8>|mov edx, dword ptr ds:[edx*4+660884]
004D592C |. 3>|xor dword ptr ds:[ebx+eax*4+18], edx
004D5930 |. 8>|mov edx, dword ptr ss:[ebp-28]
004D5933 |. C>|shr edx, 18 ; 1
004D5936 |. 8>|mov edx, dword ptr ds:[edx*4+660C84]
004D593D |. 3>|xor dword ptr ds:[ebx+eax*4+1C], edx
004D5941 |. E>|jmp WebCam.004D5A41
004D5946 |> 8>|mov edx, dword ptr ds:[esi+8] ; Case 4 of switch 004D58CA
004D5949 |. C>|shr edx, 18 ; 1
004D594C |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D5953 |. 3>|xor dword ptr ds:[ebx+eax*4+10], edx
004D5957 |. 8>|mov edx, dword ptr ds:[esi+C]
004D595A |. C>|shr edx, 10 ; 2
004D595D |. 8>|and edx, 0FF
004D5963 |. 8>|mov edx, dword ptr ds:[edx*4+660484]
004D596A |. 3>|xor dword ptr ds:[ebx+eax*4+14], edx
004D596E |. 8>|mov edx, dword ptr ds:[esi]
004D5970 |. 8>|and edx, 0FF ; 4
004D5976 |. 8>|mov edx, dword ptr ds:[edx*4+660884]
004D597D |. 3>|xor dword ptr ds:[ebx+eax*4+18], edx
004D5981 |. 8>|mov edx, dword ptr ds:[esi+4]
004D5984 |. 8>|and edx, 0FF ; 4
004D598A |. 8>|mov edx, dword ptr ds:[edx*4+660C84]
004D5991 |. 3>|xor dword ptr ds:[ebx+eax*4+1C], edx
004D5995 |. E>|jmp WebCam.004D5A41
004D599A |> 8>|mov edx, dword ptr ss:[ebp-2C] ; Case 8 of switch 004D58CA
004D599D |. C>|shr edx, 10 ; 2
004D59A0 |. 8>|and edx, 0FF
004D59A6 |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D59AD |. 3>|xor dword ptr ds:[ebx+eax*4+10], edx
004D59B1 |. 8>|mov edx, dword ptr ss:[ebp-28]
004D59B4 |. C>|shr edx, 18 ; 1
004D59B7 |. 8>|mov edx, dword ptr ds:[edx*4+660484]
004D59BE |. 3>|xor dword ptr ds:[ebx+eax*4+14], edx
004D59C2 |. 8>|mov edx, dword ptr ss:[ebp-34]
004D59C5 |. C>|shr edx, 8 ; 3
004D59C8 |. 8>|and edx, 0FF
004D59CE |. 8>|mov edx, dword ptr ds:[edx*4+660884]
004D59D5 |. 3>|xor dword ptr ds:[ebx+eax*4+18], edx
004D59D9 |. 8>|mov edx, dword ptr ss:[ebp-30]
004D59DC |. C>|shr edx, 8 ; 3
004D59DF |. 8>|and edx, 0FF
004D59E5 |. 8>|mov edx, dword ptr ds:[edx*4+660C84]
004D59EC |. 3>|xor dword ptr ds:[ebx+eax*4+1C], edx
004D59F0 |. E>|jmp short WebCam.004D5A41
004D59F2 |> 8>|mov edx, dword ptr ds:[esi] ; Case C of switch 004D58CA
004D59F4 |. 8>|and edx, 0FF ; 4
004D59FA |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D5A01 |. 3>|xor dword ptr ds:[ebx+eax*4+10], edx
004D5A05 |. 8>|mov edx, dword ptr ds:[esi+4]
004D5A08 |. 8>|and edx, 0FF ; 4
004D5A0E |. 8>|mov edx, dword ptr ds:[edx*4+660484]
004D5A15 |. 3>|xor dword ptr ds:[ebx+eax*4+14], edx
004D5A19 |. 8>|mov edx, dword ptr ds:[esi+8]
004D5A1C |. C>|shr edx, 18 ; 1
004D5A1F |. 8>|mov edx, dword ptr ds:[edx*4+660884]
004D5A26 |. 3>|xor dword ptr ds:[ebx+eax*4+18], edx
004D5A2A |. 8>|mov edx, dword ptr ds:[esi+C]
004D5A2D |. C>|shr edx, 10 ; 2
004D5A30 |. 8>|and edx, 0FF
004D5A36 |. 8>|mov edx, dword ptr ds:[edx*4+660C84]
004D5A3D |. 3>|xor dword ptr ds:[ebx+eax*4+1C], edx
004D5A41 |> 8>|cmp eax, 10 ; Default case of switch 004D58CA
004D5A44 |. 7>|jl short WebCam.004D5A5A
004D5A46 |. 8>|and dword ptr ds:[ebx+eax*4+10], 1F
004D5A4B |. 8>|and dword ptr ds:[ebx+eax*4+14], 1F
004D5A50 |. 8>|and dword ptr ds:[ebx+eax*4+18], 1F
004D5A55 |. 8>|and dword ptr ds:[ebx+eax*4+1C], 1F
004D5A5A |> 8>|add eax, 4
004D5A5D |. 8>|cmp eax, 20
004D5A60 |.^ 0>\jl WebCam.004D5358
004D5A66 |. 5>pop edi
004D5A67 |. 5>pop esi
004D5A68 |. 5>pop ebx
004D5A69 |. 8>mov esp, ebp
004D5A6B |. 5>pop ebp
004D5A6C \. C>ret 4
private int getInt(int s, int x, int p) {
Mapdata map = new Mapdata();
MapdataOther mapOther = new MapdataOther();
int tag = 0;
int k = 1;
int format = format2(x, p) * 4;
for (int j = 0; j < 4; j++) {
switch (s) {
case 1:
tag = tag + map.key_0[format + j] * k;
break;
case 2:
tag = tag + map.key_1[format + j] * k;
break;
case 3:
tag = tag + map.key_2[format + j] * k;
break;
case 4:
tag = tag + map.key_3[format + j] * k;
break;
}
k *= 0x100;
}
return tag;
}
map.key_0[]
map.key_1[]
map.key_2[]
map.key_3[]
这四个map是从程序中找到的一段数据,当做字典用了
public int[] math(String into) {
int[] result = new int[32];////32个运算值
Create create = new Create();
int esi = create.update(create.createKey(into)); <==== 这个esi就是key2
int esi_4 = 0, esi_8 = 0, esi_c = 0;
int eax = 0, edx = 0, ecx = 0, edi;
int ebp_34 = 0, ebp_24 = 0, ebp_30 = 0, ebp_20 = 0, ebp_2c = 0, ebp_1c = 0, ebp_28 = 0, ebp_18 = 0;
for (int i = 0; i < 8; i++) {
///第一段
if ((eax & 4) == 0) {
ecx = esi ^ getInt(4, esi_c, 2) ^ getInt(1, esi_c, 4) ^ getInt(2, esi_c, 1) ^ getInt(3, esi_c, 3)
^ getInt(2, esi_8, 1);
ebp_34 = ecx;
ebp_24 = ecx;
edx = esi_8 ^ getInt(4, ebp_34, 1) ^ getInt(1, ebp_34, 3) ^ getInt(2, ebp_34, 2) ^ getInt(3, ebp_34, 4)
^ getInt(3, esi_8, 3);
ebp_30 = edx;
ebp_20 = edx;
edx = esi_c ^ getInt(4, ebp_30, 4) ^ getInt(1, ebp_30, 3) ^ getInt(2, ebp_30, 2) ^ getInt(3, ebp_30, 1)
^ getInt(4, esi_8, 2);
ebp_2c = edx;
ebp_1c = edx;
edx = esi_4 ^ getInt(4, ebp_2c, 3) ^ getInt(1, ebp_2c, 2) ^ getInt(2, ebp_2c, 4) ^ getInt(3, ebp_2c, 1)
^ getInt(1, esi_8, 4);
ebp_28 = edx;
ebp_18 = edx;
}
if ((eax & 4) == 4) {
ecx = ebp_2c ^ getInt(4, ebp_30, 2) ^ getInt(1, ebp_30, 4) ^ getInt(2, ebp_30, 1) ^ getInt(3, ebp_30, 3)
^ getInt(2, ebp_34, 1);
esi = ecx;
ebp_24 = ecx;
edx = ebp_34 ^ getInt(4, esi, 1) ^ getInt(1, esi, 3) ^ getInt(2, esi, 2) ^ getInt(3, esi, 4)
^ getInt(3, ebp_34, 3);
esi_4 = edx;
ebp_20 = edx;
edx = ebp_30 ^ getInt(4, esi_4, 4) ^ getInt(1, esi_4, 3) ^ getInt(2, esi_4, 2) ^ getInt(3, esi_4, 1)
^ getInt(4, ebp_34, 2);
esi_8 = edx;
ebp_1c = edx;
edx = ebp_28 ^ getInt(4, esi_8, 3) ^ getInt(1, esi_8, 2) ^ getInt(2, esi_8, 4) ^ getInt(3, esi_8, 1)
^ getInt(1, ebp_34, 4);
esi_c = edx;
ebp_18 = edx;
}
// me , one small pig :(
edx = eax & 0xC;
//第二段
if (edx == 0x0 || edx == 0xC) {
result[eax + 0] = getInt(4, ebp_1c, 1) ^ getInt(1, ebp_1c, 2) ^ getInt(2, ebp_20, 4) ^ getInt(3, ebp_20, 3);
result[eax + 1] = getInt(4, ebp_1c, 3) ^ getInt(1, ebp_1c, 4) ^ getInt(2, ebp_20, 2) ^ getInt(3, ebp_20, 1);
result[eax + 2] = getInt(4, ebp_18, 1) ^ getInt(1, ebp_18, 2) ^ getInt(2, ebp_24, 4) ^ getInt(3, ebp_24, 3);
result[eax + 3] = getInt(4, ebp_18, 3) ^ getInt(1, ebp_18, 4) ^ getInt(2, ebp_24, 2) ^ getInt(3, ebp_24, 1);
}
if (edx == 4 || edx == 8) {
result[eax + 0] = getInt(4, ebp_24, 4) ^ getInt(1, ebp_24, 3) ^ getInt(2, ebp_18, 1) ^ getInt(3, ebp_18, 2);
result[eax + 1] = getInt(4, ebp_24, 2) ^ getInt(1, ebp_24, 1) ^ getInt(2, ebp_18, 3) ^ getInt(3, ebp_18, 4);
result[eax + 2] = getInt(4, ebp_20, 4) ^ getInt(1, ebp_20, 3) ^ getInt(2, ebp_1c, 1) ^ getInt(3, ebp_1c, 2);
result[eax + 3] = getInt(4, ebp_20, 2) ^ getInt(1, ebp_20, 1) ^ getInt(2, ebp_1c, 3) ^ getInt(3, ebp_1c, 4);
}
//第三段
if (edx == 0) {
result[eax + 0] ^= getInt(4, ebp_34, 3);
result[eax + 1] ^= getInt(1, ebp_30, 3);
result[eax + 2] ^= getInt(2, ebp_2c, 2);
result[eax + 3] ^= getInt(3, ebp_28, 1);
} else if (edx == 0x4) {
result[eax + 0] ^= getInt(4, esi_8, 1);
result[eax + 1] ^= getInt(1, esi_c, 2);
result[eax + 2] ^= getInt(2, esi, 4);
result[eax + 3] ^= getInt(3, esi_4, 4);
} else if (edx == 0x8) {
result[eax + 0] ^= getInt(4, ebp_2c, 2);
result[eax + 1] ^= getInt(1, ebp_28, 1);
result[eax + 2] ^= getInt(2, ebp_34, 3);
result[eax + 3] ^= getInt(3, ebp_30, 3);
} else if (edx == 0xC) {
result[eax + 0] ^= getInt(4, esi, 4);
result[eax + 1] ^= getInt(1, esi_4, 4);
result[eax + 2] ^= getInt(2, esi_8, 1);
result[eax + 3] ^= getInt(3, esi_c, 2);
}
if (eax >= 0x10) {
for (int k = 0; k < 4; k++) {
result[eax + k] &= 0x1F;
}
}
eax += 4;
}
return result;
}
这个运算过后,就可以得到一个Map[32];
================= WebCam.004D60EC ==C== ===============================
004D60EC /$ 5>push ebx
004D60ED |. 5>push esi
004D60EE |. 5>push edi
004D60EF |. 5>push ebp
004D60F0 |. 8>add esp, -0C
004D60F3 |. 8>mov dword ptr ss:[esp], ecx
004D60F6 |. 8>mov ebp, edx
004D60F8 |. 8>mov ebx, eax
004D60FA |. 8>mov esi, dword ptr ds:[6669D0] ; WebCam.0065FC84
004D6100 |. 8>mov edi, dword ptr ds:[666A84] ; WebCam.0065F484
004D6106 |. 8>lea edx, dword ptr ss:[esp+8]
004D610A |. 8>mov eax, ebp
004D610C |. B>mov ecx, 4
004D6111 |. E>call WebCam.004029DC
004D6116 |. 8>lea edx, dword ptr ss:[esp+4]
004D611A |. 8>mov eax, ebp
004D611C |. 8>add eax, 4
004D611F |. B>mov ecx, 4
004D6124 |. E>call WebCam.004029DC
004D6129 |. 8>mov eax, dword ptr ss:[esp+4]
004D612D |. C>shr eax, 18
004D6130 |. 8>mov edx, dword ptr ss:[esp+4]
004D6134 |. C>shr edx, 8
004D6137 |. 8>and edx, 0FF00
004D613D |. 0>or eax, edx
004D613F |. 8>mov edx, dword ptr ss:[esp+4]
004D6143 |. C>shl edx, 8
004D6146 |. 8>and edx, 0FF0000
004D614C |. 0>or eax, edx
004D614E |. 8>mov edx, dword ptr ss:[esp+4]
004D6152 |. C>shl edx, 18
004D6155 |. 0>or eax, edx ; 试炼码在1-F之间直观
004D6157 |. 8>mov dword ptr ss:[esp+4], eax ; [esp+4]试炼码前8位
004D615B |. 8>mov eax, dword ptr ss:[esp+8]
004D615F |. C>shr eax, 18
004D6162 |. 8>mov edx, dword ptr ss:[esp+8]
004D6166 |. C>shr edx, 8
004D6169 |. 8>and edx, 0FF00
004D616F |. 0>or eax, edx
004D6171 |. 8>mov edx, dword ptr ss:[esp+8]
004D6175 |. C>shl edx, 8
004D6178 |. 8>and edx, 0FF0000
004D617E |. 0>or eax, edx
004D6180 |. 8>mov edx, dword ptr ss:[esp+8]
004D6184 |. C>shl edx, 18
004D6187 |. 0>or eax, edx
004D6189 |. 8>mov dword ptr ss:[esp+8], eax ; [esp+4]试炼码后8位
004D618D |. 8>cmp dword ptr ds:[ebx+90], 0C
004D6194 |. 0>jle WebCam.004D62D6
004D619A |. 8>mov edx, dword ptr ds:[ebx+8C] ; 没进来过?
004D61A0 |. 8>mov eax, dword ptr ds:[ebx+4C]
004D61A3 |. 0>add eax, dword ptr ss:[esp+4]
004D61A7 |. E>call WebCam.004D3DC8
004D61AC |. 8>mov edx, eax
004D61AE |. C>shr edx, 18
004D61B1 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D61B4 |. 8>mov ecx, eax
004D61B6 |. C>shr ecx, 10
004D61B9 |. 8>and ecx, 0FF
004D61BF |. 3>xor edx, dword ptr ds:[edi+ecx*4]
004D61C2 |. 8>mov ecx, eax
004D61C4 |. C>shr ecx, 8
004D61C7 |. 8>and ecx, 0FF
004D61CD |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D61D3 |. 2>sub edx, dword ptr ss:[ebp+ecx*4]
004D61D7 |. 2>and eax, 0FF
004D61DC |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D61E2 |. 0>add edx, dword ptr ds:[ecx+eax*4]
004D61E5 |. 3>xor dword ptr ss:[esp+8], edx
004D61E9 |. 8>mov edx, dword ptr ds:[ebx+88]
004D61EF |. 8>mov eax, dword ptr ds:[ebx+48]
004D61F2 |. 2>sub eax, dword ptr ss:[esp+8]
004D61F6 |. E>call WebCam.004D3DC8
004D61FB |. 8>mov edx, eax
004D61FD |. C>shr edx, 18
004D6200 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6203 |. 8>mov ecx, eax
004D6205 |. C>shr ecx, 10
004D6208 |. 8>and ecx, 0FF
004D620E |. 0>add edx, dword ptr ds:[edi+ecx*4]
004D6211 |. 8>mov ecx, eax
004D6213 |. C>shr ecx, 8
004D6216 |. 8>and ecx, 0FF
004D621C |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6222 |. 3>xor edx, dword ptr ss:[ebp+ecx*4]
004D6226 |. 2>and eax, 0FF
004D622B |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D6231 |. 2>sub edx, dword ptr ds:[ecx+eax*4]
004D6234 |. 3>xor dword ptr ss:[esp+4], edx
004D6238 |. 8>mov edx, dword ptr ds:[ebx+84]
004D623E |. 8>mov eax, dword ptr ds:[ebx+44]
004D6241 |. 3>xor eax, dword ptr ss:[esp+4]
004D6245 |. E>call WebCam.004D3DC8
004D624A |. 8>mov edx, eax
004D624C |. C>shr edx, 18
004D624F |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6252 |. 8>mov ecx, eax
004D6254 |. C>shr ecx, 10
004D6257 |. 8>and ecx, 0FF
004D625D |. 2>sub edx, dword ptr ds:[edi+ecx*4]
004D6260 |. 8>mov ecx, eax
004D6262 |. C>shr ecx, 8
004D6265 |. 8>and ecx, 0FF
004D626B |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6271 |. 0>add edx, dword ptr ss:[ebp+ecx*4]
004D6275 |. 2>and eax, 0FF
004D627A |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D6280 |. 3>xor edx, dword ptr ds:[ecx+eax*4]
004D6283 |. 3>xor dword ptr ss:[esp+8], edx
004D6287 |. 8>mov edx, dword ptr ds:[ebx+80]
004D628D |. 8>mov eax, dword ptr ds:[ebx+40]
004D6290 |. 0>add eax, dword ptr ss:[esp+8]
004D6294 |. E>call WebCam.004D3DC8
004D6299 |. 8>mov edx, eax
004D629B |. C>shr edx, 18
004D629E |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D62A1 |. 8>mov ecx, eax
004D62A3 |. C>shr ecx, 10
004D62A6 |. 8>and ecx, 0FF
004D62AC |. 3>xor edx, dword ptr ds:[edi+ecx*4]
004D62AF |. 8>mov ecx, eax
004D62B1 |. C>shr ecx, 8
004D62B4 |. 8>and ecx, 0FF
004D62BA |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D62C0 |. 2>sub edx, dword ptr ss:[ebp+ecx*4]
004D62C4 |. 2>and eax, 0FF
004D62C9 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D62CF |. 0>add edx, dword ptr ds:[ecx+eax*4]
004D62D2 |. 3>xor dword ptr ss:[esp+4], edx
004D62D6 |> 8>mov edx, dword ptr ds:[ebx+7C]
004D62D9 |. 8>mov eax, dword ptr ds:[ebx+3C]
004D62DC |. 2>sub eax, dword ptr ss:[esp+4] ; user2
004D62E0 |. E>call WebCam.004D3DC8
004D62E5 |. 8>mov edx, eax
004D62E7 |. C>shr edx, 18 ; 1
004D62EA |. 8>mov edx, dword ptr ds:[esi+edx*4] ; 7
004D62ED |. 8>mov ecx, eax
004D62EF |. C>shr ecx, 10 ; 2
004D62F2 |. 8>and ecx, 0FF
004D62F8 |. 0>add edx, dword ptr ds:[edi+ecx*4] ; 5
004D62FB |. 8>mov ecx, eax
004D62FD |. C>shr ecx, 8 ; 3
004D6300 |. 8>and ecx, 0FF
004D6306 |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D630C |. 3>xor edx, dword ptr ss:[ebp+ecx*4] ; 6
004D6310 |. 2>and eax, 0FF ; 4
004D6315 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D631B |. 2>sub edx, dword ptr ds:[ecx+eax*4] ; 8
004D631E |. 3>xor dword ptr ss:[esp+8], edx
004D6322 |. 8>mov edx, dword ptr ds:[ebx+78]
004D6325 |. 8>mov eax, dword ptr ds:[ebx+38]
004D6328 |. 3>xor eax, dword ptr ss:[esp+8] ; user1
004D632C |. E>call WebCam.004D3DC8
004D6331 |. 8>mov edx, eax
004D6333 |. C>shr edx, 18
004D6336 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6339 |. 8>mov ecx, eax
004D633B |. C>shr ecx, 10
004D633E |. 8>and ecx, 0FF
004D6344 |. 2>sub edx, dword ptr ds:[edi+ecx*4]
004D6347 |. 8>mov ecx, eax
004D6349 |. C>shr ecx, 8
004D634C |. 8>and ecx, 0FF
004D6352 |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6358 |. 0>add edx, dword ptr ss:[ebp+ecx*4]
004D635C |. 2>and eax, 0FF
004D6361 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D6367 |. 3>xor edx, dword ptr ds:[ecx+eax*4]
004D636A |. 3>xor dword ptr ss:[esp+4], edx
004D636E |. 8>mov edx, dword ptr ds:[ebx+74]
004D6371 |. 8>mov eax, dword ptr ds:[ebx+34]
004D6374 |. 0>add eax, dword ptr ss:[esp+4]
004D6378 |. E>call WebCam.004D3DC8
004D637D |. 8>mov edx, eax
004D637F |. C>shr edx, 18
004D6382 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6385 |. 8>mov ecx, eax
004D6387 |. C>shr ecx, 10
004D638A |. 8>and ecx, 0FF
004D6390 |. 3>xor edx, dword ptr ds:[edi+ecx*4]
004D6393 |. 8>mov ecx, eax
004D6395 |. C>shr ecx, 8
004D6398 |. 8>and ecx, 0FF
004D639E |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D63A4 |. 2>sub edx, dword ptr ss:[ebp+ecx*4]
004D63A8 |. 2>and eax, 0FF
004D63AD |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D63B3 |. 0>add edx, dword ptr ds:[ecx+eax*4]
004D63B6 |. 3>xor dword ptr ss:[esp+8], edx
004D63BA |. 8>mov edx, dword ptr ds:[ebx+70]
004D63BD |. 8>mov eax, dword ptr ds:[ebx+30]
004D63C0 |. 2>sub eax, dword ptr ss:[esp+8]
004D63C4 |. E>call WebCam.004D3DC8
004D63C9 |. 8>mov edx, eax
004D63CB |. C>shr edx, 18
004D63CE |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D63D1 |. 8>mov ecx, eax
004D63D3 |. C>shr ecx, 10
004D63D6 |. 8>and ecx, 0FF
004D63DC |. 0>add edx, dword ptr ds:[edi+ecx*4]
004D63DF |. 8>mov ecx, eax
004D63E1 |. C>shr ecx, 8
004D63E4 |. 8>and ecx, 0FF
004D63EA |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D63F0 |. 3>xor edx, dword ptr ss:[ebp+ecx*4]
004D63F4 |. 2>and eax, 0FF
004D63F9 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D63FF |. 2>sub edx, dword ptr ds:[ecx+eax*4]
004D6402 |. 3>xor dword ptr ss:[esp+4], edx
004D6406 |. 8>mov edx, dword ptr ds:[ebx+6C]
004D6409 |. 8>mov eax, dword ptr ds:[ebx+2C]
004D640C |. 3>xor eax, dword ptr ss:[esp+4]
004D6410 |. E>call WebCam.004D3DC8
004D6415 |. 8>mov edx, eax
004D6417 |. C>shr edx, 18
004D641A |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D641D |. 8>mov ecx, eax
004D641F |. C>shr ecx, 10
004D6422 |. 8>and ecx, 0FF
004D6428 |. 2>sub edx, dword ptr ds:[edi+ecx*4]
004D642B |. 8>mov ecx, eax
004D642D |. C>shr ecx, 8
004D6430 |. 8>and ecx, 0FF
004D6436 |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D643C |. 0>add edx, dword ptr ss:[ebp+ecx*4]
004D6440 |. 2>and eax, 0FF
004D6445 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D644B |. 3>xor edx, dword ptr ds:[ecx+eax*4]
004D644E |. 3>xor dword ptr ss:[esp+8], edx
004D6452 |. 8>mov edx, dword ptr ds:[ebx+68]
004D6455 |. 8>mov eax, dword ptr ds:[ebx+28]
004D6458 |. 0>add eax, dword ptr ss:[esp+8]
004D645C |. E>call WebCam.004D3DC8
004D6461 |. 8>mov edx, eax
004D6463 |. C>shr edx, 18
004D6466 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6469 |. 8>mov ecx, eax
004D646B |. C>shr ecx, 10
004D646E |. 8>and ecx, 0FF
004D6474 |. 3>xor edx, dword ptr ds:[edi+ecx*4]
004D6477 |. 8>mov ecx, eax
004D6479 |. C>shr ecx, 8
004D647C |. 8>and ecx, 0FF
004D6482 |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6488 |. 2>sub edx, dword ptr ss:[ebp+ecx*4]
004D648C |. 2>and eax, 0FF
004D6491 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D6497 |. 0>add edx, dword ptr ds:[ecx+eax*4]
004D649A |. 3>xor dword ptr ss:[esp+4], edx
004D649E |. 8>mov edx, dword ptr ds:[ebx+64]
004D64A1 |. 8>mov eax, dword ptr ds:[ebx+24]
004D64A4 |. 2>sub eax, dword ptr ss:[esp+4]
004D64A8 |. E>call WebCam.004D3DC8
004D64AD |. 8>mov edx, eax
004D64AF |. C>shr edx, 18
004D64B2 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D64B5 |. 8>mov ecx, eax
004D64B7 |. C>shr ecx, 10
004D64BA |. 8>and ecx, 0FF
004D64C0 |. 0>add edx, dword ptr ds:[edi+ecx*4]
004D64C3 |. 8>mov ecx, eax
004D64C5 |. C>shr ecx, 8
004D64C8 |. 8>and ecx, 0FF
004D64CE |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D64D4 |. 3>xor edx, dword ptr ss:[ebp+ecx*4]
004D64D8 |. 2>and eax, 0FF
004D64DD |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D64E3 |. 2>sub edx, dword ptr ds:[ecx+eax*4]
004D64E6 |. 3>xor dword ptr ss:[esp+8], edx
004D64EA |. 8>mov edx, dword ptr ds:[ebx+60]
004D64ED |. 8>mov eax, dword ptr ds:[ebx+20]
004D64F0 |. 3>xor eax, dword ptr ss:[esp+8]
004D64F4 |. E>call WebCam.004D3DC8
004D64F9 |. 8>mov edx, eax
004D64FB |. C>shr edx, 18
004D64FE |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6501 |. 8>mov ecx, eax
004D6503 |. C>shr ecx, 10
004D6506 |. 8>and ecx, 0FF
004D650C |. 2>sub edx, dword ptr ds:[edi+ecx*4]
004D650F |. 8>mov ecx, eax
004D6511 |. C>shr ecx, 8
004D6514 |. 8>and ecx, 0FF
004D651A |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6520 |. 0>add edx, dword ptr ss:[ebp+ecx*4]
004D6524 |. 2>and eax, 0FF
004D6529 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D652F |. 3>xor edx, dword ptr ds:[ecx+eax*4]
004D6532 |. 3>xor dword ptr ss:[esp+4], edx
004D6536 |. 8>mov edx, dword ptr ds:[ebx+5C]
004D6539 |. 8>mov eax, dword ptr ds:[ebx+1C]
004D653C |. 0>add eax, dword ptr ss:[esp+4]
004D6540 |. E>call WebCam.004D3DC8
004D6545 |. 8>mov edx, eax
004D6547 |. C>shr edx, 18
004D654A |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D654D |. 8>mov ecx, eax
004D654F |. C>shr ecx, 10
004D6552 |. 8>and ecx, 0FF
004D6558 |. 3>xor edx, dword ptr ds:[edi+ecx*4]
004D655B |. 8>mov ecx, eax
004D655D |. C>shr ecx, 8
004D6560 |. 8>and ecx, 0FF
004D6566 |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D656C |. 2>sub edx, dword ptr ss:[ebp+ecx*4]
004D6570 |. 2>and eax, 0FF
004D6575 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D657B |. 0>add edx, dword ptr ds:[ecx+eax*4]
004D657E |. 3>xor dword ptr ss:[esp+8], edx
004D6582 |. 8>mov edx, dword ptr ds:[ebx+58]
004D6585 |. 8>mov eax, dword ptr ds:[ebx+18]
004D6588 |. 2>sub eax, dword ptr ss:[esp+8]
004D658C |. E>call WebCam.004D3DC8
004D6591 |. 8>mov edx, eax
004D6593 |. C>shr edx, 18
004D6596 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6599 |. 8>mov ecx, eax
004D659B |. C>shr ecx, 10
004D659E |. 8>and ecx, 0FF
004D65A4 |. 0>add edx, dword ptr ds:[edi+ecx*4]
004D65A7 |. 8>mov ecx, eax
004D65A9 |. C>shr ecx, 8
004D65AC |. 8>and ecx, 0FF
004D65B2 |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D65B8 |. 3>xor edx, dword ptr ss:[ebp+ecx*4]
004D65BC |. 2>and eax, 0FF
004D65C1 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D65C7 |. 2>sub edx, dword ptr ds:[ecx+eax*4]
004D65CA |. 3>xor dword ptr ss:[esp+4], edx
004D65CE |. 8>mov edx, dword ptr ds:[ebx+54]
004D65D1 |. 8>mov eax, dword ptr ds:[ebx+14]
004D65D4 |. 3>xor eax, dword ptr ss:[esp+4]
004D65D8 |. E>call WebCam.004D3DC8
004D65DD |. 8>mov edx, eax
004D65DF |. C>shr edx, 18
004D65E2 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D65E5 |. 8>mov ecx, eax
004D65E7 |. C>shr ecx, 10
004D65EA |. 8>and ecx, 0FF
004D65F0 |. 2>sub edx, dword ptr ds:[edi+ecx*4]
004D65F3 |. 8>mov ecx, eax
004D65F5 |. C>shr ecx, 8
004D65F8 |. 8>and ecx, 0FF
004D65FE |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6604 |. 0>add edx, dword ptr ss:[ebp+ecx*4]
004D6608 |. 2>and eax, 0FF
004D660D |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D6613 |. 3>xor edx, dword ptr ds:[ecx+eax*4]
004D6616 |. 3>xor dword ptr ss:[esp+8], edx
004D661A |. 8>mov edx, dword ptr ds:[ebx+50]
004D661D |. 8>mov eax, dword ptr ds:[ebx+10]
004D6620 |. 0>add eax, dword ptr ss:[esp+8]
004D6624 |. E>call WebCam.004D3DC8
004D6629 |. 8>mov edx, eax
004D662B |. C>shr edx, 18
004D662E |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6631 |. 8>mov ecx, eax
004D6633 |. C>shr ecx, 10
004D6636 |. 8>and ecx, 0FF
004D663C |. 3>xor edx, dword ptr ds:[edi+ecx*4]
004D663F |. 8>mov ecx, eax
004D6641 |. C>shr ecx, 8
004D6644 |. 8>and ecx, 0FF
004D664A |. 8>mov ebx, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6650 |. 2>sub edx, dword ptr ds:[ebx+ecx*4]
004D6653 |. 2>and eax, 0FF
004D6658 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D665E |. 0>add edx, dword ptr ds:[ecx+eax*4]
004D6661 |. 3>xor dword ptr ss:[esp+4], edx ; 运算完毕
004D6665 |. 8>mov eax, dword ptr ss:[esp+4]
004D6669 |. C>shr eax, 18
004D666C |. 8>mov edx, dword ptr ss:[esp+4]
004D6670 |. C>shr edx, 8
004D6673 |. 8>and edx, 0FF00
004D6679 |. 0>or eax, edx
004D667B |. 8>mov edx, dword ptr ss:[esp+4]
004D667F |. C>shl edx, 8
004D6682 |. 8>and edx, 0FF0000
004D6688 |. 0>or eax, edx
004D668A |. 8>mov edx, dword ptr ss:[esp+4]
004D668E |. C>shl edx, 18
004D6691 |. 0>or eax, edx
004D6693 |. 8>mov dword ptr ss:[esp+4], eax
004D6697 |. 8>mov eax, dword ptr ss:[esp+8]
004D669B |. C>shr eax, 18
004D669E |. 8>mov edx, dword ptr ss:[esp+8]
004D66A2 |. C>shr edx, 8
004D66A5 |. 8>and edx, 0FF00
004D66AB |. 0>or eax, edx
004D66AD |. 8>mov edx, dword ptr ss:[esp+8]
004D66B1 |. C>shl edx, 8
004D66B4 |. 8>and edx, 0FF0000
004D66BA |. 0>or eax, edx
004D66BC |. 8>mov edx, dword ptr ss:[esp+8]
004D66C0 |. C>shl edx, 18
004D66C3 |. 0>or eax, edx
004D66C5 |. 8>mov dword ptr ss:[esp+8], eax
004D66C9 |. 8>mov edx, dword ptr ss:[esp] ; 翻转一下
004D66CC |. 8>lea eax, dword ptr ss:[esp+4]
004D66D0 |. B>mov ecx, 4
004D66D5 |. E>call WebCam.004029DC
004D66DA |. 8>mov edx, dword ptr ss:[esp]
004D66DD |. 8>add edx, 4
004D66E0 |. 8>lea eax, dword ptr ss:[esp+8]
004D66E4 |. B>mov ecx, 4
004D66E9 |. E>call WebCam.004029DC
004D66EE |. 8>add esp, 0C
004D66F1 |. 5>pop ebp
004D66F2 |. 5>pop edi
004D66F3 |. 5>pop esi
004D66F4 |. 5>pop ebx
004D66F5 \. C>ret
static private int getInt(int s, int x, int p) {
int tag = 0;
int k = 1;
int format = format2(x, p) * 4;
for (int j = 0; j < 4; j++) {
switch (s) {
case 5:
tag = tag + mapOther.key_edi[format + j] * k;
break;
case 6:
tag = tag + mapOther.key_ebp[format + j] * k;
break;
case 7:
tag = tag + mapOther.key_esi[format + j] * k;
break;
case 8:
tag = tag + mapOther.key_ecx[format + j] * k;
break;
}
k *= 0x100;
}
return tag;
}
mapOther.key_edi[]
mapOther.key_ebp[]
mapOther.key_esi[]
mapOther.key_ecx[]
这四个map是从程序中找到的一段数据,当做字典用了
static public int math_end(int[] into, int user1, int user2) { <===== 注册码的两段,每段8位,
int[] result = into; <===== 这就是先前得到的 Map[32] ;
int edx, eax;
int k = 0;
for (int i = 0; i < 4; i++) {
eax = rol(result[11 - k] - user2, result[27 - k]);
user1 ^= ((getInt(7, eax, 1) + getInt(5, eax, 2)) ^ getInt(6, eax, 3)) - getInt(8, eax, 4);
eax = rol(result[10 - k] ^ user1, result[26 - k]);
user2 ^= ((getInt(7, eax, 1) - getInt(5, eax, 2)) + getInt(6, eax, 3)) ^ getInt(8, eax, 4);
eax = rol(result[9 - k] + user2, result[25 - k]);
user1 ^= ((getInt(7, eax, 1) ^ getInt(5, eax, 2)) - getInt(6, eax, 3)) + getInt(8, eax, 4);
k += 3;
int tmp;
tmp = user1;
user1 = user2;
user2 = tmp;
}
return user2; <===== 我们将得到一个 keyV,如果keyV = key1 则认证通过 ,key1 是最前面用户名得到的
}
也就是说 如果 key1=math_end(Map[32],ser1,ser2) 则认证通过,key1和Map[32]是已经知道的,现在要获得ser1和ser2
所以我无法得到注册码,有兴趣大家帮我看看如何算出注册码吧,密码学? 爆破就不谈了
附件:maps.rar ===============================================================
结束了,到这里终于意识到有些事真的是无法挽回的,我需要重新开始新的生活
她的离我而去
让我不知该如何是好
原本像我这种菜虫
是无法做到看完这段汇编代码的
可是现在我却麻木了
把汇编翻了一遍
看到了算法却没有得出结果
如果你只是想知道结果
就不要再往下看了
Active WebCam
http://www.pysoft.com/
Filesize: 10.8MB
Active WebCam captures images up to 30 frames per second from any
video device including USB, analog cameras, TV-boards, camcorders,
and from network IP cameras.
查看程序about时就可以看到有这几种License可以选
006051EC |. />ja short WebCam.00605256
006051EE |. |>jmp near dword ptr ds:[eax*4+6051F5]
006051F5 |. |>dd WebCam.00605256 ; Switch table used at 006051EE
006051F9 |. |>dd WebCam.0060520D
006051FD |. |>dd WebCam.0060521C
00605201 |. |>dd WebCam.0060522B
00605205 |. |>dd WebCam.0060523A
00605209 |. |>dd WebCam.00605249
0060520D |> |>lea eax, dword ptr ss:[ebp-4] ; Case 1 of switch 006051E9
00605210 |. |>mov edx, WebCam.0060536C ; ASCII " [REGULAR Version]"
00605215 |. |>call WebCam.00403F4C
0060521A |. |>jmp short WebCam.00605256
0060521C |> |>lea eax, dword ptr ss:[ebp-4] ; Case 2 of switch 006051E9
0060521F |. |>mov edx, WebCam.00605388 ; ASCII " [PRO Version]"
00605224 |. |>call WebCam.00403F4C
00605229 |. |>jmp short WebCam.00605256
0060522B |> |>lea eax, dword ptr ss:[ebp-4] ; Case 3 of switch 006051E9
0060522E |. |>mov edx, WebCam.006053A0 ; ASCII " [Deluxe Version]"
00605233 |. |>call WebCam.00403F4C
00605238 |. |>jmp short WebCam.00605256
0060523A |> |>lea eax, dword ptr ss:[ebp-4] ; Case 4 of switch 006051E9
0060523D |. |>mov edx, WebCam.006053BC ; ASCII " [Site License]"
00605242 |. |>call WebCam.00403F4C
00605247 |. |>jmp short WebCam.00605256
00605249 |> |>lea eax, dword ptr ss:[ebp-4] ; Case 5 of switch 006051E9
0060524C |. |>mov edx, WebCam.006053D4 ; ASCII " [World-Wide License]"
00605251 |. |>call WebCam.00403F4C
00605256 |> \>mov edx, dword ptr ds:[6666B8]; WebCam.0065D218; Default case
0060525C |. >mov edx, dword ptr ds:[edx]
==== 检测的地方 ====================================
00586BB8 . 8>cmp eax, 10 ; length - 16位
00586BBB . 0>jnz WebCam.00586DFB
00586BC1 . B>mov ebx, 1
00586BC6 . 8>lea esi, dword ptr ss:[ebp-19]
00586BC9 > 8>lea eax, dword ptr ss:[ebp-1B8]
00586BCF . 8>mov edi, ebx
00586BD1 . 0>add edi, edi
00586BD3 . 8>mov edx, dword ptr ss:[ebp-C]
00586BD6 . 8>mov dl, byte ptr ds:[edx+edi-2]
00586BDA . 8>mov byte ptr ds:[eax+1], dl
00586BDD . C>mov byte ptr ds:[eax], 1
00586BE0 . 8>lea edx, dword ptr ss:[ebp-1B8]
00586BE6 . 8>lea eax, dword ptr ss:[ebp-1BC]
00586BEC . E>call WebCam.00402CDC
00586BF1 . 8>lea eax, dword ptr ss:[ebp-1C0]
00586BF7 . 8>mov edx, dword ptr ss:[ebp-C]
00586BFA . 8>mov dl, byte ptr ds:[edx+edi-1]
00586BFE . 8>mov byte ptr ds:[eax+1], dl
00586C01 . C>mov byte ptr ds:[eax], 1
00586C04 . 8>lea edx, dword ptr ss:[ebp-1C0]
00586C0A . 8>lea eax, dword ptr ss:[ebp-1BC]
00586C10 . B>mov cl, 2
00586C12 . E>call WebCam.00402CAC
00586C17 . 8>lea edx, dword ptr ss:[ebp-1BC]
00586C1D . 8>lea eax, dword ptr ss:[ebp-120]
00586C23 . E>call WebCam.00402CDC
00586C28 . 8>lea eax, dword ptr ss:[ebp-120]
00586C2E . E>call WebCam.00426A78
00586C33 . 8>mov byte ptr ds:[esi], al
00586C35 . 4>inc ebx
00586C36 . 4>inc esi
00586C37 . 8>cmp ebx, 9
00586C3A .^ 7>jnz short WebCam.00586BC9
00586C3C . 8>mov eax, dword ptr ss:[ebp-10]
00586C3F . E>call WebCam.00404130
00586C44 . 5>push eax
00586C45 . 8>lea eax, dword ptr ss:[ebp-10]
00586C48 . E>call WebCam.00404300
00586C4D . 5>pop edx
00586C4E . E>call WebCam.00428AF8 ==A== ; 对用户名运算 ==A==
00586C53 . 8>mov ebx, eax ;
00586C55 . B>mov eax, WebCam.00586E30 ; ASCII "Active WebCam"
00586C5A . E>call WebCam.004042F4
00586C5F . B>mov edx, 0D
00586C64 . E>call WebCam.00428AF8 ==A=== ; 对License类型运算
00586C69 . 8>mov dword ptr ss:[ebp-20], eax ;
00586C6C . 6>push 0 ; /Arg1 = 00000000
00586C6E . 8>lea edx, dword ptr ss:[ebp-20] ; |
00586C71 . 8>lea eax, dword ptr ss:[ebp-1B4] ; |
00586C77 . B>mov ecx, 4 ; |不同的License,Map[]不同
00586C7C . E>call WebCam.004D5208 ==B=== ; \WebCam.004D5208 ==B===
00586C81 . 8>lea ecx, dword ptr ss:[ebp-8]
00586C84 . 8>lea edx, dword ptr ss:[ebp-19]
00586C87 . 8>lea eax, dword ptr ss:[ebp-1B4]
00586C8D . E>call WebCam.004D60EC ==C=== ; [WebCam.004D60EC]==C===
00586C92 . 3>cmp ebx, dword ptr ss:[ebp-8] ; 比对是否是有效值
00586C95 . 7>jnz short WebCam.00586CAB ; 以下都同上了
00586C97 . C>mov byte ptr ss:[ebp-11], 1
00586C9B . A>mov eax, dword ptr ds:[666214]
00586CA0 . C>mov dword ptr ds:[eax], 1
00586CA6 . E>jmp WebCam.00586DFB
00586CAB > B>mov eax, WebCam.00586E48 ; ASCII "Active WebCam Pro"
00586CB0 . E>call WebCam.004042F4
00586CB5 . B>mov edx, 11
00586CBA . E>call WebCam.00428AF8 ;
00586CBF . 8>mov dword ptr ss:[ebp-20], eax
00586CC2 . 6>push 0 ; /Arg1 = 00000000
00586CC4 . 8>lea edx, dword ptr ss:[ebp-20] ; |
00586CC7 . 8>lea eax, dword ptr ss:[ebp-1B4] ; |
00586CCD . B>mov ecx, 4 ; |
00586CD2 . E>call WebCam.004D5208 ; \WebCam.004D5208
00586CD7 . 8>lea ecx, dword ptr ss:[ebp-8]
00586CDA . 8>lea edx, dword ptr ss:[ebp-19]
00586CDD . 8>lea eax, dword ptr ss:[ebp-1B4]
00586CE3 . E>call WebCam.004D60EC
00586CE8 . 3>cmp ebx, dword ptr ss:[ebp-8]
00586CEB . 7>jnz short WebCam.00586D01
00586CED . C>mov byte ptr ss:[ebp-11], 1
00586CF1 . A>mov eax, dword ptr ds:[666214]
00586CF6 . C>mov dword ptr ds:[eax], 2
00586CFC . E>jmp WebCam.00586DFB
00586D01 > B>mov eax, WebCam.00586E64 ; ASCII "Active WebCam Dx"
00586D06 . E>call WebCam.004042F4
00586D0B . B>mov edx, 10
00586D10 . E>call WebCam.00428AF8
00586D15 . 8>mov dword ptr ss:[ebp-20], eax
00586D18 . 6>push 0 ; /Arg1 = 00000000
00586D1A . 8>lea edx, dword ptr ss:[ebp-20] ; |
00586D1D . 8>lea eax, dword ptr ss:[ebp-1B4] ; |
00586D23 . B>mov ecx, 4 ; |
00586D28 . E>call WebCam.004D5208 ; \WebCam.004D5208
00586D2D . 8>lea ecx, dword ptr ss:[ebp-8]
00586D30 . 8>lea edx, dword ptr ss:[ebp-19]
00586D33 . 8>lea eax, dword ptr ss:[ebp-1B4]
00586D39 . E>call WebCam.004D60EC
00586D3E . 3>cmp ebx, dword ptr ss:[ebp-8]
00586D41 . 7>jnz short WebCam.00586D57
00586D43 . C>mov byte ptr ss:[ebp-11], 1
00586D47 . A>mov eax, dword ptr ds:[666214]
00586D4C . C>mov dword ptr ds:[eax], 3
00586D52 . E>jmp WebCam.00586DFB
00586D57 > B>mov eax, WebCam.00586E80 ; ASCII "Active WebCam St"
00586D5C . E>call WebCam.004042F4
00586D61 . B>mov edx, 10
00586D66 . E>call WebCam.00428AF8
00586D6B . 8>mov dword ptr ss:[ebp-20], eax
00586D6E . 6>push 0 ; /Arg1 = 00000000
00586D70 . 8>lea edx, dword ptr ss:[ebp-20] ; |
00586D73 . 8>lea eax, dword ptr ss:[ebp-1B4] ; |
00586D79 . B>mov ecx, 4 ; |
00586D7E . E>call WebCam.004D5208 ; \WebCam.004D5208
00586D83 . 8>lea ecx, dword ptr ss:[ebp-8]
00586D86 . 8>lea edx, dword ptr ss:[ebp-19]
00586D89 . 8>lea eax, dword ptr ss:[ebp-1B4]
00586D8F . E>call WebCam.004D60EC
00586D94 . 8>mov ebx, dword ptr ss:[ebp-8]
00586D97 . 7>jnz short WebCam.00586D99
00586D99 > C>mov byte ptr ss:[ebp-11], 1
00586D9D . A>mov eax, dword ptr ds:[666214]
00586DA2 . C>mov dword ptr ds:[eax], 4
00586DA8 . E>jmp short WebCam.00586DFB
00586DAA . B>mov eax, WebCam.00586E9C ; ASCII "Active WebCam Wr"
00586DAF . E>call WebCam.004042F4
00586DB4 . B>mov edx, 10
00586DB9 . E>call WebCam.00428AF8
00586DBE . 8>mov dword ptr ss:[ebp-20], eax
00586DC1 . 6>push 0 ; /Arg1 = 00000000
00586DC3 . 8>lea edx, dword ptr ss:[ebp-20] ; |
00586DC6 . 8>lea eax, dword ptr ss:[ebp-1B4] ; |
00586DCC . B>mov ecx, 4 ; |
00586DD1 . E>call WebCam.004D5208 ; \WebCam.004D5208
00586DD6 . 8>lea ecx, dword ptr ss:[ebp-8]
00586DD9 . 8>lea edx, dword ptr ss:[ebp-19]
00586DDC . 8>lea eax, dword ptr ss:[ebp-1B4]
00586DE2 . E>call WebCam.004D60EC
00586DE7 . 3>cmp ebx, dword ptr ss:[ebp-8]
00586DEA . 7>jnz short WebCam.00586DFB
00586DEC . C>mov byte ptr ss:[ebp-11], 1
00586DF0 . A>mov eax, dword ptr ds:[666214]
00586DF5 . C>mov dword ptr ds:[eax], 5
00586DFB > 3>xor eax, eax
00586DFD . 5>pop edx
00586DFE . 5>pop ecx
00586DFF . 5>pop ecx
00586E00 . 6>mov dword ptr fs:[eax], edx
00586E03 . 6>push WebCam.00586E1D
00586E08 > 8>lea eax, dword ptr ss:[ebp-10]
00586E0B . B>mov edx, 2
00586E10 . E>call WebCam.00403ED8
00586E15 . C>ret
****************************************************************************
现在看看都有什么
================= WebCam.00428AF8 ==A== ==============================
00428AF8 /$ 5>push ebp
00428AF9 |. 8>mov ebp, esp
00428AFB |. 8>add esp, -1C
00428AFE |. 8>mov dword ptr ss:[ebp-8], edx
00428B01 |. 8>mov dword ptr ss:[ebp-4], eax
00428B04 |. C>mov dword ptr ss:[ebp-18], -1
00428B0B |. 8>mov eax, dword ptr ss:[ebp-4]
00428B0E |. 8>mov dword ptr ss:[ebp-10], eax
00428B11 |. 8>mov eax, dword ptr ss:[ebp-8]
00428B14 |. 8>test eax, eax
00428B16 |. 7>jle short WebCam.00428B55
00428B18 |. 8>mov dword ptr ss:[ebp-1C], eax
00428B1B |. C>mov dword ptr ss:[ebp-14], 1
00428B22 |> 8>/mov eax, dword ptr ss:[ebp-10]
00428B25 |. 8>|mov edx, dword ptr ss:[ebp-14]
00428B28 |. 0>|movzx eax, byte ptr ds:[eax+edx-1]
00428B2D |. 3>|xor eax, dword ptr ss:[ebp-18]
00428B30 |. 2>|and eax, 0FF
00428B35 |. 8>|mov eax, dword ptr ds:[eax*4+65C>
00428B3C |. 8>|mov edx, dword ptr ss:[ebp-18]
00428B3F |. C>|shr edx, 8
00428B42 |. 8>|and edx, 0FFFFFF
00428B48 |. 3>|xor eax, edx
00428B4A |. 8>|mov dword ptr ss:[ebp-18], eax
00428B4D |. F>|inc dword ptr ss:[ebp-14]
00428B50 |. F>|dec dword ptr ss:[ebp-1C]
00428B53 |.^ 7>\jnz short WebCam.00428B22
00428B55 |> 8>mov eax, dword ptr ss:[ebp-18]
00428B58 |. 8>xor eax, FFFFFFFF
00428B5B |. 8>mov dword ptr ss:[ebp-C], eax
00428B5E |. 8>mov eax, dword ptr ss:[ebp-C]
00428B61 |. 8>mov esp, ebp
00428B63 |. 5>pop ebp
00428B64 \. C>ret
public int createKey(String s) {
char[] cs = s.toCharArray();
int hs1;
int hs = 0xFFFFFFFF;
Mapdata map = new Mapdata();
for (int i = 0; i < cs.length; i++) {
int tag = 0;
int k = 1;
hs1 = ((cs[i] ^ hs) & 0xFF) * 4;
for (int j = 0; j < 4; j++) {
tag = tag + map.key[hs1 + j] * k;
k *= 0x100;
}
hs = (format(hs) & 0xFFFFFF) ^ tag;
}
hs = hs ^ 0xFFFFFFFF;
return hs;
}
map.key[] 是从程序中找到的一段数据,当做字典用了
输入"HUNTER" 得到key1 = 0xE34B2FBA
输入"Active WebCam" 得到一个要进一步处理的key2 0x6BEA18E3
================= WebCam.004D5208 ==B== ==============================
004D5208 /$ 5>push ebp
004D5209 |. 8>mov ebp, esp
004D520B |. 8>add esp, -34
004D520E |. 5>push ebx
004D520F |. 5>push esi
004D5210 |. 5>push edi
004D5211 |. 8>mov edi, ecx
004D5213 |. 8>mov dword ptr ss:[ebp-4], edx
004D5216 |. 8>mov ebx, eax
004D5218 |. 8>lea esi, dword ptr ss:[ebp-14]
004D521B |. 8>test edi, edi
004D521D |. 7>jle short WebCam.004D5224
004D521F |. 8>cmp edi, 10
004D5222 |. 7>jle short WebCam.004D5237
004D5224 |> 3>xor ecx, ecx
004D5226 |. B>mov dl, 1
004D5228 |. A>mov eax, dword ptr ds:[4093FC]
004D522D |. E>call WebCam.0040D970
004D5232 |. E>call WebCam.0040390C
004D5237 |> 8>cmp dword ptr ss:[ebp+8], 0
004D523B |. 7>jnz short WebCam.004D525C
004D523D |. 8>mov eax, ebx
004D523F |. 3>xor ecx, ecx
004D5241 |. B>mov edx, 8
004D5246 |. E>call WebCam.00402E1C
004D524B |. 8>lea eax, dword ptr ds:[ebx+8]
004D524E |. 3>xor ecx, ecx
004D5250 |. B>mov edx, 8
004D5255 |. E>call WebCam.00402E1C
004D525A |. E>jmp short WebCam.004D527B
004D525C |> 8>mov edx, ebx
004D525E |. 8>mov eax, dword ptr ss:[ebp+8]
004D5261 |. B>mov ecx, 8
004D5266 |. E>call WebCam.004029DC
004D526B |. 8>lea edx, dword ptr ds:[ebx+8]
004D526E |. 8>mov eax, dword ptr ss:[ebp+8]
004D5271 |. B>mov ecx, 8
004D5276 |. E>call WebCam.004029DC
004D527B |> 8>cmp edi, 0A
004D527E |. 7>jg short WebCam.004D528C
004D5280 |. C>mov dword ptr ds:[ebx+90], 0C
004D528A |. E>jmp short WebCam.004D5296
004D528C |> C>mov dword ptr ds:[ebx+90], 10
004D5296 |> 8>mov eax, esi
004D5298 |. 3>xor ecx, ecx
004D529A |. B>mov edx, 10
004D529F |. E>call WebCam.00402E1C
004D52A4 |. 8>mov edx, esi
004D52A6 |. 8>mov eax, dword ptr ss:[ebp-4]
004D52A9 |. 8>mov ecx, edi
004D52AB |. E>call WebCam.004029DC
004D52B0 |. 8>mov eax, dword ptr ds:[esi] ; 开始 加载通过License类型获得的 key2
004D52B2 |. 8>mov edx, eax
004D52B4 |. C>shr edx, 18
004D52B7 |. 8>mov ecx, eax
004D52B9 |. C>shr ecx, 8
004D52BC |. 8>and ecx, 0FF00
004D52C2 |. 0>or edx, ecx
004D52C4 |. 8>mov ecx, eax
004D52C6 |. C>shl ecx, 8
004D52C9 |. 8>and ecx, 0FF0000
004D52CF |. 0>or edx, ecx
004D52D1 |. C>shl eax, 18
004D52D4 |. 0>or edx, eax
004D52D6 |. 8>mov dword ptr ds:[esi], edx ; 倒序 6BEA18E3 -> E318EA6B
004D52D8 |. 8>mov eax, dword ptr ds:[esi+4] ; 后面相同,这次均为00000000
004D52DB |. 8>mov edx, eax
004D52DD |. C>shr edx, 18
004D52E0 |. 8>mov ecx, eax
004D52E2 |. C>shr ecx, 8
004D52E5 |. 8>and ecx, 0FF00
004D52EB |. 0>or edx, ecx
004D52ED |. 8>mov ecx, eax
004D52EF |. C>shl ecx, 8
004D52F2 |. 8>and ecx, 0FF0000
004D52F8 |. 0>or edx, ecx
004D52FA |. C>shl eax, 18
004D52FD |. 0>or edx, eax
004D52FF |. 8>mov dword ptr ds:[esi+4], edx
004D5302 |. 8>mov eax, dword ptr ds:[esi+8]
004D5305 |. 8>mov edx, eax
004D5307 |. C>shr edx, 18
004D530A |. 8>mov ecx, eax
004D530C |. C>shr ecx, 8
004D530F |. 8>and ecx, 0FF00
004D5315 |. 0>or edx, ecx
004D5317 |. 8>mov ecx, eax
004D5319 |. C>shl ecx, 8
004D531C |. 8>and ecx, 0FF0000
004D5322 |. 0>or edx, ecx
004D5324 |. C>shl eax, 18
004D5327 |. 0>or edx, eax
004D5329 |. 8>mov dword ptr ds:[esi+8], edx
004D532C |. 8>mov eax, dword ptr ds:[esi+C]
004D532F |. 8>mov edx, eax
004D5331 |. C>shr edx, 18
004D5334 |. 8>mov ecx, eax
004D5336 |. C>shr ecx, 8
004D5339 |. 8>and ecx, 0FF00
004D533F |. 0>or edx, ecx
004D5341 |. 8>mov ecx, eax
004D5343 |. C>shl ecx, 8
004D5346 |. 8>and ecx, 0FF0000
004D534C |. 0>or edx, ecx
004D534E |. C>shl eax, 18
004D5351 |. 0>or edx, eax
004D5353 |. 8>mov dword ptr ds:[esi+C], edx
004D5356 |. 3>xor eax, eax
004D5358 |> 8>/mov edx, eax
004D535A |. 8>|and edx, 4
004D535D |. 8>|sub edx, 1 ; Switch (cases 0..4)
004D5360 |. 7>|jb short WebCam.004D5370
004D5362 |. 8>|sub edx, 3
004D5365 |. 0>|je WebCam.004D54F0
004D536B |. E>|jmp WebCam.004D5666
004D5370 |> 8>|mov edx, dword ptr ds:[esi+C] ; Case 0 of switch 004D535D
004D5373 |. 8>|mov ecx, edx
004D5375 |. C>|shr ecx, 10 ; 第2段
004D5378 |. 8>|and ecx, 0FF
004D537E |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D5385 |. 3>|xor ecx, dword ptr ds:[esi]
004D5387 |. 8>|mov edi, edx
004D5389 |. 8>|and edi, 0FF ; 第4段
004D538F |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D5396 |. 8>|mov edi, edx
004D5398 |. C>|shr edi, 18 ; 第1段
004D539B |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D53A2 |. C>|shr edx, 8 ; 第3段
004D53A5 |. 8>|and edx, 0FF
004D53AB |. 3>|xor ecx, dword ptr ds:[edx*4+660C84]
004D53B2 |. 8>|mov edx, dword ptr ds:[esi+8]
004D53B5 |. C>|shr edx, 18 ; 第1段
004D53B8 |. 3>|xor ecx, dword ptr ds:[edx*4+660884]
004D53BF |. 8>|mov dword ptr ss:[ebp-34], ecx ; [ebp-34] 赋值
004D53C2 |. 8>|mov edx, dword ptr ss:[ebp-34]
004D53C5 |. 8>|mov dword ptr ss:[ebp-24], edx ; [ebp-24] 赋值
004D53C8 |. 8>|mov edx, dword ptr ss:[ebp-34]
004D53CB |. C>|shr edx, 18 ; 1
004D53CE |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D53D5 |. 3>|xor edx, dword ptr ds:[esi+8]
004D53D8 |. 8>|mov ecx, dword ptr ss:[ebp-34]
004D53DB |. C>|shr ecx, 8 ; 3
004D53DE |. 8>|and ecx, 0FF
004D53E4 |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D53EB |. 8>|mov ecx, dword ptr ss:[ebp-34]
004D53EE |. C>|shr ecx, 10 ; 2
004D53F1 |. 8>|and ecx, 0FF
004D53F7 |. 3>|xor edx, dword ptr ds:[ecx*4+660884]
004D53FE |. 8>|mov ecx, dword ptr ss:[ebp-34]
004D5401 |. 8>|and ecx, 0FF ; 4
004D5407 |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D540E |. 8>|mov ecx, dword ptr ds:[esi+8]
004D5411 |. C>|shr ecx, 8
004D5414 |. 8>|and ecx, 0FF
004D541A |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D5421 |. 8>|mov dword ptr ss:[ebp-30], edx ; [ebp-30] 赋值
004D5424 |. 8>|mov edx, dword ptr ss:[ebp-30]
004D5427 |. 8>|mov dword ptr ss:[ebp-20], edx ; [ebp-20] 赋值
004D542A |. 8>|mov edx, dword ptr ss:[ebp-30]
004D542D |. 8>|and edx, 0FF ; 4
004D5433 |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D543A |. 3>|xor edx, dword ptr ds:[esi+C]
004D543D |. 8>|mov ecx, dword ptr ss:[ebp-30]
004D5440 |. C>|shr ecx, 8 ; 3
004D5443 |. 8>|and ecx, 0FF
004D5449 |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D5450 |. 8>|mov ecx, dword ptr ss:[ebp-30]
004D5453 |. C>|shr ecx, 10 ; 2
004D5456 |. 8>|and ecx, 0FF
004D545C |. 3>|xor edx, dword ptr ds:[ecx*4+660884]
004D5463 |. 8>|mov ecx, dword ptr ss:[ebp-30]
004D5466 |. C>|shr ecx, 18 ; 1
004D5469 |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D5470 |. 8>|mov ecx, dword ptr ds:[esi+8]
004D5473 |. C>|shr ecx, 10
004D5476 |. 8>|and ecx, 0FF
004D547C |. 3>|xor edx, dword ptr ds:[ecx*4+661084]
004D5483 |. 8>|mov dword ptr ss:[ebp-2C], edx ; [ebp-2C] 赋值
004D5486 |. 8>|mov edx, dword ptr ss:[ebp-2C]
004D5489 |. 8>|mov dword ptr ss:[ebp-1C], edx ; [ebp-1C] 赋值
004D548C |. 8>|mov edx, dword ptr ss:[ebp-2C]
004D548F |. C>|shr edx, 8 ; 3
004D5492 |. 8>|and edx, 0FF
004D5498 |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D549F |. 3>|xor edx, dword ptr ds:[esi+4]
004D54A2 |. 8>|mov ecx, dword ptr ss:[ebp-2C]
004D54A5 |. C>|shr ecx, 10 ; 2
004D54A8 |. 8>|and ecx, 0FF
004D54AE |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D54B5 |. 8>|mov ecx, dword ptr ss:[ebp-2C]
004D54B8 |. 8>|and ecx, 0FF ; 4
004D54BE |. 3>|xor edx, dword ptr ds:[ecx*4+660884]
004D54C5 |. 8>|mov ecx, dword ptr ss:[ebp-2C]
004D54C8 |. C>|shr ecx, 18 ; 1
004D54CB |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D54D2 |. 8>|mov ecx, dword ptr ds:[esi+8]
004D54D5 |. 8>|and ecx, 0FF
004D54DB |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D54E2 |. 8>|mov dword ptr ss:[ebp-28], edx ; [ebp-28] 赋值
004D54E5 |. 8>|mov edx, dword ptr ss:[ebp-28]
004D54E8 |. 8>|mov dword ptr ss:[ebp-18], edx ; [ebp-18] 赋值
004D54EB |. E>|jmp WebCam.004D5666
004D54F0 |> 8>|mov edx, dword ptr ss:[ebp-30] ; Case 4 of switch 004D535D
004D54F3 |. 8>|mov ecx, edx
004D54F5 |. C>|shr ecx, 10 ; 2
004D54F8 |. 8>|and ecx, 0FF
004D54FE |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D5505 |. 3>|xor ecx, dword ptr ss:[ebp-2C]
004D5508 |. 8>|mov edi, edx
004D550A |. 8>|and edi, 0FF ; 4
004D5510 |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D5517 |. 8>|mov edi, edx
004D5519 |. C>|shr edi, 18 ; 1
004D551C |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D5523 |. C>|shr edx, 8 ; 3
004D5526 |. 8>|and edx, 0FF
004D552C |. 3>|xor ecx, dword ptr ds:[edx*4+660C84]
004D5533 |. 8>|mov edx, dword ptr ss:[ebp-34]
004D5536 |. C>|shr edx, 18
004D5539 |. 3>|xor ecx, dword ptr ds:[edx*4+660884]
004D5540 |. 8>|mov dword ptr ds:[esi], ecx ; [ESI] 赋值
004D5542 |. 8>|mov edx, dword ptr ds:[esi]
004D5544 |. 8>|mov dword ptr ss:[ebp-24], edx ; [ebp-24] 赋值
004D5547 |. 8>|mov edx, dword ptr ds:[esi]
004D5549 |. C>|shr edx, 18 ; 1
004D554C |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D5553 |. 3>|xor edx, dword ptr ss:[ebp-34]
004D5556 |. 8>|mov ecx, dword ptr ds:[esi]
004D5558 |. C>|shr ecx, 8 ; 3
004D555B |. 8>|and ecx, 0FF
004D5561 |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D5568 |. 8>|mov ecx, dword ptr ds:[esi]
004D556A |. C>|shr ecx, 10 ; 2
004D556D |. 8>|and ecx, 0FF
004D5573 |. 3>|xor edx, dword ptr ds:[ecx*4+660884]
004D557A |. 8>|mov ecx, dword ptr ds:[esi]
004D557C |. 8>|and ecx, 0FF ; 4
004D5582 |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D5589 |. 8>|mov ecx, dword ptr ss:[ebp-34]
004D558C |. C>|shr ecx, 8
004D558F |. 8>|and ecx, 0FF
004D5595 |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D559C |. 8>|mov dword ptr ds:[esi+4], edx ; [ESI+4] 赋值
004D559F |. 8>|mov edx, dword ptr ds:[esi+4]
004D55A2 |. 8>|mov dword ptr ss:[ebp-20], edx ; [ebp-20] 赋值
004D55A5 |. 8>|mov edx, dword ptr ds:[esi+4]
004D55A8 |. 8>|and edx, 0FF
004D55AE |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D55B5 |. 3>|xor edx, dword ptr ss:[ebp-30]
004D55B8 |. 8>|mov ecx, dword ptr ds:[esi+4]
004D55BB |. C>|shr ecx, 8
004D55BE |. 8>|and ecx, 0FF
004D55C4 |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D55CB |. 8>|mov ecx, dword ptr ds:[esi+4]
004D55CE |. C>|shr ecx, 10
004D55D1 |. 8>|and ecx, 0FF
004D55D7 |. 3>|xor edx, dword ptr ds:[ecx*4+660884]
004D55DE |. 8>|mov ecx, dword ptr ds:[esi+4]
004D55E1 |. C>|shr ecx, 18
004D55E4 |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D55EB |. 8>|mov ecx, dword ptr ss:[ebp-34]
004D55EE |. C>|shr ecx, 10
004D55F1 |. 8>|and ecx, 0FF
004D55F7 |. 3>|xor edx, dword ptr ds:[ecx*4+661084]
004D55FE |. 8>|mov dword ptr ds:[esi+8], edx ; [ESI+8] 赋值
004D5601 |. 8>|mov edx, dword ptr ds:[esi+8]
004D5604 |. 8>|mov dword ptr ss:[ebp-1C], edx ; [ebp-1C] 赋值
004D5607 |. 8>|mov edx, dword ptr ds:[esi+8]
004D560A |. C>|shr edx, 8
004D560D |. 8>|and edx, 0FF
004D5613 |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D561A |. 3>|xor edx, dword ptr ss:[ebp-28]
004D561D |. 8>|mov ecx, dword ptr ds:[esi+8]
004D5620 |. C>|shr ecx, 10
004D5623 |. 8>|and ecx, 0FF
004D5629 |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D5630 |. 8>|mov ecx, dword ptr ds:[esi+8]
004D5633 |. 8>|and ecx, 0FF
004D5639 |. 3>|xor edx, dword ptr ds:[ecx*4+660884]
004D5640 |. 8>|mov ecx, dword ptr ds:[esi+8]
004D5643 |. C>|shr ecx, 18
004D5646 |. 3>|xor edx, dword ptr ds:[ecx*4+660C84]
004D564D |. 8>|mov ecx, dword ptr ss:[ebp-34]
004D5650 |. 8>|and ecx, 0FF
004D5656 |. 3>|xor edx, dword ptr ds:[ecx*4+660484]
004D565D |. 8>|mov dword ptr ds:[esi+C], edx ; [ESI+C] 赋值
004D5660 |. 8>|mov edx, dword ptr ds:[esi+C]
004D5663 |. 8>|mov dword ptr ss:[ebp-18], edx ; [ebp-18] 赋值
004D5666 |> 8>|mov edx, eax ; Default case of switch 004D535D
004D5668 |. 8>|and edx, 0C
004D566B |. 8>|mov ecx, edx
004D566D |. 8>|sub ecx, 1 ; Switch (cases 0..C)
004D5670 |. 7>|jb short WebCam.004D568D
004D5672 |. 8>|sub ecx, 3
004D5675 |. 0>|je WebCam.004D57AE
004D567B |. 8>|sub ecx, 4
004D567E |. 0>|je WebCam.004D57AE
004D5684 |. 8>|sub ecx, 4
004D5687 |. 0>|jnz WebCam.004D58CA
004D568D |> 8>|mov ecx, dword ptr ss:[ebp-1C] ; Cases 0,C of switch 004D566D
004D5690 |. C>|shr ecx, 18 ; 1
004D5693 |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D569A |. 8>|mov edi, dword ptr ss:[ebp-1C]
004D569D |. C>|shr edi, 10 ; 2
004D56A0 |. 8>|and edi, 0FF
004D56A6 |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D56AD |. 8>|mov edi, dword ptr ss:[ebp-20]
004D56B0 |. 8>|and edi, 0FF ; 4
004D56B6 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D56BD |. 8>|mov edi, dword ptr ss:[ebp-20]
004D56C0 |. C>|shr edi, 8 ; 3
004D56C3 |. 8>|and edi, 0FF
004D56C9 |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D56D0 |. 8>|mov dword ptr ds:[ebx+eax*4+10], ecx
004D56D4 |. 8>|mov ecx, dword ptr ss:[ebp-1C]
004D56D7 |. C>|shr ecx, 8 ; 3
004D56DA |. 8>|and ecx, 0FF
004D56E0 |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D56E7 |. 8>|mov edi, dword ptr ss:[ebp-1C]
004D56EA |. 8>|and edi, 0FF ; 4
004D56F0 |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D56F7 |. 8>|mov edi, dword ptr ss:[ebp-20]
004D56FA |. C>|shr edi, 10 ; 2
004D56FD |. 8>|and edi, 0FF
004D5703 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D570A |. 8>|mov edi, dword ptr ss:[ebp-20]
004D570D |. C>|shr edi, 18 ; 1
004D5710 |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D5717 |. 8>|mov dword ptr ds:[ebx+eax*4+14], ecx
004D571B |. 8>|mov ecx, dword ptr ss:[ebp-18]
004D571E |. C>|shr ecx, 18 ; 1
004D5721 |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D5728 |. 8>|mov edi, dword ptr ss:[ebp-18]
004D572B |. C>|shr edi, 10 ; 2
004D572E |. 8>|and edi, 0FF
004D5734 |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D573B |. 8>|mov edi, dword ptr ss:[ebp-24]
004D573E |. 8>|and edi, 0FF ; 4
004D5744 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D574B |. 8>|mov edi, dword ptr ss:[ebp-24]
004D574E |. C>|shr edi, 8 ; 3
004D5751 |. 8>|and edi, 0FF
004D5757 |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D575E |. 8>|mov dword ptr ds:[ebx+eax*4+18], ecx
004D5762 |. 8>|mov ecx, dword ptr ss:[ebp-18]
004D5765 |. C>|shr ecx, 8 ; 3
004D5768 |. 8>|and ecx, 0FF
004D576E |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D5775 |. 8>|mov edi, dword ptr ss:[ebp-18]
004D5778 |. 8>|and edi, 0FF ; 4
004D577E |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D5785 |. 8>|mov edi, dword ptr ss:[ebp-24]
004D5788 |. C>|shr edi, 10 ; 2
004D578B |. 8>|and edi, 0FF
004D5791 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D5798 |. 8>|mov edi, dword ptr ss:[ebp-24]
004D579B |. C>|shr edi, 18 ; 1
004D579E |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D57A5 |. 8>|mov dword ptr ds:[ebx+eax*4+1C], ecx
004D57A9 |. E>|jmp WebCam.004D58CA
004D57AE |> 8>|mov ecx, dword ptr ss:[ebp-24] ; Cases 4,8 of switch 004D566D
004D57B1 |. 8>|and ecx, 0FF ; 4
004D57B7 |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D57BE |. 8>|mov edi, dword ptr ss:[ebp-24]
004D57C1 |. C>|shr edi, 8 ; 3
004D57C4 |. 8>|and edi, 0FF
004D57CA |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D57D1 |. 8>|mov edi, dword ptr ss:[ebp-18]
004D57D4 |. C>|shr edi, 18 ; 1
004D57D7 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D57DE |. 8>|mov edi, dword ptr ss:[ebp-18]
004D57E1 |. C>|shr edi, 10 ; 2
004D57E4 |. 8>|and edi, 0FF
004D57EA |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D57F1 |. 8>|mov dword ptr ds:[ebx+eax*4+10], ecx
004D57F5 |. 8>|mov ecx, dword ptr ss:[ebp-24]
004D57F8 |. C>|shr ecx, 10 ; 2
004D57FB |. 8>|and ecx, 0FF
004D5801 |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D5808 |. 8>|mov edi, dword ptr ss:[ebp-24]
004D580B |. C>|shr edi, 18 ; 1
004D580E |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D5815 |. 8>|mov edi, dword ptr ss:[ebp-18]
004D5818 |. C>|shr edi, 8 ; 3
004D581B |. 8>|and edi, 0FF
004D5821 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D5828 |. 8>|mov edi, dword ptr ss:[ebp-18]
004D582B |. 8>|and edi, 0FF ; 4
004D5831 |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D5838 |. 8>|mov dword ptr ds:[ebx+eax*4+14], ecx
004D583C |. 8>|mov ecx, dword ptr ss:[ebp-20]
004D583F |. 8>|and ecx, 0FF ; 4
004D5845 |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D584C |. 8>|mov edi, dword ptr ss:[ebp-20]
004D584F |. C>|shr edi, 8 ; 3
004D5852 |. 8>|and edi, 0FF
004D5858 |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D585F |. 8>|mov edi, dword ptr ss:[ebp-1C]
004D5862 |. C>|shr edi, 18 ; 1
004D5865 |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D586C |. 8>|mov edi, dword ptr ss:[ebp-1C]
004D586F |. C>|shr edi, 10 ; 2
004D5872 |. 8>|and edi, 0FF
004D5878 |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D587F |. 8>|mov dword ptr ds:[ebx+eax*4+18], ecx
004D5883 |. 8>|mov ecx, dword ptr ss:[ebp-20]
004D5886 |. C>|shr ecx, 10 ; 2
004D5889 |. 8>|and ecx, 0FF
004D588F |. 8>|mov ecx, dword ptr ds:[ecx*4+661084]
004D5896 |. 8>|mov edi, dword ptr ss:[ebp-20]
004D5899 |. C>|shr edi, 18 ; 1
004D589C |. 3>|xor ecx, dword ptr ds:[edi*4+660484]
004D58A3 |. 8>|mov edi, dword ptr ss:[ebp-1C]
004D58A6 |. C>|shr edi, 8 ; 3
004D58A9 |. 8>|and edi, 0FF
004D58AF |. 3>|xor ecx, dword ptr ds:[edi*4+660884]
004D58B6 |. 8>|mov edi, dword ptr ss:[ebp-1C]
004D58B9 |. 8>|and edi, 0FF ; 4
004D58BF |. 3>|xor ecx, dword ptr ds:[edi*4+660C84]
004D58C6 |. 8>|mov dword ptr ds:[ebx+eax*4+1C], ecx
004D58CA |> 8>|sub edx, 1 ; Switch (cases 0..C)
004D58CD |. 7>|jb short WebCam.004D58EB
004D58CF |. 8>|sub edx, 3
004D58D2 |. 7>|je short WebCam.004D5946
004D58D4 |. 8>|sub edx, 4
004D58D7 |. 0>|je WebCam.004D599A
004D58DD |. 8>|sub edx, 4
004D58E0 |. 0>|je WebCam.004D59F2
004D58E6 |. E>|jmp WebCam.004D5A41
004D58EB |> 8>|mov edx, dword ptr ss:[ebp-34] ; Case 0 of switch 004D58CA
004D58EE |. C>|shr edx, 8 ; 3
004D58F1 |. 8>|and edx, 0FF
004D58F7 |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D58FE |. 3>|xor dword ptr ds:[ebx+eax*4+10], edx
004D5902 |. 8>|mov edx, dword ptr ss:[ebp-30]
004D5905 |. C>|shr edx, 8 ; 3
004D5908 |. 8>|and edx, 0FF
004D590E |. 8>|mov edx, dword ptr ds:[edx*4+660484]
004D5915 |. 3>|xor dword ptr ds:[ebx+eax*4+14], edx
004D5919 |. 8>|mov edx, dword ptr ss:[ebp-2C]
004D591C |. C>|shr edx, 10 ; 2
004D591F |. 8>|and edx, 0FF
004D5925 |. 8>|mov edx, dword ptr ds:[edx*4+660884]
004D592C |. 3>|xor dword ptr ds:[ebx+eax*4+18], edx
004D5930 |. 8>|mov edx, dword ptr ss:[ebp-28]
004D5933 |. C>|shr edx, 18 ; 1
004D5936 |. 8>|mov edx, dword ptr ds:[edx*4+660C84]
004D593D |. 3>|xor dword ptr ds:[ebx+eax*4+1C], edx
004D5941 |. E>|jmp WebCam.004D5A41
004D5946 |> 8>|mov edx, dword ptr ds:[esi+8] ; Case 4 of switch 004D58CA
004D5949 |. C>|shr edx, 18 ; 1
004D594C |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D5953 |. 3>|xor dword ptr ds:[ebx+eax*4+10], edx
004D5957 |. 8>|mov edx, dword ptr ds:[esi+C]
004D595A |. C>|shr edx, 10 ; 2
004D595D |. 8>|and edx, 0FF
004D5963 |. 8>|mov edx, dword ptr ds:[edx*4+660484]
004D596A |. 3>|xor dword ptr ds:[ebx+eax*4+14], edx
004D596E |. 8>|mov edx, dword ptr ds:[esi]
004D5970 |. 8>|and edx, 0FF ; 4
004D5976 |. 8>|mov edx, dword ptr ds:[edx*4+660884]
004D597D |. 3>|xor dword ptr ds:[ebx+eax*4+18], edx
004D5981 |. 8>|mov edx, dword ptr ds:[esi+4]
004D5984 |. 8>|and edx, 0FF ; 4
004D598A |. 8>|mov edx, dword ptr ds:[edx*4+660C84]
004D5991 |. 3>|xor dword ptr ds:[ebx+eax*4+1C], edx
004D5995 |. E>|jmp WebCam.004D5A41
004D599A |> 8>|mov edx, dword ptr ss:[ebp-2C] ; Case 8 of switch 004D58CA
004D599D |. C>|shr edx, 10 ; 2
004D59A0 |. 8>|and edx, 0FF
004D59A6 |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D59AD |. 3>|xor dword ptr ds:[ebx+eax*4+10], edx
004D59B1 |. 8>|mov edx, dword ptr ss:[ebp-28]
004D59B4 |. C>|shr edx, 18 ; 1
004D59B7 |. 8>|mov edx, dword ptr ds:[edx*4+660484]
004D59BE |. 3>|xor dword ptr ds:[ebx+eax*4+14], edx
004D59C2 |. 8>|mov edx, dword ptr ss:[ebp-34]
004D59C5 |. C>|shr edx, 8 ; 3
004D59C8 |. 8>|and edx, 0FF
004D59CE |. 8>|mov edx, dword ptr ds:[edx*4+660884]
004D59D5 |. 3>|xor dword ptr ds:[ebx+eax*4+18], edx
004D59D9 |. 8>|mov edx, dword ptr ss:[ebp-30]
004D59DC |. C>|shr edx, 8 ; 3
004D59DF |. 8>|and edx, 0FF
004D59E5 |. 8>|mov edx, dword ptr ds:[edx*4+660C84]
004D59EC |. 3>|xor dword ptr ds:[ebx+eax*4+1C], edx
004D59F0 |. E>|jmp short WebCam.004D5A41
004D59F2 |> 8>|mov edx, dword ptr ds:[esi] ; Case C of switch 004D58CA
004D59F4 |. 8>|and edx, 0FF ; 4
004D59FA |. 8>|mov edx, dword ptr ds:[edx*4+661084]
004D5A01 |. 3>|xor dword ptr ds:[ebx+eax*4+10], edx
004D5A05 |. 8>|mov edx, dword ptr ds:[esi+4]
004D5A08 |. 8>|and edx, 0FF ; 4
004D5A0E |. 8>|mov edx, dword ptr ds:[edx*4+660484]
004D5A15 |. 3>|xor dword ptr ds:[ebx+eax*4+14], edx
004D5A19 |. 8>|mov edx, dword ptr ds:[esi+8]
004D5A1C |. C>|shr edx, 18 ; 1
004D5A1F |. 8>|mov edx, dword ptr ds:[edx*4+660884]
004D5A26 |. 3>|xor dword ptr ds:[ebx+eax*4+18], edx
004D5A2A |. 8>|mov edx, dword ptr ds:[esi+C]
004D5A2D |. C>|shr edx, 10 ; 2
004D5A30 |. 8>|and edx, 0FF
004D5A36 |. 8>|mov edx, dword ptr ds:[edx*4+660C84]
004D5A3D |. 3>|xor dword ptr ds:[ebx+eax*4+1C], edx
004D5A41 |> 8>|cmp eax, 10 ; Default case of switch 004D58CA
004D5A44 |. 7>|jl short WebCam.004D5A5A
004D5A46 |. 8>|and dword ptr ds:[ebx+eax*4+10], 1F
004D5A4B |. 8>|and dword ptr ds:[ebx+eax*4+14], 1F
004D5A50 |. 8>|and dword ptr ds:[ebx+eax*4+18], 1F
004D5A55 |. 8>|and dword ptr ds:[ebx+eax*4+1C], 1F
004D5A5A |> 8>|add eax, 4
004D5A5D |. 8>|cmp eax, 20
004D5A60 |.^ 0>\jl WebCam.004D5358
004D5A66 |. 5>pop edi
004D5A67 |. 5>pop esi
004D5A68 |. 5>pop ebx
004D5A69 |. 8>mov esp, ebp
004D5A6B |. 5>pop ebp
004D5A6C \. C>ret 4
private int getInt(int s, int x, int p) {
Mapdata map = new Mapdata();
MapdataOther mapOther = new MapdataOther();
int tag = 0;
int k = 1;
int format = format2(x, p) * 4;
for (int j = 0; j < 4; j++) {
switch (s) {
case 1:
tag = tag + map.key_0[format + j] * k;
break;
case 2:
tag = tag + map.key_1[format + j] * k;
break;
case 3:
tag = tag + map.key_2[format + j] * k;
break;
case 4:
tag = tag + map.key_3[format + j] * k;
break;
}
k *= 0x100;
}
return tag;
}
map.key_0[]
map.key_1[]
map.key_2[]
map.key_3[]
这四个map是从程序中找到的一段数据,当做字典用了
public int[] math(String into) {
int[] result = new int[32];////32个运算值
Create create = new Create();
int esi = create.update(create.createKey(into)); <==== 这个esi就是key2
int esi_4 = 0, esi_8 = 0, esi_c = 0;
int eax = 0, edx = 0, ecx = 0, edi;
int ebp_34 = 0, ebp_24 = 0, ebp_30 = 0, ebp_20 = 0, ebp_2c = 0, ebp_1c = 0, ebp_28 = 0, ebp_18 = 0;
for (int i = 0; i < 8; i++) {
///第一段
if ((eax & 4) == 0) {
ecx = esi ^ getInt(4, esi_c, 2) ^ getInt(1, esi_c, 4) ^ getInt(2, esi_c, 1) ^ getInt(3, esi_c, 3)
^ getInt(2, esi_8, 1);
ebp_34 = ecx;
ebp_24 = ecx;
edx = esi_8 ^ getInt(4, ebp_34, 1) ^ getInt(1, ebp_34, 3) ^ getInt(2, ebp_34, 2) ^ getInt(3, ebp_34, 4)
^ getInt(3, esi_8, 3);
ebp_30 = edx;
ebp_20 = edx;
edx = esi_c ^ getInt(4, ebp_30, 4) ^ getInt(1, ebp_30, 3) ^ getInt(2, ebp_30, 2) ^ getInt(3, ebp_30, 1)
^ getInt(4, esi_8, 2);
ebp_2c = edx;
ebp_1c = edx;
edx = esi_4 ^ getInt(4, ebp_2c, 3) ^ getInt(1, ebp_2c, 2) ^ getInt(2, ebp_2c, 4) ^ getInt(3, ebp_2c, 1)
^ getInt(1, esi_8, 4);
ebp_28 = edx;
ebp_18 = edx;
}
if ((eax & 4) == 4) {
ecx = ebp_2c ^ getInt(4, ebp_30, 2) ^ getInt(1, ebp_30, 4) ^ getInt(2, ebp_30, 1) ^ getInt(3, ebp_30, 3)
^ getInt(2, ebp_34, 1);
esi = ecx;
ebp_24 = ecx;
edx = ebp_34 ^ getInt(4, esi, 1) ^ getInt(1, esi, 3) ^ getInt(2, esi, 2) ^ getInt(3, esi, 4)
^ getInt(3, ebp_34, 3);
esi_4 = edx;
ebp_20 = edx;
edx = ebp_30 ^ getInt(4, esi_4, 4) ^ getInt(1, esi_4, 3) ^ getInt(2, esi_4, 2) ^ getInt(3, esi_4, 1)
^ getInt(4, ebp_34, 2);
esi_8 = edx;
ebp_1c = edx;
edx = ebp_28 ^ getInt(4, esi_8, 3) ^ getInt(1, esi_8, 2) ^ getInt(2, esi_8, 4) ^ getInt(3, esi_8, 1)
^ getInt(1, ebp_34, 4);
esi_c = edx;
ebp_18 = edx;
}
// me , one small pig :(
edx = eax & 0xC;
//第二段
if (edx == 0x0 || edx == 0xC) {
result[eax + 0] = getInt(4, ebp_1c, 1) ^ getInt(1, ebp_1c, 2) ^ getInt(2, ebp_20, 4) ^ getInt(3, ebp_20, 3);
result[eax + 1] = getInt(4, ebp_1c, 3) ^ getInt(1, ebp_1c, 4) ^ getInt(2, ebp_20, 2) ^ getInt(3, ebp_20, 1);
result[eax + 2] = getInt(4, ebp_18, 1) ^ getInt(1, ebp_18, 2) ^ getInt(2, ebp_24, 4) ^ getInt(3, ebp_24, 3);
result[eax + 3] = getInt(4, ebp_18, 3) ^ getInt(1, ebp_18, 4) ^ getInt(2, ebp_24, 2) ^ getInt(3, ebp_24, 1);
}
if (edx == 4 || edx == 8) {
result[eax + 0] = getInt(4, ebp_24, 4) ^ getInt(1, ebp_24, 3) ^ getInt(2, ebp_18, 1) ^ getInt(3, ebp_18, 2);
result[eax + 1] = getInt(4, ebp_24, 2) ^ getInt(1, ebp_24, 1) ^ getInt(2, ebp_18, 3) ^ getInt(3, ebp_18, 4);
result[eax + 2] = getInt(4, ebp_20, 4) ^ getInt(1, ebp_20, 3) ^ getInt(2, ebp_1c, 1) ^ getInt(3, ebp_1c, 2);
result[eax + 3] = getInt(4, ebp_20, 2) ^ getInt(1, ebp_20, 1) ^ getInt(2, ebp_1c, 3) ^ getInt(3, ebp_1c, 4);
}
//第三段
if (edx == 0) {
result[eax + 0] ^= getInt(4, ebp_34, 3);
result[eax + 1] ^= getInt(1, ebp_30, 3);
result[eax + 2] ^= getInt(2, ebp_2c, 2);
result[eax + 3] ^= getInt(3, ebp_28, 1);
} else if (edx == 0x4) {
result[eax + 0] ^= getInt(4, esi_8, 1);
result[eax + 1] ^= getInt(1, esi_c, 2);
result[eax + 2] ^= getInt(2, esi, 4);
result[eax + 3] ^= getInt(3, esi_4, 4);
} else if (edx == 0x8) {
result[eax + 0] ^= getInt(4, ebp_2c, 2);
result[eax + 1] ^= getInt(1, ebp_28, 1);
result[eax + 2] ^= getInt(2, ebp_34, 3);
result[eax + 3] ^= getInt(3, ebp_30, 3);
} else if (edx == 0xC) {
result[eax + 0] ^= getInt(4, esi, 4);
result[eax + 1] ^= getInt(1, esi_4, 4);
result[eax + 2] ^= getInt(2, esi_8, 1);
result[eax + 3] ^= getInt(3, esi_c, 2);
}
if (eax >= 0x10) {
for (int k = 0; k < 4; k++) {
result[eax + k] &= 0x1F;
}
}
eax += 4;
}
return result;
}
这个运算过后,就可以得到一个Map[32];
================= WebCam.004D60EC ==C== ===============================
004D60EC /$ 5>push ebx
004D60ED |. 5>push esi
004D60EE |. 5>push edi
004D60EF |. 5>push ebp
004D60F0 |. 8>add esp, -0C
004D60F3 |. 8>mov dword ptr ss:[esp], ecx
004D60F6 |. 8>mov ebp, edx
004D60F8 |. 8>mov ebx, eax
004D60FA |. 8>mov esi, dword ptr ds:[6669D0] ; WebCam.0065FC84
004D6100 |. 8>mov edi, dword ptr ds:[666A84] ; WebCam.0065F484
004D6106 |. 8>lea edx, dword ptr ss:[esp+8]
004D610A |. 8>mov eax, ebp
004D610C |. B>mov ecx, 4
004D6111 |. E>call WebCam.004029DC
004D6116 |. 8>lea edx, dword ptr ss:[esp+4]
004D611A |. 8>mov eax, ebp
004D611C |. 8>add eax, 4
004D611F |. B>mov ecx, 4
004D6124 |. E>call WebCam.004029DC
004D6129 |. 8>mov eax, dword ptr ss:[esp+4]
004D612D |. C>shr eax, 18
004D6130 |. 8>mov edx, dword ptr ss:[esp+4]
004D6134 |. C>shr edx, 8
004D6137 |. 8>and edx, 0FF00
004D613D |. 0>or eax, edx
004D613F |. 8>mov edx, dword ptr ss:[esp+4]
004D6143 |. C>shl edx, 8
004D6146 |. 8>and edx, 0FF0000
004D614C |. 0>or eax, edx
004D614E |. 8>mov edx, dword ptr ss:[esp+4]
004D6152 |. C>shl edx, 18
004D6155 |. 0>or eax, edx ; 试炼码在1-F之间直观
004D6157 |. 8>mov dword ptr ss:[esp+4], eax ; [esp+4]试炼码前8位
004D615B |. 8>mov eax, dword ptr ss:[esp+8]
004D615F |. C>shr eax, 18
004D6162 |. 8>mov edx, dword ptr ss:[esp+8]
004D6166 |. C>shr edx, 8
004D6169 |. 8>and edx, 0FF00
004D616F |. 0>or eax, edx
004D6171 |. 8>mov edx, dword ptr ss:[esp+8]
004D6175 |. C>shl edx, 8
004D6178 |. 8>and edx, 0FF0000
004D617E |. 0>or eax, edx
004D6180 |. 8>mov edx, dword ptr ss:[esp+8]
004D6184 |. C>shl edx, 18
004D6187 |. 0>or eax, edx
004D6189 |. 8>mov dword ptr ss:[esp+8], eax ; [esp+4]试炼码后8位
004D618D |. 8>cmp dword ptr ds:[ebx+90], 0C
004D6194 |. 0>jle WebCam.004D62D6
004D619A |. 8>mov edx, dword ptr ds:[ebx+8C] ; 没进来过?
004D61A0 |. 8>mov eax, dword ptr ds:[ebx+4C]
004D61A3 |. 0>add eax, dword ptr ss:[esp+4]
004D61A7 |. E>call WebCam.004D3DC8
004D61AC |. 8>mov edx, eax
004D61AE |. C>shr edx, 18
004D61B1 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D61B4 |. 8>mov ecx, eax
004D61B6 |. C>shr ecx, 10
004D61B9 |. 8>and ecx, 0FF
004D61BF |. 3>xor edx, dword ptr ds:[edi+ecx*4]
004D61C2 |. 8>mov ecx, eax
004D61C4 |. C>shr ecx, 8
004D61C7 |. 8>and ecx, 0FF
004D61CD |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D61D3 |. 2>sub edx, dword ptr ss:[ebp+ecx*4]
004D61D7 |. 2>and eax, 0FF
004D61DC |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D61E2 |. 0>add edx, dword ptr ds:[ecx+eax*4]
004D61E5 |. 3>xor dword ptr ss:[esp+8], edx
004D61E9 |. 8>mov edx, dword ptr ds:[ebx+88]
004D61EF |. 8>mov eax, dword ptr ds:[ebx+48]
004D61F2 |. 2>sub eax, dword ptr ss:[esp+8]
004D61F6 |. E>call WebCam.004D3DC8
004D61FB |. 8>mov edx, eax
004D61FD |. C>shr edx, 18
004D6200 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6203 |. 8>mov ecx, eax
004D6205 |. C>shr ecx, 10
004D6208 |. 8>and ecx, 0FF
004D620E |. 0>add edx, dword ptr ds:[edi+ecx*4]
004D6211 |. 8>mov ecx, eax
004D6213 |. C>shr ecx, 8
004D6216 |. 8>and ecx, 0FF
004D621C |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6222 |. 3>xor edx, dword ptr ss:[ebp+ecx*4]
004D6226 |. 2>and eax, 0FF
004D622B |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D6231 |. 2>sub edx, dword ptr ds:[ecx+eax*4]
004D6234 |. 3>xor dword ptr ss:[esp+4], edx
004D6238 |. 8>mov edx, dword ptr ds:[ebx+84]
004D623E |. 8>mov eax, dword ptr ds:[ebx+44]
004D6241 |. 3>xor eax, dword ptr ss:[esp+4]
004D6245 |. E>call WebCam.004D3DC8
004D624A |. 8>mov edx, eax
004D624C |. C>shr edx, 18
004D624F |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6252 |. 8>mov ecx, eax
004D6254 |. C>shr ecx, 10
004D6257 |. 8>and ecx, 0FF
004D625D |. 2>sub edx, dword ptr ds:[edi+ecx*4]
004D6260 |. 8>mov ecx, eax
004D6262 |. C>shr ecx, 8
004D6265 |. 8>and ecx, 0FF
004D626B |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6271 |. 0>add edx, dword ptr ss:[ebp+ecx*4]
004D6275 |. 2>and eax, 0FF
004D627A |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D6280 |. 3>xor edx, dword ptr ds:[ecx+eax*4]
004D6283 |. 3>xor dword ptr ss:[esp+8], edx
004D6287 |. 8>mov edx, dword ptr ds:[ebx+80]
004D628D |. 8>mov eax, dword ptr ds:[ebx+40]
004D6290 |. 0>add eax, dword ptr ss:[esp+8]
004D6294 |. E>call WebCam.004D3DC8
004D6299 |. 8>mov edx, eax
004D629B |. C>shr edx, 18
004D629E |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D62A1 |. 8>mov ecx, eax
004D62A3 |. C>shr ecx, 10
004D62A6 |. 8>and ecx, 0FF
004D62AC |. 3>xor edx, dword ptr ds:[edi+ecx*4]
004D62AF |. 8>mov ecx, eax
004D62B1 |. C>shr ecx, 8
004D62B4 |. 8>and ecx, 0FF
004D62BA |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D62C0 |. 2>sub edx, dword ptr ss:[ebp+ecx*4]
004D62C4 |. 2>and eax, 0FF
004D62C9 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D62CF |. 0>add edx, dword ptr ds:[ecx+eax*4]
004D62D2 |. 3>xor dword ptr ss:[esp+4], edx
004D62D6 |> 8>mov edx, dword ptr ds:[ebx+7C]
004D62D9 |. 8>mov eax, dword ptr ds:[ebx+3C]
004D62DC |. 2>sub eax, dword ptr ss:[esp+4] ; user2
004D62E0 |. E>call WebCam.004D3DC8
004D62E5 |. 8>mov edx, eax
004D62E7 |. C>shr edx, 18 ; 1
004D62EA |. 8>mov edx, dword ptr ds:[esi+edx*4] ; 7
004D62ED |. 8>mov ecx, eax
004D62EF |. C>shr ecx, 10 ; 2
004D62F2 |. 8>and ecx, 0FF
004D62F8 |. 0>add edx, dword ptr ds:[edi+ecx*4] ; 5
004D62FB |. 8>mov ecx, eax
004D62FD |. C>shr ecx, 8 ; 3
004D6300 |. 8>and ecx, 0FF
004D6306 |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D630C |. 3>xor edx, dword ptr ss:[ebp+ecx*4] ; 6
004D6310 |. 2>and eax, 0FF ; 4
004D6315 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D631B |. 2>sub edx, dword ptr ds:[ecx+eax*4] ; 8
004D631E |. 3>xor dword ptr ss:[esp+8], edx
004D6322 |. 8>mov edx, dword ptr ds:[ebx+78]
004D6325 |. 8>mov eax, dword ptr ds:[ebx+38]
004D6328 |. 3>xor eax, dword ptr ss:[esp+8] ; user1
004D632C |. E>call WebCam.004D3DC8
004D6331 |. 8>mov edx, eax
004D6333 |. C>shr edx, 18
004D6336 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6339 |. 8>mov ecx, eax
004D633B |. C>shr ecx, 10
004D633E |. 8>and ecx, 0FF
004D6344 |. 2>sub edx, dword ptr ds:[edi+ecx*4]
004D6347 |. 8>mov ecx, eax
004D6349 |. C>shr ecx, 8
004D634C |. 8>and ecx, 0FF
004D6352 |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6358 |. 0>add edx, dword ptr ss:[ebp+ecx*4]
004D635C |. 2>and eax, 0FF
004D6361 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D6367 |. 3>xor edx, dword ptr ds:[ecx+eax*4]
004D636A |. 3>xor dword ptr ss:[esp+4], edx
004D636E |. 8>mov edx, dword ptr ds:[ebx+74]
004D6371 |. 8>mov eax, dword ptr ds:[ebx+34]
004D6374 |. 0>add eax, dword ptr ss:[esp+4]
004D6378 |. E>call WebCam.004D3DC8
004D637D |. 8>mov edx, eax
004D637F |. C>shr edx, 18
004D6382 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6385 |. 8>mov ecx, eax
004D6387 |. C>shr ecx, 10
004D638A |. 8>and ecx, 0FF
004D6390 |. 3>xor edx, dword ptr ds:[edi+ecx*4]
004D6393 |. 8>mov ecx, eax
004D6395 |. C>shr ecx, 8
004D6398 |. 8>and ecx, 0FF
004D639E |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D63A4 |. 2>sub edx, dword ptr ss:[ebp+ecx*4]
004D63A8 |. 2>and eax, 0FF
004D63AD |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D63B3 |. 0>add edx, dword ptr ds:[ecx+eax*4]
004D63B6 |. 3>xor dword ptr ss:[esp+8], edx
004D63BA |. 8>mov edx, dword ptr ds:[ebx+70]
004D63BD |. 8>mov eax, dword ptr ds:[ebx+30]
004D63C0 |. 2>sub eax, dword ptr ss:[esp+8]
004D63C4 |. E>call WebCam.004D3DC8
004D63C9 |. 8>mov edx, eax
004D63CB |. C>shr edx, 18
004D63CE |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D63D1 |. 8>mov ecx, eax
004D63D3 |. C>shr ecx, 10
004D63D6 |. 8>and ecx, 0FF
004D63DC |. 0>add edx, dword ptr ds:[edi+ecx*4]
004D63DF |. 8>mov ecx, eax
004D63E1 |. C>shr ecx, 8
004D63E4 |. 8>and ecx, 0FF
004D63EA |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D63F0 |. 3>xor edx, dword ptr ss:[ebp+ecx*4]
004D63F4 |. 2>and eax, 0FF
004D63F9 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D63FF |. 2>sub edx, dword ptr ds:[ecx+eax*4]
004D6402 |. 3>xor dword ptr ss:[esp+4], edx
004D6406 |. 8>mov edx, dword ptr ds:[ebx+6C]
004D6409 |. 8>mov eax, dword ptr ds:[ebx+2C]
004D640C |. 3>xor eax, dword ptr ss:[esp+4]
004D6410 |. E>call WebCam.004D3DC8
004D6415 |. 8>mov edx, eax
004D6417 |. C>shr edx, 18
004D641A |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D641D |. 8>mov ecx, eax
004D641F |. C>shr ecx, 10
004D6422 |. 8>and ecx, 0FF
004D6428 |. 2>sub edx, dword ptr ds:[edi+ecx*4]
004D642B |. 8>mov ecx, eax
004D642D |. C>shr ecx, 8
004D6430 |. 8>and ecx, 0FF
004D6436 |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D643C |. 0>add edx, dword ptr ss:[ebp+ecx*4]
004D6440 |. 2>and eax, 0FF
004D6445 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D644B |. 3>xor edx, dword ptr ds:[ecx+eax*4]
004D644E |. 3>xor dword ptr ss:[esp+8], edx
004D6452 |. 8>mov edx, dword ptr ds:[ebx+68]
004D6455 |. 8>mov eax, dword ptr ds:[ebx+28]
004D6458 |. 0>add eax, dword ptr ss:[esp+8]
004D645C |. E>call WebCam.004D3DC8
004D6461 |. 8>mov edx, eax
004D6463 |. C>shr edx, 18
004D6466 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6469 |. 8>mov ecx, eax
004D646B |. C>shr ecx, 10
004D646E |. 8>and ecx, 0FF
004D6474 |. 3>xor edx, dword ptr ds:[edi+ecx*4]
004D6477 |. 8>mov ecx, eax
004D6479 |. C>shr ecx, 8
004D647C |. 8>and ecx, 0FF
004D6482 |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6488 |. 2>sub edx, dword ptr ss:[ebp+ecx*4]
004D648C |. 2>and eax, 0FF
004D6491 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D6497 |. 0>add edx, dword ptr ds:[ecx+eax*4]
004D649A |. 3>xor dword ptr ss:[esp+4], edx
004D649E |. 8>mov edx, dword ptr ds:[ebx+64]
004D64A1 |. 8>mov eax, dword ptr ds:[ebx+24]
004D64A4 |. 2>sub eax, dword ptr ss:[esp+4]
004D64A8 |. E>call WebCam.004D3DC8
004D64AD |. 8>mov edx, eax
004D64AF |. C>shr edx, 18
004D64B2 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D64B5 |. 8>mov ecx, eax
004D64B7 |. C>shr ecx, 10
004D64BA |. 8>and ecx, 0FF
004D64C0 |. 0>add edx, dword ptr ds:[edi+ecx*4]
004D64C3 |. 8>mov ecx, eax
004D64C5 |. C>shr ecx, 8
004D64C8 |. 8>and ecx, 0FF
004D64CE |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D64D4 |. 3>xor edx, dword ptr ss:[ebp+ecx*4]
004D64D8 |. 2>and eax, 0FF
004D64DD |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D64E3 |. 2>sub edx, dword ptr ds:[ecx+eax*4]
004D64E6 |. 3>xor dword ptr ss:[esp+8], edx
004D64EA |. 8>mov edx, dword ptr ds:[ebx+60]
004D64ED |. 8>mov eax, dword ptr ds:[ebx+20]
004D64F0 |. 3>xor eax, dword ptr ss:[esp+8]
004D64F4 |. E>call WebCam.004D3DC8
004D64F9 |. 8>mov edx, eax
004D64FB |. C>shr edx, 18
004D64FE |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6501 |. 8>mov ecx, eax
004D6503 |. C>shr ecx, 10
004D6506 |. 8>and ecx, 0FF
004D650C |. 2>sub edx, dword ptr ds:[edi+ecx*4]
004D650F |. 8>mov ecx, eax
004D6511 |. C>shr ecx, 8
004D6514 |. 8>and ecx, 0FF
004D651A |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6520 |. 0>add edx, dword ptr ss:[ebp+ecx*4]
004D6524 |. 2>and eax, 0FF
004D6529 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D652F |. 3>xor edx, dword ptr ds:[ecx+eax*4]
004D6532 |. 3>xor dword ptr ss:[esp+4], edx
004D6536 |. 8>mov edx, dword ptr ds:[ebx+5C]
004D6539 |. 8>mov eax, dword ptr ds:[ebx+1C]
004D653C |. 0>add eax, dword ptr ss:[esp+4]
004D6540 |. E>call WebCam.004D3DC8
004D6545 |. 8>mov edx, eax
004D6547 |. C>shr edx, 18
004D654A |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D654D |. 8>mov ecx, eax
004D654F |. C>shr ecx, 10
004D6552 |. 8>and ecx, 0FF
004D6558 |. 3>xor edx, dword ptr ds:[edi+ecx*4]
004D655B |. 8>mov ecx, eax
004D655D |. C>shr ecx, 8
004D6560 |. 8>and ecx, 0FF
004D6566 |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D656C |. 2>sub edx, dword ptr ss:[ebp+ecx*4]
004D6570 |. 2>and eax, 0FF
004D6575 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D657B |. 0>add edx, dword ptr ds:[ecx+eax*4]
004D657E |. 3>xor dword ptr ss:[esp+8], edx
004D6582 |. 8>mov edx, dword ptr ds:[ebx+58]
004D6585 |. 8>mov eax, dword ptr ds:[ebx+18]
004D6588 |. 2>sub eax, dword ptr ss:[esp+8]
004D658C |. E>call WebCam.004D3DC8
004D6591 |. 8>mov edx, eax
004D6593 |. C>shr edx, 18
004D6596 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6599 |. 8>mov ecx, eax
004D659B |. C>shr ecx, 10
004D659E |. 8>and ecx, 0FF
004D65A4 |. 0>add edx, dword ptr ds:[edi+ecx*4]
004D65A7 |. 8>mov ecx, eax
004D65A9 |. C>shr ecx, 8
004D65AC |. 8>and ecx, 0FF
004D65B2 |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D65B8 |. 3>xor edx, dword ptr ss:[ebp+ecx*4]
004D65BC |. 2>and eax, 0FF
004D65C1 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D65C7 |. 2>sub edx, dword ptr ds:[ecx+eax*4]
004D65CA |. 3>xor dword ptr ss:[esp+4], edx
004D65CE |. 8>mov edx, dword ptr ds:[ebx+54]
004D65D1 |. 8>mov eax, dword ptr ds:[ebx+14]
004D65D4 |. 3>xor eax, dword ptr ss:[esp+4]
004D65D8 |. E>call WebCam.004D3DC8
004D65DD |. 8>mov edx, eax
004D65DF |. C>shr edx, 18
004D65E2 |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D65E5 |. 8>mov ecx, eax
004D65E7 |. C>shr ecx, 10
004D65EA |. 8>and ecx, 0FF
004D65F0 |. 2>sub edx, dword ptr ds:[edi+ecx*4]
004D65F3 |. 8>mov ecx, eax
004D65F5 |. C>shr ecx, 8
004D65F8 |. 8>and ecx, 0FF
004D65FE |. 8>mov ebp, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6604 |. 0>add edx, dword ptr ss:[ebp+ecx*4]
004D6608 |. 2>and eax, 0FF
004D660D |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D6613 |. 3>xor edx, dword ptr ds:[ecx+eax*4]
004D6616 |. 3>xor dword ptr ss:[esp+8], edx
004D661A |. 8>mov edx, dword ptr ds:[ebx+50]
004D661D |. 8>mov eax, dword ptr ds:[ebx+10]
004D6620 |. 0>add eax, dword ptr ss:[esp+8]
004D6624 |. E>call WebCam.004D3DC8
004D6629 |. 8>mov edx, eax
004D662B |. C>shr edx, 18
004D662E |. 8>mov edx, dword ptr ds:[esi+edx*4]
004D6631 |. 8>mov ecx, eax
004D6633 |. C>shr ecx, 10
004D6636 |. 8>and ecx, 0FF
004D663C |. 3>xor edx, dword ptr ds:[edi+ecx*4]
004D663F |. 8>mov ecx, eax
004D6641 |. C>shr ecx, 8
004D6644 |. 8>and ecx, 0FF
004D664A |. 8>mov ebx, dword ptr ds:[6664F8] ; WebCam.0065F884
004D6650 |. 2>sub edx, dword ptr ds:[ebx+ecx*4]
004D6653 |. 2>and eax, 0FF
004D6658 |. 8>mov ecx, dword ptr ds:[6660C8] ; WebCam.00660084
004D665E |. 0>add edx, dword ptr ds:[ecx+eax*4]
004D6661 |. 3>xor dword ptr ss:[esp+4], edx ; 运算完毕
004D6665 |. 8>mov eax, dword ptr ss:[esp+4]
004D6669 |. C>shr eax, 18
004D666C |. 8>mov edx, dword ptr ss:[esp+4]
004D6670 |. C>shr edx, 8
004D6673 |. 8>and edx, 0FF00
004D6679 |. 0>or eax, edx
004D667B |. 8>mov edx, dword ptr ss:[esp+4]
004D667F |. C>shl edx, 8
004D6682 |. 8>and edx, 0FF0000
004D6688 |. 0>or eax, edx
004D668A |. 8>mov edx, dword ptr ss:[esp+4]
004D668E |. C>shl edx, 18
004D6691 |. 0>or eax, edx
004D6693 |. 8>mov dword ptr ss:[esp+4], eax
004D6697 |. 8>mov eax, dword ptr ss:[esp+8]
004D669B |. C>shr eax, 18
004D669E |. 8>mov edx, dword ptr ss:[esp+8]
004D66A2 |. C>shr edx, 8
004D66A5 |. 8>and edx, 0FF00
004D66AB |. 0>or eax, edx
004D66AD |. 8>mov edx, dword ptr ss:[esp+8]
004D66B1 |. C>shl edx, 8
004D66B4 |. 8>and edx, 0FF0000
004D66BA |. 0>or eax, edx
004D66BC |. 8>mov edx, dword ptr ss:[esp+8]
004D66C0 |. C>shl edx, 18
004D66C3 |. 0>or eax, edx
004D66C5 |. 8>mov dword ptr ss:[esp+8], eax
004D66C9 |. 8>mov edx, dword ptr ss:[esp] ; 翻转一下
004D66CC |. 8>lea eax, dword ptr ss:[esp+4]
004D66D0 |. B>mov ecx, 4
004D66D5 |. E>call WebCam.004029DC
004D66DA |. 8>mov edx, dword ptr ss:[esp]
004D66DD |. 8>add edx, 4
004D66E0 |. 8>lea eax, dword ptr ss:[esp+8]
004D66E4 |. B>mov ecx, 4
004D66E9 |. E>call WebCam.004029DC
004D66EE |. 8>add esp, 0C
004D66F1 |. 5>pop ebp
004D66F2 |. 5>pop edi
004D66F3 |. 5>pop esi
004D66F4 |. 5>pop ebx
004D66F5 \. C>ret
static private int getInt(int s, int x, int p) {
int tag = 0;
int k = 1;
int format = format2(x, p) * 4;
for (int j = 0; j < 4; j++) {
switch (s) {
case 5:
tag = tag + mapOther.key_edi[format + j] * k;
break;
case 6:
tag = tag + mapOther.key_ebp[format + j] * k;
break;
case 7:
tag = tag + mapOther.key_esi[format + j] * k;
break;
case 8:
tag = tag + mapOther.key_ecx[format + j] * k;
break;
}
k *= 0x100;
}
return tag;
}
mapOther.key_edi[]
mapOther.key_ebp[]
mapOther.key_esi[]
mapOther.key_ecx[]
这四个map是从程序中找到的一段数据,当做字典用了
static public int math_end(int[] into, int user1, int user2) { <===== 注册码的两段,每段8位,
int[] result = into; <===== 这就是先前得到的 Map[32] ;
int edx, eax;
int k = 0;
for (int i = 0; i < 4; i++) {
eax = rol(result[11 - k] - user2, result[27 - k]);
user1 ^= ((getInt(7, eax, 1) + getInt(5, eax, 2)) ^ getInt(6, eax, 3)) - getInt(8, eax, 4);
eax = rol(result[10 - k] ^ user1, result[26 - k]);
user2 ^= ((getInt(7, eax, 1) - getInt(5, eax, 2)) + getInt(6, eax, 3)) ^ getInt(8, eax, 4);
eax = rol(result[9 - k] + user2, result[25 - k]);
user1 ^= ((getInt(7, eax, 1) ^ getInt(5, eax, 2)) - getInt(6, eax, 3)) + getInt(8, eax, 4);
k += 3;
int tmp;
tmp = user1;
user1 = user2;
user2 = tmp;
}
return user2; <===== 我们将得到一个 keyV,如果keyV = key1 则认证通过 ,key1 是最前面用户名得到的
}
也就是说 如果 key1=math_end(Map[32],ser1,ser2) 则认证通过,key1和Map[32]是已经知道的,现在要获得ser1和ser2
所以我无法得到注册码,有兴趣大家帮我看看如何算出注册码吧,密码学? 爆破就不谈了
附件:maps.rar ===============================================================
结束了,到这里终于意识到有些事真的是无法挽回的,我需要重新开始新的生活
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
- [分享] 再次登录进来,世界已变,初心仍在 18094
- [注意]"搜索"似乎会引起排版问题 4184
- [求助]为啥我浏览的版面有问题? 2981
- [建议]RSS是否可以完善些? 4074
- [讨论]Security Administrator --不用在意 4873
看原图
赞赏
雪币:
留言: