一款虚拟串口工具的破解过程
本帖最后由 阳光好青年 于 2020-11-30 16:32 编辑最近做单片机用到串口收发数据,单片机发送的数据到MOXA的串口模块,再到达应用层是TCP协议的,小公司的应用层根本不给你开发什么接口,只能用一些网上的串口工具,那又太死板不灵活,所以我就借助开源的串口工具源码、配合TCP转串口的软件写了个调测工具,但结果发现“TCP转串口的软件”只有3天的试用时间啊,刚好前天下午上班划了划水整出来无期限试用版本,今天就划水给大家分享下。
emmm、整个过程是这样子的:
1、首先这款工具是网上搜到的,一看也是小公司想的就应该不会太难,实际也是花了下午时间从学习破解软件使用到搞完破解:
2、首先查壳,果不其然...和我预料的一样.....就单纯是.net平台编写的软件
3、就搜了下.NET的破解 用到的工具是Reflector、和插件Reflexil.Reflector.AIO,论坛里都有的,这里大家看一下我学习的教程 https://www.52pojie.cn/thread-271347-1-1.html,不得不说很详细啊 我只用到了一个功能。
4、然后用Reflector打开看了下源码都有,想到的第一个关键词就是 Register,运气很好,直接看到有个类,里面还有个方法 isOverdue,明显就是试用期判断的方法,直接重写强制返回false,就无期限试用了:
5、这里放下软件下载地址,大家自己可以搞搞,成功了也能提高自己的兴趣,http://www.meixuannet.cn/
6、提前给大家拜个早年!isAuth 函数应该就是直接正式版的接口了 本帖最后由 vipcrack 于 2020-11-30 20:28 编辑
可以KEYGEN
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Windows.Forms;
namespace MX_keygen
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private static double log10(ulong x)
{
return Math.Log(x) / Math.Log(10.0);
}
public static string Encoder(ulong str)
{
string text = "";
for (int i = (int)Math.Floor(log10(str) / log10(62UL)); i >= 0; i--)
{
int num = (int)Math.Floor(str / Math.Pow(62.0, (double)i));
text +=keyaaa.ToString();
str -= (ulong)((double)num * Math.Pow(62.0, (double)i));
}
return text;
}
public static ulong Decoder(string str)
{
ulong num = 0UL;
int num2 = str.Length - 1;
for (int i = 0; i <= num2; i++)
{
num += (ulong)((long)keyaaa.IndexOf(str.Substring(i, 1).ToCharArray()) * (long)((ulong)Math.Pow(62.0, (double)(num2 - i))));
}
return num;
}
private static List<char> keyaaa = new List<char>
{
'v',
'P',
'h',
'7',
'z',
'Z',
'w',
'A',
'2',
'L',
'y',
'U',
'4',
'b',
'G',
'q',
'5',
't',
'c',
'V',
'f',
'I',
'M',
'x',
'J',
'i',
'6',
'X',
'a',
'S',
'o',
'K',
'9',
'C',
'N',
'p',
'0',
'O',
'W',
'l',
'j',
'Y',
'T',
'H',
'Q',
'8',
'R',
'E',
'n',
'm',
'u',
'3',
'1',
'B',
'r',
'd',
'g',
'e',
'D',
'k',
'F',
's'
};
public static string MD5Encrypt32(string password)
{
string text = "";
byte[] array = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(password));
for (int i = 0; i < array.Length; i++)
{
text += array.ToString("X2");
}
return text;
}
protected ulong[] Crc32Table;
public void GetCRC32Table()
{
Crc32Table = new ulong;
for (int i = 0; i < 256; i++)
{
ulong num = (ulong)i;
for (int num2 = 8; num2 > 0; num2--)
{
num = (((num & 1) != 1) ? (num >> 1) : ((num >> 1) ^ 0xEDB88320u));
}
Crc32Table = num;
}
}
public ulong GetCRC32Str(string sInputString)
{
GetCRC32Table();
byte[] bytes = Encoding.ASCII.GetBytes(sInputString);
ulong num = 4294967295uL;
int num2 = bytes.Length;
for (int i = 0; i < num2; i++)
{
num = (num >> 8) ^ Crc32Table[(num & 0xFF) ^ bytes];
}
return num ^ 0xFFFFFFFFu;
}
private void button1_Click(object sender, EventArgs e)
{
string sInputString = MD5Encrypt32(textBox1.Text.Substring(6,32));
ulong num = GetCRC32Str(sInputString);
if (num < 268435456)
{
num += 268435456;
}
string value = Encoder(num);
textBox2.Text = value;
}
}
} ZCShou 发表于 2020-12-1 15:44
Keygen 代码是 vipcrack 的!不过貌似是有点问题的。好像是时间不对!
试试这个 楼主弄得我这个伸手党都不好意思伸手了,难道真的要自己来…… 这款软件感觉挺不错 楼主不应该发一个破解版的软件吗{:1_937:} 最近给串口玩死了,谢谢楼主分享 啊这。。。就拜年了?? 感谢楼主分享! 学习了,感谢分享 楼主弄得我这个伸手党都不好意思伸手了,难道真的要自己来……,
感谢楼主,拜托楼主,直接发一个成品,好吗 是的,直接发个成品呗