且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

就地取材加密

更新时间:2022-10-02 21:00:18

就地取材加密 
004754BF >  55              push    ebp
004754C0    89E5            mov     ebp, esp
004754C2    B9 08000000     mov     ecx, 0x8
004754C7    6A 00           push    0x0
004754C9    49              dec     ecx
004754CA  ^ 75 FB           jnz     short 004754C7
004754CC    8944E4 1C       mov     dword ptr [esp+0x1C], eax
004754D0    895CE4 18       mov     dword ptr [esp+0x18], ebx
004754D4    894CE4 14       mov     dword ptr [esp+0x14], ecx
004754D8    8954E4 10       mov     dword ptr [esp+0x10], edx
004754DC    8964E4 0C       mov     dword ptr [esp+0xC], esp
004754E0    896CE4 08       mov     dword ptr [esp+0x8], ebp
004754E4    8974E4 04       mov     dword ptr [esp+0x4], esi
004754E8    893CE4          mov     dword ptr [esp], edi       以上为花指令等效为pushad
004754EB    E8 00000000     call    004754F0                   从这个位置开始加密的
004754F0    5A              pop     edx
004754F1    81EA F0544700   sub     edx, 004754F0
004754F7    BB 00104000     mov     ebx, 00401000               加密的起始位置
004754FC    B9 00000300     mov     ecx, 0x30000                这个是加密的大小
00475501    03DA            add     ebx, edx
00475503    8A43 01         mov     al, byte ptr [ebx+0x1]      取得加密解密因子
00475506    3C 00           cmp     al, 0x0
00475508    74 09           je      short 00475513
0047550A    3003            xor     byte ptr [ebx], al
0047550C    43              inc     ebx
0047550D    43              inc     ebx
0047550E    49              dec     ecx
0047550F  ^ 75 F2           jnz     short 00475503              到这个位置加密或者解密结束
00475511    EB 04           jmp     short 00475517
00475513    04 02           add     al, 0x2
00475515  ^ EB F3           jmp     short 0047550A              但是加密解密代码的话包含这几句

00475517    8B44E4 1C       mov     eax, dword ptr [esp+0x1C]   以下为花指令等效为popad
0047551B    8B5CE4 18       mov     ebx, dword ptr [esp+0x18]
0047551F    8B4CE4 14       mov     ecx, dword ptr [esp+0x14]
00475523    8B54E4 10       mov     edx, dword ptr [esp+0x10]
00475527    8B64E4 0C       mov     esp, dword ptr [esp+0xC]
0047552B    8B6CE4 08       mov     ebp, dword ptr [esp+0x8]
0047552F    8B74E4 04       mov     esi, dword ptr [esp+0x4]
00475533    8B3CE4          mov     edi, dword ptr [esp]
00475536    B9 00020000     mov     ecx, 0x200
0047553B    C1E1 06         shl     ecx, 0x6
0047553E    C1E9 0C         shr     ecx, 0xC
00475541    83EC FC         sub     esp, -0x4
00475544    49              dec     ecx
00475545  ^ 75 FA           jnz     short 00475541
00475547    8B2CE4          mov     ebp, dword ptr [esp]
0047554A    B9 00020000     mov     ecx, 0x200
0047554F    C1E1 06         shl     ecx, 0x6
00475552    C1E9 0C         shr     ecx, 0xC
00475555    83E9 04         sub     ecx, 0x4
00475558    44              inc     esp
00475559    49              dec     ecx
0047555A  ^ 75 FC           jnz     short 00475558
0047555C    E8 00000000     call    00475561
00475561    812C24 F5040000 sub     dword ptr [esp], 0x4F5     本指令的地址和下一个执行点的距离
00475568    C3              retn
 


二进制:55 89 E5 B9 08 00 00 00 6A 00 49 75 FB 89 44 E4 1C 89 5C E4 18 89 4C E4 14 89 54 E4 10 89 64 E4 0C 89 6C E4 08 89 74 E4 04 89 3C E4 E8 00 00 00 00 5A 81 EA F0 54 47 00 BB 00 10 40 00 B9 00 00 03 00 03 DA 8A 43 01 3C 00 74 09 30 03 43 43 49 75 F2 EB 04 04 02 EB F3 8B 44 E4 1C 8B 5C E4 18 8B 4C E4 14 8B 54 E4 10 8B 64 E4 0C 8B 6C E4 08 8B 74 E4 04 8B 3C E4 B9 00 02 00 00 C1 E1 06 C1 E9 0C 83 EC FC 49 75 FA 8B 2C E4 B9 00 02 00 00 C1 E1 06 C1 E9 0C 83 E9 04 44 49 75 FC E8 00 00 00 00 81 2C 24 F5 04 00 00 C3

本文转自文东会博客51CTO博客,原文链接http://blog.51cto.com/hackerwang/1251302如需转载请自行联系原作者


谢文东666