Как обойти привязку по железу?
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Как обойти привязку по железу? - 2012-04-28 22:23:59.286666
|
|
|
wit_btk
Сообщений: 3
Оценки: 0
Присоединился: 2012-04-28 21:57:31.720000
|
Добрый день. Не могу найти способ, как обойти привязку по железу данного парсера. Автор проги отказывается мне помочь в этом вопросе. Я уже и не знаю что мне делать ? Я очень надеюсь на Вашу помощь. Заранее благодарен! Вот ссылка: http://www.rapidshare.ru/2818667
|
|
|
RE: Как обойти привязку по железу? - 2012-04-29 11:14:15.340000
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
Net сборка обфусцирована. В каталоге лежит файл License.lic (судя по названию файл лицензии) кодированный bаse64, после декодирования получается бинарный файл: Чем-то пошифрован еще. После деобфускации слово bаse64 встречается несколько раз в коде программы: Интересен класс c000029:
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace ___codefort
{
public sealed class c000029
{
public c000029()
{
}
static c000029()
{
}
public static byte[] m000169(byte[] p0, byte[] p1, byte[] p2)
{
System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
System.Security.Cryptography.Rijndael rijndael = System.Security.Cryptography.Rijndael.Create();
rijndael.Key = p1;
rijndael.IV = p2;
System.Security.Cryptography.CryptoStream cryptoStream = new System.Security.Cryptography.CryptoStream(memoryStream, rijndael.CreateEncryptor(), System.Security.Cryptography.CryptoStreamMode.Write);
cryptoStream.Write(p0, 0, p0.Length);
cryptoStream.Close();
return memoryStream.ToArray();
}
public static string m00016a(string p0, string p1)
{
byte[] bArr1 = System.Text.Encoding.Unicode.GetBytes(p0);
System.Security.Cryptography.PasswordDeriveBytes passwordDeriveBytes = new System.Security.Cryptography.PasswordDeriveBytes(p1, new byte[] { 73, 118, 97, 110, 32, 77, 101, 100, 118, 101, 100, 101, 118 });
byte[] bArr2 = ___codefort.c000029.m000169(bArr1, passwordDeriveBytes.GetBytes(32), passwordDeriveBytes.GetBytes(16));
return System.Convert.Tobаse 64String(bArr2);
}
public static byte[] m00016b(byte[] p0, string p1)
{
System.Security.Cryptography.PasswordDeriveBytes passwordDeriveBytes = new System.Security.Cryptography.PasswordDeriveBytes(p1, new byte[] { 73, 118, 97, 110, 32, 77, 101, 100, 118, 101, 100, 101, 118 });
return ___codefort.c000029.m000169(p0, passwordDeriveBytes.GetBytes(32), passwordDeriveBytes.GetBytes(16));
}
public static void m00016c(string p0, string p1, string p2)
{
bool flag;
System.IO.FileStream fileStream1 = new System.IO.FileStream(p0, System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.FileStream fileStream2 = new System.IO.FileStream(p1, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);
System.Security.Cryptography.PasswordDeriveBytes passwordDeriveBytes = new System.Security.Cryptography.PasswordDeriveBytes(p2, new byte[] { 73, 118, 97, 110, 32, 77, 101, 100, 118, 101, 100, 101, 118 });
System.Security.Cryptography.Rijndael rijndael = System.Security.Cryptography.Rijndael.Create();
rijndael.Key = passwordDeriveBytes.GetBytes(32);
rijndael.IV = passwordDeriveBytes.GetBytes(16);
System.Security.Cryptography.CryptoStream cryptoStream = new System.Security.Cryptography.CryptoStream(fileStream2, rijndael.CreateEncryptor(), System.Security.Cryptography.CryptoStreamMode.Write);
int i1 = 4096;
byte[] bArr = new byte[i1];
do
{
int i2 = fileStream1.Read(bArr, 0, i1);
cryptoStream.Write(bArr, 0, i2);
flag = i2 != 0;
} while (flag);
cryptoStream.Close();
fileStream1.Close();
}
public static byte[] m00016d(byte[] p0, byte[] p1, byte[] p2)
{
System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
System.Security.Cryptography.Rijndael rijndael = System.Security.Cryptography.Rijndael.Create();
rijndael.Key = p1;
rijndael.IV = p2;
System.Security.Cryptography.CryptoStream cryptoStream = new System.Security.Cryptography.CryptoStream(memoryStream, rijndael.CreateDecryptor(), System.Security.Cryptography.CryptoStreamMode.Write);
cryptoStream.Write(p0, 0, p0.Length);
cryptoStream.Close();
return memoryStream.ToArray();
}
public static string m00016e(string p0, string p1)
{
byte[] bArr1 = System.Convert.Frombаse 64String(p0);
System.Security.Cryptography.PasswordDeriveBytes passwordDeriveBytes = new System.Security.Cryptography.PasswordDeriveBytes(p1, new byte[] { 73, 118, 97, 110, 32, 77, 101, 100, 118, 101, 100, 101, 118 });
byte[] bArr2 = ___codefort.c000029.m00016d(bArr1, passwordDeriveBytes.GetBytes(32), passwordDeriveBytes.GetBytes(16));
return System.Text.Encoding.Unicode.GetString(bArr2);
}
public static byte[] m00016f(byte[] p0, string p1)
{
System.Security.Cryptography.PasswordDeriveBytes passwordDeriveBytes = new System.Security.Cryptography.PasswordDeriveBytes(p1, new byte[] { 73, 118, 97, 110, 32, 77, 101, 100, 118, 101, 100, 101, 118 });
return ___codefort.c000029.m00016d(p0, passwordDeriveBytes.GetBytes(32), passwordDeriveBytes.GetBytes(16));
}
public static void m000170(string p0, string p1, string p2)
{
bool flag;
System.IO.FileStream fileStream1 = new System.IO.FileStream(p0, System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.FileStream fileStream2 = new System.IO.FileStream(p1, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);
System.Security.Cryptography.PasswordDeriveBytes passwordDeriveBytes = new System.Security.Cryptography.PasswordDeriveBytes(p2, new byte[] { 73, 118, 97, 110, 32, 77, 101, 100, 118, 101, 100, 101, 118 });
System.Security.Cryptography.Rijndael rijndael = System.Security.Cryptography.Rijndael.Create();
rijndael.Key = passwordDeriveBytes.GetBytes(32);
rijndael.IV = passwordDeriveBytes.GetBytes(16);
System.Security.Cryptography.CryptoStream cryptoStream = new System.Security.Cryptography.CryptoStream(fileStream2, rijndael.CreateDecryptor(), System.Security.Cryptography.CryptoStreamMode.Write);
int i1 = 4096;
byte[] bArr = new byte[i1];
do
{
int i2 = fileStream1.Read(bArr, 0, i1);
cryptoStream.Write(bArr, 0, i2);
flag = i2 != 0;
} while (flag);
cryptoStream.Close();
fileStream1.Close();
}
} // class c000029
}
Видно что используется шифрование по алгоритму Rijndael с ключом { 73, 118, 97, 110, 32, 77, 101, 100, 118, 101, 100, 101, 118 }, эта последовательность байт в читаемом виде:Ivan Medvedev Сподручными тулзами расшифровать не удается. Может кто-то еще покопает.
|
|
|
RE: Как обойти привязку по железу? - 2012-04-29 12:26:52.693333
|
|
|
wit_btk
Сообщений: 3
Оценки: 0
Присоединился: 2012-04-28 21:57:31.720000
|
Файл "License.lic" генерировал автор после того как я ему присылал "код для лицензии: 705D4-A5AD2-495F5", из раздела помощь, он говорил что у него привязка к железу (камень, мать, веник).
|
|
|
RE: Как обойти привязку по железу? - 2012-05-01 12:28:42.200000
|
|
|
wit_btk
Сообщений: 3
Оценки: 0
Присоединился: 2012-04-28 21:57:31.720000
|
Неужели никто не сможет мне помочь :(?
|
|
|
|
|