TA的每日心情 | 奋斗 3 天前 |
---|
签到天数: 2393 天 [LV.Master]伴坛终老
|
首先我们来了解一下网通的拨号软件的密码在注册表中的位置.打开注册表到HKEY_USERS\S-1-5-21-1606980848-920026266-854245398-100\Software\OneWave的项,其中S-1-5-21-1606980848-920026266-854245398-1003为SID(安全表示符,也就是用户名在电脑里的编号,每个电脑,每个用户都是不一样的,你只要打开你自己的)3 I% }; o& v; P/ s4 @
在……OneWave\NetClient为2.0版本,……\OneWave\NetClient\Setting为1.2版本,如果你保存密码就会在相应的里面创建密码和用户名,如下图
& {, K f3 ?* z( c, Q2 `9 n
4 Y) [- A6 d) I# f. y6 e! | @1.2版本密码位置( {% B# I2 R2 }9 T$ {$ S7 A
/ v& S% [: F+ v) T% l2 a4 t
2.0版本的用户名和密码都经过加密,生成16进制的字符串,如下图。
- E5 q) c; b: f) G# r" E- D+ i. d) h) O
1.2版本的用户名是明文保存的,密码则经过加密,但是在加密后,有些密文字符是显示不出来的,只有通过修改二进制数据才能看到,然而在win2000和98的注册表中鼠标右键没有“修改二进制数据”,而XP就有,如下图。7 B' g3 r0 j) d1 }& a M8 R8 L. V
- z5 f, S7 e/ ?至于在2000和98下怎么100%翻译密文很麻烦有些密文字符是显示不出来的,不如XP好,XP可以100%翻译。
, n- m/ o) i! p/ r( M8 P j+ f B, q% J
& c/ [3 [1 e/ [ q/ ^现在说算法,是我用C语言写的,你可以把它用VB改一下。- s+ {0 V6 J* \# @. F
1.2版本(需知道密文的二进制数据,也就是在XP下)( h; C3 S& s; ?" [( g
printf("Please enter password:"); /*输入一个2位的16进制数据d*/
$ X& c' ^, R; q0 M$ _scanf("%x",&d); G! w+ n. C" X$ l( V
if((d>=0&&d<=32)||(d>=64&&d<=95)) /*计算机将d转换为10进制来计算,如果0<=d<=32或64<=d<=95*/% e7 T' k- J) a; B
{b=d%4; /*b=d/4的余数*/5 J0 e) @7 d, ^, Q0 z
if(b==0||b==1) /*如果b=0或b=1*/2 Z- g% a7 E5 @1 r5 S2 ^
c=93-d; /*c=93-d*/4 M. R: r) s% Z. \- f( Y1 V
else if(b==2||b==3) /*如果b=2或b=3*/% C% q5 x. h+ {2 f6 |' l
c=97-d; /*c=97-d*/
$ }% _, S( }" }3 `: t}; V+ X& F" k, X/ Z, R
if((d>=32&&d<=63)||(d>=96&&d<=126)) /*如果0<=d<=32或64<=d<=95*/
+ d% P! r; n3 l* {{b=d%4; /*类似以上方法*/# n3 F% _' f2 {' p: h( B3 L
if (b==0||b==1)
: D: ]& r+ C7 J5 P6 sc=157-d;; c. j& h0 M! y8 } ?& ~/ C1 I
else if (b==2||b==3)- f* _( d, l+ _" @( V
c=161-d;
5 W3 O/ c$ n9 ^- i3 R}' w" G3 i& V: @6 C. S: P2 L1 h8 F" K
printf(" THE WORD IS:%c\n\n",c); /*将10进制c对应的ASCⅡ的明文输出*/
% A* o1 Z) d* R) O
- q7 _ p5 ^8 [9 ^1 f" i* O 2.0版本很简单只要用每一排16进制的字符串如上图中的例子349F9DA19D以9F-34,9D-34,A1-34,9D-34得到的结果转换为10进制,在对应ASCⅡ就是明文了。, b6 j; b$ S, ~" Z
- t ^ I! Q# a$ w9 j% B) o ~. l
7 s3 _+ q$ x& R( s 我用C写了个翻译软件,自己用着,你们用VB写,或加上其他功能的话,别忘了给发我一个,章鱼谢过了^_^ |
|