能力值:
( LV2,RANK:10 )
|
-
-
2 楼
.net reflector 配上用场了。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
软件我下了,我会再百度怎么用
有高人能帮我先破解个软件给用用吗
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
http://blog.csdn.net/u010561359/article/details/8986660
这篇文章把破解软件的过程总结成三步。非常精辟,通过本文的方法我破解了好几个.net程序。
原来破解.net这么简单。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
给个连接看看
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
reflector + Reflexil插件:静态分析+程式修改
ilspy:静态分析+动态调试
de4dot:反混淆,包括很多主流的保护方式
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
这软件是无注册部份功能限制
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
谢谢各位高人的指点
今晚有活可忙了
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
没有高手要帮忙
那可以给些.net.NET Framework SDK的调试教程吗
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
首先反编译.NET,一看是混搅过的。
不过用的 混搅软件垃圾的可以。应该可以破掉
找到比对的方法 原来是通过 EMAIL +一个算法生产的序列号。这里是 反运算一次,然后和EMAIL 进行比对如果OK 那么 去 http://www.mysoft.idv.tw/mymoneymail.txt 查找有没有这个邮箱
如果有就是注册成功。
好的我们继续
找到 反运算的 方法
通过我整理 得到
static string a(string A_0)
{
string str5 = "";
StringType.MidStmtStr(ref A_0, 1, 1, " ");
StringType.MidStmtStr(ref A_0, 2, 1, " ");
StringType.MidStmtStr(ref A_0, 3, 1, " ");
A_0 = A_0.Trim();
if ((A_0.Length % 5) == 0)
{
if (A_0.Length >= 20)
{
if (A_0.Trim() != "")
{
int num8 = A_0.Length;
int start = 1;
Re:
if (start <= num8)
{
string str = Strings.Mid(A_0, start, 5);
int num4 = Strings.Asc(Strings.Mid(str, 1, 1));
int num5 = Strings.Asc(Strings.Mid(str, 4, 1));
string str2 = Strings.Mid(str, 2, 1);
string str3 = Strings.Mid(str, 3, 1);
string str4 = Strings.Mid(str, 5, 1);
int num6 = 0;
if (num4 <= num5)
{
num6 = num5 - num4;
}
num6 = num4 - num5;
int num = (Strings.Asc(str2) - num6) - 0x41;
int num2 = (Strings.Asc(str3) - num6) - 0x41;
int num3 = (Strings.Asc(str4) - num6) - 0x41;
string am1 = Conversions.ToString(num);
string am2 = Conversions.ToString(num2);
string am3 = Conversions.ToString(num3);
double zm = Conversion.Val( am1+am2+am3);
str5 = str5 + Conversions.ToString(Strings.Chr((int)Math.Round(zm)));
start += 5;
goto Re;
}
}
}
}
return str5;
}
这样的代码
然后 根据这个代码的规则 写出 序列号算法: (搞笑的是C#在调用VB的库。算了为了方便嘛。我也不管了。直接用了)
static string DE(string a)
{
string re = "";
foreach (char c in a)
{
int m = Strings.Asc(c);
int am1 = 51;
int am2 = 50;
string zm = m.ToString();
int x1 = 0;
int x2 = 0;
int x3 = 0;
x1 = 0;
x2 = Convert.ToInt32(zm[0].ToString());
x3 = Convert.ToInt32(zm[1].ToString());
x1 += 1;
x2 += 1;
x3 += 1;
x1 += 0x41;
x2 += 0x41;
x3 += 0x41;
string mr = "";
mr += Strings.Chr(am1);
mr += Strings.Chr(x1);
mr += Strings.Chr(x2);
mr += Strings.Chr(am2);
mr += Strings.Chr(x3);
re += mr;
}
re = "abc" + re;
int mxxx = re.Length;
return re;
} 最后 随便选个邮箱: 国内这个地址打不开哦。我选了个香港的服务器开的
注册成功: 你看人家卖 200块钱的东西又被我破掉了~台湾人写软件真不咋的。你看连窗口图标都不改。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
你看多简单嘛
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
如果用SA 混搅的话。 那我也没办法了~
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
@.@~~~
高人....
我看的眼花了
我只会用OD暴破
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
请问.NET软件您是用什么调试器破解的
我想找找教程
以前学OD是看天草和黑鹰
现在教程不好找啊
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
.NET 不需要调试,看看代码就知道他干嘛了。 对付JAVA 和.NET 我一般都不调试的。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
那能不能给个序号用用
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
无需调用VB库的C#代码
static string MMZ_RegCode(string email)
{
string regcode = "";
Random random = new Random(); //随机种子
foreach (char email_char in email)
{
//电子邮箱的每个字符演算成5个字符组成注册码的主体部分。
string email_char_ascii = string.Format("{0:D3}", (UInt16)email_char); //电子邮箱字符串的每个字符取ASCII值,格式化成3位10进制数值;
int regcodepart_1 = random.Next(65, 90); // 随机产生一个A..Z之间的随机字母,产生第一位字符的ASCII值。
int regcodepart_4 = random.Next(65, 90); // 随机产生一个A..Z之间的随机字母,产生第四位字符的ASCII值。
int regcodepart_2 = Convert.ToUInt16(email_char_ascii[0].ToString()); //电子邮箱字符串得到的3位10进制数值,百位。
int regcodepart_3 = Convert.ToUInt16(email_char_ascii[1].ToString()); //电子邮箱字符串得到的3位10进制数值,十位。
int regcodepart_5 = Convert.ToUInt16(email_char_ascii[2].ToString()); //电子邮箱字符串得到的3位10进制数值,个位。
regcodepart_2 += Math.Abs(regcodepart_1 - regcodepart_4); //加上第一位字符与第四位字符ASCII值的差的绝对值。
regcodepart_3 += Math.Abs(regcodepart_1 - regcodepart_4); //加上第一位字符与第四位字符ASCII值的差的绝对值。
regcodepart_5 += Math.Abs(regcodepart_1 - regcodepart_4); //加上第一位字符与第四位字符ASCII值的差的绝对值。
regcodepart_2 += 0x41; //加上65,产生第二位字符的ASCII值。
regcodepart_3 += 0x41; //加上65,产生第三位字符的ASCII值。
regcodepart_5 += 0x41; //加上65,产生第五位字符的ASCII值。
string regcodemain = "";
regcodemain += (char)regcodepart_1; // 得到第一位字符。
regcodemain += (char)regcodepart_2; // 得到第二位字符。
regcodemain += (char)regcodepart_3; // 得到第三位字符。
regcodemain += (char)regcodepart_4; // 得到第四位字符。
regcodemain += (char)regcodepart_5; // 得到第五位字符。
regcode += regcodemain; //得到主体部分。
}
regcode = "MMZ" + regcode; //前面再加上程序的简称。
return regcode;
}
有可能更加接近作者的原意。
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
没有语言基础,只会爆破
求个序号机啊
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
注册机是用Excel做的,实际上口算都能得到结果。
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
真的能用了
太感谢了
EXCEL也能做出注册机
真神啊
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
楼主可以放对应的版本上来么?学习一下
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
.net reflector8.3
|
|
|