-
-
[求助]大神帮忙看看这是什么算法
-
发表于: 2018-5-30 14:15 2296
-
684C17C0 55 push ebp 684C17C1 8BEC mov ebp,esp 684C17C3 8B45 10 mov eax,dword ptr ss:[ebp+0x10] ; 数据长度默认8000 684C17C6 53 push ebx 684C17C7 56 push esi 684C17C8 57 push edi 684C17C9 8B7D 18 mov edi,dword ptr ss:[ebp+0x18] 684C17CC 8BF1 mov esi,ecx 684C17CE 8BCF mov ecx,edi 684C17D0 C1E9 03 shr ecx,0x3 ; >> 3 = 1000 684C17D3 894D 14 mov dword ptr ss:[ebp+0x14],ecx 684C17D6 85C9 test ecx,ecx 684C17D8 0F84 71010000 je cloudm_1.684C194F 684C17DE 8B7D 0C mov edi,dword ptr ss:[ebp+0xC] 684C17E1 8B4D 08 mov ecx,dword ptr ss:[ebp+0x8] 684C17E4 894D 0C mov dword ptr ss:[ebp+0xC],ecx 684C17E7 FEC0 inc al 684C17E9 0FB6C8 movzx ecx,al 684C17EC 8A1C31 mov bl,byte ptr ds:[ecx+esi] ; 密钥b1 = Box[esi]长度未知... 684C17EF 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C17F2 FEC0 inc al 684C17F4 0FB6C9 movzx ecx,cl 684C17F7 0FB61431 movzx edx,byte ptr ds:[ecx+esi] ; 密钥b2 = Box[ecx]长度未知 684C17FB 0FB6CB movzx ecx,bl 684C17FE 03D1 add edx,ecx 684C1800 81E2 FF000000 and edx,0xFF ; p = (b1 + b2) & 0xff 684C1806 0FB60C32 movzx ecx,byte ptr ds:[edx+esi] ; ecx = Box[p] 684C180A 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C180D 320A xor cl,byte ptr ds:[edx] ; 原始数据 ^= ecx 684C180F 880F mov byte ptr ds:[edi],cl 684C1811 0FB6C8 movzx ecx,al 684C1814 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C1817 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C181A FEC0 inc al 684C181C 0FB6C9 movzx ecx,cl 684C181F 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C1823 0FB6CB movzx ecx,bl 684C1826 03D1 add edx,ecx 684C1828 81E2 FF000000 and edx,0xFF 684C182E 0FB60C32 movzx ecx,byte ptr ds:[edx+esi] 684C1832 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C1835 324A 01 xor cl,byte ptr ds:[edx+0x1] 684C1838 884F 01 mov byte ptr ds:[edi+0x1],cl 684C183B 0FB6C8 movzx ecx,al 684C183E 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C1841 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C1844 FEC0 inc al 684C1846 0FB6C9 movzx ecx,cl 684C1849 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C184D 0FB6CB movzx ecx,bl 684C1850 03D1 add edx,ecx 684C1852 81E2 FF000000 and edx,0xFF 684C1858 0FB60C32 movzx ecx,byte ptr ds:[edx+esi] 684C185C 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C185F 324A 02 xor cl,byte ptr ds:[edx+0x2] 684C1862 884F 02 mov byte ptr ds:[edi+0x2],cl 684C1865 0FB6C8 movzx ecx,al 684C1868 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C186B 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C186E FEC0 inc al 684C1870 0FB6C9 movzx ecx,cl 684C1873 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C1877 0FB6CB movzx ecx,bl 684C187A 03D1 add edx,ecx 684C187C 81E2 FF000000 and edx,0xFF 684C1882 0FB60C32 movzx ecx,byte ptr ds:[edx+esi] 684C1886 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C1889 324A 03 xor cl,byte ptr ds:[edx+0x3] 684C188C 884F 03 mov byte ptr ds:[edi+0x3],cl 684C188F 0FB6C8 movzx ecx,al 684C1892 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C1895 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C1898 FEC0 inc al 684C189A 0FB6C9 movzx ecx,cl 684C189D 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C18A1 0FB6CB movzx ecx,bl 684C18A4 03D1 add edx,ecx 684C18A6 81E2 FF000000 and edx,0xFF 684C18AC 0FB60C32 movzx ecx,byte ptr ds:[edx+esi] 684C18B0 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C18B3 324A 04 xor cl,byte ptr ds:[edx+0x4] 684C18B6 884F 04 mov byte ptr ds:[edi+0x4],cl 684C18B9 0FB6C8 movzx ecx,al 684C18BC 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C18BF 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C18C2 0FB6C9 movzx ecx,cl 684C18C5 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C18C9 0FB6CB movzx ecx,bl 684C18CC 03D1 add edx,ecx 684C18CE 81E2 FF000000 and edx,0xFF 684C18D4 0FB60C32 movzx ecx,byte ptr ds:[edx+esi] 684C18D8 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C18DB 324A 05 xor cl,byte ptr ds:[edx+0x5] 684C18DE FEC0 inc al 684C18E0 884F 05 mov byte ptr ds:[edi+0x5],cl 684C18E3 0FB6C8 movzx ecx,al 684C18E6 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C18E9 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C18EC FEC0 inc al 684C18EE 0FB6C9 movzx ecx,cl 684C18F1 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C18F5 0FB6CB movzx ecx,bl 684C18F8 03D1 add edx,ecx 684C18FA 81E2 FF000000 and edx,0xFF 684C1900 0FB60C32 movzx ecx,byte ptr ds:[edx+esi] 684C1904 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C1907 324A 06 xor cl,byte ptr ds:[edx+0x6] 684C190A 884F 06 mov byte ptr ds:[edi+0x6],cl 684C190D 0FB6C8 movzx ecx,al 684C1910 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C1913 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C1916 0FB6C9 movzx ecx,cl 684C1919 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C191D 0FB6CB movzx ecx,bl 684C1920 03D1 add edx,ecx 684C1922 81E2 FF000000 and edx,0xFF 684C1928 0FB60C32 movzx ecx,byte ptr ds:[edx+esi] 684C192C 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C192F 324A 07 xor cl,byte ptr ds:[edx+0x7] 684C1932 83C2 08 add edx,0x8 684C1935 884F 07 mov byte ptr ds:[edi+0x7],cl 684C1938 83C7 08 add edi,0x8 684C193B FF4D 14 dec dword ptr ss:[ebp+0x14] 684C193E 8955 0C mov dword ptr ss:[ebp+0xC],edx 684C1941 ^ 0F85 A0FEFFFF jnz cloudm_1.684C17E7 684C1947 897D 14 mov dword ptr ss:[ebp+0x14],edi 684C194A 8B7D 18 mov edi,dword ptr ss:[ebp+0x18] 684C194D EB 0C jmp Xcloudm_1.684C195B 684C194F 8B4D 0C mov ecx,dword ptr ss:[ebp+0xC] 684C1952 894D 14 mov dword ptr ss:[ebp+0x14],ecx 684C1955 8B4D 08 mov ecx,dword ptr ss:[ebp+0x8] 684C1958 894D 0C mov dword ptr ss:[ebp+0xC],ecx 684C195B 83E7 07 and edi,0x7 684C195E 0F84 8C010000 je cloudm_1.684C1AF0 684C1964 FEC0 inc al 684C1966 0FB6C8 movzx ecx,al 684C1969 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C196C 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C196F 0FB6C9 movzx ecx,cl 684C1972 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C1976 0FB6CB movzx ecx,bl 684C1979 03D1 add edx,ecx 684C197B 81E2 FF000000 and edx,0xFF 684C1981 8A0C32 mov cl,byte ptr ds:[edx+esi] 684C1984 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C1987 320A xor cl,byte ptr ds:[edx] 684C1989 8B55 14 mov edx,dword ptr ss:[ebp+0x14] 684C198C 880A mov byte ptr ds:[edx],cl 684C198E 4F dec edi 684C198F 0F84 5B010000 je cloudm_1.684C1AF0 684C1995 FEC0 inc al 684C1997 0FB6C8 movzx ecx,al 684C199A 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C199D 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C19A0 0FB6C9 movzx ecx,cl 684C19A3 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C19A7 0FB6CB movzx ecx,bl 684C19AA 03D1 add edx,ecx 684C19AC 81E2 FF000000 and edx,0xFF 684C19B2 8A0C32 mov cl,byte ptr ds:[edx+esi] 684C19B5 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C19B8 324A 01 xor cl,byte ptr ds:[edx+0x1] 684C19BB 8B55 14 mov edx,dword ptr ss:[ebp+0x14] 684C19BE 884A 01 mov byte ptr ds:[edx+0x1],cl 684C19C1 4F dec edi 684C19C2 0F84 28010000 je cloudm_1.684C1AF0 684C19C8 FEC0 inc al 684C19CA 0FB6C8 movzx ecx,al 684C19CD 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C19D0 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C19D3 0FB6C9 movzx ecx,cl 684C19D6 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C19DA 0FB6CB movzx ecx,bl 684C19DD 03D1 add edx,ecx 684C19DF 81E2 FF000000 and edx,0xFF 684C19E5 8A0C32 mov cl,byte ptr ds:[edx+esi] 684C19E8 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C19EB 324A 02 xor cl,byte ptr ds:[edx+0x2] 684C19EE 8B55 14 mov edx,dword ptr ss:[ebp+0x14] 684C19F1 884A 02 mov byte ptr ds:[edx+0x2],cl 684C19F4 4F dec edi 684C19F5 0F84 F5000000 je cloudm_1.684C1AF0 684C19FB FEC0 inc al 684C19FD 0FB6C8 movzx ecx,al 684C1A00 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C1A03 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C1A06 0FB6C9 movzx ecx,cl 684C1A09 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C1A0D 0FB6CB movzx ecx,bl 684C1A10 03D1 add edx,ecx 684C1A12 81E2 FF000000 and edx,0xFF 684C1A18 8A0C32 mov cl,byte ptr ds:[edx+esi] 684C1A1B 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C1A1E 324A 03 xor cl,byte ptr ds:[edx+0x3] 684C1A21 8B55 14 mov edx,dword ptr ss:[ebp+0x14] 684C1A24 884A 03 mov byte ptr ds:[edx+0x3],cl 684C1A27 4F dec edi 684C1A28 0F84 C2000000 je cloudm_1.684C1AF0 684C1A2E FEC0 inc al 684C1A30 0FB6C8 movzx ecx,al 684C1A33 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C1A36 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C1A39 0FB6C9 movzx ecx,cl 684C1A3C 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C1A40 0FB6CB movzx ecx,bl 684C1A43 03D1 add edx,ecx 684C1A45 81E2 FF000000 and edx,0xFF 684C1A4B 8A0C32 mov cl,byte ptr ds:[edx+esi] 684C1A4E 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C1A51 324A 04 xor cl,byte ptr ds:[edx+0x4] 684C1A54 8B55 14 mov edx,dword ptr ss:[ebp+0x14] 684C1A57 884A 04 mov byte ptr ds:[edx+0x4],cl 684C1A5A 4F dec edi 684C1A5B 0F84 8F000000 je cloudm_1.684C1AF0 684C1A61 FEC0 inc al 684C1A63 0FB6C8 movzx ecx,al 684C1A66 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C1A69 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C1A6C 0FB6C9 movzx ecx,cl 684C1A6F 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C1A73 0FB6CB movzx ecx,bl 684C1A76 03D1 add edx,ecx 684C1A78 81E2 FF000000 and edx,0xFF 684C1A7E 8A0C32 mov cl,byte ptr ds:[edx+esi] 684C1A81 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C1A84 324A 05 xor cl,byte ptr ds:[edx+0x5] 684C1A87 8B55 14 mov edx,dword ptr ss:[ebp+0x14] 684C1A8A 884A 05 mov byte ptr ds:[edx+0x5],cl 684C1A8D 4F dec edi 684C1A8E 74 60 je Xcloudm_1.684C1AF0 684C1A90 FEC0 inc al 684C1A92 0FB6C8 movzx ecx,al 684C1A95 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C1A98 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C1A9B 0FB6C9 movzx ecx,cl 684C1A9E 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C1AA2 0FB6CB movzx ecx,bl 684C1AA5 03D1 add edx,ecx 684C1AA7 81E2 FF000000 and edx,0xFF 684C1AAD 8A0C32 mov cl,byte ptr ds:[edx+esi] 684C1AB0 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C1AB3 324A 06 xor cl,byte ptr ds:[edx+0x6] 684C1AB6 8B55 14 mov edx,dword ptr ss:[ebp+0x14] 684C1AB9 884A 06 mov byte ptr ds:[edx+0x6],cl 684C1ABC 4F dec edi 684C1ABD 74 31 je Xcloudm_1.684C1AF0 684C1ABF FEC0 inc al 684C1AC1 0FB6C8 movzx ecx,al 684C1AC4 8A1C31 mov bl,byte ptr ds:[ecx+esi] 684C1AC7 8D0C18 lea ecx,dword ptr ds:[eax+ebx] 684C1ACA 0FB6C9 movzx ecx,cl 684C1ACD 0FB61431 movzx edx,byte ptr ds:[ecx+esi] 684C1AD1 0FB6CB movzx ecx,bl 684C1AD4 03D1 add edx,ecx 684C1AD6 81E2 FF000000 and edx,0xFF 684C1ADC 8A0C32 mov cl,byte ptr ds:[edx+esi] 684C1ADF 8B55 0C mov edx,dword ptr ss:[ebp+0xC] 684C1AE2 320A xor cl,byte ptr ds:[edx] 684C1AE4 8B55 14 mov edx,dword ptr ss:[ebp+0x14] 684C1AE7 880A mov byte ptr ds:[edx],cl 684C1AE9 4F dec edi 684C1AEA ^ 0F85 A5FEFFFF jnz cloudm_1.684C1995 684C1AF0 5F pop edi 684C1AF1 5E pop esi 684C1AF2 5B pop ebx 684C1AF3 5D pop ebp 684C1AF4 C2 1400 retn 0x14
密钥Box生成算法
static byte[] InitKeyBox(string key) { byte[] box = new byte[256]; for (int i = 0; i < 256; i++) { box[i] = (byte)i; } byte lastByte = 0; byte swap = 0; byte c = 0; byte keyOffset = 0; for (int i = 0; i < 256; i++) { swap = box[i]; c = (byte)((swap + lastByte + key[keyOffset++]) & 0xff); keyOffset = keyOffset >= key.Length ? (byte)0 : keyOffset; box[i] = box[c]; box[c] = swap; lastByte = c; } File.WriteAllBytes("box.bin", box); return box; }
上面是小弟粗浅分析的结果可能有不对的地. 但应该是8bytes为一组的处理方式 目前就是不知道这个是什么算法 求大神指点.
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2018-5-31 01:57
被KXXPJ编辑
,原因: 更新密钥Box生成算法
赞赏
他的文章
- [求助] 一种可能基于时间变化的混合算法 8895
- [求助]大神帮忙看看这是什么算法 2297
- [求助]有个E的程序我苦苦寻找按钮的入口点 1676
看原图
赞赏
雪币:
留言: