软件绿化参考

软件绿化参考
                                                      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小组

 

 

你可能感兴趣的:(工作,虚拟机,api,测试,Office,ini)