能力值:
( LV2,RANK:10 )
|
-
-
2 楼
下下来看了看,可惜没有太多时间研究 (要工作吃饭啊!! ) 不过可以给你个思路。
1>该程序使用Dotfuscator做了混淆。没有使用更高级的加密保护方法。。
2>用Dis#反编译看看,可以找到LiJingqing.Control.dll这个程序集,v::c(object , System.EventArgs)这个方法,就是注册方法。 我截了其中的一段反编译代码
q.Text = String.Format("Expire at: {0:yyyyMMdd}", z.b(f.Text));
i2 = 6;
goto label_2;
label_7:
break;
label_8:
n.Text = "\u6CE8\u518C\u5931\u8D25\u3002";
i2 = 7;
goto label_2;
label_9:
break;
label_10:
n.Text = "\u6388\u6743\u7801\u5DF2\u8FC7\u671F\u3002";
i2 = 8;
goto label_2;
label_11:;
}
BtnVerify.Text = "\u786E\u5B9A";
r = true;
l_Button.Enabled = false;
BoxUser.ReadOnly = true;
f.ReadOnly = true;
n.Text = String.Format("Register to {0}.", BoxUser.Text);
File.WriteAllText(String.Format("{0}\\{1}.LS.ADMIN", Application.StartupPath, t), f.Text);
i2 = 4;
goto label_2;
3>没有发现使用什么高深的算法,可以参考LiJingqing.dll这个程序集中,z::b()这个函数。 应该和时间日期相关,最后要写文件什么的。
|
能力值:
( LV7,RANK:100 )
|
-
-
3 楼
dotNetSafe真快
这个程序主要就是混淆了..耐力好就直接看il代码..switch混淆,要反混淆还是有点麻烦
主要的两个方法也正如dotNetSafe所说
在z::b()中可以看到
45 L_0082: ldloc.1
46 L_0083: callvirt System.String System.Object::ToString()
47 L_0088: call System.Byte[] System.Convert::FromBase64String(System.String)
48 L_008d: stloc.3
49 L_008e: call System.Text.Encoding System.Text.Encoding::get_Default()
50 L_0093: ldarg.0
51 L_0094: call System.Security.Cryptography.DESCryptoServiceProvider r::d()
52 L_0099: callvirt System.Security.Cryptography.ICryptoTransform System.Security.Cryptography.SymmetricAlgorithm::CreateDecryptor()
53 L_009e: ldloc.3
54 L_009f: ldc.i4.0
55 L_00a0: ldloc.3
56 L_00a1: ldlen
57 L_00a2: conv.i4
58 L_00a3: callvirt System.Byte[] System.Security.Cryptography.ICryptoTransform::TransformFinalBlock(System.Byte[],System.Int32,System.Int32)
59 L_00a8: callvirt System.String System.Text.Encoding::GetString(System.Byte[])
60 L_00ad: stloc.0
61 L_00ae: ldloc.0
62 L_00af: ldstr "(.{4})(.{2})(.{2})"
63 L_00b4: ldstr "$1-$2-$3"
64 L_00b9: call System.String System.Text.RegularExpressions.Regex::Replace(System.String,System.String,System.String)
65 L_00be: call System.DateTime System.DateTime::Parse(System.String)
base64编码 Des加密算法,des的key貌似就是授权码
在分析v::c()这个方法时候..总是被catch到“注册失败”...没搞清楚为什么.
`````````````````````````````````
lz这个软件可是个国产的哦
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
都是高人啊,哇哈哈!
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
试试看! 其实我觉得算法根本没起什么作用。 直接就跳过了。
|
能力值:
( LV7,RANK:100 )
|
-
-
6 楼
楼上两位大师太强大
我去买哇哈哈喝:)
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
最近.net很火啊
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
恩,谢谢楼上几位的分析,我好好研究下。。。。。。。。。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
什么没有链接...
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
为什么我什么都没有看到。?
|
|
|