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

来源:安全中国

这不是完整的脱文,只是简单记录一下我自己认为的一些要点,太多的细节我也不知所以然,
能蒙混过去的我就暂且欺骗一下自己了,我也懒得去跟踪每一段代码的细节
这个1.25版本和上次脱的1.20版难易度基本差不多,现在完全忘了上次怎么脱的了
这次多花了不少时间,所以这次才决定留下点简单记录
如果你自己亲自跟踪过,我想应该能看懂我的思路

开工喽:
set seh:memory voilation
set seh:div 0
ignore others 

第一次div 0
008D9A28   F7F0             DIV EAX                              ;第一次div 0
008D9A2A   8381 B8000000 02 ADD DWORD PTR DS:[ECX+B8],2
008D9A31   5B               POP EBX
008D9A32   5D               POP EBP
008D9A33   C3               RETN

008D99DB   64:8F00          POP DWORD PTR FS:[EAX]               ;goto here
008D99DE   83C4 04          ADD ESP,4
008D99E1   5B               POP EBX
008D99E2   C3               RETN

bp VirtualAlloc
0044DE1C   FF93 80000000    CALL DWORD PTR DS:[EBX+80]           ;VirtualAlloc
0044DE22   85C0             TEST EAX,EAX                         ;返回这里,eax=9F0000
0044DE24   0F84 3A010000    JE Obsidium.0044DF64                 ;new imagebase

下面开始解码过程
解码后这里处理reloc,为了脱壳后使base定位在400000h,就需要在这里做些手脚了,大家自己想吧
0044DF27   8B43 10          MOV EAX,DWORD PTR DS:[EBX+10]        ;new imagebase
0044DF2A   2B43 10          SUB EAX,DWORD PTR DS:[EBX+3C]        ;old imagebase
0044DF2D   FF77 08          PUSH DWORD PTR DS:[EDI+8]
0044DF30   FF77 04          PUSH DWORD PTR DS:[EDI+4]
0044DF33   FF73 78          PUSH DWORD PTR DS:[EBX+78]
0044DF36   50               PUSH EAX
0044DF37   FF73 10          PUSH DWORD PTR DS:[EBX+10]
0044DF3A   FF53 70          CALL DWORD PTR DS:[EBX+70]
0044DF3D   83C7 14          ADD EDI,14
0044DF40   FF4D FC          DEC DWORD PTR SS:[EBP-4]
0044DF43  ^0F85 F4FEFFFF    JNZ Obsidium.0044DE3D

继续shift F9几次看到这样的代码:
008DC4B2   F7F0             DIV EAX                              ;div 0
008DC4B4   8B00             MOV EAX,DWORD PTR DS:[EAX]           ;紧接着一个这样的异常
008DC4B6   85C0             TEST EAX,EAX
008DC4B8   74 19            JE SHORT 008DC4D3
008DC4BA   8B53 04          MOV EDX,DWORD PTR DS:[EBX+4]
008DC4BD   C702 07000000    MOV DWORD PTR DS:[EDX],7
008DC4C3   C740 08 00000000 MOV DWORD PTR DS:[EAX+8],0
008DC4CA   8343 04 0C       ADD DWORD PTR DS:[EBX+4],0C
008DC4CE   52               PUSH EDX
008DC4CF   51               PUSH ECX
008DC4D0   FF63 4C          JMP DWORD PTR DS:[EBX+4C]
008DC4D3   64:67:8F06 0000  POP DWORD PTR FS:[0]                 ;goto here
008DC4D9   83C4 04          ADD ESP,4
008DC4DC   5B               POP EBX
008DC4DD   C3               RETN

下面是关于IAT处理的:
ctrl+g 8DC5D0 ,hard break point on exec
(关于8DC5D0这个地址是怎么找到的,我是多次运行过去,观察后下硬件断点,逐层回溯过来的
 然后把它记下来了,让我重新再找一次的话,我也要尝试并思考几次才能定位的)
F9 两次停到这里:
008DC5D0   E8 3F040000      CALL 008DCA14                        ;
008DC5D5   85C0             TEST EAX,EAX
008DC5D7   74 55            JE SHORT 008DC62E
008DC5D9   8B45 F4          MOV EAX,DWORD PTR SS:[EBP-C]
008DC5DC   05 679D4100      ADD EAX,419D67
008DC5E1   8B56 04          MOV EDX,DWORD PTR DS:[ESI+4]
008DC5E4   0353 44          ADD EDX,DWORD PTR DS:[EBX+44]
008DC5E7   52               PUSH EDX
008DC5E8   50               PUSH EAX
008DC5E9   E8 26040000      CALL 008DCA14
008DC5EE   85C0             TEST EAX,EAX
008DC5F0   74 3C            JE SHORT 008DC62E
...
008DC692   FF36             PUSH DWORD PTR DS:[ESI]
008DC694   53               PUSH EBX
008DC695   52               PUSH EDX
008DC696   50               PUSH EAX
008DC697   FF76 0C          PUSH DWORD PTR DS:[ESI+C]
008DC69A   E8 F4000000      CALL 008DC793                        ;进入

下面关于还原IAT代码的修改,我直接借鉴前人有关OB脱壳文章中的方法,仍然有效
008DC793   55               PUSH EBP
008DC794   8BEC             MOV EBP,ESP
008DC796   56               PUSH ESI
008DC797   57               PUSH EDI
008DC798   8B75 10          MOV ESI,DWORD PTR SS:[EBP+10]
008DC79B   8B7D 0C          MOV EDI,DWORD PTR SS:[EBP+C]
008DC79E   66:F706 2000     TEST WORD PTR DS:[ESI],20            ;改为 TEST WORD PTR DS:[ESI],8
008DC7A3   74 46            JE SHORT 008DC7EB                    ;改为 JNE SHORT 008DC7EB
008DC7A5   66:F706 0200     TEST WORD PTR DS:[ESI],2
008DC7AA   75 1F            JNZ SHORT 008DC7CB
008DC7AC   66:C706 0400     MOV WORD PTR DS:[ESI],4
008DC7B1   8B45 14          MOV EAX,DWORD PTR SS:[EBP+14]
008DC7B4   6A 01            PUSH 1
008DC7B6   6A 00            PUSH 0
008DC7B8   FF76 04          PUSH DWORD PTR DS:[ESI+4]
008DC7BB   6A 00            PUSH 0
008DC7BD   FF75 18          PUSH DWORD PTR SS:[EBP+18]
008DC7C0   FF50 50          CALL DWORD PTR DS:[EAX+50]
008DC7C3   85C0             TEST EAX,EAX                         ;改为 JE SHORT 008DC7EB
008DC7C5   74 38            JE SHORT 008DC7FF
008DC7C7   8907             MOV DWORD PTR DS:[EDI],EAX
008DC7C9   EB 20            JMP SHORT 008DC7EB
008DC7CB   66:C706 0400     MOV WORD PTR DS:[ESI],4
008DC7D0   8B45 14          MOV EAX,DWORD PTR SS:[EBP+14]
008DC7D3   0FB756 02        MOVZX EDX,WORD PTR DS:[ESI+2]
008DC7D7   6A 01            PUSH 1
008DC7D9   52               PUSH EDX
008DC7DA   6A 00            PUSH 0
008DC7DC   FF76 04          PUSH DWORD PTR DS:[ESI+4]
008DC7DF   FF75 18          PUSH DWORD PTR SS:[EBP+18]
008DC7E2   FF50 50          CALL DWORD PTR DS:[EAX+50]
008DC7E5   85C0             TEST EAX,EAX
008DC7E7   74 16            JE SHORT 008DC7FF                    ;改为 JE SHORT 008DC7EB
008DC7E9   8907             MOV DWORD PTR DS:[EDI],EAX
008DC7EB   83C6 08          ADD ESI,8
008DC7EE   83C7 04          ADD EDI,4
008DC7F1   FF4D 08          DEC DWORD PTR SS:[EBP+8]
008DC7F4  ^75 A8            JNZ SHORT 008DC79E
008DC7F6   33C0             XOR EAX,EAX
008DC7F8   40               INC EAX
008DC7F9   5F               POP EDI
008DC7FA   5E               POP ESI
008DC7FB   5D               POP EBP
008DC7FC   C2 1400          RETN 14

[1] [2] 下一页

  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    普通文章 瑞星公司01月25日发布 每日计算机病毒及木马播报
    普通文章 只开80端口主机的安全检测
    普通文章 卡巴斯基杀毒软件的十九种实用使用方法
    普通文章 为Solaris服务器配置开源安全工具
    普通文章 Win2003 Server安全配置完整篇
    推荐文章 推荐:简介常见病毒的命名规则
    普通文章 破解平安全息万年历
    普通文章 Obsidium1.2.5.0主程序脱壳记录点滴
    普通文章 恶意软件大多从合法网站传播
    普通文章 香港一少年入侵中小学内联网被捕
    热门文章
    普通文章一种会强行关闭杀毒软件的监控病毒开始活跃
    普通文章视频成病毒传播新途径 千足虫强攻杀毒软件
    普通文章捍卫网络安全 安博士发起“网络缉毒英雄会”
    普通文章病毒藏身U盘暗中作恶
    普通文章Opera CTO:新版浏览器速度将达到IE十倍
    普通文章病毒制售形成黑色产业链 网上银行成"靶心"
    普通文章la域名火暴 成为企业和个人争抢的热点
    普通文章"CN域名1元体验活动"将延续至2008年底
    普通文章在映象文件执行选项中指定调试器下杀毒
    普通文章局域网内外数据交换的前端安全防范
    精彩专题