通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 红客教程 >> 网络攻防 >> 文章正文
关于双进程Armadillo标准壳的脱法
责任编辑:酷酷の鱼   更新日期:2008-4-27
 

来源:安全中国

昨天看了csjwoman的那个双进程标准壳的NOTEPAD.EXE,说真的一开始还真不知如何下手,既不能用脱COPYMEMII(它没有用内存写入函数)的方法,也不能简单套用以前脱标准壳的方法(因为它还是有子进程的),后来仔细参考了下mysqladm的文章《试玩armadillo3.50a一点心得 》有了点启发(最近从他的这篇脱文中学到的东西可不少)。下面谈谈如何脱这种双进程的标准壳。
最近很懒,不愿写东西,所以也就不讲什么原理了(可以参考mysqladm的脱文),这里就简单说下方法。其实很简单就是不要让父进程生成子进程。所以我们可以这样做。
载入后隐藏OD,忽略所有异常,然后BP OpenMutexA,F9运行,断下后在一块空地输入如下代码,这里在401000输入,代码如下(抄来的)
00401000    60              PUSHAD 
00401001    9C              PUSHFD 
00401002    68 B4FB1200    PUSH 12FBB4 (这里的12fbb4也就是MutexName,可以通过堆栈看到,也可以在某个寄存器器看到,我原来以为一直在EDX中,后来发现2000下是在ECX中,现更正一下。) 
00401007    33C0            XOR EAX,EAX 
00401009    50              PUSH EAX 
0040100A    50              PUSH EAX 
0040100B    E8 E694A677    CALL KERNEL32.CreateMutexA 
00401010    9D              POPFD 
00401011    61              POPAD 
00401012  - E9 8F9FA777    JMP KERNEL32.OpenMutexA 
在401000处新建起源。F9,程序又断回到OpenMutexA处,清除断点和刚才的工作代码。这时我们就完全可以象调试普通标准壳那样调试它了,因为它已经不会生成子进程而是把自己当作子进程运行起来。
这时我们下断bp VirtualProtect,F9运行,中断9-10次后清除断点,再bp GetCurrentThreadId,断下后几下ALT+F9返回,再F8几下就到那个CALL EDI了,如下
00DB455C    C705 DCDBDB00 E>MOV     DWORD PTR [DBDBDC], 0DBE6EC      ; ASCII "RB"
00DB4566    FF15 1481DB00   CALL    [DB8114]                         ; kernel32.GetCurrentThreadId
00DB456C    A3 AC56DC00     MOV     [DC56AC], EAX      返回到这里,
00DB4571    E8 1537FEFF     CALL    00D97C8B
00DB4576    6A 00           PUSH    0
00DB4578    E8 648FFEFF     CALL    00D9D4E1
00DB457D    6A 00           PUSH    0
00DB457F    C705 DCDBDB00 E>MOV     DWORD PTR [DBDBDC], 0DBE6E8      ; ASCII "RC"
00DB4589    E8 7231FEFF     CALL    00D97700
00DB458E    59              POP     ECX                              ; 0012FF2C
00DB458F    59              POP     ECX                              ; 0012FF2C
00DB4590    E8 4A11FFFF     CALL    00DA56DF
00DB4595    8BF8            MOV     EDI, EAX
00DB4597    A1 9455DC00     MOV     EAX, [DC5594]
00DB459C    8B48 70         MOV     ECX, [EAX+70]
00DB459F    3348 40         XOR     ECX, [EAX+40]
00DB45A2    3348 08         XOR     ECX, [EAX+8]
00DB45A5    03F9            ADD     EDI, ECX
00DB45A7    8B0E            MOV     ECX, [ESI]
00DB45A9    85C9            TEST    ECX, ECX
00DB45AB    75 2F           JNZ     SHORT 00DB45DC
00DB45AD    8B78 70         MOV     EDI, [EAX+70]
00DB45B0    E8 2A11FFFF     CALL    00DA56DF
00DB45B5    8B0D 9455DC00   MOV     ECX, [DC5594]                    ; NOTEPAD.0044D260
00DB45BB    FF76 14         PUSH    DWORD PTR [ESI+14]
00DB45BE    8B51 40         MOV     EDX, [ECX+40]
00DB45C1    FF76 10         PUSH    DWORD PTR [ESI+10]
00DB45C4    3351 08         XOR     EDX, [ECX+8]
00DB45C7    FF76 0C         PUSH    DWORD PTR [ESI+C]
00DB45CA    33D7            XOR     EDX, EDI
00DB45CC    03C2            ADD     EAX, EDX
00DB45CE    8B51 68         MOV     EDX, [ECX+68]
00DB45D1    3351 04         XOR     EDX, [ECX+4]
00DB45D4    33D7            XOR     EDX, EDI
00DB45D6    2BC2            SUB     EAX, EDX
00DB45D8    FFD0            CALL    EAX
00DB45DA    EB 25           JMP     SHORT 00DB4601
00DB45DC    83F9 01         CMP     ECX, 1
00DB45DF    75 22           JNZ     SHORT 00DB4603
00DB45E1    FF76 04         PUSH    DWORD PTR [ESI+4]
00DB45E4    FF76 08         PUSH    DWORD PTR [ESI+8]
00DB45E7    6A 00           PUSH    0
00DB45E9    E8 F110FFFF     CALL    00DA56DF
00DB45EE    50              PUSH    EAX
00DB45EF    A1 9455DC00     MOV     EAX, [DC5594]
00DB45F4    8B48 70         MOV     ECX, [EAX+70]
00DB45F7    3348 68         XOR     ECX, [EAX+68]
00DB45FA    3348 04         XOR     ECX, [EAX+4]
00DB45FD    2BF9            SUB     EDI, ECX
00DB45FF    FFD7            CALL    EDI             ,这里F7,飞向光明之颠。
00DB4601    8BD8            MOV     EBX, EAX
00DB4603    5F              POP     EDI                              ; 0012FF2C
00DB4604    8BC3            MOV     EAX, EBX
00DB4606    5E              POP     ESI                              ; 0012FF2C
00DB4607    5B              POP     EBX                              ; 0012FF2C
00DB4608    C3              RETN
在那个CALL EDI处F7我们就到入口了,这时可以DUMP了。
至于IAT的修复,我不想多说了。

  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    固顶文章 企业网络组建与维护班正式开课
    普通文章 瑞星公司04月27日发布 每日计算机病毒及木马播报
    推荐文章 推荐:时刻注意安全 养成安全上网新习惯
    普通文章 评价网站服务器软件的几个方面
    普通文章 淘宝网25日发生大故障 疑所在机房无UPS
    普通文章 瑞星病毒及木马预警一周播报(2008.04.28-05.04)
    普通文章 红心中国发起网站遭黑客攻击 IP地址大多来自欧洲
    普通文章 全球顶级黑客出庭作证 受雇新闻集团制作盗窃软件
    普通文章 Gartner调研报告显示 安全软件市场同比增长11.2%
    普通文章 卡巴斯基发关于恶意程序进化最新报告
    热门文章
    普通文章被公司开除员工删数据泄愤被拘
    普通文章熊猫实验室:计算机病毒已经失去控制
    普通文章主动防御/启发式查毒:杀软技术新主流
    普通文章赛门铁克CEO:微软在杀毒软件市场无作为
    普通文章U盘借"自动运行"位威胁排行榜首位
    普通文章信息安全条例列入国务院今年立法计划
    普通文章从反CNN网站被黑看未来网络战争趋势
    普通文章"木马下载器"现新变种 可远程盗取机密信息
    普通文章命令提示符被病毒禁用的解决办法
    普通文章菜鸟也玩手动修复引入表
    精彩专题