软件绿化参考
ty1921
一,什么是绿软
绿软就是不需要安装的软件,纯粹的绿色软件不会在电脑上留下任何垃圾,它对现有的操作系统部分没有任何改变,删除的时候,直接删除所在的目录就可以了,类似于以前的大多数DOS程序。一般的绿色软件可能会对注册表或文件进行关联,不如前面那类程序绿化的彻底。
绿软的好处是重装系统后不需要再次安装,直接使用即可。而且可以拷贝进U盘,做到随走随用。
绿软的坏处是缺少与系统的关联,某些功能相对较弱,但从技术角度来讲,绿色软件是将来的趋势,操作系统在将来仅仅需要提供足够强大的基础接口,也就不会产生绿化与非绿化的问题。
需要注意现在某些软件借绿软的幌子,实质是安装版本,而大型软件如OFFCIE系统的绿化版本现在还不是很好用,完全是绿化作者水准问题,当然这也和OFFICE于系统的关联过于复杂有关。
二,如何编写一个绿软
操作注册表与写文件都是为主程序提供数据,理论上完全可以由主程序自身提供,但性能开销太大,耦合性过高。
在编写程序的时候,需要注意以下几点:
1,尽量不动注册表,如果非要实现开机启动,可尝试任务计划或开始菜单的启动项;存储数据的注册表项,可以通过ini等配置文件实现
2,尽量不要分散文件,最好全部保持在主程序目录
三,如何绿化一个简单程序
1,分析
——没有绿化不了的软件,只有复杂不复杂
a,分析并监视安装程序
b,分析运行时所用到的键值和所操作的文件。
c,试错法,重命名某个文件后运行程序,检测异常
d,观察卸载数据文件uninstall.dat,复制程序目录后运行卸载程序
*推荐工具:Total Uninstall,Regmon,FileMon...
2,保持文件完整性。将相关文件拷贝到程序目录
——攘外必先安内
a,系统文件夹内
b,其他位置
3,分析注册表关联
——当断不断,反受其乱
a,取消不必要的关联,或改写为读取本地ini文件
b,工作量太大时,可直接导出注册表
4,修正程序
——二次创造,思路最重要
a,在移动拷贝文件时,路径已经发生了改变,比如system32下的变成了当前目录下,其实很好解决:
将GetSystemDirectory的返回值在主程序中改为"./",如此,原本的"c:/windows/system32/demo.dll"就变成了"./demo.dll"
获取系统路径的API多,修正程序的方法更多,此处仅举例以抛砖引玉。
b,注册表部分
1),取消关联,重定位到读取ini配置文件的API上,返回结果后SMC代码处理,得到结果返回原CALL
2),直接regedit导出注册表相关内容,可借助软件分析
5,打包,异机测试
——修正BUG是程序员进步的源泉
a,测试通过,一切正常,结束绿化
b,测试错误,直接在异机调试,查找问题所在并进行修复,直至正常运行并确保功能模块可用,结束绿化
*推荐在虚拟机上测试并进行修正工作
*6,进行破解,修改资源等工作 - -!
四,绿化软件的实例——黄河播放器的绿化:
示例暂略。
五,总结
操作三部曲:
(1),所有文件统一放到主程序目录下,以便在拷贝时保持程序整体的完整性
(2),取消对注册表的依赖,或是将关键注册表信息导出,在需要的时候导入系统
(3),修正程序相关代码
致谢:
CHINAPYG
FCT小组