PEbundle v2.10脱壳+易程序——万年历记事簿-XP1.8
下载页面: http://www.onlinedown.net/soft/4123.htm
软件大小: 1499KB
软件语言: 简体中文
软件类别: 国产软件/共享版/记事管理
运行环境: Win9x/Me/NT/2000
加入时间: 2003-6-2 22:47:41
下载次数: 1523
软件评级: ****
【软件简介】:主要功能有:万年历、密码记事簿(支持多用户)、语音报时、定时提醒、动画电子名片(支持多用户)、 全国城市区号和邮编查询、附带两个智力游戏等。可设置任意时间的多项提醒,提醒类型可设为:声音、文本、声音和文本,提醒窗口在屏幕上的停留时间是可选的,可将您的计划任务等设置成提醒,到时自动提醒;密码记事簿功能可保证您的隐私不外泄。
【软件限制】:30次试用
【作者声明】:初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
【破解工具】:Ollydbg1.09、FI 3.01、LordPE、ImportREC
—————————————————————————————————
【过 程】:
这个程序用FI 3.01看是PEbundle v2.10,用PEiD看是ASPack 2.11c壳,再用PE-SCAN看是PEbundle……晕,用LordPE看其区段既有ASPack也有PEbundle…… 于是,驱猫上网搜索PEbundle,在 天空 就有:PEBundle V2.44
—————————————————
下载页面: http://skycn.net/soft/7285.html
软件大小: 485 KB
软件语言: 英文 (其实是多语言版,有简体中文 ^O^ )
软件类别: 国外软件 / 共享版 / 文件分割
应用平台: Win9x/NT/2000/XP
加入时间: 2002-09-24 19:22:39
下载次数: 1655
推荐等级: ***
开 发 商: http://www.collakesoftware.com/
软件介绍: 可以将多个DLL文件,包装成EXE执行文件,是软件程序设计人员所使用的程序包装工具。
—————————————————
PEbundle应该是个有压缩效果的EXE和DLL捆绑工具。或许万年历记事簿用PEbundle捆绑之前有的部分是ASPack压缩的。
晕 ^O^ 不管了,为了验证 sinker 兄弟所说的“难道易语言能消弱壳的强度???? ”——所以又找了这个易程序脱壳看看。确实如sinker所言:直接运行,用LordPE--->Dumpfull 然后直接修IAT......可以正常运行.....
又从网上搜索到其它相关的资料:
易在OEP处的代码: 55 PUSH EBP
8BEC MOV EBP,ESP
6A FF PUSH -1
先用LordPE进行DUMP生成dumped文件,再用WinHex打开dumped文件,找机器码“558BEC6AFF”,在第一个出现的位置就是OEP了,再用ImportREC填入找到的OEP进行修复,生成的新程序就是脱壳的程序了。
呵呵,大家可以试试,多加验证 ^O^ ^O^
—————————————————
一、脱壳
用Ollydbg手动脱壳,老规矩:载入后弹出“是压缩代码——要继续进行分析吗?”,点“否”。
006C7000 9C pushfd
====>进入OD后断在这!
006C7001 60 pushad
006C7002 E8 02000000 call 万年历记.006C7009
====>变形JMP!F7走进
006C7007 33C0 xor eax,eax
006C7009 8BC4 mov eax,esp
006C700B 83C0 04 add eax,4
006C700E 93 xchg eax,ebx
006C700F 8BE3 mov esp,ebx
006C7011 8B5B FC mov ebx,dword ptr ds:[ebx-4]
006C7014 81EB 07304000 sub ebx,万年历记.00403007
006C701A 87DD xchg ebp,ebx
006C701C 80BD 02394000 00 cmp byte ptr ss:[ebp+403902],0
006C7023 74 21 je short 万年历记.006C7046
====>跳
006C7046 8DBD 953B4000 lea edi,dword ptr ss:[ebp+403B95]
006C704C 33C0 xor eax,eax
006C704E 8A85 CF344000 mov al,byte ptr ss:[ebp+4034CF]
006C7054 3C 05 cmp al,5
006C7056 74 6E je short 万年历记.006C70C6
006C7058 3C 03 cmp al,3
006C705A 0F84 98000000 je 万年历记.006C70F8
006C7060 3C 02 cmp al,2
006C7062 0F84 82000000 je 万年历记.006C70EA
006C7068 3C 04 cmp al,4
006C706A 74 19 je short 万年历记.006C7085
006C706C 3C 00 cmp al,0
006C706E 0F85 9E000000 jnz 万年历记.006C7112
006C7074 68 D8010000 push 1D8
006C7079 57 push edi
006C707A FF95 59364000 call dword ptr ss:[ebp+403659]
006C7080 /E9 81000000 jmp 万年历记.006C7106
====>跳
006C7106 8DBD 953B4000 lea edi,dword ptr ss:[ebp+403B95]
006C710C 03F8 add edi,eax
006C710E C607 5C mov byte ptr ds:[edi],5C
006C7111 47 inc edi
006C7112 8DB5 9B344000 lea esi,dword ptr ss:[ebp+40349B]
006C7118 AC lods byte ptr ds:[esi]
006C7119 0AC0 or al,al
006C711B 74 03 je short 万年历记.006C7120
006C711D AA stos byte ptr es:[edi]
006C711E ^ EB F8 jmp short 万年历记.006C7118
====>F4下去
006C7120 80BD D0344000 01 cmp byte ptr ss:[ebp+4034D0],1
006C7127 74 7B je short 万年历记.006C71A4
006C7129 8DB5 953B4000 lea esi,dword ptr ss:[ebp+403B95]
006C712F 6A 00 push 0
006C7131 68 80000000 push 80
006C7136 6A 03 push 3
006C7138 6A 00 push 0
006C713A 6A 00 push 0
006C713C 68 00000080 push 80000000
006C7141 56 push esi
006C7142 FF95 39364000 call dword ptr ss:[ebp+403639]
006C7148 83F8 FF cmp eax,-1
006C714B 74 57 je short 万年历记.006C71A4
====>没跳
006C714D 8985 C3344000 mov dword ptr ss:[ebp+4034C3],eax
006C7153 8D85 EB354000 lea eax,dword ptr ss:[ebp+4035EB]
006C7159 8D9D F3354000 lea ebx,dword ptr ss:[ebp+4035F3]
006C715F 8D8D FB354000 lea ecx,dword ptr ss:[ebp+4035FB]
006C7165 51 push ecx
006C7166 53 push ebx
006C7167 50 push eax
006C7168 FFB5 C3344000 push dword ptr ss:[ebp+4034C3]
006C716E FF95 4D364000 call dword ptr ss:[ebp+40364D]
006C7174 FFB5 C3344000 push dword ptr ss:[ebp+4034C3]
006C717A FF95 35364000 call dword ptr ss:[ebp+403635]
006C7180 8B85 EB354000 mov eax,dword ptr ss:[ebp+4035EB]
006C7186 8B9D EF354000 mov ebx,dword ptr ss:[ebp+4035EF]
006C718C 3B9D D7354000 cmp ebx,dword ptr ss:[ebp+4035D7]
006C7192 0F87 ED000000 ja 万年历记.006C7285
006C7198 3B85 D3354000 cmp eax,dword ptr ss:[ebp+4035D3]
006C719E 0F83 E1000000 jnb 万年历记.006C7285
====>跳
…… ……省 略…… ……
006C7285 FFB5 4C334000 push dword ptr ss:[ebp+40334C]
006C728B FFB5 87344000 push dword ptr ss:[ebp+403487]
006C7291 E8 7A050000 call 万年历记.006C7810
====>这个CALL可用F8带过
006C7296 0F83 A8000000 jnb 万年历记.006C7344
====>跳
…… ……省 略…… ……
006C7344 61 popad
006C7345 9D popfd
006C7346 68 01206300 push 万年历记.00632001
006C734B C3 retn
====>返回到00632001
00632001 60 pushad
00632002 E8 02000000 call 万年历记.00632009
====>这个CALL也可以用F8带过
00632007 EB 09 jmp short 万年历记.00632012
====>跳
00632012 /E9 59040000 jmp 万年历记.00632470
====>跳
00632470 BD A93F0D3D mov ebp,3D0D3FA9
00632475 E9 1C000000 jmp 万年历记.00632496
====>注意这个目的地!
00632495 62E8 bound ebp,eax
====>花指令!把62改为90
00632495 90 nop //改后的变化
00632496 E8 1C000000 call 万年历记.006324B7
====>这个CALL用F7跟进!注意目的地是花指令!
0063249B - E9 7836ADA7 jmp A8105B18
====>呵呵,如果到这里会跳到哪? :-<
006324B6 30E9 xor cl,ch
====>花指令!把30改为90
006324B6 90 nop //改后的变化
006324B7 E9 1C000000 jmp 万年历记.006324D8
====>注意这个目的地!
006324D3 6969 00 F19D80F5 imul ebp,dword ptr ds:[ecx],F5809DF1
====>花指令!把6969改为9090
006324D3 90 nop //改后的变化
006324D4 90 nop //改后的变化
006324D5 00F1 add cl,dh
006324D7 9D popfd
006324D8 80F5 69 xor ch,69
006324DB 5B pop ebx
006324DC 66:8BD1 mov dx,cx
006324DF 81DE F1A71768 sbb esi,6817A7F1
006324E5 BE 336BFB3A mov esi,3AFB6B33
006324EA 8BFB mov edi,ebx
006324EC 66:8BD0 mov dx,ax
006324EF 81C7 032CBEB4 add edi,B4BE2C03
006324F5 E9 14000000 jmp 万年历记.0063250E
====>跳
0063250E /E9 14000000 jmp 万年历记.00632527
====>注意这个目的地!
00632526 1066 8B adc byte ptr ds:[esi-75],ah
====>花指令!把10改为90
00632526 90 nop //改后的变化
00632527 66:8BF1 mov si,cx
0063252A B9 FFFFFFFF mov ecx,-1
0063252F 0FBFD7 movsx edx,di
00632532 80D3 C3 adc bl,0C3
00632535 80B40F CED3414B D9 xor byte ptr ds:[edi+ecx+4B41D3CE],0D9
0063253D 0FBFD3 movsx edx,bx
00632540 81DA 33DDCAD5 sbb edx,D5CADD33
00632546 4D dec ebp
00632547 81D3 F97C94F9 adc ebx,F9947CF9
0063254D B2 06 mov dl,6
0063254F 81EF 01000000 sub edi,1
00632555 BE 4F1B3FA7 mov esi,A73F1B4F
0063255A BB 07911618 mov ebx,18169107
0063255F 80C1 D1 add cl,0D1
00632562 8BF5 mov esi,ebp
00632564 0FBFDB movsx ebx,bx
00632567 81FE 543B0D3D cmp esi,3D0D3B54
0063256D ^ 0F85 B4FFFFFF jnz 万年历记.00632527
====>F4下去
00632573 B9 7F7AE76F mov ecx,6FE77A7F
00632578 ^E9 EAFEFFFF jmp 万年历记.00632467
====>晕 :-D 又跳上去! F4下去
00632467 ^E9 ABFBFFFF jmp 万年历记.00632017
====> :-D 跳上去!可以在00632012直接F4去00632017
00632017 E8 1F040000 call 万年历记.0063243B
====>这个CALL也可以用F8带过
0063201C /EB 00 jmp short 万年历记.0063201E
0063201E BB 30394400 mov ebx,万年历记.00443930
00632023 03DD add ebx,ebp
00632025 2B9D FC3F4400 sub ebx,dword ptr ss:[ebp+443FFC]
0063202B 83BD 284A4400 00 cmp dword ptr ss:[ebp+444A28],0
00632032 899D 284A4400 mov dword ptr ss:[ebp+444A28],ebx
00632038 0F85 62030000 jnz 万年历记.006323A0 :-) {:-)
====>呵呵,试了N次后发现这个离OEP很近的。所以直接G 006323A0
006323A0 B8 BE3A0000 mov eax,3ABE
====>EAX=00003ABE
006323A5 50 push eax
006323A6 0385 284A4400 add eax,dword ptr ss:[ebp+444A28]
====>EAX=00003ABE + 00400000=00403ABE 这就是OEP值 :-)
006323AC 59 pop ecx
006323AD 0BC9 or ecx,ecx
006323AF 8985 F13C4400 mov dword ptr ss:[ebp+443CF1],eax
====>[ebp+443CF1]=[006323C1]=00403ABE
006323B5 61 popad
====>很高兴看见这个POPAD :-D
006323B6 75 08 jnz short 万年历记.006323C0
====>跳
006323B8 B8 01000000 mov eax,1
006323BD C2 0C00 retn 0C
006323C0 68 00000000 push 0
====>006323AF处的代码覆盖 变成push 00403ABE
006323C5 C3 retn
====>返回 00403ABE 胜利了!
———————————————————————
00403ABE 55 push ebp
====>在这儿用LordPE转存调试进程
00403ABF 8BEC mov ebp,esp
00403AC1 6A FF push -1
00403AC3 68 38814000 push 万年历记.00408138
00403AC8 68 A85A4000 push 万年历记.0040
重新运行万年历记事簿,运行ImportREC,选择这个进程。把OEP改为00003ABE,点IT AutoSearch,点“Get Import”,第4个函数手动修复还是无效,偶然删之,FixDump,却能够正常运行! 晕 {:-) 1.09M ->2.78M
—————————————————————————————————
二、破解
软件号:4710463734
试炼码:13572468
———————————————————————
易程序 的跟踪是一件难受的事,:-( 比 P-CODE 还烦人,常常下个断点运行很长时间也没反应,或者是一段代码来回调用,10遍?30遍?50遍?…… 当你不耐烦的时候取消断点F9运行,真正的关键点却悄然溜走 :-(
1、下断点 BPX GETWINDOWTEXTA 程序取试炼码
100F9550 FF15 24551110 call dword ptr ds:[<&USER32.GetWindowTextA>]
100F9556 8B4C24 08 mov ecx,dword ptr ss:[esp+8]
100F955A 6A FF push -1
100F955C E8 09300000 call krnln.100FC56A
====>ECX=13572468 试炼码
100F9561 EB 0C jmp short krnln.100F956F
———————————————————————
2、对 试炼码 下内存断点,注意程序经常把试炼码搬来挪去,小心别丢了 :-)
100E6B52 8A06 mov al,byte ptr ds:[esi]
100E6B54 8807 mov byte ptr ds:[edi],al
100E6B56 8A46 01 mov al,byte ptr ds:[esi+1]
100E6B59 8847 01 mov byte ptr ds:[edi+1],al
100E6B5C 8A46 02 mov al,byte ptr ds:[esi+2]
100E6B5F C1E9 02 shr ecx,2
100E6B62 8847 02 mov byte ptr ds:[edi+2],al
100E6B65 83C6 03 add esi,3
100E6B68 83C7 03 add edi,3
100E6B6B 83F9 08 cmp ecx,8
100E6B6E ^ 72 CC jb short KRNLN.100E6B3C
100E6B70 F3:A5 rep movs dword ptr es:[edi],dword ptr ds:[esi]
100E6B72 FF2495 286C0E10 jmp dword ptr ds:[edx*4+100E6C28]
100E6C04 8B448E F8 mov eax,dword ptr ds:[esi+ecx*4-8]
100E6C08 89448F F8 mov dword ptr ds:[edi+ecx*4-8],eax
100E6C0C 8B448E FC mov eax,dword ptr ds:[esi+ecx*4-4]
100E6C10 89448F FC mov dword ptr ds:[edi+ecx*4-4],eax
100E6C14 8D048D 00000000 lea eax,dword ptr ds:[ecx*4]
100E6C1B 03F0 add esi,eax
100E6C1D 03F8 add edi,eax
100E6C1F FF2495 286C0E10 jmp dword ptr ds:[edx*4+100E6C28]
100E6C60 8A06 mov al,byte ptr ds:[esi]
100E6C62 8807 mov byte ptr ds:[edi],al
100E6C64 8A46 01 mov al,byte ptr ds:[esi+1]
100E6C67 8847 01 mov byte ptr ds:[edi+1],al
100E6C6A 8A46 02 mov al,byte ptr ds:[esi+2]
100E6C6D 8847 02 mov byte ptr ds:[edi+2],al
100E6C70 8B45 08 mov eax,dword ptr ss:[ebp+8]
100E6C73 5E pop esi
100E6C74 5F pop edi
100E6C75 C9 leave
100E6C76 C3 retn
—————————————————————————————————
3、只有你耐心细心,最终会来到比较的地方。 哎,为何偏爱明码比较 :-D
这些代码会被反复调用许多次,炼炼你的“火眼金睛”吧! {:-)
10074887 |. 8B45 0C mov eax,dword ptr ss:[ebp+C]
1007488A |. 50 push eax ; /Arg1
1007488B |. 8D4D C0 lea ecx,dword ptr ss:[ebp-40] ; |
1007488E |. E8 8D25FFFF call KRNLN.10066E20 ; KRNLN.10066E20
10074893 |. 8D4D C0 lea ecx,dword ptr ss:[ebp-40]
10074896 |. 51 push ecx ; /Arg3
10074897 |. 6A 00 push 0 ; |Arg2 = 00000000
10074899 |. 6A 05 push 5 ; |Arg1 = 00000005
1007489B |. E8 7E23FFFF call KRNLN.10066C1E ; KRNLN.10066C1E
100748A0 |. 8B55 CC mov edx,dword ptr ss:[ebp-34]
====>EDX=13572468 试炼码
100748A3 |. 8955 E4 mov dword ptr ss:[ebp-1C],edx
100748A6 |. 8B45 0C mov eax,dword ptr ss:[ebp+C]
100748A9 |. 50 push eax ; /Arg1
100748AA |. 8D4D AC lea ecx,dword ptr ss:[ebp-54]
100748AD |. E8 6E25FFFF call KRNLN.10066E20 ; KRNLN.10066E20
100748B2 |. 8D4D AC lea ecx,dword ptr ss:[ebp-54]
100748B5 |. 51 push ecx ; /Arg3
100748B6 |. 6A 01 push 1 ; |Arg2 = 00000001
100748B8 |. 6A 05 push 5 ; |Arg1 = 00000005
100748BA |. E8 5F23FFFF call KRNLN.10066C1E ; KRNLN.10066C1E
100748BF |. 8B55 B8 mov edx,dword ptr ss:[ebp-48]
====>[ebp-48]=T78624-C47303 注册码
100748C2 |. 8955 D8 mov dword ptr ss:[ebp-28],edx
100748C5 |. 8B45 C4 mov eax,dword ptr ss:[ebp-3C]
100748C8 |. 3B45 B0 cmp eax,dword ptr ss:[ebp-50]
100748CB |. 74 2A je short KRNLN.100748F7
…… 省 略……
100749CD |. FF2495 7F530710 jmp dword ptr ds:[edx*4+1007537F]
…… 省 略……
10074F40 8B55 D8 mov edx,dword ptr ss:[ebp-28]
====>EDX=[ebp-28]=T78624-C47303 注册码
10074F43 52 push edx
10074F44 8B45 E4 mov eax,dword ptr ss:[ebp-1C]
====>EAX=[ebp-1C]=13572468 试炼码
10074F47 50 push eax
10074F48 E8 B32C0700 call KRNLN.100E7C00
====>比较CALL!
10074F4D 83C4 08 add esp,8
10074F50 8945 90 mov dword ptr ss:[ebp-70],eax
====>正确则[ebp-70]=eax=0
10074F53 8B4D 08 mov ecx,dword ptr ss:[ebp+8]
10074F56 898D 1CFFFFFF mov dword ptr ss:[ebp-E4],ecx
10074F5C 83BD 1CFFFFFF 17 cmp dword ptr ss:[ebp-E4],17
10074F63 74 14 je short KRNLN.10074F79
10074F65 83BD 1CFFFFFF 19 cmp dword ptr ss:[ebp-E4],19
10074F6C 74 19 je short KRNLN.10074F87
10074F6E 83BD 1CFFFFFF 1A cmp dword ptr ss:[ebp-E4],1A
10074F75 74 1E je short KRNLN.10074F95
10074F77 EB 28 jmp short KRNLN.10074FA1
10074F79 33D2 xor edx,edx
10074F7B 837D 90 00 cmp dword ptr ss:[ebp-70],0
10074F7F 0F94C2 sete dl
10074F82 8955 D4 mov dword ptr ss:[ebp-2C],edx
10074F85 EB 1A jmp short KRNLN.10074FA1
10074F87 33C0 xor eax,eax
10074F89 837D 90 00 cmp dword ptr ss:[ebp-70],0
10074F8D 0F9CC0 setl al
10074F90 8945 D4 mov dword ptr ss:[ebp-2C],eax
10074F93 EB 0C jmp short KRNLN.10074FA1
10074F95 33C9 xor ecx,ecx
10074F97 837D 90 00 cmp dword ptr ss:[ebp-70],0
10074F9B 0F9FC1 setg cl
10074F9E 894D D4 mov dword ptr ss:[ebp-2C],ecx
10074FA1 E9 BE000000 jmp KRNLN.10075064
———————————————
进入比较CALL:10074F48 call KRNLN.100E7C00 真假码逐位比较
100E7C54 8A02 mov al,byte ptr ds:[edx]
====>[EDX]=13572468 试炼码
100E7C56 42 inc edx
100E7C57 3A01 cmp al,byte ptr ds:[ecx]
====>[ECX]=T78624-C47303 注册码
100E7C59 ^ 75 E9 jnz short KRNLN.100E7C44
100E7C5B 41 inc ecx
100E7C5C 0AC0 or al,al
100E7C5E ^ 74 E0 je short KRNLN.100E7C40
100E7C60 F7C2 02000000 test edx,2
100E7C66 ^ 74 A8 je short KRNLN.100E7C10
100E7C68 66:8B02 mov ax,word ptr ds:[edx]
100E7C6B 83C2 02 add edx,2
100E7C6E 3A01 cmp al,byte ptr ds:[ecx]
100E7C70 ^ 75 D2 jnz short KRNLN.100E7C44
100E7C72 0AC0 or al,al
100E7C74 ^ 74 CA je short KRNLN.100E7C40
100E7C76 3A61 01 cmp ah,byte ptr ds:[ecx+1]
100E7C79 ^ 75 C9 jnz short KRNLN.100E7C44
100E7C7B 0AE4 or ah,ah
100E7C7D ^ 74 C1 je short KRNLN.100E7C40
100E7C7F 83C1 02 add ecx,2
100E7C82 ^ EB 8C jmp short KRNLN.100E7C10
100E7C10 8B02 mov eax,dword ptr ds:[edx]
100E7C12 3A01 cmp al,byte ptr ds:[ecx]
100E7C14 75 2E jnz short KRNLN.100E7C44
100E7C16 0AC0 or al,al
100E7C18 74 26 je short KRNLN.100E7C40
100E7C1A 3A61 01 cmp ah,byte ptr ds:[ecx+1]
100E7C1D 75 25 jnz short KRNLN.100E7C44
100E7C1F 0AE4 or ah,ah
100E7C21 74 1D je short KRNLN.100E7C40
100E7C23 C1E8 10 shr eax,10
100E7C26 3A41 02 cmp al,byte ptr ds:[ecx+2]
100E7C29 75 19 jnz short KRNLN.100E7C44
100E7C2B 0AC0 or al,al
100E7C2D 74 11 je short KRNLN.100E7C40
100E7C2F 3A61 03 cmp ah,byte ptr ds:[ecx+3]
100E7C32 75 10 jnz short KRNLN.100E7C44
100E7C34 83C1 04 add ecx,4
100E7C37 83C2 04 add edx,4
100E7C3A 0AE4 or ah,ah
100E7C3C ^ 75 D2 jnz short KRNLN.100E7C10
100E7C3E 8BFF mov edi,edi
100E7C40 33C0 xor eax,eax
100E7C42 C3 retn
100E7C43 90 nop
100E7C44 1BC0 sbb eax,eax
====>到这儿就OVER了!
100E7C46 D1E0 shl eax,1
100E7C48 40 inc eax
100E7C49 C3 retn
—————————————————————————————————
【注册信息保存】:
主程序同目录下的yybsk.EDT文件。
下面是yybsk.EDT注册前、后的比较:
<offset> <File 1 Byte> <File 2 Byte>
1477h CAh D7h
1485h D6h C0h
1489h B7h B4h
148Dh BAh B3h
148Fh B1h B0h
1493h B1h B2h
1495h B2h B5h
2A20h 21h 2Dh
2C3Ch 20h 2Ch
—————————————————————————————————
【整 理】:
软件号:4710463734
注册码:T78624-C47303
—————————————————————————————————
明月几时有?今夕又何夕?录首 于湖居士 的《念奴娇》祝大家中秋愉快 :-)
洞庭青草,近中秋,
更无一点风色。
玉鉴琼田三万顷,
著我扁舟一叶。
素月分辉,明河共影,
表里俱澄澈。
悠然心会,妙处难与君说。
应念岭表经年,
孤光自照,肝胆皆冰雪。
短发萧骚襟袖冷,
稳泛沧溟空阔。
尽挹西江,细斟北斗,
万象为宾客。
扣舷独啸,不知今夕何夕!?
, _/
/| _.-~/ _ , 青春都一饷 :(
( /~ / ~-._ |
`\ _/ ~ ) 忍把浮名 :arrow:
_-~~~-.) )__/;;,. _ //'
/'_, --~ ~~~- ,;;___( (.-~~~-. 换了破解轻狂 :P
`~ _( ,_..-- ( ,;'' / ~-- /._`
/~~//' /' `~ ) /--.._, )_ `~
" `~" " `" /~'` `\~~
" " "~' ""
Cracked By 巢水工作坊——fly [OCN][FCG]
2003-09-11 18:00