精典的ASP传奇的J2EE新生的NETFTP服务器服务器安全WINDOWSB/S 模式WEB安全WAP世界动态网站推广宣传
空间服务器数据库技术邮局服务器站長工具硬设与组建Alexa专题DHTML项目管理WEB标准电脑硬件
病毒知识电脑使用布线协议接入交换路由局域网无线网络网络规划
Visual BasicVisual C/C++MssqlMySqloracleSybase 存在安全风险进程系统进程列表应用程序进程列表其它进程列表
黑客编程漏洞分析本地提权免杀技术脚本漏洞数据库注入安全防护内网渗透加密解密工具使用
WAP技术WAP入门
 您的位置:   >> 相关知识 >> 病毒木马 >> 病毒知识 >>

UPX-Scrambler RC1.x - ㎡nT畂L简单脱壳有3法

合金网络科技

 
  添加日期:2007-3-26 点击次数:465次  
   
  首先有PEID查壳为UPX-Scrambler RC1.x - ㎡nT畂L的壳,UPX的壳都很简单!建议新手学习下,我也是新手。
用OD载入程序,提示“是压缩代码吗?是否继续分析?”我们选择“否”!

0051E7DF A> 90          nop          /程序入口
0051E7E0    61          popad        /F8单步到这里
0051E7E1    BE 00905000    mov esi,AboutUS.00509000    /F8单步到这里
0051E7E6    8DBE 0080EFFF lea edi,dword ptr ds:[esi+FFEF8000]    /F8单步到这里
0051E7EC    57          push edi        /F8单步到这里
0051E7ED    83CD FF      or ebp,FFFFFFFF /F8单步到这里,看看右边寄存器窗口内容,ESP突现!
0051E7F0    EB 10        jmp short AboutUS.0051E802
0051E7F2    EB 00        jmp short AboutUS.0051E7F4
0051E7F4    ^ EB EA        jmp short AboutUS.0051E7E0
0051E7F6    ^ EB E8        jmp short AboutUS.0051E7E0
我们就先停在这里,在OD下边命令框框里面输入“hr 0012ffe0”,回车。F9运行

来到这里
0051E8C7    89F7        mov edi,esi ; AboutUS.00401000    /停在这里了,在这里我们先取消断点。“调试”-->'硬件断点'删除我们设置的断点
0051E8C9    B9 1F000000    mov ecx,1F      /F8单步下去
0051E8CE    8A07        mov al,byte ptr ds:[edi]
0051E8D0    47          inc edi
0051E8D1    2C E8        sub al,0E8
0051E8D3    3C 01        cmp al,1
0051E8D5    ^ 77 F7        ja short AboutUS.0051E8CE    /要往回跳了
0051E8D7    803F 05      cmp byte ptr ds:[edi],5      /在这里F4
0051E8DA    ^ 75 F2        jnz short AboutUS.0051E8CE    /继续F8下去
0051E8DC    8B07        mov eax,dword ptr ds:[edi]
0051E8DE    8A5F 04      mov bl,byte ptr ds:[edi+4]
0051E8E1    66:C1E8 08    shr ax,8
0051E8E5    C1C0 10      rol eax,10
0051E8E8    86C4        xchg ah,al
0051E8EA    29F8        sub eax,edi
0051E8EC    80EB E8      sub bl,0E8
0051E8EF    01F0        add eax,esi
0051E8F1    8907        mov dword ptr ds:[edi],eax
0051E8F3    83C7 05      add edi,5
0051E8F6    89D8        mov eax,ebx
0051E8F8    ^ E2 D9        loopd short AboutUS.0051E8D3      /要往回跳了
0051E8FA    8DBE 00C01100 lea edi,dword ptr ds:[esi+11C000] /在这里F4
0051E900    8B07        mov eax,dword ptr ds:[edi]      /继续F8下去
0051E902    09C0        or eax,eax
0051E904    74 45        je short AboutUS.0051E94B
0051E906    8B5F 04      mov ebx,dword ptr ds:[edi+4]
0051E909    8D8430 38E611>lea eax,dword ptr ds:[eax+esi+11E638]
0051E910    01F3        add ebx,esi
0051E912    50          push eax
0051E913    83C7 08      add edi,8
0051E916    FF96 74E61100 call dword ptr ds:[esi+11E674]    /在这里进入了一个循环,进入了系统的领空,到这里来了

77E5D966    53          push ebx    ; AboutUS.00401000    /来到这里,我们不管,继续F8单步跟踪
77E5D967    56          push esi
77E5D968    74 19        je short kernel32.77E5D983
77E5D96A    68 443EE677    push kernel32.77E63E44      ; ASCII 'twain_32.dll'
77E5D96F    FF7424 10    push dword ptr ss:[esp+10]
77E5D973    FF15 9813E477 call dword ptr ds:[<&ntdll._strcmpi>]    ; ntdll._stricmp
77E5D979    85C0        test eax,eax
77E5D97B    59          pop ecx
77E5D97C    59          pop ecx
77E5D97D    0F84 2F880100 je kernel32.77E761B2
77E5D983    6A 00        push 0
77E5D985    6A 00        push 0
77E5D987    FF7424 14    push dword ptr ss:[esp+14]
77E5D98B    E8 B1FFFFFF    call kernel32.LoadLibraryExA
77E5D990    5E          pop esi
77E5D991    5B          pop ebx
77E5D992    C2 0400      retn 4      /跟踪到这里,回到程序领空,来到下面


0051E91C    95          xchg eax,ebp      /来到这里
0051E91D    8A07        mov al,byte ptr ds:[edi] /继续F8单步
0051E91F    47          inc edi
0051E920    08C0        or al,al
0051E922    ^ 74 DC        je short AboutUS.0051E900
0051E924    89F9        mov ecx,edi
0051E926    79 07        jns short AboutUS.0051E92F      /跳,跳到了这里

0051E92F    57          push edi    ; AboutUS.0051D009    /停到这里了
0051E930    48          dec eax                  /继续F8单步
0051E931    F2:AE        repne scas byte ptr es:[edi]
0051E933    55          push ebp
0051E934    FF96 78E61100 call dword ptr ds:[esi+11E678]    /又一次进入系统领空了,不管,继续,来到下面了

77E5B33C    BB FFFF0000    mov ebx,0FFFF      /来到这里
77E5B341    3BFB        cmp edi,ebx        /继续F8单步
77E5B343    ^ 0F86 894BFFFF jbe kernel32.77E4FED2
77E5B349    57          push edi
77E5B34A    8D45 F8      lea eax,dword ptr ss:[ebp-8]
77E5B34D    50          push eax
77E5B34E    FF15 8012E477 call dword ptr ds:[<&ntdll.RtlInitString>]    ; ntdll.RtlInitString
77E5B354    8D45 0C      lea eax,dword ptr ss:[ebp+C]
77E5B357    50          push eax
77E5B358    6A 00        push 0
77E5B35A    8D45 F8      lea eax,dword ptr ss:[ebp-8]
77E5B35D    50          push eax
77E5B35E    6A 00        push 0
77E5B360    FF75 08      push dword ptr ss:[ebp+8]
77E5B363    E8 24F9FFFF    call kernel32.77E5AC8C
77E5B368    50          push eax
77E5B369    E8 BEFFFFFF    call <jmp.&ntdll.LdrGetProcedureAddress> /有个跳转,仍然没跳出系统领空,来到下面这里

77F5F892    A1 5046FC77    mov eax,dword ptr ds:[77FC4650]    /来到这里
77F5F897    85C0        test eax,eax            /F8继续
77F5F899    74 03        je short ntdll.77F5F89E      /跳
77F5F89B    51          push ecx
77F5F89C    FFD0        call eax
77F5F89E    834D FC FF    or dword ptr ss:[ebp-4],FFFFFFFF
77F5F8A2    E8 0B000000    call ntdll.77F5F8B2
77F5F8A7    8B45 98      mov eax,dword ptr ss:[ebp-68]
77F5F8AA    ^ E9 5BFEFFFF    jmp ntdll.77F5F70A          /要往回跳了
77F5F8AF    8B5D E4      mov ebx,dword ptr ss:[ebp-1C] /在这里F4下来,发现来到了上一个系统领空
77F5F8B2    85DB        test ebx,ebx
77F5F8B4    74 21        je short ntdll.77F5F8D7


77E5B36E    85C0        test eax,eax /来到了这里
77E5B370    ^ 0F8C 9316FFFF jl kernel32.77E4CA09        /F8继续
77E5B376    6A 00        push 0
77E5B378    FF75 08      push dword ptr ss:[ebp+8]
77E5B37B    E8 0CF9FFFF    call kernel32.77E5AC8C
77E5B380    3945 0C      cmp dword ptr ss:[ebp+C],eax
77E5B383    0F84 D02A0200 je kernel32.77E7DE59
77E5B389    8B45 0C      mov eax,dword ptr ss:[ebp+C]
77E5B38C    5F          pop edi
77E5B38D    5B          pop ebx
77E5B38E    C9          leave
77E5B38F    C2 0800      retn 8          /继续单步到了这里,跳回到了程序的领空,来到下面

0051E93A    09C0        or eax,eax      /来到了这里
0051E93C    74 07        je short AboutUS.0051E945      /F8继续
0051E93E    8903        mov dword ptr ds:[ebx],eax
0051E940    83C3 04      add ebx,4
0051E943    ^\EB D8        jmp short AboutUS.0051E91D      /要往回跳了
0051E945    FF96 7CE61100 call dword ptr ds:[esi+11E67C]
0051E94B    60          pushad        /PUSHAD关键提示,记着在这里F4下来
0051E94C    - E9 FF28EEFF    jmp AboutUS.00401250        /F8到了这里,看看它是要从0051E94C跳到00401250,大的跳转跨段,应该到的OEP了!跳到了下面
0051E951    0000        add byte ptr ds:[eax],al
0051E953    0000        add byte ptr ds:[eax],al


00401250    68 24895100    push AboutUS.00518924      /我们在这里DUMP
00401255    E8 F0FFFFFF    call AboutUS.0040124A                  ; jmp to MSVBVM60.ThunRTMain
0040125A    0000        add byte ptr ds:[eax],al
0040125C    0000        add byte ptr ds:[eax],al
0040125E    0000        add byte ptr ds:[eax],al
00401260    3000        xor byte ptr ds:[eax],al

OD自带的DUMP插件提供了两种脱法,我们就用呵责两种都分别脱一个,随便保存一个名字,我保存的是1.exe和2.exe。运行一下,发现都不能够运行!这时请出ImportREC 1.6
选择OD调试的进程,在OEP处添上1250点“IAT自动搜索”,点“获取输入信息”哈哈~发现没有发现假指针,真是爽啊!点“修理抓取文件”选择刚才保存的1.exe和2.exe,这时ImportREC 1.6会自动给保存1_.exe和2_.exe,这个就是修复后的文件了,打开他们试试~OK都可以运行了(题外话:我使用ImportREC 1.4修复的话只有2_.exe可以运行,这就要求我们在做脱壳破解的时候要有耐心,多试!)

再用PEID查壳是Microsoft Visual Basic 5.0 / 6.0写的程序,没壳了!~这个壳很简单,大家兴趣的拿来试试吧~
最后还是要优化程序的~请出LordPE重建PE,完了OK了!




还是附上另一种简单方法吧:

载入程序之后~看看入口处是不是有这样一段代码
0051E7E0    61          popad
那么我们就Ctrl+F输入pushad就来到了
0051E943    ^\EB D8        jmp short AboutUS.0051E91D   
0051E945    FF96 7CE61100 call dword ptr ds:[esi+11E67C]
0051E94B    60          pushad        /直接就来到了这里!PUSHAD关键提示,在这里F4下来!
0051E94C    - E9 FF28EEFF    jmp AboutUS.00401250
其他就是一样的了!~


还有一个方法是打开内存镜像下内存断点,很简单!就作为大家的课后作业去试试了!~~先睡一会~~哈哈~
精典的ASP精选TOP
· 利用ADODB.Stream 防盗链
· Adodb.Stream说明手册
· 采集需要登录
· ASP 判断远程图片是否存在
· 在ServerXMLHTTP组件中使用代理服务器
· 用XMLHTTP通过代理服务器从服务提取数据的一些问题
· objXML.readystate的值
· 互联网HTTP连接等出错代码大全
· 利用XMLHTTP实现的二级连动Select
· 利用 xmlhttp 分块上传文件
 
服务器安全点击TOP
· 新云最新漏洞总结篇
· 各类网站的默认数据库和密码
· Windows Server2003 防木马权限设置IIS服务器安全配置整理
· 针对ASP网站的Win 2003硬盘安全设置
· IIS 6 的PHP 最佳配置方法
· 利用SA.exe 将Iusr_victim克隆为Administrator
· Cmd模式下的入侵技术大全
· 破解网页代码加密
· SERV-U 6.4提权方法,通杀SERV-U版本
· 新云网站管理系统文件注入漏洞
 
硬设与组建点击TOP
· 从头到尾教你组建小型局域网20
· 从头到尾教你组建小型局域网19
· 从头到尾教你组建小型局域网18
· 从头到尾教你组建小型局域网17
· 从头到尾教你组建小型局域网16
· 从头到尾教你组建小型局域网15
· 从头到尾教你组建小型局域网14
· 从头到尾教你组建小型局域网13
· 从头到尾教你组建小型局域网12
· 从头到尾教你组建小型局域网11
 
病毒知识点击TOP
· 不再重装 手动清除顽固病毒AutoRUN
· 木马静态变动态 DLL木马程序大揭秘
· 详解一个很牛X的网马
· 一个网马
· Trojan-Downloader.Win32.Delf.bab
· 抓了一个AJAX的网马
· 迅雷5 最新0day利用程序
· 自动关掉270种杀毒软件
· RealPlayer 最新网马
· 五个反弹型后门的源代码
 
WINDOWS点击TOP
· 4【系统知识】常见文件扩展名及简要说明!!! ==超详尽==
· 3【系统知识】常见文件扩展名及简要说明!!! ==超详尽==
· 2【系统知识】常见文件扩展名及简要说明!!! ==超详尽==
· 1【系统知识】常见文件扩展名及简要说明!!! ==超详尽==
· Capture an HTML document as an image
· 如何给eWebEditor编辑器加上运行代码框功能
· 给CuteEditor5增加了高亮代码显示功能
· CuteEditor6.0使用配置心得体会
· 关于IE插件的CLSID问题
· 对开发的程序(制作CAB)进行签名,并允许网站中使用
  "凌风微型文章系统",针对"搜索引擎"完美设计,提高"搜索引擎"对网站容量,质量的评估值,"扁平化,转静态 ..."