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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 19968|回复: 21
收起左侧

[原创] 吾爱专题脱壳练习----压缩壳练习之三

   关闭 [复制链接]
小生我怕怕 发表于 2008-9-24 08:19
本次主题是压缩壳,fly说,脱尽压缩壳,再去学加密壳,因此,先放压缩壳练习
本次壳为NsPacK V3.7,上次的壳答案也随之公开,让大家看下大家的脱壳基础到底如何
请大家在回复中注意以下几点:
1.脱壳后的文件大家以千脑形式上传,目的是为了便于隐藏文件和节约论坛空间
2.脱壳后的文件,请大家以脱文附带脱壳后程序打包压缩传于千脑网盘
3.对于回帖过程中千万不要出现灌水,否则BAN了ID
4.对于有优秀脱文或优秀脱壳方法的朋友,给于适当威望奖励
5.鉴于此练习是针对论坛的所有人,请大家踊跃参加,如果不是脱了壳教作业的,请不要顶帖子,方便管理查阅,及时给出评分
6.以下为需要设置威望的格式
7.脱壳一以周期计算,(周期=等于三天)
8.脱壳周期一结束,就开始公布答案让大家能有更充分的学习环境,让不懂脱的朋友去寻找你失误的地方争取早日赶上论坛的积极份子
9.我们要的是脱文,并不是脱壳机去脱的,如果用脱机脱了别拿来,请一定附带上脱文


练习一:(结果已经公布)
http://www.52pojie.cn/thread-10496-1-1.html

练习二:(结果已经公布)
http://www.52pojie.cn/thread-10607-1-1.html

UnPackMe.rar

13 KB, 下载次数: 1315, 下载积分: 吾爱币 -1 CB

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

A-new 发表于 2008-9-24 08:29
哈哈,还是偶滴沙发,占座
这次不手跟了esp最快
载入OD
004087A2 > 9C pushfd
004087A3 60 pushad
004087A4 E8 00000000 call 004087A9到这里hr esp
004087A9 5D pop ebp

F9 三次到这里

0040C0D85Dpop ebp; UnPackMe.<模块入口点>
0040C0D95Fpop edi
0040C0DA5Dpop ebp
0040C0DB5Bpop ebx
0040C0DC9Dpopfd
0040C0DD5Epop esi
0040C0DE58pop eax
0040C0DFC3retn下一步,就到OEP


00401700 55 push ebp

Dump + Fix,就不放附件了
传说中的OEP
004017018BECmov ebp, esp
004017036A FF push-1
0040170568 00254000 push00402500
0040170A68 86184000 push00401886 ; jmp 到 msvcrt._except_handler3
0040170F64:A1 00000000mov eax, dword ptr fs:[0]
 楼主| 小生我怕怕 发表于 2008-9-24 08:33
首先我们来执行一下这个不常规的内存法
━━━━━━━━━━━━━━━━━━━━━━━━━━
004087A2 >9Cpushfd //OD载入
004087A360pushad //ait+m打开内存镜象
004087A4E8 00000000 call UnPackMe.004087A9
004087A95Dpop ebp
004087AA83ED 07 sub ebp,7
004087AD8D8D 36FEFFFF lea ecx,dword ptr ss:[ebp-1CA]
━━━━━━━━━━━━━━━━━━━━━━━━━━
内存映射,项目 26//此处设置F2访问中断
地址=0040C000 //紧跟着shift+f9运行
大小=00001000 (4096.)
物主=UnPackMe 00400000
区段=.ximo0
类型=Imag 01001002
访问=R
初始访问=RWE
━━━━━━━━━━━━━━━━━━━━━━━━━━
0040C58850push eax //程序停在了这里
0040C58956push esi //在次ait+m打开内存镜象
0040C58A9Cpushfd
0040C58B53push ebx
0040C58C55push ebp
0040C58D57push edi
0040C58E52push edx
━━━━━━━━━━━━━━━━━━━━━━━━━━
内存映射,项目 23//此处设置F2访问中断
地址=00401000 //紧跟着shift+f9运行
大小=00006000 (24576.)
物主=UnPackMe 00400000
区段=.ximo0
包含=code
类型=Imag 01001002
访问=R
初始访问=RWE
━━━━━━━━━━━━━━━━━━━━━━━━━━
00401734830D 2C314000 F>or dword ptr ds:[40312C],FFFFFFFF //此时程序停在了这里
0040173B830D 30314000 F>or dword ptr ds:[403130],FFFFFFFF //拉动滚动条,找向上段首
00401742FF15 8C214000 call dword ptr ds:[40218C] ; msvcrt.__p__fmode
004017488B0D 20314000 mov ecx,dword ptr ds:[403120]
0040174E8908mov dword ptr ds:[eax],ecx
00401750FF15 88214000 call dword ptr ds:[402188] ; msvcrt.__p__commode
━━━━━━━━━━━━━━━━━━━━━━━━━━
0040170055push ebp//右键在此新建EIP,dump程序吧
004017018BECmov ebp,esp //运行lordpe来dump程序,在运行lmportRCE修复下
004017036A FF push -1
0040170568 00254000 push UnPackMe.00402500
0040170A68 86184000 push UnPackMe.00401886 ; jmp to msvcrt._except_handler3
0040170F64:A1 00000000mov eax,dword ptr fs:[0]

dumped_.rar

18 KB, 下载次数: 12, 下载积分: 吾爱币 -1 CB

wgz001 发表于 2008-9-24 08:42
占位[s:40]
首先单步F8 来到这里
004087A4E8 00000000 CALL UnPackMe.004087A9

下ESP 硬件访问断点 3次运行F9 来到这里

0040C0D85DPOP EBP; UnPackMe.<ModuleEntryPoint>
0040C0D95FPOP EDI
0040C0DA5DPOP EBP
0040C0DB5BPOP EBX
0040C0DC9DPOPFD
0040C0DD5EPOP ESI
0040C0DE58POP EAX
0040C0DFC3RETN

接下来单步F8走到返回就来到了OEP 删除分析 DUMP修复成功

个人思路不正确的地方还请多多指教
QQ截图未命名.jpg

dumped_.rar

18 KB, 下载次数: 4, 下载积分: 吾爱币 -1 CB

 楼主| 小生我怕怕 发表于 2008-9-24 08:46
在来玩一次ESP定律法
━━━━━━━━━━━━━━━━━━━━━━━━━━
004087A2 >9Cpushfd //OD载入
004087A360pushad //这次执行esp定律或者命令行输入 hr esp
004087A4E8 00000000 call UnPackMe.004087A9
004087A95Dpop ebp
004087AA83ED 07 sub ebp,7
004087AD8D8D 36FEFFFF lea ecx,dword ptr ss:[ebp-1CA]
━━━━━━━━━━━━━━━━━━━━━━━━━━
0040C5FF83C5 04 add ebp,4//esp定律后停在此处
0040C602891407mov dword ptr ds:[edi+eax],edx
0040C605^ E9 9DFFFFFF jmp UnPackMe.0040C5A7//f8单步到此,跳转向上跳,让他跳
0040C60A8B55 00 mov edx,dword ptr ss:[ebp]
0040C60D83C5 02 add ebp,2
━━━━━━━━━━━━━━━━━━━━━━━━━━ //下面的jmp跳到了这里
0040C5A78A06mov al,byte ptr ds:[esi]
0040C5A983EE FF sub esi,-1
0040C5AC0FB6C0movzx eax,al
0040C5AFFF2485 71C14000 jmp dword ptr ds:[eax*4+40C171] //f8单步到此,跳转向上跳,让他跳
━━━━━━━━━━━━━━━━━━━━━━━━━━
0040C07680E0 3C and al,3C //经过那个jmp我们来到这里
0040C0798B1407mov edx,dword ptr ds:[edi+eax]//此时我们直接在段尾设置F2访问中断
0040C07C83ED 04 sub ebp,4 //紧跟着shift+f9运行
0040C07F8955 00 mov dword ptr ss:[ebp],edx//注意要删除硬件断点
0040C082E9 95050000 jmp UnPackMe.0040C61C
0040C0878A45 00 mov al,byte ptr ss:[ebp]
0040C08A8A4D 02 mov cl,byte ptr ss:[ebp+2]
0040C08D83ED 02 sub ebp,2
0040C090D2E0shl al,cl
0040C09266:8945 04mov word ptr ss:[ebp+4],ax
0040C0969Cpushfd
0040C0978F45 00 pop dword ptr ss:[ebp]
0040C09AE9 7D050000 jmp UnPackMe.0040C61C
0040C09F8B45 00 mov eax,dword ptr ss:[ebp]
0040C0A266:8B55 04mov dx,word ptr ss:[ebp+4]
0040C0A683C5 06 add ebp,6
0040C0A966:8910 mov word ptr ds:[eax],dx
0040C0ACE9 F6040000 jmp UnPackMe.0040C5A7
0040C0B166:8B45 00mov ax,word ptr ss:[ebp]
0040C0B583ED 02 sub ebp,2
0040C0B866:0145 04add word ptr ss:[ebp+4],ax
0040C0BC9Cpushfd
0040C0BD8F45 00 pop dword ptr ss:[ebp]
0040C0C0E9 57050000 jmp UnPackMe.0040C61C
0040C0C589E8mov eax,ebp
0040C0C783ED 02 sub ebp,2
0040C0CA66:8945 00mov word ptr ss:[ebp],ax
0040C0CEE9 49050000 jmp UnPackMe.0040C61C
0040C0D389ECmov esp,ebp
0040C0D559pop ecx
0040C0D659pop ecx
0040C0D75Apop edx
0040C0D85Dpop ebp
0040C0D95Fpop edi
0040C0DA5Dpop ebp
0040C0DB5Bpop ebx
0040C0DC9Dpopfd
0040C0DD5Epop esi
0040C0DE58pop eax
0040C0DFC3retn//在此设置F2访问中断,紧跟着shift+f9运行
0040C0E08B45 00 mov eax,dword ptr ss:[ebp]//然后在单步一下通过上面的retn直接返回到OEP
0040C0E38B55 04 mov edx,dword ptr ss:[ebp+4]
0040C0E683C5 08 add ebp,8
━━━━━━━━━━━━━━━━━━━━━━━━━━
0040170055push ebp //运行lordpe把程序dump,在运行lmportRCE修复完工
004017018BECmov ebp,esp
004017036A FF push -1
0040170568 00254000 push UnPackMe.00402500
0040170A68 86184000 push UnPackMe.00401886 ; jmp to msvcrt._except_handler3
0040170F64:A1 00000000mov eax,dword ptr fs:[0]
0040171550push eax
0040171664:8925 0000000>mov dword ptr fs:[0],esp
[/hide]
lqiulu 发表于 2008-9-24 08:49
od载入后停在这里:
004087A2 >9Cpushfd
004087A360pushad
004087A4E8 00000000 call UnPackMe.004087A9//ESP 定律,F9运行
004087A95Dpop ebp
004087AA83ED 07 sub ebp,7
004087AD8D8D 36FEFFFF lea ecx,dword ptr ss:[ebp-1CA]

第一次F9运行到这里

0040C5FF83C5 04 add ebp,4 //到这里
0040C602891407mov dword ptr ds:[edi+eax],edx
0040C605^ E9 9DFFFFFF jmp UnPackMe.0040C5A7
0040C60A8B55 00 mov edx,dword ptr ss:[ebp]
0040C60D83C5 02 add ebp,2
0040C61036:8A02 mov al,byte ptr ss:[edx]
0040C61366:8945 00mov word ptr ss:[ebp],ax
0040C617^ E9 8BFFFFFF jmp UnPackMe.0040C5A7
0040C61C8D47 50 lea eax,dword ptr ds:[edi+50]
0040C61F39C5cmp ebp,eax
0040C621^ 0F87 80FFFFFF ja UnPackMe.0040C5A7
0040C62789E2mov edx,esp

第二次F9运行到这里

0040C082 /E9 95050000 jmp UnPackMe.0040C61C
0040C087 |8A45 00 mov al,byte ptr ss:[ebp]
0040C08A |8A4D 02 mov cl,byte ptr ss:[ebp+2]
0040C08D |83ED 02 sub ebp,2
0040C090 |D2E0shl al,cl
0040C092 |66:8945 04mov word ptr ss:[ebp+4],ax
0040C096 |9Cpushfd
0040C097 |8F45 00 pop dword ptr ss:[ebp]


第三次F9运行到这里

0040C0D85Dpop ebp; UnPackMe.<ModuleEntryPoint>
0040C0D95Fpop edi
0040C0DA5Dpop ebp
0040C0DB5Bpop ebx
0040C0DC9Dpopfd
0040C0DD5Epop esi
0040C0DE58pop eax
0040C0DFC3retn //到这里返回到OEP。

0040170055push ebp
004017018BECmov ebp,esp
004017036A FF push -1
0040170568 00254000 push UnPackMe.00402500
0040170A68 86184000 push UnPackMe.00401886 ; jmp to msvcrt._except_handler3
0040170F64:A1 00000000mov eax,dword ptr fs:[0]
0040171550push eax
0040171664:8925 0000000>mov dword ptr fs:[0],esp
0040171D83EC 68 sub esp,68
0040172053push ebx
0040172156push esi
0040172257push edi
004017238965 E8 mov dword ptr ss:[ebp-18],esp

可以dump,进行修复了。
zhoudongzhou 发表于 2008-9-24 09:09
1、OD打开文件 2、F8一次,看寄存器,esp=12ffc0,命令行下断 bp 12ffc0 F9一次 f8单步过,遇见往上跳的跳转,点击下一行,按F4,遇见下跳的跳转,f8继续 几次后,就达到目标 vc++编译 3、不会组织文字,见谅 1700.rar
mayl8822 发表于 2008-9-24 09:16
载入OD, 然后按ALT+M,打开内存镜像,找到(包含=SFX,imports,relocations)
内存映射,项目 23
地址=00407000
大小=00004000 (16384.)
Owner=UnPackMe 00400000
区段=.ximo1
包含=SFX,data,imports,resources
类型=Imag 01001002
访问=R
初始访问=RWE
地址为00407000,如是我们在命令行输入tc eip<00407000,回车,正在跟踪ing。。
再等一下就直接来到OEP了


UnpackMe.rar (18 KB, 下载次数: 3)
小李通讯 发表于 2008-9-24 10:10
首些查壳NsPack 3.x -> Liu Xing Ping *

打开OD载入

004087A2 >9Cpushfd ////看到这样的开头,我就想起一种脱壳方法.....
004087A360pushad ////F8单步下来,在此处用ESP定律,下完断点后连续F9运行4次...
004087A4E8 00000000 call UnPackMe.004087A
004087A95Dpop ebp
004087AA83ED 07 sub ebp,7
004087AD8D8D 36FEFFFF lea ecx,dword ptr ss:[ebp-1CA]
004087B38039 01 cmp byte ptr ds:[ecx],1
004087B60F84 42020000 je UnPackMe.004089FE
004087BCC601 01 mov byte ptr ds:[ecx],1
004087BF8BC5mov eax,ebp

F9,4次后来到这里...

0040C68C9Cpushfd 来到这里,然后F8...就到达OEP了
0040C68D8F45 00 pop dword ptr ss:[ebp]
0040C690^ E9 12FFFFFF jmp UnPackMe.0040C5A7
0040C6958A06mov al,byte ptr ds:[esi]
0040C69766:8B0407 mov ax,word ptr ds:[edi+eax]
0040C69B83ED 02 sub ebp,2
0040C69E46inc esi


0040C605^\E9 9DFFFFFF jmp UnPackMe.0040C5A7
0040C60A8B55 00 mov edx,dword ptr ss:[ebp] 在此处F4,就到达OEP了
0040C60D83C5 02 add ebp,2
0040C61036:8A02 mov al,byte ptr ss:[edx]
0040C61366:8945 00mov word ptr ss:[ebp],ax
0040C617^ E9 8BFFFFFF jmp UnPackMe.0040C5A7
0040C61C8D47 50 lea eax,dword ptr ds:[edi+50]
0040C61F39C5cmp ebp,eax
0040C621^ 0F87 80FFFFFF ja UnPackMe.0040C5A7
0040C62789E2mov edx,esp



0040170055push ebp这里就是OEP了
004017018BECmov ebp,esp
004017036A FF push -1
0040170568 00254000 push UnPackMe.00402500
0040170A68 86184000 push UnPackMe.00401886 ; jmp to msvcrt._except_handler3
0040170F64:A1 00000000mov eax,dword ptr fs:[0]
0040171550push eax
0040171664:8925 0000000>mov dword ptr fs:[0],esp
0040171D83EC 68 sub esp,68

用LordPE修正,再用ImportREC修复就OK了

破文结束,写得不好,还请指教......呵呵,
维护世界和平 发表于 2008-9-24 10:21
交作业交作业!!![s:40][s:40][s:40]

004087A2 >9CPUSHFD
004087A360PUSHAD
004087A4E8 00000000 CALL UnPackMe.004087A9//单步来到这里,ESP定律,Shift+F9三次
004087A95DPOP EBP
004087AA83ED 07 SUB EBP,7

0040C0D85Dpop ebp; UnPackMe.<模块入口点>
0040C0D95Fpop edi//来到这里!
0040C0DA5Dpop ebp
0040C0DB5Bpop ebx
0040C0DC9Dpopfd
0040C0DD5Epop esi
0040C0DE58pop eax
0040C0DFC3retn //F2下断点Shift+F9运行,来到这里,单步一下!

0040170055pushebp; 哈哈。这里的入口很熟悉吧!
004017018BECmov ebp, esp
004017036A FF push-1
0040170568 00254000 push00402500
0040170A68 86184000 push00401886 ; jmp 到 MSVCRT._except_handler3

【压缩壳练习之三】脱壳文件+脱文+脚本.rar

18 KB, 下载次数: 21, 下载积分: 吾爱币 -1 CB

您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-4-17 04:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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