使用解密软件UNSHELL:从初级到高级 罗松林 1997-01-01   UNSHELL是由新经典工作组推出的、继以RCOPY03为代表的脱壳解密工具软件之后一种通用解密软件,其特点是:   无需人工干预:用户只需执行命令UNSHELL [需解密还原的软件文件名]即可进行UNSHELL的基本操作,UNSHELL将根据软件的类型自动生成一个后缀名为“EX!”或“CO!”的文件。   选择参数多样:UNSHELL的高级使用用法中提供了多样的选择参数,用户有机地结合这些参数将有效地提高解密效果。   还原效果明显:只要UNSHELL能够正常工作,还原后的文件与原始软件基本上是一样的,稍微不同之处是还原后的文件在重定位表和文件尾部可能出现一些废字节,但基本不影响软件的完整性。   运行条件要求低:286计算机以上,内存容量不限,硬盘不少于3M。另外,在使用UNSHELL时不能运行诸如S-ICE之类的跟踪软件。 #2  UNSHELL的初级用法:   作为一个全自动脱壳解密工具,UNSHELL的基本使用方法十分简单。   只需将欲解密文件拷入UNSHELL所在目录,并将钥匙盘插入软驱中,键入命令:UNSHELL [被解密文件名],即可达到目的。 #2  UNSHELL的高级用法:   UNSHELL提供了相当多的选择参数供用户有机组合到脱壳解密过程中⒙提高解密效果。这些参数及其作用如下:   /B 完整运行脱壳解密软件程序⒙默认值是在断点处中止运行。在默认值情况下⒙UNSHELL在确认软件被脱壳解密后就自动停止软件的运行。如果在软件停止运行后系统运行不正常⒙可以使用/B参数。   /M 强制UNSHELL在脱壳解密后给出完整的COM文件。UNSHELL对于COM格式的文件会自动做优化处理⒙如果脱壳解密后出现生成的COM文件过小或者无法正常运行等情况⒙可使用/M参数强制生成完整的COM文件。   /X 只处理EXE文件。使用/X参数⒙可以防止UNSHELL把加密软件外壳错误地识别为COM文件来进行脱壳解密。   /On 0⑶把覆盖模块写到新的EXE文件尾部。当软件中包含有一些覆盖模块时⒙UNSHELL将覆盖模块连接到生成的EXE尾部。            1:把覆盖模块写到新程序*.OV!中。当软件中包含有一些覆盖模块时⒙UNHSELL创建一个后缀名为OV!的覆盖程序(此种方式为默认方式)。   /S 使用UNSHELL设置的内部堆栈。如果脱壳解密后的软件不能正常运行⒙或者软件中某些数据遭到破坏⒙可以加载/S参数。   /C 强制使用汉字信息提示。UNSHELL能识别汉字环境,并自动使用汉字提示。如果出现失误⒙可以使用/C参数强制使用汉字提示信息。   /E 强制使用英文信息提示。UNSHELL能识别英文环境,并自动使用英文提示,如果出现失误⒙可以使用/E参数强制使用英文提示信息。   /N 不写入UNSHELL版权信息。默认情况下UNSHELL在展开的文件中加入了新经典工作组的版权信息,如果影响软件的正常执行⒙可以使用/N参数(在SHAREWARE版中不能使用)。 #2  使用UNSHELL的几个注意事项:   1.在进行解密时最好不要使用SMARTDRV等加速程序。   2.在进行解密时最好不要有过多的驱动程序和软件驻留内存。   3.尽量提供较多的基本内存,以防止在解密较大规模软件时出现内存不够的情况。   4.如果需解密的软件运行后要驻留内存⒙则最好先直接运行一遍,然后再运行UNSHELL进行解密。   5.如果UNSHELL解密的软件无法正常运行⒙应当分别试用/N、/S参数。