查看: 5366|回复: 12
收起左侧

[其他相关] 解决载入(打开)加壳病毒程序后,OD关闭退出的问题

[复制链接]
coderui
发表于 2009-3-18 10:16:52 | 显示全部楼层 |阅读模式
题目:解决载入(打开)加壳程序后,OD关闭退出的问题

编写:Coderui

邮箱:coderui@163.com

博客:http://hi.baidu.com/coderui

环境:Win XP-SP3,Ollydbg 1.10 cao_cong汉化第二版

关键字:脱壳;OD自动关闭;关闭OD;OD退出;载入后OD自动退出;打开后OD自动退出;

问题:
    前不久好象出了一款新的虚拟机加密壳(不知道是什么名字,没见过),这个壳加密过的程序不能够使用OD直接打开调试。原因是在使用OD打开时(还没有开始调试的情况下),OD会马上关闭退出,并且不会出现任何异常提示。

解决:
    昨天找了个时间研究了下这个加壳后的病毒程序样本(exe和dll版),通过多次尝试,发现了一个快速、简单的解决方法,在这里和大家分享下。
    在使用OD调试样本前,我们需要先手动去修改一下这个PE程序“导出表”中的“函数名数目”值。方法:使用“LordPE”打开要编辑的PE程序,然后依次选择[目录]->[导出表对应的“..”按钮],把“函数名数目”的值减1,并点击“保存”按钮,这样就OK了。为了好看些,您也可以把“函数数目”和“函数名数目”的值都同时减1并保存,效果一样。EXE和DLL版的程序都可以使用上述方法去解决这个问题,经过测试方法有效。

解释:
    一般情况下EXE不会加“导出表”,如果加了,就应该给出所导出的API函数。当我们打开加这个壳后的PE程序(EXE版)时,您会发现它存在“导出表”,但“导出表”中并没有导出的API函数。同时“函数数目”和“函数名数目”的值都比原PE程序设置的值大了1(如:EXE版“导出表”列表中显示了0个导出的API函数,壳将其“函数数目”和“函数名数目”的值都设置成了1;DLL版“导出表”列表中显示了0xD个导出的API函数,壳将其“函数数目”和“函数名数目”的值都设置成了0xE。)。所以我们将其减1,就OK了。被修改过的PE程序,可以正常运行,不会有任何影响。
    现在使用OD打开那个被我们修改过的加壳程序,OD就不会自动关闭退出了。这个壳内部还有很多反调试手段,极难搞,呵呵!

壳检测出自己正在被调试时,会弹出如下提示信息(点“击确”定后退出):
------------------------------------------------------
C:\Documents and Settings\coderui\桌面\090316-A-0.exe
---------------------------
A debugger has been found running in your system.Please, unload it from memory and restart your program.
---------------------------
确定   
------------------------------------------------------

壳的入口代码如下(EXE版,第一个CALL进去以后,是一个向上的JMP。):
0044CB28 > 68 4EC42D0B     PUSH 0B2DC44E
0044CB2D    E8 E15E0000     CALL 090316-A.00452A13
0044CB32    68 4EE47306     PUSH 673E44E
0044CB37    E8 A75B0000     CALL 090316-A.004526E3
0044CB3C    60              PUSHAD
0044CB3D ^ 76 A6           JBE SHORT 090316-A.0044CAE5
0044CB3F    18E8            SBB AL,CH
0044CB41    A2 17000068     MOV BYTE PTR DS:[68000017],AL
0044CB46    4E              DEC ESI
0044CB47    44              INC ESP
0044CB48    1E              PUSH DS
0044CB49    04 E8           ADD AL,0E8
0044CB4B    14 4C           ADC AL,4C
0044CB4D    0000            ADD BYTE PTR DS:[EAX],AL
0044CB4F    3F              AAS
0044CB50    2F              DAS
0044CB51    026CC7 04       ADD CH,BYTE PTR DS:[EDI+EAX*8+4]
0044CB55    24 7D           AND AL,7D
0044CB57    7B 6E           JPO SHORT 090316-A.0044CBC7
0044CB59    27              DAA
0044CB5A    01C7            ADD EDI,EAX
0044CB5C    83EC FC         SUB ESP,-4
0044CB5F ^ 0F85 D5D9FDFF   JNZ 090316-A.0042A53A
0044CB65    66:0FBAE0 0D    BT AX,0D
0044CB6A    84F4            TEST AH,DH
0044CB6C    8B3C8F          MOV EDI,DWORD PTR DS:[EDI+ECX*4]
0044CB6F    53              PUSH EBX
0044CB70    85FF            TEST EDI,EDI
0044CB72    FF3424          PUSH DWORD PTR SS:[ESP]
0044CB75    E8 4CF0FFFF     CALL 090316-A.0044BBC6
0044CB7A    E9 7B200000     JMP 090316-A.0044EBFA
0044CB7F    68 4E844B03     PUSH 34B844E
0044CB84    E8 63320000     CALL 090316-A.0044FDEC
0044CB89    12B7 37873687   ADC DH,BYTE PTR DS:[EDI+87368737]

壳的入口代码如下(DLL,第一个CALL进去以后,是一个向上的JMP。):
009E602D > 68 96FA1F6F     PUSH 6F1FFA96
009E6032    E8 A5200A00     CALL HookSys.00A880DC
009E6037    F3:A4           REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
009E6039    60              PUSHAD
009E603A    FF7424 10       PUSH DWORD PTR SS:[ESP+10]
009E603E    8B7424 30       MOV ESI,DWORD PTR SS:[ESP+30]
009E6042    66:C70424 0B41 MOV WORD PTR SS:[ESP],410B
009E6048    C70424 0395CB1B MOV DWORD PTR SS:[ESP],1BCB9503
009E604F    C60424 65       MOV BYTE PTR SS:[ESP],65
009E6053    9C              PUSHFD
009E6054    8D6424 38       LEA ESP,DWORD PTR SS:[ESP+38]
009E6058 ^ E9 D10DFFFF     JMP HookSys.009D6E2E
009E605D    68 88FA8FFC     PUSH FC8FFA88
009E6062    E8 31040A00     CALL HookSys.00A86498
009E6067    04 77           ADD AL,77
009E6069    1999 6897FA9F   SBB DWORD PTR DS:[ECX+9FFA9768],EBX
009E606F    68 E85FFF09     PUSH 9FF5FE8
009E6074    00F2            ADD DL,DH
009E6076    6E              OUTS DX,BYTE PTR ES:[EDI]                ; I/O 命令
009E6077    93              XCHG EAX,EBX
009E6078    27              DAA
009E6079    68 9BFAAFCC     PUSH CCAFFA9B
009E607E    E8 51FF0900     CALL HookSys.00A85FD4
009E6083    D023            SHL BYTE PTR DS:[EBX],1
009E6085    B7 C2           MOV BH,0C2
009E6087    52              PUSH EDX
009E6088    68 EEF94FD9     PUSH D94FF9EE
009E608D    E8 06040A00     CALL HookSys.00A86498

评分

参与人数 1经验 +15 人气 +1 收起 理由
qianwenxiang + 15 + 1 版区有你更精彩: )

查看全部评分

The EQs
发表于 2009-3-18 10:31:44 | 显示全部楼层
感谢coderui了,你说的那个样本是popwin吧,这个问题一直都困扰我很久了,现在终于有解决方法了
ximo
发表于 2009-3-18 10:31:53 | 显示全部楼层
是么?最近有这样的壳?我怎么没发现
传个样本上来看看。
zhuwg
发表于 2009-3-18 10:53:34 | 显示全部楼层
感谢coderui

http://www.52pojie.cn/thread-15368-1-1.html
VMP的Anti~

    ----Hmily
coderui
 楼主| 发表于 2009-3-18 19:10:09 | 显示全部楼层
原帖由 EQ2 于 2009-3-18 10:31 发表
感谢coderui了,你说的那个样本是popwin吧,这个问题一直都困扰我很久了,现在终于有解决方法了


客气,能解决问题就好,呵呵.
在网络上搜索了下没有解决的方法,我就自己研究了下,顺便分享给大家,呵呵!
popwin?这个是壳的名字?还是病毒的名字?
coderui
 楼主| 发表于 2009-3-18 19:12:43 | 显示全部楼层
原帖由 zhuwg 于 2009-3-18 10:53 发表
感谢coderui

http://www.52pojie.cn/thread-15368-1-1.html
VMP的Anti~

    ----Hmily


客气,呵呵.
看了下,好象不是一个东西吧?我下载不了附件.
ximo
发表于 2009-3-18 19:13:10 | 显示全部楼层
原帖由 coderui 于 2009-3-18 19:10 发表


客气,能解决问题就好,呵呵.
在网络上搜索了下没有解决的方法,我就自己研究了下,顺便分享给大家,呵呵!
popwin?这个是壳的名字?还是病毒的名字?


楼主,把你的样本传上来看看.
coderui
 楼主| 发表于 2009-3-18 19:13:46 | 显示全部楼层
原帖由 ximo 于 2009-3-18 10:31 发表
是么?最近有这样的壳?我怎么没发现
传个样本上来看看。

样本下载地址:
http://bbs.pediy.com/showthread.php?t=84016
ximo
发表于 2009-3-18 19:24:54 | 显示全部楼层
原帖由 coderui 于 2009-3-18 19:13 发表

样本下载地址:
http://bbs.pediy.com/showthread.php?t=84016


谢谢提供样本,哈哈,运气比较好,OD直接跑

009E602D >  68 96FA1F6F     push 6F1FFA96
009E6032    E8 A5200A00     call HookSys.00A880DC
009E6037    F3:A4           rep movs byte ptr es:[edi],byte ptr ds:[>
009E6039    60              pushad
009E603A    FF7424 10       push dword ptr ss:[esp+10]
009E603E    8B7424 30       mov esi,dword ptr ss:[esp+30]
009E6042    66:C70424 0B41  mov word ptr ss:[esp],410B
009E6048    C70424 0395CB1B mov dword ptr ss:[esp],1BCB9503
009E604F    C60424 65       mov byte ptr ss:[esp],65
009E6053    9C              pushfd
009E6054    8D6424 38       lea esp,dword ptr ss:[esp+38]
009E6058  ^ E9 D10DFFFF     jmp HookSys.009D6E2E
009E605D    68 88FA8FFC     push FC8FFA88
009E6062    E8 31040A00     call HookSys.00A86498
009E6067    04 77           add al,77
ximo
发表于 2009-3-18 19:31:25 | 显示全部楼层
简单看了下,的确是VMP 1.70.4版的
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-11-7 00:50 , Processed in 0.117144 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表