我爱电脑技术论坛's Archiver

白雪公主 发表于 2008-6-13 01:47

软件绿化技巧之移花接木法

有些软件,在安装过程中会向系统中拷贝一些动态链接库文件(*.DLL),但软件程序本身对这些动态链接库文件的路径要求不很严格,程序在运行过程中会自动搜索如下目录:
3@(l_,D ^4Ej
?#|tGk(z-\!x|0z'L WIN9X系统:[#@I"ugCX^

T(o:cmsQ3SdR&C   软件所在目录\3g @*o#G^3Y_
  windows\$jDVA8~]Z
  windows\system\
nH ` @5q-~v m f*]#gTI#N1R*t
WINNT/2000/XP系统:
TD)\T m EVOw
\D6Cw,D}3g] bMe   软件所在目录\
;DW6m:Q7V)B6W7`   WINNT\
0c7@ F/?j/^b   WINNT\system\
#Y7_ r iw"f#R   WINNT\system32\O$I4bo8Q](U9L
  WINNT\system32\WBem\
@2T8tM4m-M
Y5cB3XK&x 这样,只要软件在上面目录中搜索到这些链接库文件,就能正常运行,于是,为我们制作绿色软件提供了方便:我们可以把这些文件拷贝到软件目录中,备份了这个软件目录,就成为绿色版了。这种方法暂时我们叫它“移花接木法”。
Z7c'm*l-pt*t/U
|XSn@,H;ys(FO!H 如何判断软件是否属于上述类型呢,你可以做个试验,当把其中一个必须的 .DLL 文件移开时,软件运行时会有类似下面的提示:
1Ry6i!ZIt X\ U5}
9SM'L.T|q
8t RV+{I pl [attach]30890[/attach][f4k$Gd#G_YN
740)this.width=740" border=undefined>
$G i+V*q*Bu#G2S ^&hY B:E8U
那么,这个 DLL 文件就可以采取“移花接木法”了。
$gR!EU*Y#c 1o2]j;w6_

I9V;\6d!jf --------------------------------------------------------------------------------9y4C2h Oq

j0qLdY8dlD%tG2wE 制作实例:Microsoft Excel 97 纯绿色版的制作过程 E$n[5JOcd1S
o!v&e E ^v ~
    一、进入一个纯净的 WINDOWS 98 SE 系统,我的WIN98是安装在D盘里的;0O2h.I3X/BCeB W$e

7Yd\A)W)z     二、用文件跟踪软件(这类软件很多,推荐用 Uninstall Manager 4.2)为D盘建立一个快照;
8GeQ!AL'[
^+lP3`&Qq2Q#G [attach]30891[/attach]u{'m1Y{ I]&E
+_#B:NF GX,EN6k
740)this.width=740" border=undefined>1IAbx^5S q

.nm9i F UO     三、用注册表跟踪软件(这类软件也很多,推荐用 RegSnap 3.0)为系统注册表建立第一个快照,保存为:EXCEL01.RGSPp"D'ab;COA*r

*n&Z(^ Y4V6o [#[G [attach]30892[/attach]
G-H.MWh-s
P B!w!?B 740)this.width=740" border=undefined>
[O|$~;|9Ojx .k [2c)k`
四、启动 OFFICE97 的安装程序,选择最简安装 EXCEL 97,注意,把安装目录安装到系统所在分区以外的分区里,这样有利于对系统文件变化的跟踪分析,本例中,我安装到“C:\EXCEL97”目录里。
-^DyX{&d.c6Zk i,~'b%Q1N9}.U
[attach]30893[/attach]+@ ywCR1p9FL

Tj1m(L&G/G 740)this.width=740" border=undefined>
&z]!OAv #w]*N"xHc
安装目录里的文件共 5个目录48个文件14.2M:v:}0L^d}v#\+UNb

q'NZ!x4c,epK3R file://C:\excel97 (3 folders, 4 files, 890 bytes, 14.21 MB in total.)qp A6M]g nG
│MSCREATE.DIR 0 bytes
k$Vai(f_Te}%E` │Microsoft Excel.lnk 306 bytes YhL*C#ND`
│Microsoft Office 中文版安装程序.lnk 358 byteslYn:L7D VT-{A
│OF97SPEC.INI 226 bytes
y ky@P&s ├─Clipart (0 folders, 2 files, 275 bytes, 275 bytes in total.)![4z\Z T*I[#[
│MSCREATE.DIR 0 bytes
{~O&xQ"X │Clipart on Office CD.lnk 275 bytes5]4pp!Hx`%Dj Kx c Zj
├─Office (2 folders, 31 files, 13.60 MB, 14.21 MB in total.)VWN,Y4E(DT
││MSCREATE.DIR 0 bytes
ey8uge8qIoG ││EULA8.CNT 195 bytes0x8_sF2yB
││EULA8.HLP 28.95 KB
8j1OQ}T@'Y$c ││EXCEL.EXE 5.51 MBNH4|+{_3Z
││EXCEL8.OLB 571.00 KB
hrj"[*PWo ││EXCEL8.SRG 36.47 KB/|fdK:~
││HLINK.SRG 457 bytes
+FgFR k4E ││MISC.SRG 5.31 KB
Cl6[U8}0S8v| ││MRT7CHS.DLL 1.18 MB
fk|-C[w3I8B ││MSO7CHS.DLL 1.18 MB}DP6i)U$zwZ r,b
││MSO7FTP.EXE 3.00 KB Q4S7FNe*N&L
││MSO7FTPA.EXE 3.00 KB
T^ i{8G%z Ub/e ││MSO7FTPS.EXE 3.00 KB
4K2P8zw9rX3DTj ││MSO97.DLL 3.60 MB)c.g/r8FI
││MSO97FX.DLL 8.77 KB
^"f?-L_x0F.Y { j ││MSOC.DLL 84.00 KB
VLLsN ││MSOFFICE.SRG 1.17 KB&Ip%S1]${ZNN
││MSROUTE.DLL 67.00 KB9|0xE@T sG
││OSA.EXE 50.77 KB
Ds6P4i h x V5xE ││OSAINTL.DLL 6.27 KB/q GU0vo.p} \
││PSS8.CNT 561 bytes
o8_X%xn*j ││PSS8.HLP 30.60 KB'|n+t?CA,da
││SCANLOAD.DLL 12.00 KB
K rJ3y3ren.}"U9KqB2k ││XL5CHS32.OLB 236.00 KB$Y"r[d]S
││XL5EN32.OLB 223.50 KB
3j&h,l8L b?3s N ││XL8409.DLL 23.50 KB
6wT3af{I:l3Kj+b5R1t ││XL8804.DLL 44.50 KB*H$QA#c/l[\"t
││XL8GALRY.XLS 172.00 KB
1c!?:r"hp3U ││XLCALL32.DLL 5.00 KBxe Gs?"M2E Z
││XLINTL32.DLL 554.50 KB
Hp"rQs_ ││XLREAD8.TXT 20.56 KB,? JytD!Ma
│├─Setup (0 folders, 5 files, 621.46 KB, 621.46 KB in total.)d$h N J'vWl
││MSCREATE.DIR 0 bytes
C$L P5xZL_ ││ACME.EXE 72.02 KB,Wr!i k/O,z1Hn%_V|
││ACME.LST 2.33 KB0h q4_)AnM$G
││OFF97INV.DLL 93.00 KB
"t4D(@;Y(Oa} ││Off97Pro.STF 454.11 KB
d&],bAr │└─XLStart (0 folders, 1 files, 0 bytes, 0 bytes in total.)
5RS&rEn`{V"L │MSCREATE.DIR 0 bytes
7|w6G D!E1N+|h └─Queries (0 folders, 5 files, 370 bytes, 370 bytes in total.)
EFEp F1q1J MSCREATE.DIR 0 bytes xB.`U4vB
Detailed Stock Quote by PC Quote, Inc.iqy 102 bytesF ~%M w1]!olG y @
Dow Jones Stocks by PC Quote, Inc.iqy 70 bytes(rS!]l{.@j'T
Get More Web Queries.iqy 92 bytesI_ WC Mf"wH
Multiple Stock Quotes by PC Quote, Inc.iqy 106 bytes
$A*udiwd1I1D-P 0B'p!R.B,?E
-ttqd3F k
G+?yH9v
    五、用 Uninstall Manager 4.2 扫描 D 盘文件的变化,发现 D 盘多了如下目录和文件:
Ok+@8D/Z;Ri+Jm0w
Wu+~g O*M - Uninstall Manager 导出文件 -
&Q2e&zR%v8P Q WININIT.INI D:\WINDOWS\ 1KB 配置设置 04-12-15 0:53:24
K,vEV w/}!n w REFEDIT.DLL D:\WINDOWS\SYSTEM\ 61KB 应用程序扩展 97-4-1
Ne"fV O1a`$fOV&d XLREC.DLL D:\WINDOWS\SYSTEM\ 31KB 应用程序扩展 97-4-1k.oL-D'Z&If8]F,_
RECNCL.DLL D:\WINDOWS\SYSTEM\ 25KB 应用程序扩展 97-4-1
7kb8t.i2T+U-^t@ SELFREG.DLL D:\WINDOWS\SYSTEM\ 31KB 应用程序扩展 97-4-1
%R-a&xX%{Swr` VBAEN32.OLB D:\WINDOWS\SYSTEM\ 24KB OLB 文件 97-4-1W$w$w1q.w$JOIB
VBAEND32.OLB D:\WINDOWS\SYSTEM\ 24KB OLB 文件 97-4-1
Y8z#@.C&a7OrV] e VBACHS32.OLB D:\WINDOWS\SYSTEM\ 23KB OLB 文件 97-4-1c7Y-GN3iy9@
SCP32.DLL D:\WINDOWS\SYSTEM\ 15KB 应用程序扩展 97-4-1A{ ZN7p(Ik#f(D
REGSNAP.LGE D:\WINDOWS\APPLOG\ 2KB LGE 文件 04-12-15 0:51:40
!c g/[fKYC0j8U REGSNAP.LGD D:\WINDOWS\APPLOG\ 4KB LGD 文件 04-12-15 0:51:40
BVs'Q/P w!? EXCEL8.XLS D:\WINDOWS\SHELLNEW\ 13KB Microsoft Excel 工作表 97-4-17SLN1`g c5W$O
安装 Microsoft Internet Explorer 3.01.lnk D:\WINDOWS\DESKTOP\ 1KB 快捷方式 04-12-15 0:57:34U6c auH(e]
安装 IME96.lnk D:\WINDOWS\DESKTOP\ 1KB 快捷方式 04-12-15 0:57:34E7cx@*BD
新建 Office 文档.lnk D:\WINDOWS\START MENU\ 1KB 快捷方式 04-12-15 0:57:34
S"u'a*E_2fT 打开 Office 文档.lnk D:\WINDOWS\START MENU\ 1KB 快捷方式 04-12-15 0:57:348Q#q4p`"X8x)]3o"X
Microsoft Excel.lnk D:\WINDOWS\START MENU\PROGRAMS\ 1KB 快捷方式 04-12-15 0:57:34Gff[S
Office 启动.lnk D:\WINDOWS\START MENU\PROGRAMS\启动\ 1KB 快捷方式 04-12-15 0:57:347g_@mkfGq L \-V
VBA332.DLL D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 1559KB 应用程序扩展 97-4-1#NU$d~b9P
VBACV10.DLL D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 429KB 应用程序扩展 97-4-1(e Y(ITBBU
VBACV20.DLL D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 998KB 应用程序扩展 97-4-1
QTw4Mj*?"[,g&j VBACV10D.DLL D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 435KB 应用程序扩展 97-4-1%i+h9x{ _
VBE.DLL D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 727KB 应用程序扩展 97-4-1,B!~'f8W`8|8P
VBA3CHS.DLL D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 142KB 应用程序扩展 97-4-1
]rldh1Qb/[ VBEEXT1.OLB D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 31KB OLB 文件 97-4-1
5f{DR6{ aLB$]
,z4ygN!x.g 3l#_+Uz*_[*R-j1Q-I]
C`? m1Q8o/n\RW
    六、用 RegSnap 3.0 为注册表建立第二个快照,保存为:EXCEL02.RGS,用注册表比较功能,对 EXCEL02.RGS 和 EXCEL01.RGS 进行比较,并用“生成注册表文件”功能生成 EXCEL01-EXCEL02Redo.reg 文件备用;
-G(U[U:L%i/zK .z7su!V Hl8B x

/}'N`H$T5{V [attach]30894[/attach]
vc!}1hW f6`1~ 740)this.width=740" border=undefined>vX a yg-?-J
0D,V,eC^L;O2v1D
    七、开始进入绿化试验:软件能绿化到那种程度,就看你的运气了。如果程序不依赖注册表的话,就有做成纯绿版的希望,如果要依赖注册表的话,就作多只能做成绿色版或绿化版了。
5[{,g#R6Rz'SX
&Z8~AI)_y_U9Z     1、再次将 WIN98 整理到纯净状态(如何快速整理纯净的系统试验环境,请参考稍后编写的《绿色系统方案》系列文章)。mR;]MCC8n}
w1\trnY|k:m
    2、进入 C:\excel97\Office 目录,启动 EXCEL.EXE,结果跳出一个这样的对话框,关闭这个对话框后,发现程序可以正常使用。
Yg9eINCKA
/L]F&kl.jBv [Pf [attach]30895[/attach];I$abrk2TfP]

*Kx|0Kg` 740)this.width=740" border=undefined>l(h"Y n%`4v

3}2B)i p)^5O,e,eTA     3、将 EXCEL01-EXCEL02Redo.reg (共 377K 之大,好可怕啊),导入注册表,结果程序正常运行,没了这个对话框,但把安装目录改名或移动到其他地方后,那个讨厌的对话框又跑出来了,看来不单单是注册表问题。
`(l M:uA-T5v4T4k 9Z(V"o}$g%jo!x
J#x4`d`^V1\
    4、分析一下,软件安装时,向系统增加了如下关键性文件:GO D My8X

j:o1U a:veyoT}P REFEDIT.DLL D:\WINDOWS\SYSTEM\ 61KB 应用程序扩展 97-4-1
\ yrZ]MID XLREC.DLL D:\WINDOWS\SYSTEM\ 31KB 应用程序扩展 97-4-1
l.vk0M}@4W J RECNCL.DLL D:\WINDOWS\SYSTEM\ 25KB 应用程序扩展 97-4-1&z']/~$D5m.~#b]
SELFREG.DLL D:\WINDOWS\SYSTEM\ 31KB 应用程序扩展 97-4-1
Kp!TdlZ(y3p ^+MJ VBAEN32.OLB D:\WINDOWS\SYSTEM\ 24KB OLB 文件 97-4-1hp].J:r}@0M
VBAEND32.OLB D:\WINDOWS\SYSTEM\ 24KB OLB 文件 97-4-1
+y5CX!S1p6k!s6YYf VBACHS32.OLB D:\WINDOWS\SYSTEM\ 23KB OLB 文件 97-4-1*Q3u3I8Q7AY
SCP32.DLL D:\WINDOWS\SYSTEM\ 15KB 应用程序扩展 97-4-1F%O6]-V;y,J#bS;?I

L&c l/B L VBA332.DLL D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 1559KB 应用程序扩展 97-4-1
/IhL+sNsCC VBACV10.DLL D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 429KB 应用程序扩展 97-4-1!{$L$Q.|:P)O
VBACV20.DLL D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 998KB 应用程序扩展 97-4-1'G!v;U%oX$r!g.s$W8cX
VBACV10D.DLL D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 435KB 应用程序扩展 97-4-1
&\MJ"R.d7ve2|.a VBE.DLL        D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 727KB 应用程序扩展 97-4-1
|^'qf;h%Z VBA3CHS.DLL D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 142KB 应用程序扩展 97-4-1(?;aXQ5i
VBEEXT1.OLB D:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\ 31KB OLB 文件 97-4-1
a?C|:u9E e 9\5l^7kVP
于是,尝试用“移花接木法”,将这些文件移动到 C:\excel97\Office 目录中,结果,EXCEL 正常运行了。
L(Z^zk\ i ll-R8j
6M Y$Tb1k5n     5、进一步试验,把系统注册表恢复到原始状态,再次运行 EXCEL,奇迹出来了:EXCEL 居然也能正常运行,也就是说,不依赖 377K 注册表备份 EXCEL01-EXCEL02Redo.reg 也正常运行了,于是,把 C:\excel97\Office 这个目录拷贝出来,一个原始的纯绿版就这样诞生了。l'L$]l ^
j#F}+HMO

t5\,h,uNth$Xz+P     6、接下来的工作,就是把里面的文件精简一下,去掉一些不必要的文件,打造成精简版。
B)u%Ga'ne8]/_
v]}Y1}LX0r
u%hO?;_^"M     做绿色软件试验是一件痛苦的差事,你要有足够的耐心才行喔,当然一旦完成了任务,又是一件一劳永逸的好事。
3Y oS:gB7@ D)Y {v3Spz{
ZCp_#q!u+J
    OK,写到这里,大家应该来作个作业了,请你用“移花接木法”为 “Turbo Photo 4.0” 做个纯绿版吧

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.