发布网友 发布时间:2022-04-24 12:02
共1个回答
热心网友 时间:2023-10-12 03:31
--------------------------------------------------------------------------------
[转帖]cmd加密码
下面的这个是 设置在运行cmd.exe 的时候 自动执行 linux.bat 的 方法:
打开注册表编辑器,
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
将"AutoRun"="c:\linux.bat"
接着就是 linux.bat的内容了
@echo off
@color c
@prompt [fire@火焰linux $p]
@doskey pwd=cd $*
@doskey mkdir=md $*
@doskey rmdir=rd $*
@doskey mv=move $*
@doskey clear=cls
@doskey uname=ver
@doskey cp=copy
@cls
@D:\perl\bin\perl D:\perl\hello1.pl
rem 上面的 是 执行 我编辑的 perl的 代码的 命令行 个人的路径有所不同 请根据自己的情况而定
@D:\haike\perl\1.vbs
rem 这个是 一个 vbs 脚本 执行一个弹出窗口的
@echo 欢迎来到"火焰" 系统
然后就是 要安装的 一个工具 就是 上面 要运行的 perl 代码的工具 ActivePerl
这个程序 是用来 运行 perl 代码的
本来我想用 最新的 perl2exe 编译成 exe 文件 可惜 这个工具对 其中的加密的 代码
不能确认 导致编译失败 所以只好放弃 使用 perl2exe 用了这个工具直接执行 perl
代码来实现 :
好 现在来 写perl代码
首先编辑 hello1.pl
内容为:
#!/user/bin/perl -w
use Digest::MD5 qw( md5_base );#制定一个函数
$pass1='4QrcOUm6Wau+VuBX8g+IPg'; #加密后的字符串 这里的是 123456 得出的 字符串
print '请输入你的名字:';
$a=<STDIN>; #截取输入的内容 和shell下的 read类似
chomp $a; #赋值给a
print "请输入pass(如果输入错误就会自动关闭cmd):";
$pass=<STDIN>;
chomp $pass;
$pass=md5_base($pass); #用上面制定的函数对pass的值运算出加密代码
if ($pass eq $pass1){
print "口令正确\n";
sleep 0.5; #延时时间 可以自己决定 不延时的话就直接注释掉
exec 'cls';
#验证是否正确并且延时并且清除输入
} else {
sleep 1.5;
print "口令错误";
exec 'taskkill','/F','/IM','cmd.exe','/IM','WScript.exe';#如果错误就调用系统的 命令杀掉cmd.exe进程
}
exit;
然后编辑 一个 得到 上面加密密码字符串的 工具
pass.pl 运行这个脚本 只要进入perl 执行工具的目录中 (也可以在环境变量中加上目录 那就不需要加目录运行了)
perl pass.pl 就会让你输入口令 然后产生字符串 把字符串 粘贴 替换掉 #加密后的字符串 的那一行""中的内容就行了
pass.pl 内容如下:
#!/usr/bin/perl -w
use Digest::MD5 qw( md5_base );
print " 请输入需要加密的字符串:";
$pass=<STDIN>;
chomp $pass;
$pass1=md5_base($pass);
print "加密后的字符串为:$pass1 \n";
剩下的 一个是 1.vbs 的内容了 这个可要可不要 我只是为了好看罢了!!
内容如下 :
DIM WSH
SET WSH=WSCRIPT.CreateObject("WSCRIPT.SHELL")
WSH.POPUP("欢迎来到 ☆火焰☆ 系统")
这个会跳出一个窗口 显示上面的文字内容
呵呵 !!!
一个简单的 加密 cmd.exe 的使用的 方法就成了
当然 这种方法需要 对 用户权限进行设置 所以只有 ntfs 格式的才行
因为 在运行过程中 cmd的窗口上方的标题栏 会显示 读取 的c:\linux.bat 的准确路径
就算是 禁用了注册表 别人只要删除了 c:\linux.bat 文件 这个对cmd.exe 使用的方法 就没用了