首页
社区
课程
招聘
[旧帖] [求助]脱壳问题 WinUpack 0.39 final -> By Dwing 0.00雪花
发表于: 2008-5-30 11:08 9568

[旧帖] [求助]脱壳问题 WinUpack 0.39 final -> By Dwing 0.00雪花

2008-5-30 11:08
9568
大家帮忙看看,这个壳怎么脱?WinUpack 0.39 final -> By Dwing
走到这,往下我就不知道怎么跟了,
如果有人想弄弄的话,联系我。我这是一个病毒,不知道让不让上传。算了不上传了。
下面附件是图片。

俺的QQ:471439353  嘿嘿,在次谢谢各位拉。

[课程]FART 脱壳王!加量不加价!FART作者讲授!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
找到类似
XXXXXXXX   AD              lods    dword ptr [esi]

样的句子,然后看下面ESI里的数值。此数值就是程序入口点。
Ctrl+G来到程序入口,F4。直接脱然后修复就可以了。
2008-5-30 13:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=sizhaoming;460314]找到类似
XXXXXXXX   AD              lods    dword ptr [esi]

样的句子,然后看下面ESI里的数值。此数值就是程序入口点。
Ctrl+G来到程序入口,F4。直接脱然后修复就可以了。[/QUOTE]

F4跑起来拉。是不是要在哪个地方下个什么断点啊,谢谢。
2008-5-30 14:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
啊?跑起来了??

上个穿相似衣服的Crackme给楼主测试~~
上传的附件:
2008-5-30 14:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢你,你这个我能脱下来,这是录的可以看一下。麻烦你们拉。
我一会上传我的做法,不知道为什么现在上传不了拉。
2008-5-30 14:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我录的上传不了。告诉我你的邮箱我发过去你看看,OK不。
2008-5-30 15:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
sizhaoming@yeah.net
2008-5-30 15:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
发过去拉,看看收到没。我的是QQ邮箱有病毒不让发,郁闷。我用QQ给你发过去
2008-5-30 16:03
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
貌似单步走就可以脱壳吧
2008-5-30 16:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
俺没脱下来啊。这能上传样本吗?俺这是一个木马。如果能的话我传上来大家就能看到了。有知道能不能上传的吗?谢谢
2008-5-30 17:41
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
11
楼主……
跑到那里已经是OEP了!
2008-5-31 01:01
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
12
刚好我今天下午在瑞星卡卡论坛的可疑文件区看到这个病毒样本。楼主的图显示的那个地方已经是OEP了。

OD载入(两个错误提示点是),停在这里:

00401018 >  BE B0114000     mov     esi, 004011B0
0040101D    AD              lods    dword ptr [esi]
0040101E    50              push    eax                              ; soc.00401CA0

F8两次,可以看到eax里的就是OEP,00401CA0

转到00401CA0,F4一下,就停在那里了。

00401CA0    B8 F4300000     mov     eax, 30F4
00401CA5    E8 76090000     call    00402620                         ; ESP减小,腾出局部变量的空间
00401CAA    53              push    ebx
00401CAB    55              push    ebp
00401CAC    56              push    esi
00401CAD    57              push    edi
00401CAE    33DB            xor     ebx, ebx                         ; 下面很长一段都是局部变量的初始化……
00401CB0    B9 7F000000     mov     ecx, 7F
00401CB5    33C0            xor     eax, eax
00401CB7    8DBC24 990D0000 lea     edi, dword ptr [esp+D99]
00401CBE    889C24 980D0000 mov     byte ptr [esp+D98], bl
00401CC5    889C24 80050000 mov     byte ptr [esp+580], bl
00401CCC    F3:AB           rep     stos dword ptr es:[edi]
00401CCE    66:AB           stos    word ptr es:[edi]
00401CD0    AA              stos    byte ptr es:[edi]

这里就可以dump了。用LordPE完整转存。

用ImportREC修复IAT。但是ImportREC中填入OEP值00001CA0后,IAT AutoSearch获取不到输入表。

我们在OD里从这里往下滚,找调用API的地方:

00401E3D    8D8424 78020000 lea     eax, dword ptr [esp+278]
00401E44    50              push    eax
00401E45    FF15 50304000   call    dword ptr [403050]               ; kernel32.GetSystemDirectoryA

其实能够看到这个,就说明壳已经脱下来了。

数据窗口中跟随00403050这个地址,再向上滚一下,可以看到原始IAT,是从00403000开始,到004030EC,长度0xEC(当然也可以说长度0xF0)

00403000  35 B6 DB 77 91 7A DA 77 D9 15 DF 77 90 15 DF 77  5钝w憐趙?遷?遷
00403010  80 7A DA 77 53 77 DA 77 A7 AD DB 77 71 70 E0 77  €z趙Sw趙Л踳qp鄔
00403020  4D 5E DB 77 8C B8 DB 77 38 32 DC 77 1B D1 DC 77  M^踳尭踳82躻衍w
00403030  34 C5 DC 77 00 00 00 00 78 9D 85 7C A0 AD 80 7C  4跑w....x潊|牠€|
00403040  77 1D 80 7C D4 05 93 7C C1 AB 80 7C 25 16 80 7C  w€|?搢莲€|%€|
00403050  EA 4E 81 7C 41 26 81 7C B6 BD 80 7C 01 BE 80 7C  闚亅A&亅督€|線|
00403060  CF B4 80 7C 41 4D 83 7C 58 3F 86 7C 31 03 93 7C  洗€|AM億X?唡1搢
00403070  0F 4B 86 7C DE AB 80 7C F5 DD 80 7C 2F 99 80 7C  K唡瞢€|踺€|/檧|
00403080  B9 1D 83 7C D9 29 83 7C F8 9B 80 7C 16 1E 80 7C  ?億?億鴽€|€|
00403090  E1 09 83 7C 74 0D 83 7C AB 1E 83 7C 24 1A 80 7C  ?億t.億?億$€|
004030A0  87 0D 81 7C 8E 0B 81 7C 44 20 83 7C 47 9B 80 7C  ?亅?亅D 億G泙|
004030B0  42 24 80 7C 9C 92 80 7C 6D 13 86 7C E5 3D 86 7C  B$€|湌€|m唡?唡
004030C0  00 00 00 00 61 7E C1 77 E0 7B C1 77 CC 7F C1 77  ....a~羨鄘羨?羨
004030D0  60 7C C1 77 BC 71 C0 77 D3 71 C0 77 4E 62 C1 77  `|羨紂纖觪纖Nb羨
004030E0  00 00 00 00 AD A8 D1 77 C2 E5 D2 77 00 00 00 00  ....褀洛襴....

在ImportREC中填入IAT的RVA,00003000,以及长度000000EC,Get Imports,得到分别属于advapi32.dll、kernel32.dll、msvcrt.dll、user32.dll的IAT项,全部可用。直接fix dump,修复完毕。Upack的可能最好修复文件头,不过这个是病毒,不用那么完美。

脱壳后文件,OD载入,一个错误提示(Upack壳改了文件头所致),之后就停在入口点了。

综上,楼主看起来是在已经跑到OEP的情况下,却被OEP处的代码所迷惑,自以为还没有到OEP,而不知道如何处理。
2008-5-31 01:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
可是这个不是。查不到,要不就是这个名Morphine 1.2 - 1.3 -> rootkit,我在网上查这个也是一个壳,在这导出查不到是用什么语言写的。我想查它是用什么语言写的。有什么好办法吗?
2008-5-31 08:53
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
14
你这种说法太死板了。脱壳后用PEID没有查到它是什么语言写的,那是因为它没有典型的语言的入口点样式(一般情况下Delphi、VC、VB等生成的程序,其入口点代码有一定的模式,就是依据这个模式来判断的),但这并不证明它就没到OEP。

如上面的回帖,在这里程序有一个完整的函数:
局部变量的初始化,之后程序已经开始了实质性的工作:往system32文件夹下创建文件并运行之,……
这就说明已经到了OEP

PEID不可能把所有程序的编写语言都直接依靠其入口点代码而识别出来。比如如果程序是汇编写的,入口点代码可以随意安排(只要不影响程序正常运行),这种情况下你用PEID就没有效果了。如果汇编写的代码,其入口点跟壳的入口点很像呢(本来那些壳的入口点代码就是用汇编写的),那PEID也会认为它是壳了。

PEID是死的,人是活的,你应该学会用自己的眼睛来判断它是什么。就算是PEID能判断出来的语言,你也要让自己看一眼入口点代码的反汇编程序,就可以认出它的语言。
2008-5-31 12:25
0
游客
登录 | 注册 方可回帖
返回
//