首页
社区
课程
招聘
win98 NOTEPAD 学习Hying's PE-Armor0.75的问题[求助]
发表于: 2006-1-3 17:11 6078

win98 NOTEPAD 学习Hying's PE-Armor0.75的问题[求助]

2006-1-3 17:11
6078
win98 NOTEPAD 学习Hying's PE-Armor0.75的问题

【目    标】:win98 NOTEPAD.exe
【工    具】:Olydbg1.1(diy版)
【任    务】:Hying's PE-Armor0.75
【操作平台】:Windows 2000 sp4

【相关链接】:看雪下载的Hying's PE-Armor0.75
        【原创】某人最新 0.7x完整分析(一)http://bbs.pediy.com/showthread. ... ht=ZwsetInformation
         hying 0.7x的脱壳过程http://bbs.pediy.com/showthread. ... ht=ZwsetInformation
         Hying's PeLock v0.7x外壳分析(这个目标与上面两个不一样)http://bbs.pediy.com/showthread. ... amp;highlight=hying
0040D0D1 >  60                 pushad
0040D0D2    E8 00000000        call notepad.0040D0D7
0040D0D7    5D                 pop ebp
0040D0D8    81ED D7000000      sub ebp,0D7
0040D0DE    8DB5 EE000000      lea esi,dword ptr ss:[ebp+EE]
0040D0E4    55                 push ebp
0040D0E5    56                 push esi
0040D0E6    81C5 11310000      add ebp,3111
0040D0EC    55                 push ebp
0040D0ED    C3                 retn

1,首先用LOVEBOOM的方法。用OD载入,下断Bp VirtualAlloc然后执行到返回,之所以这样是因为前面的解压代码很是无聊,也没有什么价值,直接入主题更好:-).
0040D129    50                 push eax                                ; 返回这里
0040D12A    8945 0C            mov dword ptr ss:[ebp+C],eax
0040D12D    8B5D 08            mov ebx,dword ptr ss:[ebp+8]
0040D130    03DD               add ebx,ebp
0040D132    50                 push eax
0040D133    53                 push ebx
0040D134    E8 18000000        call notepad.0040D151
0040D139    5A                 pop edx
0040D13A    52                 push edx
0040D13B    55                 push ebp
0040D13C    8D85 DE000000      lea eax,dword ptr ss:[ebp+DE]
0040D142    C600 EB            mov byte ptr ds:[eax],0EB
0040D145    C640 01 10         mov byte ptr ds:[eax+1],10
0040D149    8B45 30            mov eax,dword ptr ss:[ebp+30]
0040D14C    8945 74            mov dword ptr ss:[ebp+74],eax
0040D14F    FFE2               jmp edx                                ; 这里跳去壳的部分

jmp edx,来到这里:以下代码就和LOVEBOOM的目标程序不一样了。然后就跟着【破解作者】 hnhuqiong向下走。。。。
00340000    B9 04000000        mov ecx,4
00340005    E8 1F000000        call 00340029
0034000A  ^ EB FA              jmp short 00340006
0034000C    E8 16000000        call 00340027
00340011    E9 EBF80000        jmp 0034F901
00340016    58                 pop eax
00340017    EB 09              jmp short 00340022

总结:LOVEBOOM与 hnhuqiong都有申请空间。所以直接CTRL-F PUSH 1000来到下面。
0034380C    6A 04              push 4
0034380E    68 00100000        push 1000                        ;F2下断
00343813    68 00100000        push 1000
00343818    6A 00              push 0
0034381A    FF95 32F44000      call dword ptr ss:[ebp+40F432]
00343820    8985 1AFD4000      mov dword ptr ss:[ebp+40FD1A],eax
00343826    68 003C070A        push 0A073C00
0034382B    68 9FFC0D75        push 750DFC9F
00343830    50                 push eax
00343831    E8 5D000000        call 00343893                        ;进这里就晕了。跟着【破解作者】 hnhuqiong向下走

前面跟半天心烦直接CTRL-B [5E 33 C0]
0034439E    5E                 pop esi                                ;CTRL-B [5E 33 C0],F4走到这里
0034439F    33C0               xor eax,eax
003443A1    64:FF35 00000000   push dword ptr fs:[0]
003443A8    64:8925 00000000   mov dword ptr fs:[0],esp
003443AF    0F0B               ud2
------ 0034439E处看句柄跟着跑
0012FF9C   00340000
0012FFA0   00343980  返回到 00343980 来自 00344238

00343980    E8 04000000        call 00343989                        ;0034439E处看句柄跟着跑到这里
00343985    0000               add byte ptr ds:[eax],al
00343987    0000               add byte ptr ds:[eax],al
00343989    5A                 pop edx
0034398A    8B4424 04          mov eax,dword ptr ss:[esp+4]
0034398E    8B00               mov eax,dword ptr ds:[eax]
00343990    8B4C24 0C          mov ecx,dword ptr ss:[esp+C]
00343994    C701 17000100      mov dword ptr ds:[ecx],10017
0034399A    9C                 pushfd
0034399B    6A 03              push 3

003439C7    FF81 B8000000      inc dword ptr ds:[ecx+B8]
003439CD    3D 03000080        cmp eax,80000003
003439D2    0F85 05010000      jnz 00343ADD                        ;这里跳到下面

00343ADD    3D 1D0000C0        cmp eax,C000001D
00343AE2    0F85 8E010000      jnz 00343C76                        ;继续跳到下面

00343C76    3D 0400007E        cmp eax,7E000004
00343C7B    28D8               sub al,bl
00343C7D    50                 push eax
00343C7E    8A0B               mov cl,byte ptr ds:[ebx]
00343C80    04 04              add al,4
00343C82    46                 inc esi
00343C83    90                 nop
00343C84    40                 inc eax
00343C85    91                 xchg eax,ecx
00343C86    6363 CE            arpl word ptr ds:[ebx-32],sp
00343C89    BA 1C496219        mov edx,1962491C
00343C8E    1A1B               sbb bl,byte ptr ds:[ebx]
00343C90    57                 push edi
00343C91    2096 17108173      and byte ptr ds:[esi+73811017],dl        ;在这里就走不动了。

-----------------------------------------------------------
[问题1]
引用 某人最新 0.7x完整分析(二)、hying 0.7x的脱壳过程
;3733AC ★第一个SEH函数================================================

003733F9    3D 03000080     CMP EAX,80000003
003733FE    0F85 A9020000   JNZ 003736AD

003736AD    3D 1D0000C0     CMP EAX,C000001D
003736B2    0F85 8E010000   JNZ 00373846

00373846    3D 04000080     CMP EAX,80000004
0037384B    0F85 B6050000   JNZ 00373E07

00373E07    3D 940000CD     CMP EAX,CD000094                ;这里应该是最后一次进入这个SEH函数,除0错误
00373E0C    23ACAB 121617A9 AND EBP,DWORD PTR DS:[EBX+EBP*4+A9171612>

;在这个版本的壳中,最巧妙的就是它的4个关键SEH. 接下来我们遇到了第一个.
;这个seh对反跟踪效果非常的好. 它首先利用一个int3中断进入seh, 设置4个单步断点于dr寄存器中.
;然后分别在四个单步中断处完成解码的相应操作,;最后经过一个除0异常进入seh,设置好dr寄存器的值后,拆除seh.
;    我们如果在4个单步断点之间进行软硬件中断调试,是不太可行的.
;    a.软件: 很多代码没有解密,无法对其进行软件中断
;    b.硬件: dr寄存器被占用,根本无法使用硬件中断
;所以,我们唯一的办法只有在它最后一次进入seh之后的代码上下软件断点"CMP EAX,CD000094". 幸好,这段代码部分没有加密,
不然就根本无法跟踪下去了.;然后,出第一个seh中断. 这个时候,我们必须把dr寄存器中的值记录下来,因为在第二个seh中要
用到. 除非,你在第一个和第二个seh之间不进行

然而 我只能看到
003439CD    3D 03000080        cmp eax,80000003
003439D2    0F85 05010000      jnz 00343ADD

00343ADD    3D 1D0000C0        cmp eax,C000001D
00343AE2    0F85 8E010000      jnz 00343C76

                                CMP EAX,80000004 没能走到这里
                                CMP EAX,CD000094 根就没有,我们唯一的办法只有在它最后一次进入seh之后的代码上下软件断点"CMP EAX,CD000094". 幸好,这段代码部分没有加密,
不然就根本无法跟踪下去了.

走动这里没办法向下走了,怎么办啊?

[问题2]工具ROMRA - The debugger是怎么用得呀。
ROMRA - The debugger for hying's PE-Armor 0.7x - 0.755               
* Copyright (X) 2005 forgot/iPB

附件 1:  Clip1.GIF (2006-1-3 05:00 PM, 17.44 K)
http://www.unpack.cn/attachments/month_0601/Clip1_K1GQl4c291z0.gif

附件 2:  notepad.rar (2006-1-3 05:00 PM, 79.42 K)
http://www.unpack.cn/attachment.php?aid=1175&checkid=2242a&download=1

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 153
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
应该是你系统的问题,我的XP SP2,Forgot的脱壳机能正常工作,没有你出现的情况,如图:

2006-1-3 17:21
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
forgot的脱壳机修复输入表有问题,好像获取的不全,有些段的输入表没修复
2006-1-4 13:02
0
雪    币: 233
活跃值: (160)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
是蛮。还是想学学手脱。

你们是什么系统呀~!
2006-1-5 22:27
0
游客
登录 | 注册 方可回帖
返回
//