首页
社区
课程
招聘
[求助]大神帮忙看看这是什么算法
发表于: 2018-5-30 14:15 2296

[求助]大神帮忙看看这是什么算法

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生成算法
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//