吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7132|回复: 19
收起左侧

[分享] 发个USSR 0.31壳给大家玩玩

[复制链接]
iy0507 发表于 2009-6-21 11:51
USSR 0.31
加密类型:加密壳
强度:中下
保护方式:USSR
保护版本: 0.31
源程序语言:MASM32 / TASM32
加密前大小:8704 字节
加密后大小:12800 字节
解密后大小:26112 字节

USSR只是对数据进行加密保护,其他资源是不会加密的。这样就给菜鸟虚虚实实,雾里看花的感觉。很好玩的一个壳。

提示1 ;
NOP掉某处不良代码即解决错误提示“错误的或者未知格式的32位可执行文件”
当然找到不良代码就是我们的任务了,希望有大牛找出来。有奖品哦!

提示2  NOP掉JL就没戏了!程序还指望他解码呢~
解码前




解码后




前几天放个UPX 3.0没人愿意脱,说明咱们论坛BT的牛人很多。
当然会把脱壳后的程序一起上传,免得说求脱。

下载地址:http://good.gd/191472.htm

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

冥界3大法王 发表于 2009-6-21 13:16
好,有时间 就玩玩了。
小生我怕怕 发表于 2009-6-21 14:05
就难度来说一般,但是绝对适合练手~
小Z发出分析啦,我就公开啦~
00405000 >  52              push edx                         //OD载入
00405001    35 00000000     xor eax,0                        //ait+m打开内存镜象
00405006    5A              pop edx
00405007    55              push ebp
00405008    BD 48829B64     mov ebp,649B8248
0040500D    5D              pop ebp
━━━━━━━━━━━━━━━━━━━━━━━━━━
Memory map, 条目 23                                //00401000处F2下断,shift+f9运行程序
地址=00401000
大小=00001000 (4096.)
属主=USSR_0_3 00400000
区段=
包含=代码,数据
类型=Imag 01001002
访问=R
初始访问=RWE
━━━━━━━━━━━━━━━━━━━━━━━━━━
00405CEC    3006            xor byte ptr ds:[esi],al           //停在了这里,这里向下是死循环,不信的可以自己单步跟
00405CEE    8A06            mov al,byte ptr ds:[esi]
00405CF0    46              inc esi
00405CF1    81FE FF104000   cmp esi,USSR_0_3.004010FF
00405CF7  ^ 7C F3           jl short USSR_0_3.00405CEC
00405CF9    68 FF242400     push 2424FF
00405CFE    E8 00000000     call USSR_0_3.00405D03
00405D03    830424 0B       add dword ptr ss:[esp],0B
00405D07    89E3            mov ebx,esp
00405D09    83C3 04         add ebx,4
00405D0C    FFE3            jmp ebx                       //从这里进去开始进入死循环
00405D0E    5B              pop ebx                       //在这里F2下段。shift+f9运行
00405D0F    5B              pop ebx                       //停下后继续F8单步
00405D10    68 00104000     push USSR_0_3.00401000        //这里是把OEP压入,其实不知道OEP也会选择这里
00405D15    64:FF35 0000000>push dword ptr fs:[0]
00405D1C    64:8925 0000000>mov dword ptr fs:[0],esp
00405D23    CD 03           int 3                         //把这个int3给NOP掉
00405D25    8B4424 0C       mov eax,dword ptr ss:[esp+C]  //走到这里我们注意堆栈窗口的SE句柄,毫无疑问右键反汇编窗口中跟随
00405D29    C740 18 0000000>mov dword ptr ds:[eax+18],0   //或者直接Ctrl+g输入00401000,然后F2下段,shift+f9运行程序
00405D30    33C0            xor eax,eax
00405D32    C3              retn
━━━━━━━━━━━━━━━━━━━━━━━━━━
0012FBF4   0012FC9C  指向下一个 SEH 记录的指针
0012FBF8   00401000  SE处理程序                       //这里就是SE句柄
0012FBFC   0012FFB8
0012FC00  /0012FCB0
━━━━━━━━━━━━━━━━━━━━━━━━━━
00401000    6A 00           push 0                                       //毫无疑问这里就是OEP啦
00401002    E8 C50A0000     call <jmp.&KERNEL32.GetModuleHandleA>        //这里dump时我们不能用loadpe,我们直接打开我们的importRCE
00401007    A3 0C354000     mov dword ptr ds:[40350C],eax                //填上我们的oep:00401000,自动查找IAT,然后获取输入表
0040100C    E8 B50A0000     call <jmp.&KERNEL32.GetCommandLineA>         //此时我们右键高级命令,选择代码块,完整转存,在修复一下我们转存的文件
00401011    A3 10354000     mov dword ptr ds:[403510],eax                //脱壳结束
00401016    6A 0A           push 0A

UnPacK.rar

7.18 KB, 下载次数: 6, 下载积分: 吾爱币 -1 CB

zapline 发表于 2009-6-21 14:20
本帖最后由 zapline 于 2009-6-21 14:23 编辑

内存映射,项目 16
地址=00401000
大小=00001000 (4096.)
物主=USSR_0_3 00400000
区段=
包含=code
类型=Imag 01001002
访问=R
初始访问=RWE

内存断点  shift+f9

00405CEC    3006            xor byte ptr ds:[esi],al
00405CEE    8A06            mov al,byte ptr ds:[esi]
00405CF0    46              inc esi
00405CF1    81FE FF104000   cmp esi,USSR_0_3.004010FF
00405CF7  ^ 7C F3           jl short USSR_0_3.00405CEC
00405CF9    68 FF242400     push 2424FF
00405CFE    E8 00000000     call USSR_0_3.00405D03
00405D03    830424 0B       add dword ptr ss:[esp],0B
00405D07    89E3            mov ebx,esp
00405D09    83C3 04         add ebx,4
00405D0C    FFE3            jmp ebx
00405D0E    5B              pop ebx
00405D0F    5B              pop ebx
00405D10    68 00104000     push USSR_0_3.00401000
00405D15    64:FF35 0000000>push dword ptr fs:[0]
00405D1C    64:8925 0000000>mov dword ptr fs:[0],esp
00405D23    CD 03           int 3
00405D25    8B4424 0C       mov eax,dword ptr ss:[esp+C]
00405D29    C740 18 0000000>mov dword ptr ds:[eax+18],0
00405D30    33C0            xor eax,eax
00405D32    C3              retn

注意00405D10    68 00104000     push USSR_0_3.00401000
ctrl+G  00401000
F4  OD插件直接DUMP
zapline 发表于 2009-6-21 14:28
:o再来看看不良代码
zapline 发表于 2009-6-21 14:35
:'(不会  等超人
小生我怕怕 发表于 2009-6-21 14:38
0040511C    E8 DD020000     call USSR_0_3.004053FE         //F7

0040542A    81FE 00604000   cmp esi,406000
00405430  ^ 7C F3           jl short USSR_0_3.00405425       //在JL下面打断,让他解码
00405432    80E9 00         sub cl,0                                    //然后一路F8向前冲

00405591    E8 F2000000     call USSR_0_3.00405688        //F7跟进

00405688    5B              pop ebx                                  ; USSR_0_3.00405596
00405689    5B              pop ebx
0040568A    EB 09           jmp short USSR_0_3.00405695
0040568C    90              nop
0040568D    90              nop
0040568E    90              nop
0040568F    58              pop eax
00405690    EB 38           jmp short USSR_0_3.004056CA              //F4运行到这个JMP

0040573A    E8 BB000000     call USSR_0_3.004057FA            //F7跟进

00405837    9D              popfd
00405838    FFE1            jmp ecx          //这个JMP进死循环啦
0040583A    58              pop eax           //F4在这里打断

004059AF    0F34            sysenter          //异常语句
004059B1    5A              pop edx           //F4在这里打断

00405A4C    E8 14010000     call USSR_0_3.00405B65       //F7跟进

00405D0C    FFE3            jmp ebx               //一路F8到了这里,剩下的大家都知道了吧
00405D0E    5B              pop ebx                //不知道的可以看我上面的分析~
00405D0F    5B              pop ebx
00405D10    68 00104000     push USSR_0_3.00401000        //OEP的地址,ctrl+g查找00401000,F2下断F9即可
00405D15    64:FF35 0000000>push dword ptr fs:[0]
00405D1C    64:8925 0000000>mov dword ptr fs:[0],esp
00405D23    CD 03           int 3
00405D25    8B4424 0C       mov eax,dword ptr ss:[esp+C]
00405D29    C740 18 0000000>mov dword ptr ds:[eax+18],0
00405D30    33C0            xor eax,eax
00405D32    C3              retn
 楼主| iy0507 发表于 2009-6-21 15:00
本帖最后由 iy0507 于 2009-6-26 08:07 编辑

小生附件不对哦 好像无法跨平台运行 我这里运行错误。
XP 2的

已解决 答案看第二页

条条大路通罗马
方法1
就是跟楼上方法差不多
1找IAT了
内存映射,项目 23
地址=00402000
大小=00001000 (4096.)
物主=USSR_0_3 00400000
区段=
包含=data,imports//cpu中转随
类型=Imag 01001002
访问=R
初始访问=RWE

看数据窗口找IAT开始和结束,修复打打基础
RVA:2000
大小:A4
内存镜像在0401000设置内存写入断点 shift+f9运行中断

00405CEC    3006                xor byte ptr ds:[esi],al//停在这里 下面解码了看注释窗口吧~
00405CEE    8A06                mov al,byte ptr ds:[esi]
00405CF0    46                  inc esi
00405CF1    81FE FF104000       cmp esi,USSR_0_3.004010FF
00405CF7  ^ 7C F3               jl short USSR_0_3.00405CEC
00405CF9    68 FF242400         push 2424FF
00405CFE    E8 00000000         call USSR_0_3.00405D03

注释窗口:
al=26 ('&')
ds:[00401000]=4C ('L') //OEP就是00401000

具体操作看楼上各位大牛

补充一点,这个方法能脱壳但是无法跨平台运行 。部分系统dump会出现不是32位文件的错误
310608900 发表于 2009-6-21 15:22
下来看看。。
小生我怕怕 发表于 2009-6-21 15:58
UIF下就可以啦,不难搞的~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-30 11:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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