飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 12819|回复: 12

[原创] 软件绿化参考[7月14日二次修正]

    [复制链接]

该用户从未签到

发表于 2010-6-2 15:17:08 | 显示全部楼层 |阅读模式
本帖最后由 ty1921 于 2010-7-14 16:23 编辑

软件绿化参考
                   ty1921


# 2010/06/02创建
# 2010/07/14二次修正


一,什么是绿软

  绿软就是不需要安装的软件,纯粹的绿色软件不会在电脑上留下任何垃圾,它对现有的操作系统部分没有任何改变,删除的时候,直接删除所在的目录就可以了,类似于以前的大多数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

评分

参与人数 2威望 +20 飘云币 +20 收起 理由
MOV + 20 您的贴子很精彩,希望能再次分享!
月之精灵 + 20 您的贴子很精彩,希望能再次分享!

查看全部评分

PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2024-1-14 09:44
  • 签到天数: 283 天

    [LV.8]以坛为家I

    发表于 2010-6-2 15:21:13 | 显示全部楼层
    学习@@@@@
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-6-2 15:23:19 | 显示全部楼层
    学习了。回头根据这些和别的朋友的文章,学着修改下看看。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2010-6-2 15:27:21 | 显示全部楼层
    恩,学习了!
    顶下1921了
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2017-4-20 22:12
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2010-6-2 15:42:03 | 显示全部楼层
    恩,灰常不错,学习一下
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-6-2 15:51:16 | 显示全部楼层
    跟着来学习下
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-6-2 17:54:26 | 显示全部楼层
    直到这次课才开始接触到绿化。上期虽然有人提过,但是最后不了了之。
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-10-9 11:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2010-6-2 18:14:23 | 显示全部楼层
    写的非常精彩,学习了
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-6-3 16:39:16 | 显示全部楼层
    很精彩,学习一下
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2015-9-1 21:43
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2010-6-3 21:58:22 | 显示全部楼层
    很好,说得很详细。没看过这方面的资料,但长期做绿化中所掌握的 也和楼主提到的差不多了...
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表