вылечить от жадности BarCodeTerminal
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
RE: вылечить от жадности BarCodeTerminal - 2011-10-27 17:13:13.856666
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
Если кто-то в C# шарит, то вот код
using System;
using System.Net;
using BarCodeTerminalHosting.My;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
namespace BarCodeTerminalHosting
{
[Microsoft.VisualBasic.CompilerServices.StandardModule]
internal sealed class Defence
{
public static long AddKey()
{
string s1 = "";
string s2 = "";
s2 = BarCodeTerminalHosting.Defence.oct_to_bool(BarCodeTerminalHosting.My.MySettingsProperty.Settings.AnswerKey);
s1 = Microsoft.VisualBasic.Strings.Mid(s2, 7, 1) + s1;
s1 = Microsoft.VisualBasic.Strings.Mid(s2, 5, 1) + s1;
s1 = Microsoft.VisualBasic.Strings.Mid(s2, 3, 1) + s1;
return checked((long)System.Math.Round(Microsoft.VisualBasic.Conversion.Int(BarCodeTerminalHosting.Defence.bool_to_val(s1))));
}
public static string bool_to_oct(string in_bool)
{
long l2 = (long)Microsoft.VisualBasic.Strings.Len(Microsoft.VisualBasic.Strings.Trim(in_bool));
string s2 = "";
double d = ((double)l2 / 3.0) - Microsoft.VisualBasic.Conversion.Int((double)l2 / 3.0);
if ((d < 0.5) & (d > 0.0))
{
in_bool = "00" + Microsoft.VisualBasic.Strings.Trim(in_bool);
d = 0.0;
}
if ((d > 0.5) & (d > 0.0))
{
in_bool = "0" + Microsoft.VisualBasic.Strings.Trim(in_bool);
d = 0.0;
}
l2 = (long)Microsoft.VisualBasic.Strings.Len(Microsoft.VisualBasic.Strings.Trim(in_bool));
long l3 = checked(checked(l2 - (long)3) + (long)1);
for (long l1 = (long)1; l1 <= l3; l1 = checked(l1 + (long)3))
{
s2 += BarCodeTerminalHosting.Defence.bool_to_oct_triade(Microsoft.VisualBasic.Strings.Mid(in_bool, checked((int)l1), 3));
}
return Microsoft.VisualBasic.Strings.Trim(s2);
}
public static string bool_to_oct_triade(string in_bool)
{
long l1;
in_bool = Microsoft.VisualBasic.Strings.Right("000" + Microsoft.VisualBasic.Strings.Trim(in_bool), 3);
byte b = 0;
do
{
long l2 = checked((long)System.Math.Round(Microsoft.VisualBasic.Conversion.Val(Microsoft.VisualBasic.Strings.Mid(in_bool, checked(3 - b), 1))));
l1 = checked((long)System.Math.Round((double)l1 + (System.Math.Pow(2.0, (double)b) * (double)l2)));
b = checked((byte)(b + 1));
} while (b <= 2);
return Microsoft.VisualBasic.Strings.Trim(Microsoft.VisualBasic.Conversion.Str(l1));
}
public static double bool_to_val(string in_bool)
{
string s = BarCodeTerminalHosting.Defence.bool_to_oct(in_bool);
return Microsoft.VisualBasic.Conversion.Val("&O" + s);
}
public static string clear_key()
{
string s2 = BarCodeTerminalHosting.Defence.oct_to_bool(BarCodeTerminalHosting.My.MySettingsProperty.Settings.AnswerKey);
s2 = BarCodeTerminalHosting.Defence.cut_str(s2, (long)7, (long)1);
s2 = BarCodeTerminalHosting.Defence.cut_str(s2, (long)5, (long)1);
s2 = BarCodeTerminalHosting.Defence.cut_str(s2, (long)3, (long)1);
double d = BarCodeTerminalHosting.Defence.bool_to_val(s2);
return d.ToString();
}
public static string cut_str(string in_str, long pos, long len_cut)
{
return Microsoft.VisualBasic.Strings.Left(in_str, checked((int)checked(pos - (long)1))) + Microsoft.VisualBasic.Strings.Mid(in_str, checked((int)checked(pos + len_cut)));
}
public static System.DateTime d_r()
{
System.DateTime dateTime1;
System.DateTime dateTime2 = new System.DateTime(0x7BC, 1, 1);
if (System.DateTime.Compare(BarCodeTerminalHosting.My.MySettingsProperty.Settings.DateEndPeriod, dateTime2) == 0)
{
System.DateTime dateTime3 = System.DateTime.Now;
System.DateTime dateTime4 = dateTime3.Date;
BarCodeTerminalHosting.My.MySettingsProperty.Settings.DateEndPeriod = dateTime4.AddDays(30.0);
}
return BarCodeTerminalHosting.My.MySettingsProperty.Settings.DateEndPeriod;
}
public static bool data_demo()
{
bool flag;
if (BarCodeTerminalHosting.Defence.text_out())
return true;
if (BarCodeTerminalHosting.My.MySettingsProperty.Settings.PeriodExpired)
return false;
if (System.DateTime.Compare(System.DateTime.Today, BarCodeTerminalHosting.Defence.d_r()) > 0)
{
BarCodeTerminalHosting.My.MySettingsProperty.Settings.PeriodExpired = true;
return false;
}
return true;
}
public static bool ErrorReport2(string MyFunction, System.Exception ex)
{
// decompiler error
}
public static long MashineSerialNumber(string strDrive)
{
long l;
try
{
string s2 = "";
string s3 = System.Net.Dns.GetHostName().ToString();
s3 = s3.ToUpper() + "\0";
string s4 = Microsoft.VisualBasic.Strings.Right("MEG" + Microsoft.VisualBasic.Strings.Trim(s3), 3);
int i2 = Microsoft.VisualBasic.Strings.Len(s4);
for (int i1 = 1; i1 <= i2; i1 = checked(i1 + 1))
{
string s5 = Microsoft.VisualBasic.Strings.Mid(s4, i1, 1);
string s1 = Microsoft.VisualBasic.Strings.Right("000" + Microsoft.VisualBasic.Strings.Trim(Microsoft.VisualBasic.Conversion.Str(Microsoft.VisualBasic.Strings.Asc(s5))), 3);
s2 += Microsoft.VisualBasic.Strings.Trim(s1);
}
s2 = Microsoft.VisualBasic.Strings.Right("00000000" + s2, 8);
l = checked((long)System.Math.Round(Microsoft.VisualBasic.Conversion.Val(s2)));
}
catch (System.Exception e)
{
Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(e);
BarCodeTerminalHosting.Defence.ErrorReport2("MashineSerialNumber", e);
l = (long)0xFFFFFFFF;
Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError();
}
return l;
}
public static string oct_to_bool(string in_val)
{
string s3 = "";
in_val = Microsoft.VisualBasic.Strings.Trim(in_val);
long l2 = (long)Microsoft.VisualBasic.Strings.Len(in_val);
for (long l1 = (long)1; l1 <= l2; l1 = checked(l1 + (long)1))
{
string s2 = BarCodeTerminalHosting.Defence.val_to_bool(Microsoft.VisualBasic.Conversion.Val(Microsoft.VisualBasic.Strings.Mid(in_val, checked((int)l1), 1)));
if ((int)l1 > 1)
s2 = Microsoft.VisualBasic.Strings.Right("000" + s2, 3);
s3 += s2;
}
return Microsoft.VisualBasic.Strings.Trim(s3);
}
public static bool text_out()
{
long l2;
string s2 = Microsoft.VisualBasic.Strings.Trim(Microsoft.VisualBasic.Conversion.Str(System.Math.Abs(BarCodeTerminalHosting.Defence.MashineSerialNumber("c:\\"))));
bool flag = false;
string s1 = BarCodeTerminalHosting.Defence.clear_key();
byte b = checked((byte)System.Math.Round(Microsoft.VisualBasic.Conversion.Val(Microsoft.VisualBasic.Strings.Left(s1, 1))));
if ((int)BarCodeTerminalHosting.Defence.AddKey() == 1)
{
long l1 = checked((long)System.Math.Round(Microsoft.VisualBasic.Conversion.Val(Microsoft.VisualBasic.Strings.Mid(s1, 2))));
if (b == 1)
l2 = l1 ^ (long)0x34B02B;
if (b == 2)
l2 = l1 ^ (long)0x33859E;
if (b == 3)
l2 = l1 ^ (long)0x13D028;
if (b == 4)
l2 = l1 ^ (long)0x8AA959;
if (b == 5)
l2 = l1 ^ (long)0x96391F;
if (b == 6)
l2 = l1 ^ (long)0x31088D;
if (b == 7)
l2 = l1 ^ (long)0x95E551;
s2 = Microsoft.VisualBasic.Strings.Left(s2, 7);
long l3 = checked((long)System.Math.Round(Microsoft.VisualBasic.Conversion.Val(s2)));
if ((l2 == l3) && ((int)l2 != 0))
flag = true;
}
return flag;
}
public static string val_to_bool(double in_val)
{
double d1 = in_val;
string s2 = "";
while (d1 > 0.0)
{
double d3 = d1 / 2.0;
double d2 = d3 - Microsoft.VisualBasic.Conversion.Int(d3);
if (d2 > 0.0)
s2 = "1" + s2;
else
s2 = "0" + s2;
d1 = Microsoft.VisualBasic.Conversion.Int(d3);
}
return Microsoft.VisualBasic.Strings.Trim(s2);
}
} // class Defence
}
http://floomby.ru/content/F7EEVgg5UE
|
|
|
RE: вылечить от жадности BarCodeTerminal - 2011-10-28 10:52:48.746666
|
|
|
artpunk
Сообщений: 3
Оценки: 0
Присоединился: 2007-12-13 15:06:30.460000
|
Есть подозрение что функция text_out() проверяет правильность введенного серийника public static bool text_out()
{
**** l2;
string s2 = Microsoft.VisualBasic.Strings.Trim(Microsoft.VisualBasic.Conversion.Str(System.Math.Abs(BarCodeTerminalHosting.Defence.MashineSerialNumber("c:\\"))));
bool flag = false;
string s1 = BarCodeTerminalHosting.Defence.clear_key();
byte b = checked((byte)System.Math.Round(Microsoft.VisualBasic.Conversion.Val(Microsoft.VisualBasic.Strings.Left(s1, 1))));
if ((int)BarCodeTerminalHosting.Defence.AddKey() == 1)
{
**** l1 = checked((****)System.Math.Round(Microsoft.VisualBasic.Conversion.Val(Microsoft.VisualBasic.Strings.Mid(s1, 2))));
if (b == 1)
l2 = l1 ^ (****)0x34B02B;
if (b == 2)
l2 = l1 ^ (****)0x33859E;
if (b == 3)
l2 = l1 ^ (****)0x13D028;
if (b == 4)
l2 = l1 ^ (****)0x8AA959;
if (b == 5)
l2 = l1 ^ (****)0x96391F;
if (b == 6)
l2 = l1 ^ (****)0x31088D;
if (b == 7)
l2 = l1 ^ (****)0x95E551;
s2 = Microsoft.VisualBasic.Strings.Left(s2, 7);
**** l3 = checked((****)System.Math.Round(Microsoft.VisualBasic.Conversion.Val(s2)));
if ((l2 == l3) && ((int)l2 != 0))
flag = true;
}
return flag;
} а функция data_demo() решает активирована прога или нет public static bool data_demo()
{
bool flag;
if (BarCodeTerminalHosting.Defence.text_out())
return true;
if (BarCodeTerminalHosting.My.MySettingsProperty.Settings.PeriodExpired)
return false;
if (System.DateTime.Compare(System.DateTime.Today, BarCodeTerminalHosting.Defence.d_r()) > 0)
{
BarCodeTerminalHosting.My.MySettingsProperty.Settings.PeriodExpired = true;
return false;
}
return true;
} Если пофиксить вызовы этих функций, так чтобы они всегда возвращали TRUE будет профит?
|
|
|
|
|