TA的每日心情 | 奋斗 昨天 10:21 |
---|
签到天数: 2398 天 [LV.Master]伴坛终老
|
首先我们来了解一下网通的拨号软件的密码在注册表中的位置.打开注册表到HKEY_USERS\S-1-5-21-1606980848-920026266-854245398-100\Software\OneWave的项,其中S-1-5-21-1606980848-920026266-854245398-1003为SID(安全表示符,也就是用户名在电脑里的编号,每个电脑,每个用户都是不一样的,你只要打开你自己的)( l$ b/ ~6 d$ {
在……OneWave\NetClient为2.0版本,……\OneWave\NetClient\Setting为1.2版本,如果你保存密码就会在相应的里面创建密码和用户名,如下图
) e# |; C+ f" U0 Q/ o) n/ f5 z: P$ [! V$ s! P
1.2版本密码位置
- F9 G% `/ ]5 _3 E P
- a R$ j; C2 _2 n' r 2.0版本的用户名和密码都经过加密,生成16进制的字符串,如下图。9 |9 R9 j+ c4 T3 t* Z/ W. Q
( \# s! h$ U! P" a' [1 A7 x 1.2版本的用户名是明文保存的,密码则经过加密,但是在加密后,有些密文字符是显示不出来的,只有通过修改二进制数据才能看到,然而在win2000和98的注册表中鼠标右键没有“修改二进制数据”,而XP就有,如下图。2 N7 H, r) t( O7 K( {
2 W3 M& ~# ?7 N+ O) w! m$ H `" K
至于在2000和98下怎么100%翻译密文很麻烦有些密文字符是显示不出来的,不如XP好,XP可以100%翻译。
, L4 ]7 ]9 q# N5 w/ G6 [. d* S* ]. n% ^
, R7 _7 @' s; ~现在说算法,是我用C语言写的,你可以把它用VB改一下。
8 l$ c' u" v' {1.2版本(需知道密文的二进制数据,也就是在XP下)
( |) k A0 c# p4 wprintf("Please enter password:"); /*输入一个2位的16进制数据d*/
- ]5 @) o* D1 H, N, t. v+ d& d; j* ]scanf("%x",&d);9 ?5 D2 r+ [& W' Z, c! U
if((d>=0&&d<=32)||(d>=64&&d<=95)) /*计算机将d转换为10进制来计算,如果0<=d<=32或64<=d<=95*/* w; X' t( {) H+ H! J
{b=d%4; /*b=d/4的余数*/
+ u. c T; i3 ^7 ^$ [6 a' c. O$ O if(b==0||b==1) /*如果b=0或b=1*/
) V) l3 r p S! H& j, W3 [ c=93-d; /*c=93-d*/
0 g- Q" T, h) l% Welse if(b==2||b==3) /*如果b=2或b=3*/& G/ n, Z: Z- |$ j/ L! a: z
c=97-d; /*c=97-d*/
; ?. r1 n9 E. f5 ~, i}
% j. {% K5 z1 l& s: v$ R+ ~* T1 uif((d>=32&&d<=63)||(d>=96&&d<=126)) /*如果0<=d<=32或64<=d<=95*/ 2 H! C* H0 c+ z0 q
{b=d%4; /*类似以上方法*/
7 S; I4 v$ C- {2 C/ Q8 `if (b==0||b==1) H4 s9 I2 c3 u; H
c=157-d;3 m6 z0 K% O. l" w1 ?" s& v) V
else if (b==2||b==3)) C' E1 q' r& d1 K" n
c=161-d;8 a" z9 A5 d% W7 H* y! n" f1 r
}
! i# a1 o6 f2 M9 }9 s2 Hprintf(" THE WORD IS:%c\n\n",c); /*将10进制c对应的ASCⅡ的明文输出*/) W) v& h J' i0 U% V
" W: I% f9 N$ q7 k3 U 2.0版本很简单只要用每一排16进制的字符串如上图中的例子349F9DA19D以9F-34,9D-34,A1-34,9D-34得到的结果转换为10进制,在对应ASCⅡ就是明文了。: N) D5 x5 V+ |" V, p2 V
/ N) u& S% T5 P8 S2 l l0 A* {
9 ~( C6 E) X; j5 n, S 我用C写了个翻译软件,自己用着,你们用VB写,或加上其他功能的话,别忘了给发我一个,章鱼谢过了^_^ |
|