-
-
[原创]30秒无狗暴力杀狗 - Rockey 狗壳记事本
-
发表于:
2005-8-24 20:15
5756
-
[原创]30秒无狗暴力杀狗 - Rockey 狗壳记事本
【破文标题】: 30秒无狗暴力杀狗 - Rockey 狗壳记事本
【破文作者】: KuNgBiM[DFCG]
【作者邮箱】: [email]gb_1227@163.com[/email]
【软件名称】: RY4SEL.Notepad
【软件大小】: 100 KB
【下载地址】: [本地下载]
【软件简介】: 在DFCG的QQ群共享内找到的一个 RY4SEL.Notepad (加壳记事本)
【加密保护】: Rockey 未知版狗壳
【调试环境】: WinXP、PEiD、Ollydbg、LordPE、Importrec New Fix
【破解日期】: 2005-08-23
【破解目的】: 大家一起学打“狗”
【作者声明】: 初学Crack,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
―――――――――――――――――――――――――――――――――
【打狗过程】
侦壳:用PEiD查壳,“Rockey(狗壳) -> 北京飞天诚信 * ”加壳。
BTW
:晕死,原以为是什么一般的加壳的记事本,脱了了之,结果是一只“牵着狗”的记事本~~~(常在江湖漂,哪有不挨刀?)呵呵~~
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ollydbg
载入主程序:
00416000 > E8 7BA1FFFF
call RY4SEL_N.00410180
; 程序入口,F7跟进!
00416005 50
push eax
00416006 C3
retn
00416007 0000
add byte ptr ds:[
eax],
al
00416000
处跟进到这里:
00410180 55
push ebp ; 跟到这里!接着一路F7!
00410181 8BEC
mov ebp,
esp
00410183 51
push ecx
00410184 56
push esi
00410185 57
push edi
00410186 8B45 04
mov eax,
dword ptr ss:[
ebp+4]
00410189 8D40 FB
lea eax,
dword ptr ds:[
eax-5]
0041018C 8945 FC
mov dword ptr ss:[
ebp-4],
eax
0041018F 8B7D FC
mov edi,
dword ptr ss:[
ebp-4]
00410192 8B87 99000000
mov eax,
dword ptr ds:[
edi+99]
00410198 8DB7 81000000
lea esi,
dword ptr ds:[
edi+81]
0041019E 85C0
test eax,
eax
004101A0 75 1D
jnz short RY4SEL_N.004101BF
004101A2 8B4E 08
mov ecx,
dword ptr ds:[
esi+8]
004101A5 8B56 04
mov edx,
dword ptr ds:[
esi+4]
004101A8 8BC7
mov eax,
edi
004101AA 56
push esi
004101AB 2BC1
sub eax,
ecx
004101AD 57
push edi
004101AE 03D0
add edx,
eax
004101B0 8956 04
mov dword ptr ds:[
esi+4],
edx
004101B3 E8 48000000
call RY4SEL_N.00410200
; 这里好象是计算什么东西似的,不跟也罢~~~我是“狗”盲
004101B8 C746 18 01000000
mov dword ptr ds:[
esi+18],1
004101BF 0336
add esi,
dword ptr ds:[
esi]
004101C1 8B46 18
mov eax,
dword ptr ds:[
esi+18]
004101C4 85C0
test eax,
eax
004101C6 75 23
jnz short RY4SEL_N.004101EB
004101C8 8B56 08
mov edx,
dword ptr ds:[
esi+8]
004101CB 8B46 04
mov eax,
dword ptr ds:[
esi+4]
004101CE 8BCF
mov ecx,
edi
004101D0 56
push esi
004101D1 2BCA
sub ecx,
edx
004101D3 03C1
add eax,
ecx
004101D5 8946 04
mov dword ptr ds:[
esi+4],
eax
004101D8 E8 13040000
call RY4SEL_N.004105F0
; 如果这里再继续F7的话,嘿嘿,就Over啦~~~ ★ 修改地址,nop掉 ★
004101DD 56
push esi
004101DE 57
push edi
004101DF E8 1C000000
call RY4SEL_N.00410200
004101E4 C746 18 01000000
mov dword ptr ds:[
esi+18],1
004101EB 8B46 0C
mov eax,
dword ptr ds:[
esi+C]
004101EE 8B4E 04
mov ecx,
dword ptr ds:[
esi+4]
004101F1 5F
pop edi
004101F2 03C1
add eax,
ecx
004101F4 5E
pop esi
004101F5 8BE5
mov esp,
ebp
004101F7 5D
pop ebp
004101F8 C3
retn
――――――――――――――――――――――――――――――――――――――――
004101D8
处修改为:
004101D3 03C1
add eax,
ecx
004101D5 8946 04
mov dword ptr ds:[
esi+4],
eax
004101D8 90
nop ; 修改后就顺畅多啦~~~继续F7!
004101D9 90
nop
004101DA 90
nop
004101DB 90
nop
004101DC 90
nop
004101DD 56
push esi ; RY4SEL_N.00417114
004101DE 57
push edi ; RY4SEL_N.<ModuleEntryPoint>
004101DF E8 1C000000
call RY4SEL_N.00410200
; 这里好象又一次计算什么东西似的,我也不跟进,懒得管!
004101E4 C746 18 01000000
mov dword ptr ds:[
esi+18],1
004101EB 8B46 0C
mov eax,
dword ptr ds:[
esi+C]
; ds:[00417120]=000010CC
004101EE 8B4E 04
mov ecx,
dword ptr ds:[
esi+4]
; ds:[00417118]=00400000 (RY4SEL_N.00400000)
004101F1 5F
pop edi
004101F2 03C1
add eax,
ecx ; ecx=00400000 (RY4SEL_N.00400000),eax=000010CC
004101F4 5E
pop esi
004101F5 8BE5
mov esp,
ebp
004101F7 5D
pop ebp
004101F8 C3
retn ; 返回狗狗数据给程序,准备出栈
004101F8
处返回到:
00416005 50
push eax ; 获得OEP,RY4SEL_N.004010CC
00416006 C3
retn ; 返回到程序入口点~~飞向光明之颠~
00416007 0000
add byte ptr ds:[
eax],
al
00416009 0040 00
add byte ptr ds:[
eax],
al
0041600C 0000
add byte ptr ds:[
eax],
al
0041600E 0000
add byte ptr ds:[
eax],
al
00416010 0000
add byte ptr ds:[
eax],
al
00416012 0000
add byte ptr ds:[
eax],
al
00416006
处返回到:
004010CC 55
push ebp ; 在这儿用LordPE纠正ImageSize后完全Dump这个进程
004010CD 8BEC
mov ebp,
esp
004010CF 83EC 44
sub esp,44
004010D2 56
push esi
004010D3 FF15 E4634000
call dword ptr ds:[4063E4]
; kernel32.GetCommandLineA
004010D9 8BF0
mov esi,
eax
004010DB 8A00
mov al,
byte ptr ds:[
eax]
004010DD 3C 22
cmp al,22
004010DF 75 1B
jnz short RY4SEL_N.004010FC
004010E1 56
push esi
004010E2 FF15 F4644000
call dword ptr ds:[4064F4]
; USER32.CharNextA
004010E8 8BF0
mov esi,
eax
004010EA 8A00
mov al,
byte ptr ds:[
eax]
004010EC 84C0
test al,
al
004010EE 74 04
je short RY4SEL_N.004010F4
004010F0 3C 22
cmp al,22
004010F2 ^ 75 ED
jnz short RY4SEL_N.004010E1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
【脱壳修复】:
运行Importrec New Fix,选择这个进程,把OEP改为 000010CC ,点“IT AutoSearch”,再点“Get Imports”,指针全部有效。FixDump!
正常运行~打狗成功!
【打狗耗时】: 30秒
【本章总结】
其实也没什么好总结的,我是一个“狗”盲,分析不出太高深的“狗密”,这篇文章可能是碰运气吧~~~以后还请前辈多多照顾讲解!
--------------------------------------------------------------------------------------------
版权所有(C)2005 KuNgBiM[DFCG] Copyright (C) 2005 KuNgBiM[DFCG]--------------------------------------------------------------------------------------------
UnPacked & Cracked By KuNgBiM[DFCG]
2005-08-23
03:23:33 AM
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!