逆向反汇编基础之十六:少了个0x05,浪费1小时,汇编指令BOUND会被历史遗忘么?

今天拿到此CM无壳还OK,虽然简单的壳很好玩,但是重的壳我等菜如何招架~

话说回来..

此CM算法一般,自反汇编一下就知道,实在不行你就跟踪下也能知道,再不行你就跟踪几次肯定能知道.我们今天要说的是反汇编中一个特殊的指令~

此CM最大区别在于在反汇编中用到BOUND指令~

看此处:

/*****************************************************************************/

00427AC0  |. |B9 0A000000   |mov     ecx, 0A                         ;  0x0A
00427AC5  |. |99            |cdq
00427AC6  |. |F7F9          |idiv    ecx                             ;  /10?
00427AC8  |. |6215 3C7B4200 |bound edx, qword ptr [427B3C]
/*看这句代码 可知道 bound 是双操作数的指令/*
/*稍微往下看,[427B3C]处…发现什么?是00 00 00 00 0C 00 00 00*/
/*一堆0忽略 我们看0x0C,0x0C=12,12是啥?12正是我们算法序列中的一个数组数量~*/
/*换言之,bound指令的作用就是检查数组,获取(offse[数组]):[edx]处的元素~*/
/*分析到这里bound的作用应该一目了然了吧~*/
00427ACE  |. |8A92 84884200 |mov     dl, byte ptr [edx+428884]
00427AD4  |. |8D45 F0       |lea     eax, dword ptr [ebp-10]
00427AD7  |. |E8 FCBBFDFF   |call    004036D8
00427ADC  |. |8B55 F0       |mov     edx, dword ptr [ebp-10]
00427ADF  |. |8D45 F4       |lea     eax, dword ptr [ebp-C]
00427AE2  |. |E8 D1BCFDFF   |call    004037B8
00427AE7  |. |8BC3          |mov     eax, ebx
00427AE9  |. |B9 0A000000   |mov     ecx, 0A
00427AEE  |. |99            |cdq
00427AEF  |. |F7F9          |idiv    ecx
00427AF1  |. |8BD8          |mov     ebx, eax
00427AF3  |. |4E            |dec     esi
00427AF4  |.^\75 C8         \jnz     short 00427ABE
00427AF6  |>  8B45 F4       mov     eax, dword ptr [ebp-C]
00427AF9  |.  8B55 F8       mov     edx, dword ptr [ebp-8]
00427AFC  |.  E8 BFBDFDFF   call    004038C0
00427B01  |.  75 07         jnz     short 00427B0A
00427B03  |.  BB 4E61BC00   mov     ebx, 0BC614E
00427B08  |.  EB 05         jmp     short 00427B0F
00427B0A  |>  BB 91D61200   mov     ebx, 12D691
00427B0F  |>  33C0          xor     eax, eax
00427B11  |.  5A            pop     edx
00427B12  |.  59            pop     ecx
00427B13  |.  59            pop     ecx
00427B14  |.  64:8910       mov     dword ptr fs:[eax], edx
00427B17  |.  68 317B4200   push    00427B31
00427B1C  |>  8D45 F0       lea     eax, dword ptr [ebp-10]
00427B1F  |.  BA 04000000   mov     edx, 4
00427B24  |.  E8 2FBAFDFF   call    00403558
00427B29  \.  C3            retn
00427B2A   .^ E9 A9B4FDFF   jmp     00402FD8
00427B2F   .^ EB EB         jmp     short 00427B1C
00427B31   .  8BC3          mov     eax, ebx
00427B33   .  5E            pop     esi
00427B34   .  5B            pop     ebx
00427B35   .  8BE5          mov     esp, ebp
00427B37   .  5D            pop     ebp
00427B38   .  C3            retn
00427B39      00            db      00
00427B3A      00            db      00
00427B3B      00            db      00
00427B3C      00            db      00
00427B3D      00            db      00
00427B3E      00            db      00
00427B3F      00            db      00
00427B40      0C            db      0C
00427B41      00            db      00
00427B42      00            db      00
00427B43      00            db      00
/*****************************************************************************/

一组可用KEY:

ShadowKong

N6N465AA5A

http://dl.dbank.com/c0cn87dscz

发表评论

邮箱地址不会被公开。 必填项已用*标注