首页 电脑 电脑学堂 查看内容

Pespin v1.0外壳完全分析

2005-4-14 11:41 951 0

摘要: 【目    标】: PeSpin 1.0主程序 【工    具】:Olydbg1.1 【任    务】:抓...
关键词: nbsp 004100 SHORT DWORD PTR NOP 004101 EBX ECX 代码

【目    标】: PeSpin 1.0主程序 【工    具】:Olydbg1.1 【任    务】:抓它的衣服个光光.哈哈 【操作平台】:WINXP pro sp1 【作    者】:loveboom[DFCG][FCG][US] 【相关链接】: http://pespin.w.interia.pl/(作者的官方站点) 【简要说明】:不知不觉就过了这么久了,很久没写什么文章。看到别的朋友们在不断的进步,我都感觉自己是不是真的老了哦:-).写这篇文章也算是给大家中秋节的一个礼物吧,祝大家中秋快乐!身体健康!工作顺利!! 【详细过程】: 设置没什么特别,因为这次想稍微看细一点,所以是慢慢的来跟。打开全部的异常就行了。 00410087 >  90              NOP                                      ; EP,壳入口,是垃圾代码,所以我直接nop掉它了 00410088    90              NOP 00410089    90              NOP 0041008A    60              PUSHAD 0041008B    E8 00000000     CALL 00410090 00410090    8B1C24          MOV EBX,DWORD PTR SS:[ESP]               ; 这里就就是pop ebx 00410093    83C3 12         ADD EBX,12 00410096    812B E8B10600   SUB DWORD PTR DS:[EBX],6B1E8             ; 这里开始就动态改变代码 0041009C    FE4B FD         DEC BYTE PTR DS:[EBX-3] 0041009F    812C24 E02A4000 SUB DWORD PTR SS:[ESP],00402AE0 004100A6    DC9E 83B17501   FCOMP QWORD PTR DS:[ESI+175B183] 004100AC    90              NOP 004100AD    8173 04 D77AF72>XOR DWORD PTR DS:[EBX+4],2FF77AD7        ; 又是动态生成代码 004100B4    8173 19 770043B>XOR DWORD PTR DS:[EBX+19],B7430077 004100BB    81C3 28000000   ADD EBX,28 004100C1    F9              STC                                      ; 设置C标志 004100C2    FFE3            JMP EBX 004100C4    C9              LEAVE 004100C5    C2 0800         RETN 8 004100C8    90              NOP 004100C9    90              NOP 004100CA    72 01           JB SHORT 004100CD                        ; 其实就是jmp xxx,因为上面已经设置了C标志 004100CC    90              NOP 004100CD    5D              POP EBP 004100CE    33C9            XOR ECX,ECX 004100D0    41              INC ECX 004100D1    E2 17           LOOPD SHORT 004100EA 004100D3   /EB 07           JMP SHORT 004100DC 004100D5   |90              NOP 004100D6   |EB 01           JMP SHORT 004100D9 004100D8   |90              NOP 004100D9   |EB 0D           JMP SHORT 004100E8 004100DB   |90              NOP 004100DC   \E8 01000000     CALL 004100E2 004100E1    90              NOP 004100E2    5A              POP EDX 004100E3    83EA 0B         SUB EDX,0B 004100E6    FFE2            JMP EDX                                  ; 这个壳里好多这样的东西哦 004100F1    8B95 D2424000   MOV EDX,DWORD PTR SS:[EBP+4042D2]        ; [EBP+4042D2]=4042d2+d5b0处存放的就是程序的IMGBASE 004100F7    8B42 3C         MOV EAX,DWORD PTR DS:[EDX+3C]            ; 这里不就是取PE所以在的地方+3C 004100FA    03C2            ADD EAX,EDX                              ; 相加后就是PE文件的开始处了 004100FC    8985 DC424000   MOV DWORD PTR SS:[EBP+4042DC],EAX        ; PE文件开始处4000D0处入[EBP+4042DC]处 00410102    EB 02           JMP SHORT 00410106 00410104    90              NOP 00410105    90              NOP 00410106    F9              STC                                      ; 这里也是明显的变形jmp 00410107    72 08           JB SHORT 00410111 00410109    73 0E           JNB SHORT 00410119 0041010B    F9              STC 0041010C    830424 17       ADD DWORD PTR SS:[ESP],17 00410110    C3              RETN 00410111    E8 04000000     CALL 0041011A 00410116    90              NOP 00410117    F5              CMC 00410118    73 11           JNB SHORT 0041012B                       ; 又是一堆垃圾代码 0041011A    EB 06           JMP SHORT 00410122 0041011C    90              NOP 0041011D  ^ 72 ED           JB SHORT 0041010C 0041011F    1F              POP DS                                   ; Modification of segment register 00410120    EB 07           JMP SHORT 00410129 00410122    F5              CMC                                      ; 这里也就是清除c标志,所以下面也不会跳(实际是取反) 00410123    72 0E           JB SHORT 00410133 00410125    F5              CMC                                      ; 再次取反,这次下面就会跳了 00410126  ^ 72 F8           JB SHORT 00410120 00410128    90              NOP 00410129  ^ EB EC           JMP SHORT 00410117 0041012B    830424 07       ADD DWORD PTR SS:[ESP],7 0041012F    F5              CMC 00410130    FF3424          PUSH DWORD PTR SS:[ESP]                  ; PESpin.0041011D 00410133    C3              RETN   00410134    41              INC ECX 00410135    C1E1 07         SHL ECX,7 00410138    8B0C01          MOV ECX,DWORD PTR DS:[ECX+EAX]           ; 取code段的start address 0041013B    03CA            ADD ECX,EDX                              ; ecx就是保存CODE段的开始RVA …… 0041014E    8B59 10         MOV EBX,DWORD PTR DS:[ECX+10] 00410151    03DA            ADD EBX,EDX 00410153    8B1B            MOV EBX,DWORD PTR DS:[EBX] 00410155    899D F0424000   MOV DWORD PTR SS:[EBP+4042F0],EBX        ; [EBP+4042F0]存放MessageBox的地址? 0041015B    53              PUSH EBX 0041015C    8F85 94414000   POP DWORD PTR SS:[EBP+404194]            ; [EBP+404194]存放MessageBox的地址? 00410162    BB E1000000     MOV EBX,0E1 00410167    B9 8C0B0000     MOV ECX,0B8C                             ; 传入要解压的SIZE 0041016C    8DBD 80434000   LEA EDI,DWORD PTR SS:[EBP+404380] 00410172    4F              DEC EDI 00410173    EB 01           JMP SHORT 00410176 00410175    90              NOP 00410176    301C39          XOR BYTE PTR DS:[ECX+EDI],BL             ; 从4124BB处开始解压大小为0b8c的代码,是向上解压 00410179    FECB            DEC BL 0041017B  ^ E2 F9           LOOPD SHORT 00410176 …… 00410180    68 CB000000     PUSH 0CB 00410185    59              POP ECX                                  ; mov ecx,0cb 00410186    8DBD 404E4000   LEA EDI,DWORD PTR SS:[EBP+404E40]        ; 把刚才解压后的起始地址41192F传人EDI …… 0041019D    C00C39 02       ROR BYTE PTR DS:[ECX+EDI],2              ; 41192f+0CB=4124bb(上面的结束地址)处的值ror 2 004101A1  ^ E2 FA           LOOPD SHORT 0041019D                     ; 这里再次从4124BB处解压大小为0CB的代码 …… 004101A1  ^\E2 FA           LOOPD SHORT 0041019D                       ; 这里再次从4124BB处解压大小为0CB的代码 004101A3    E8 02000000     CALL 004101AA                              ; 到这里还是只解压壳的部分代码 004101A8    90              NOP 004101A9    90              NOP 004101AA    5A              POP EDX                                    ; mov edx,401A8 004101AB    8D85 FD685600   LEA EAX,DWORD PTR SS:[EBP+5668FD]          ; [EBP+5668FD]=D5B0+5668FD=573EAD地址入eax中 004101B1    BB 54130B00     MOV EBX,0B1354 004101B6    D1E3            SHL EBX,1 004101B8    2BC3            SUB EAX,EBX 004101BA    FFE0            JMP EAX 
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部