Blog Tags: Update 自连接 别名 不明确
学校用的是dell gx520型号的机器,最近一次蓝屏后提示irql_not_less_or_equal 尝试了最后一次正确的配置,没用。查了很多资料,微软官方有这么一篇文章,说要移除计算机上所有不必要的硬件。断开所有通用串行总线 (USB) 设备和打印机,移除网络适配器、声卡、串行适配器等。(http://support.microsoft.com/?kbid=311564)于是我进入安全模式,结果设备管理器一片空白。网上说要启动plug and play的服务,于是在服务里列表里找到了被禁用的plug and play的服务并启用了它。ok,接下来卸载了第一个usb的硬件,结果鼠标键盘同时失去响应了(估计刚好是掌控鼠标键盘的设备),重启之后,蓝屏果然消除,不过恐怖的是,登陆界面键盘居然失灵了,填不了密码就没法登录。
键盘失灵的原因,据说很有可能是因为新版本qq和usb鼠标键盘冲突造成的,无奈dell的机器没有ps2口,上次碰到这个问题,解决的方法是刚好那台机器安装了远程控制软件,于是远程控制登录进去在设备管理器中将键盘卸载扫描一下硬件更新,重新加载一次驱动就解决了,不过这一次可没这么走运,没有装过什么远程控制的软件。
最后进入了一次“带命令提示符的安全模式”居然就好了,其它安全模式都和正常模式一样,键盘失灵,难道这个模式会重新加载了键盘驱动?
Blog Tags: Dell irql_not_less_or_equal
病毒特征:
查看服务列表,窗口过了几秒钟后自动关闭。
不能在开始、运行中打开regedit,cmd等,提示找不到程序。在windows目录下发现了regedit.exe.exe这样的文件,却可以打开注册表编辑工具。如果删除regedit.exe,又会自动生成。
部分驱动器根目录下出现了autorun..这样的文件夹,无法删除也无法进入
网上找了n久,终于手工一步一步解决问题了。转载这篇解决方案是因为网上盛传的那个专杀工具没有反应,按作者所说,改好文件关联后在安全模式下运行一次还是没有任何反应。
解决办法:
转自http://www.lsxk.org/bbsrecon.php?id=3855
症状:
不能打开msconfig、regedit等名字的程序,提示找不到程序,但是改名可以打开。
不能打开大部分流行的杀毒软件、杀毒工具。
不能导入注册表、不能使用批处理。
该病毒不会使得隐藏文件不可见。
其他可能症状:
锐捷认证后不能获得IP,code 6系统错误,不能连接网络。
很奇怪,4个分区,原来都做了免疫,E盘没问题,其他3个盘C/D/F只是把以前的免
疫文件夹Autorun.inf里的“病毒免疫目录.”删除,不过Autorun.inf文件夹还在。
多了一个目录和一个文件:根目录不用Autorun.inf配置文件了,用autorun.inf.tmp,
编辑就可以看到内容,不知道是因为免疫的原因使得病毒文件变成这样的还是病毒原
来就是这样,文件夹是一个“RunAuto..”的目录,进不去看的,病毒文件autorun.pif
就放里面。
顺便说,以前用DelAutorun1.0.7.2批处理杀毒的时候出现“回收站损坏”的问题,
放心,这个不会对你的系统造成损害的。
批处理杀毒已经成为历史,请大家使用蓝色星空Viurs病毒版置底的最新DelAutorun杀
毒工具,也欢迎热心的同学加入我们,完善该工具,为大家服务。
下面附病毒分析及解决方法:
================病毒分析================
添加服务:
kkdc=C:\WINDOWS\lsass.exe
system用户进程:
lsass.exe(和系统的一样哦,WINDOWS\lsass.exe ,占用7m内存,系统的才1m多,手动停止
服务后即可,不用结束进程)
可能有的进程:
cmd.exe.exe
释放到%windir%即%SystemRoot%目录的病毒:
WINDOWS\cmd.exe.exe (验证md5后,和系统的一致,病毒只是改名改路径,不过还是
建议删除,因为有C:\WINDOWS\cmd.exe.exe或者病毒修改注册
表禁止软件所以不能在开始菜单里运行cmd以及批处理等。)
WINDOWS\lsass.exe
WINDOWS\regedit.exe.exe (验证md5后,和系统的一致,病毒只是改名,建议删除)
WINDOWS\setuprs1.PIF
分区根目录及文件:
目录runauto…\ (最后的“.\”当然不会显示了,写这个符号表示这个目录进不了)
文件runauto..\autorun.pif (其实就是lsass.exe,大小一样,名字不同而已。)
文件autorun.inf.tmp (下面附它里面的内容)
[AutoRun]
open=RUNAUT~1\autorun.pif
shell\1=打开(&O)
shell\1\Command=RUNAUT~1\autorun.pif
shell\2\=浏览(&B)
shell\2\Command=RUNAUT~1\autorun.pif
shellexecute=RUNAUT~1\autorun.pif
=================手动解决方法:======================
推荐用“开始-运行-command”操作。
先显示所有隐藏文件、系统文件。(不会?控制面板-文件夹选项-查看-自己慢慢看)
先删除C:\WINDOWS\cmd.exe.exe (如果没有就跳过这步)
右健点击install.inf选择安装修复文件关联。
(install.inf下载http://lsxk.org/bbscon.php?bid=67&id=66423&ap=595
特别注意!install.inf只用于XP系统,而且系统不安装在C盘的不要用!)
从C:\WINDOWS\system32\dllcache\regedit.exe复制到C:\WINDOWS\regedit.exe
从C:\WINDOWS\system32\dllcache\cmd.exe复制到C:\WINDOWS\system32\cmd.exe
改名cmd为随机数字的文件名并运行(或者试试开始-运行-command)
输入下面3条命令:
net stop kkdc
sc stop kkdc (这条只是监测是否已经删除服务)
sc delete kkdc
剩下就删除文件即可:
DEL /F /Q /A %SystemRoot%\cmd.exe.exe
DEL /F /Q /A %SystemRoot%\lsass.exe
DEL /F /Q /A %SystemRoot%\regedit.exe.exe
DEL /F /Q /A %SystemRoot%\setuprs1.PIF
“runauto..”这个文件夹不能直接删除,要用下面命令(X代表盘符,比如C、D啊)
rd /s /q X:\runauto…\
或者
rd /s /q runaut~1
清理注册表:
开始-运行-regedit等程序或者即使你直接双击打开regedit程序,也会出现提示对话框:
Windows找不到文件’regedit’。请确定文件名是否正确后,再试一次。要搜索文件,
请单击[开始]按钮,然后单击”搜索”。
如果你把文件名改名字后就可以打开了。杀毒之后,把regedit.exe改名字,然后打开,
打开下面的项:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\
Image File Execution Options]
如存在如下项删除:
cmd.exe
cmd.com
msconfig.exe
msconfig.com
360safe.exe
avp.com
avp.exe
adam.exe
EGHOST.exe
IceSword.exe
iparmo.exe
kabaload.exe
KRegEx.exe
KvDetect.exe
KVMonXP.kxp
KvXP.kxp
MagicSet.exe
mmsk.exe
NOD32.exe
PFW.exe
PFWLiveUpdate.exe
QQDoctor.exe
Ras.exe
Rav.exe
RavMon.exe
regedit.exe
regedit.com
regedt32.exe
runiep.exe
SREng.EXE
TrojDie.kxp
WoptiClean.exe
顺便说另一个限制软件运行的地方(XP系统):
开始-运行-输入“gpedit.msc”打开组策略-本地计算机策略-计算机配置-
Windows设置-安全设置-软件限制策略-其它规则,看到有限制的删除即可。
重启后再检查清理一次,然后就可以上网了。
建议步骤:
从C:\WINDOWS\system32\dllcache\msconfig.exe复制到
C:\WINDOWS\pchealth\helpctr\binaries\msconfig.exe覆盖原有文件。
其他说明:
删除NTFS分区的Autorun.inf免疫目录方法:
echo Y|cacls X:\Autorun.inf /T /C /P everyone:F & RD /S /Q X:\Autorun.inf
清理注册表也可以用下面的命令:
REG DELETE “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Executi
on Options\msconfig.exe” /f
REG DELETE “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Executi
on Options\regedit.exe” /f
REG DELETE “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Executi
on Options\regedt32.exe” /f
?
加密狗,ekey,或者说电子锁,上次用的是ePass1000,这次要改用et99,从代码角度而言,至少et99更加简洁了,确实对底层进行了一定的封装,且其说明书是全中文的,代码样例有所改善,不过还是没有没有注释,一大堆底层调用的代码怎么能没有注释呢~
先从怎么用说起,自己摸索了下,总算搞定了~
et99相关所有文件可以在这儿下载 http://www.rockey.com.cn/download_authentication.html
复制ET99_MOD.dll和FT_ET99_API.dll到sys32目录,执行regsvr32 ET99_MOD.dll注册成功后
打开delphi,选择component,import activex control,找到et99_mod 1.0 type library(version1.0)单击左下角install,选择yes执行build,成功后会提示注册了新的文件到系统中。然后打开示例程序就不会报缺少ET99_MODLib_TLB.dcu的错误了。
接下来, 从组件面板上找到activex这一页,拉一个et99mod组件到页面上,改名为ET99,编译的时候就不会报缺少组件的错了,至此编译应该没问题了,不过还有一大堆不打紧的hint。
接下来需要把ET99初始化,从官网下载一个批量初始化工具,然后勾选右边设置项里面的“硬件pid”,然后填写“新的user pin码”和“pid种子”(随意填写),单击左下角设置,产生了新的硬件pid,这个要填写到demo的tokenPID一栏,而userPin要填写到userPin一栏,注意userpin要16位。初始化完成后,再运行demo就一切ok了。
好,接下来是demo里面关键部分的代码,我辛辛苦苦加了注释:
procedure TForm1.BtnCryptDemoClick(Sender: TObject);
var
wstrAuthKey, wstrEmpty, wstrText: string;
strKey2, strEmpty: OleVariant;
key2, digest, softDigest: array[0..15] of byte;
strKey1: array[0..31] of byte;
strDigest: array[0..15] of byte;
key1: array[0..31] of byte;
text: array[0..55] of byte;
Ran: array[0..50] of byte;
TokenKey: array[0..31] of byte;
AuthKey: array[0..31] of byte;
cbWritten: integer;
I, j: integer;
begin
try
for I := 0 to 50 do
Ran[I] := I;
for j := 0 to 31 do
AuthKey[j] := j;
PrintStr('Hash MD5_HMAC by software');
ET99.Soft_MD5HMAC(Ran[0], 51, AuthKey[0], 32, strKey1[0], softDigest[0]);
ReportSucc;
//更新硬件中存储的用于解密运算的密钥,随机数可以随意,其根据AuthKey生成strKey1将被放入ekey中
PrintStr('Set Key to device');
ET99.SetKey(1, strKey1[0]); //更新1号密钥
ReportSucc;
//根据随机数,软件计算得出运算结果赋值给softDigest,至此这些是在服务器端执行的
PrintStr('MD5_HMAC compute by software');
ET99.Soft_MD5HMAC(Ran[0], 51, AuthKey[0], 32, strKey1[0], softDigest[0]);
//随机数,随机数长度,用户密码,用户密码长度,存储在ekey中需要参与运算的密钥(计算结果时作废),计算结果
ReportSucc;
//随机数交给ET99,运算结果赋值给strDigest,这一步是在客户端执行的,接下来客户端将结果回送给服务器进行比对
PrintStr('MD5_HMAC compute by ET99');
cbWritten := 1; //使用1号密钥进行运算
ET99.MD5HMAC(1, 51, Ran[0], strDigest[0]);
ReportSucc;
//对比strDigest和softDigest是否一致,即对比由软件执行的运算结果和硬件执行的运算结果是否一致
PrintStr('Verify result');
if memcmp(softDigest, strDigest, 16) = 0 then
ReportSucc
else
PrintStrLn(' [Failed]');
except
on e: EOleSysError do
begin
ReportErr(e.ErrorCode);
end
end;
end;
接下来发一下客户端调用的完整代码,去掉了服务端需要调用的部分函数,附加打开关闭等等琐碎细节:
procedure StrToBuf(strData: string; var binBuf: array of byte);
var
i: integer;
begin
for i := 1 to length(strData) do
binBuf[i - 1] := ord(strData[i]);
end;
function TForm1.ET99GetRndAndPwd(pRnd: string; var pPwd: string): Boolean; //充值随机数以及加密密文
var
pUserpin: array[0..15] of BYTE;
i: integer;
pTokenPid: array[0..7] of BYTE;
tokencount: array[0..1] of integer;
byteRnd: array[0..55] of Byte;
byteDigest: array[0..15] of Byte;
const
userPin: string = '0000000000000000';//userpin
token: string = '00000000';//pid
RndLen: Integer = 16;
begin
try
try
Result := True;
pPwd := '';
StrToBuf(userPin, pUserpin);
StrToBuf(token, pTokenPid);
ET99.FindToken(pTokenPid[0], tokencount[0]); //确认一共有几个eKEY
ET99.OpenToken(pTokenPid[0], 1); //打开第一个eKEY
ET99.VerifyPIN(0, pUserpin[0]); //验证userPin
StrToBuf(pRnd, byteRnd);
ET99.MD5HMAC(1, RndLen, byteRnd[0], byteDigest[0]); //使用1号密钥进行运算
for i := 0 to 15 do pPwd := pPwd + Char(byteDigest[i]); //将加密密文转换成字符串
finally
ET99.CloseToken;
end;
except
on e: EOleSysError do
begin
ReportErr(e.ErrorCode);
Result := False;
end
end;
end;
Blog Tags: et99 ekey delphi
找了n久,终于发现了~
http://feeds.qzone.qq.com/cgi-bin/cgi_rss_out?uin=QQ号码