首页
社区
课程
招聘
EncryptPE V1.2003.5.18 脱壳疑问―Winxp s
发表于: 2005-1-9 13:27 5221

EncryptPE V1.2003.5.18 脱壳疑问―Winxp s

2005-1-9 13:27
5221
EncryptPE V1.2003.5.18 脱壳疑问――Winxp sp2的Notepad

下载地址:  请点击

软件大小:  

【软件简介】:1. 加密保护常规PE文件(EXE、DLL、OCX等),防静态分析修改,反动态跟踪调试。2. 将普通软件变成

共享软件,增加定时注册提醒、限制试用日期、限制试用次数、限制试用天数、限制每次试用多长时间等功能。3. 根据

最终用户的机器信息、注册用户名计算注册码,从 100 多种加密算法中随机选择一种用于注册码的计算。4. 支持多语

言,除GB外的其他语言形式的界面元素由“EncryptPE.INI”文件设置,便于增删改,注册窗口界面与语言相关。5. 向

待加密软件提供方便的编程接口,便于设计个性注册方式,同时使被加密程序与加密壳之间融为一个整体,增加破解难

度。6. 经加密软件可以运行于多种 Windows 平台,包括 9X/ME/NT/2000/XP。

【试 炼 品】:用 EncryptPE V1.2003.5.18 加壳的Winxp sp2的Notepad   

下载地址: 请点击

【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
              参考fly大侠的98的记事本 !98的记事本已经脱壳成功。于是自己在xpsp2下加了一个,却无法到oep,  

            郁闷,请高手指点

【调试环境】:WinXP、flyODBG、PEiD、LordPE、ImportREC

―――――――――――――――――――――――――――――――――  

【脱壳过程】:

           

一、寻找OEP

用IsDebug 1.4插件去掉flyODBG的调试器标志。设置flyODBG忽略除了“INT3异常”之外的所有其它异常选项。添加“同

时忽略0EEDFADE、C0000008、009B25C、00953D74”异常。

――――――――――――――――――――――――

0040D000     60                   pushad//进入OD后停在这!

0040D001     9C                   pushfd

0040D002     64:FF35 00000000     push dword ptr fs:[0]

0040D009     E8 79010000          call Notepad.0040D187

F9运行,程序会中断在INT3异常处,Shift+F9通过异常

711D7B6E     CC                   int3//第1次异常

7119CAEC     CC                   int3//第2次异常

711D7B6E     CC                   int3//第3次异常

009592D0     CC                   int3//第4次异常

…… ……  省 略  …… ……

程序会在0EEDFADE和C0000008处长时间异常,所以上面忽略了这2个指定异常。

确定弹出的注册提示,回到OD,再次异常

7119CF57     CC                   int3//异常 停,看看堆栈

7119CF58     90                   nop

7119CF59     64:8F05 00000000     pop dword ptr fs:[0]

7119CF60     C3                   retn

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

7119CF57异常时的堆栈:
0007FF98   /0007FFE0  指针到下一个 SEH 记录
0007FF9C   |7119CE8D  SE 句柄
0007FFA0   |711A37BF  返回到 V1200351.711A37BF 来自 V1200351.7119CE88
0007FFA4   |7C930738  ntdll.7C930738

0012FF98    0012FFE0  指针到下一个 SEH 记录

0012FF9C    7119CE8D  SE 句柄  //此处下断   

0012FFA0    711A37BF  返回到 V1200351.711A37BF 来自 V1200351.7119CE88

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

在7119CE8D断下后,

7119CE8D     53                  push ebx    //此处下断,SHIFT+F9断在这,取消断点,单步运行!
7119CE8E     52                  push edx
7119CE8F     8B5C24 14           mov ebx,dword ptr ss:[esp+14]
7119CE93     8B93 C4000000       mov edx,dword ptr ds:[ebx+C4]
7119CE99     8B83 C0000000       mov eax,dword ptr ds:[ebx+C0]
7119CE9F     A3 38F61B71         mov dword ptr ds:[711BF638],eax
7119CEA4     E8 8F040000         call V1200351.7119D338
7119CEA9     9C                  pushfd
7119CEAA     58                  pop eax
7119CEAB     A3 38F61B71         mov dword ptr ds:[711BF638],eax
7119CEB0     E8 83040000         call V1200351.7119D338
7119CEB5     8B83 B8000000       mov eax,dword ptr ds:[ebx+B8]
7119CEBB     40                  inc eax
7119CEBC     8983 B8000000       mov dword ptr ds:[ebx+B8],e======问题来了,到这里就出现进程中止,

如何到oep???
7119CEC2     8B4424 0C           mov eax,dword ptr ss:[esp+C]
7119CEC6     8B00                mov eax,dword ptr ds:[eax]
7119CEC8     3D 03000080         cmp eax,80000003
7119CECD     75 71               jnz short V1200351.7119CF40
7119CECF     803D 54F61B71 01    cmp byte ptr ds:[711BF654],1
7119CED6     74 4F               je short V1200351.7119CF27
7119CED8     8B42 0C             mov eax,dword ptr ds:[edx+C]
7119CEDB     8983 9C000000       mov dword ptr ds:[ebx+9C],eax
7119CEE1     8B42 10             mov eax,dword ptr ds:[edx+10]
7119CEE4     8983 A0000000       mov dword ptr ds:[ebx+A0],eax
7119CEEA     8B42 14             mov eax,dword ptr ds:[edx+14]
7119CEED     8983 B4000000       mov dword ptr ds:[ebx+B4],eax
7119CEF3     8B42 1C             mov eax,dword ptr ds:[edx+1C]
7119CEF6     8983 A4000000       mov dword ptr ds:[ebx+A4],eax
7119CEFC     8B42 20             mov eax,dword ptr ds:[edx+20]
7119CEFF     8983 A8000000       mov dword ptr ds:[ebx+A8],eax
7119CF05     8B42 24             mov eax,dword ptr ds:[edx+24]
7119CF08     8983 AC000000       mov dword ptr ds:[ebx+AC],eax
7119CF0E     8B42 28             mov eax,dword ptr ds:[edx+28]  ★ ★
7119CF11     8983 B0000000       mov dword ptr ds:[ebx+B0],eax;   按照教程这里应该是notepad.004010CC//OEP


7119CF17     8B02                mov eax,dword ptr ds:[edx]
7119CF19     8942 24             mov dword ptr ds:[edx+24],eax
7119CF1C     89D0                mov eax,edx
7119CF1E     83C0 24             add eax,24

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 159
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
esp定律也不行!

请看
2005-1-9 13:37
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
3
避开IAT加密后再去那个地方
2005-1-9 14:29
0
雪    币: 159
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
晕, 试了半天也没成功!看来xp系统加的壳难脱!!!
2005-1-9 17:05
0
雪    币: 159
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
最初由 lihai3330 发布
晕, 试了半天也没成功!看来xp系统加的壳难脱!!!
2005-1-11 19:15
0
雪    币: 323
活跃值: (589)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
6
我先对所有初学脱壳的朋友们说一句:不要急着去脱壳,请先吃透别人的脱文,仔细的学一遍,再去脱别的壳。

就此壳来讲,参看我的原文。
首先,运行一步后,看esp ,它的值是0006ffa4,下hr 0006ffa4,中间会弹出提示注册的对话框,点确定,不管它。中断后,再ALT+M,找到:内存镜像,项目 42
地址=01001000    //你看,这行地址与教程里的不同
大小=00012000 (73728.)
Owner=notepad  01000000
区段=EPE0    //但是,只要你看到这里就行了,EPE0 是个典型的标志,
类型=Imag 01001002
访问=R
初始访问=RWE

在这行下内存访问断点,F9中断。

会中断在oep处,用loadpe dump后,用impr修复,找到第一个无效的地址,我这里是00001000,所以ctrl+F2后,dd 01001000,下内存访问断点,ctrl+G,找到711a33a1(这是一个固定的地址,脱了很多这类壳,是通用的),
711A33A1     8B55 F8             mov edx,dword ptr ss:[ebp-8]
将ebp-8改为ebp-4。F9运行后,提示程序无法运行之类的错误,但此时所有的iat已经自动还原了,去修复吧!

再说一次,以上是一些要点,请吃透fly大侠和我的文章后,再动手操作!附件:dumped_.rar
2005-1-13 13:11
0
雪    币: 159
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢大侠教诲!!!
2005-1-13 14:08
0
雪    币: 222
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
方法没有错,可能是你的OD有问题或者系统问题~~~

还有就是如果先前把IAT加密避开了,那么程序要到OEP需要把修改的地方改回去,去掉所有断点,( EPE 后面有自效验~)
2005-1-13 17:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
苦学中。。。。。
2005-1-14 18:15
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
最初由 springkang[DFCG 发布
我先对所有初学脱壳的朋友们说一句:不要急着去脱壳,请先吃透别人的脱文,仔细的学一遍,再去脱别的壳。

就此壳来讲,参看我的原文。
首先,运行一步后,看esp ,它的值是0006ffa4,下hr 0006ffa4,中间会弹出提示注册的对话框,点确定,不管它。中断后,再ALT+M,找到:内存镜像,项目 42
地址=01001000 //你看,这行地址与教程里的不同
........


请问大大,我找到oep为739d,dump后,用Import REConstructor修复,oep输入739d后,总是提示oep错误,我是不是找错了?急盼回复
2005-9-25 15:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
那位大大看看阿!
2005-9-27 12:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
亟盼那位大大看看
2005-9-29 17:45
0
游客
登录 | 注册 方可回帖
返回
//