首页
社区
课程
招聘
EmbedPE v1.03 release
2004-7-6 11:03 23343

EmbedPE v1.03 release

2004-7-6 11:03
23343
EmbedPE v1.13 release

    For Win2000/XP

    这个壳最终还是早产了:)
    本来没打算这么早发布的,因为某些WinXP可能还不支持,Win2003更是无法兼容,不过承蒙fly兄那么看得起,还是先放上来了。

    写这个壳的想法起源于几个月前,上个学期正好做微机实验,写了很多8086的图形程序和外围电路的接口程序,感觉还不错,大多数作品都颇得老师赏识,当然这得益于我比其他人更早地接触了汇编和一些优秀的源代码。但是我从来没写过Win32汇编程序。这里我要特别提到DFCG的LeNgHoSt兄弟(不知他是不是常来这里?),是他和他的作品最早引领我进入了WinSDK编程的大门。后来看了罗云彬的书,Win32Asm在我的脑海里也大概有个形貌了。于是EmbedPE这个小程序就成了我进入Win32Asm世界的敲门砖。

    写这么个东西没有参照物是不行的,虽然我看着大侠们的教程脱过一些简单的壳,但对于壳的具体实现毕竟没有很深刻的理解。前段时间正好有网友在看学论坛上帖出了许多加壳器的源码,于是就拉下来看,大多数的功能都比较简单,当然yoda's是个例外。我学了yoda的一部分源码,不过没有完全看明白,尤其是多态变形引擎部分,虽然后来看懂了一点,但是感觉功能简单了一些,所以也就没有采用(果哪位兄弟有这方面的文章希望能发到论坛上让我学习一下,最好是32位masm源码,注释详细一些的:)。最终我选择了Stone's PE Cryptor作为参照,这个壳不难,而且思路比较清晰,所以很容易就上手了:)

    为了给她取个好听的名字我可是费了番周折,现在市面上这么多壳,词汇就这么些,重名重姓的也不鲜见,剩下的好像没什么了。正好当初同寝室的一个同学做单片机实验,有天晚上跟他聊了聊嵌入式系统,Embed这个词马上被我锁定了。因为我一开始只是打算做一个压缩壳,这个词还是蛮贴切的,后来加了一些简单的保护,希望名字能“强悍”一些,于是上课时又常常absent-minded,魂魄不知飞哪去了,最后想到一个不错的名字PEssivation,学过工艺的朋友应该很容易明白吧:D。由于种种原因,这个名字最终还是没用,不过将来可能会用上,冠名权我先保留了,呵呵。

    读了源码以后思路比较清楚了,于是找了个弱壳自己分析了一下,这就有了我前些日子贴的《JDPack外壳完全分析笔记》,JDPack的loader是我迄今为止见过的思路最“规范”最“标准”的loader,当然是因为它很久没升级了――希望作者不要介意:)

    期间因为考试和其他的事情断断续续做了修改和补充,所以至今也没有特别大的突破。

    我在论坛上很少发言的,当然主要是因为我对目前市面上的壳知之甚少,所以写出来的壳有点异类,强度也不高。这里我特别感谢fly和forgot兄弟在这期间给予的帮助和鼓励,使我一直坚持到现在,没有他们我这个东东是不可能诞生的:D jingulong兄是顶级脱星,我这个小宝贝死在他手里也算是死有所值了:)。同时也感谢其他曾经帮助测试的网友,你们是我前进的动力。

    我这个小东东可能对别人来说无足轻重(因为现在市面上的猛壳太多了),不过对我有着特殊的意义,我打算将他继续发展下去,不能断言会有什么成绩,也许只是一种执念和情结……

    在此我真诚地向网友们提出一些小小的希望,希望脱过这个壳和即将脱这个壳的朋友,无论你最终是成功还是失败,认识肤浅抑或深刻,笔记简单或者详细,哪怕是一句话也好,无论是批评还是建议,都能把你的经验与我分享,以便我把这个壳继续完善下去:)

    又及jingulong兄了,我尤其感到好奇的是你是如何在短时间内避开这些花指令的……
   

                                      cyclotron [BCG][DFCG][FCG][OCN]
                                                      2004.7

点击下载:EmbedPE v1.13


[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞7
打赏
分享
最新回复 (50)
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-7-6 11:04
2
0
GOOD
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
cyclotron 17 2004-7-6 11:06
3
0
fly兄,我的OCN帐号不知为什么被删了,能不能帮我问一下管理员?谢谢!
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
cyclotron 17 2004-7-6 11:09
4
0
晕,怎么才能把缩进搞出来……
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
cyclotron 17 2004-7-6 11:24
5
0
雪    币: 109
活跃值: (36)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
pll823 2004-7-6 11:37
6
0
cyclotron看看我这个unpackme怎么样? 点击下载:附件!

或换一个记事本的unpackme,点击下载:附件!
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
cyclotron 17 2004-7-6 11:55
7
0
最初由 pll823 发布
cyclotron看看我这个unpackme怎么样? 点击下载:附件!

或换一个记事本的unpackme,点击下载:附件!


呵呵,这是个什么壳呀,没见过呢……
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
jingulong 5 2004-7-6 12:03
8
0
最初由 cyclotron 发布
EmbedPE v1.13 release
……
也许只是一种执念和情结
……

又及jingulong兄了……


cyclotron [BCG][DFCG][FCG][OCN]
2004.7


点击下载:EmbedPE v1.13



相信你能成功!

交流,加我qq吧:)
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2004-7-6 12:04
9
0
严重支持.写个script估计可以弄掉花指令.毕竟长度不同跟踪路数却一样.:D
JGL兄(:D )有好办法?
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2004-7-6 12:09
10
0
最初由 pll823 发布
cyclotron看看我这个unpackme怎么样? 点击下载:附件!

或换一个记事本的unpackme,点击下载:附件!

脱了一下你的notepad.这不是个加密壳吧?依我看混乱器而已
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2004-7-6 12:10
11
0
点击下载:附件!
忘记贴unpacked了:D
雪    币: 3007
活跃值: (3552)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
china 5 2004-7-6 12:59
12
0
祝愿这个小宝贝越来越美丽,越来越泼辣。
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2004-7-6 13:44
13
0
大约看到jmp xxxx之后按10下f7就过花指令
无奈的是我不知道如何用脚本过去
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2004-7-6 13:50
14
0
老兄的花指令用到了疯狂的地步呀
解码的seh去花...
         PUSH    EBP
00429EA5 MOV     EBP, ESP                          ; EBP=0012FB84
00429EA7 PUSH    EBX                               ; ESP=0012FB80
00429EA8 PUSH    ESI                               ; ESP=0012FB7C
00429EA9 PUSH    EDI                               ; ESP=0012FB78
00429EB1 MOV     ESI, [EBP+8]                      ; ESI=0012FC6C
00429EDF CMP     DWORD PTR [ESI], C000001E
00429F10 JNZ     0042A86D                          ; 是"合法"异常?
00429F41 MOV     ESI, [EBP+10]                     ; ESI=0012FC80
00429F6D MOV     EAX, [ESI+B0]
00429F9E TEST    EAX, 80000000
00429FCE JNZ     0042A602
00429FFD MOV     EBX, [ESI+B4]                     ; EBX=00021000
0042A02E PUSH    DWORD PTR [ESI+A4]                ; ESP=0012FB74
0042A05F PUSH    DWORD PTR [EBX+409E42]            ; ESP=0012FB70
0042A090 MOV     EAX, 00409426                     ; EAX=00409426
0042A0BE ADD     EAX, EBX                          ; EAX=0042A426
0042A0EB PUSH    EAX                               ; ESP=0012FB6C
0042A117 PUSH    EBP                               ; ESP=0012FB68
0042A143 MOV     EAX, [EBX+40ACE8]                 ; EAX=77E5B332
0042A1A2 CMP     BYTE PTR [EAX], 0CC               ; 不是CC吧,怕怕
0042A1D0 JE      0042A426
0042A201 CMP     BYTE PTR [EAX+1], 0CC
0042A230 JE      0042A426
0042A25F CMP     BYTE PTR [EAX+2], 0CC
0042A28E JE      0042A426
0042A2BD CMP     BYTE PTR [EAX+3], 0CC
0042A2EC JE      0042A426
0042A31D CMP     BYTE PTR [EAX+4], 0CC
0042A34C JE      0042A426
0042A37B CMP     BYTE PTR [EAX+5], 0CC
0042A3AA JE      SHORT 0042A426
0042A3D7 JMP     EAX                                    ; 去哪里了呢:D
0042A402 MOV     EDI, [ESI+B0]
0042A431 SHL     EDI, 2
0042A45D ADD     EDI, [ESI+10]                     ; EDI=0012FF84
0042A48B MOV     [EDI], EAX
0042A4B8 MOV     DWORD PTR [ESI+4], 0              ; 清DR1~DR3,DR0用来干活
0042A4EA MOV     DWORD PTR [ESI+8], 0
0042A51A MOV     DWORD PTR [ESI+C], 0
0042A54C MOV     EDI, [ESI+B8]                     ; EDI=00422A7C,变化eip的代码
0042A57D XOR     DWORD PTR [EDI], 58579F60
0042A7EA MOV     EAX, 0                            ; EAX=00000000
0042A87A POP     EDI                               ; ESP=0012FB7C, EDI=00000000
0042A87B POP     ESI                               ; ESP=0012FB80, ESI=00000000
0042A87C POP     EBX                               ; EBX=00000000, ESP=0012FB84
0042A87D LEAVE                                     ; ESP=0012FB88, EBP=0012FBA8
0042A87E RETN    10                                ; ESP=0012FB9C

我记录了48兆跟踪记录,居然只有40多条(除去开头的poly?)有效

00422003   PUSHAD                                    ; ESP=0012FF54

0042200A   CALL    0042200F                          ; ESP=0012FF50
0042200F   POP     EBP                               ; ESP=0012FF54, EBP=0042200F
00422019   SUB     EBP, 0040100F                     ; EBP=00021000
00422048   MOV     EAX, 00401000                     ; EAX=00401000
00422078   ADD     EAX, EBP                          ; EAX=00422000
004220A5   SUB     EAX, [EBP+409E2E]                 ; EAX=00400000
004220D6   MOV     [EBP+409E3A], EAX
00422105   XOR     EAX, EAX                          ; EAX=00000000
00422130   MOV     EDX, 00408EA4                     ; EDX=00408EA4
00422160   ADD     EDX, EBP                          ; EDX=00429EA4
0042218D   PUSH    EDX                               ; ESP=0012FF50
004221B9   PUSH    DWORD PTR FS:[EAX]                ; ESP=0012FF4C
004221E7   MOV     FS:[EAX], ESP
00422215   PUSH    DWORD PTR FS:[EAX]                ; ESP=0012FF48
00422241   MOV     EDX, 00408B75                     ; EDX=00408B75
00422271   ADD     EDX, EBP                          ; EDX=00429B75

0042229C   XOR     EAX, EAX

004222C7   SUB     ESP, 8                            ; ESP=0012FF40

00422321   PUSH    DWORD PTR FS:[EAX]                ; ESP=0012FF38

0042234F   MOV     FS:[EAX], ESP

0042237B   ADD     ESP, 10                           ; ESP=0012FF48

004223A9   PUSH    EDX                               ; ESP=0012FF44

004223D5   PUSH    DWORD PTR FS:[EAX]                ; ESP=0012FF40

00422403   MOV     FS:[EAX], ESP

00422431   PUSH    EDX                               ; ESP=0012FF3C

0042245D   PUSH    DWORD PTR FS:[EAX]                ; ESP=0012FF38
B
0042248B   MOV     FS:[EAX], ESP

004224B9   LOCK CMPXCHG8B EAX
我想这一段大概是想破坏seh链吧...
坚持用普通od感觉不爽,哪天改一个玩玩:D
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2004-7-6 14:48
15
0
开头一段代码逆向...
我看壳都是一句一句看的
这个花指令实在太多
等有好方法对付它
我就送 cyclotron 老兄一份完整分析来支持一下
							; 保留堆栈上移空间
								sub	esp ,50h
								; 保护现场
								pushad
								; 变形、折腾
								; ……
								call	__delta
__delta:						pop	ebp
								sub	ebp, offset __delta
								; 讨厌add xxx, ebp写法, lea eax, [ebp+xxxxxxxx], 我喜欢, 我like :D
								; 计算、存储 ImageBase
								mov	eax, __ldr_code_start
								add	eax, ebp
								sub	eax, [ebp+__ldr_code_base_delta]
								mov	[ebp+@image_base], eax
								; 破坏 SEH 链表 ( Endless SEH )
								xor	eax, eax
								; #1
								mov	edx, offset handler1
								add	edx, ebp
								push	edx
								push	fs:[eax]
								mov	fs:[eax], esp
								; 保存当前 SEH
								push	fs:[eax]
								; #2
								mov	edx, offset handler2
								add	edx, ebp
								xor	eax, eax	;<- 多余
								; 堆栈上升8字节
								sub	esp, 8
								; #3
								push	fs:[eax]
								mov	fs:[eax], esp
								add	esp, 16	; 下降到 #2
								; #4
								push	edx
								push	fs:[eax]
								push	fs:[eax], esp
								; #5
								push	edx
								push	fs:[eax]
								mov	fs:[eax], esp
								lock	cmpxchg8b eax	; 异常
雪    币: 442
活跃值: (723)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
wangshy 2 2004-7-6 15:00
16
0
强烈要求Forgot编一下格式~!:o
雪    币: 299
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
clide2000 7 2004-7-6 15:16
17
0
最初由 cyclotron 发布
fly兄,我的OCN帐号不知为什么被删了,能不能帮我问一下管理员?谢谢!


看看这个
[转自OCN]
紧急通知(成员ID被删的请进)

各位成员兄弟:

        由于论坛存在安全漏洞,导致某些小人利用漏洞把我们好多注册会员的ID包括OCN成员的ID删除,还有很多好的帖子也被删除,给我们的论坛和各位朋友带来了无可估量的损失。由于备份资料也一并遭到破坏,导致无法及时为各位成员朋友恢复ID,请大家赎罪!!!请大家用自己的号登陆如果不能上了说明被删除了,请大家重新用原名注册,我会及时恢复大家的成员身份。

      我们OCN受到如此大的打击并不会垮掉,希望新老注册会员继续支持我们,OCN成员朋友团结起来战胜困难。谢谢大家。
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
cyclotron 17 2004-7-6 16:07
18
0
最初由 clide2000 发布


看看这个
[转自OCN]
紧急通知(成员ID被删的请进)

各位成员兄弟:



由于论坛存在安全漏洞,导致某些小人利用漏洞把我们好多注册会员的ID包括OCN成员的ID删除,还有很多好的帖子也被删除,给我们的论坛和各位朋友带来了无可估量的损失。由于备份资料也一并遭到破坏,导致无法及时为各位成员朋友恢复ID,请大家赎罪!!!请大家用自己的号登陆如果不能上了说明被删除了,请大家重新用原名注册,我会及时恢复大家的成员身份。



我们OCN受到如此大的打击并不会垮掉,希望新老注册会员继续支持我们,OCN成员朋友团结起来战胜困难。谢谢大家。


晕!原来是被攻击了,强烈bs
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
cyclotron 17 2004-7-6 16:07
19
0
最初由 forgot 发布
开头一段代码逆向...
我看壳都是一句一句看的
这个花指令实在太多
等有好方法对付它
我就送 cyclotron 老兄一份完整分析来支持一下
							; 保留堆栈上移空间
sub esp ,50h
; 保护现场
pushad
; 变形、折腾
; ……
call __delta
__delta: pop ebp
sub ebp, offset __delta
; 讨厌add xxx, ebp写法, lea eax, [ebp+xxxxxxxx], 我喜欢, 我like :D
; 计算、存储 ImageBase
mov eax, __ldr_code_start
add eax, ebp
sub eax, [ebp+__ldr_code_base_delta]
mov [ebp+@image_base], eax
; 破坏 SEH 链表 ( Endless SEH )
xor eax, eax
; #1
mov edx, offset handler1
add edx, ebp
push edx
push fs:[eax]
mov fs:[eax], esp
; 保存当前 SEH
push fs:[eax]
; #2
mov edx, offset handler2
add edx, ebp
xor eax, eax ;<- 多余
; 堆栈上升8字节
sub esp, 8
; #3
push fs:[eax]
mov fs:[eax], esp
add esp, 16 ; 下降到 #2
; #4
push edx
push fs:[eax]
push fs:[eax], esp
; #5
push edx
push fs:[eax]
mov fs:[eax], esp
lock cmpxchg8b eax ; 异常


呵呵,开头部分都解析啦:D
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
cyclotron 17 2004-7-6 16:51
20
0
已回学校,准备装QQ了,很久没用,forgot兄推荐一下那个版本比较好。
最好干净一点,不要有什么弹出广告之类的:)
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-7-6 16:55
21
0
forgot 的QQ是1998的 :D

试试这个腾讯QQ 2004 珊瑚虫绿色安装版
http://www.crsky.com/soft/3095.htm
雪    币: 513
活跃值: (2228)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
loveboom 53 2004-7-6 17:09
22
0
呵呵,一个垃圾生产器生出来的,:D
我也放一个unpacked点击下载:附件!
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2004-7-6 17:24
23
0
常年在线xxxx:D
雪    币: 442
活跃值: (723)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
wangshy 2 2004-7-6 17:31
24
0
偶想加~!:D
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2004-7-6 17:36
25
0
最初由 fly 发布
forgot 的QQ是1998的 :D

试试这个腾讯QQ 2004 珊瑚虫绿色安装版
http://www.crsky.com/soft/3095.htm

fly用的可是秦始皇时代开发的:D
游客
登录 | 注册 方可回帖
返回