新手向破解:某CSharp 转Java转换器
本帖最后由 云在天 于 2019-6-7 13:02 编辑昨天破解了一个工具,下载地址 https://www.tangiblesoftwaresolutions.com/index.html ,包含好几个代码转换工具,我用到的是C#代码转Java代码工具。
先下载下来,然后安装,打开后选择一个项目进行转换,发现未注册版本只能转换100行代码,所以接下来准备破解。
查了一下壳,是.net的程序,先拖到de4dot里清理一下,然后用dnspy打开清理后的程序。找到主窗体frmMain,查找关键字“Unlock the Premium Edition”
发现_m142的点击事件为this._m288,点击跟进去,发现App._g13 变量应该就是控制是否注册的变量。对_g13进行分析,发现有三个地方赋值,于是依次进入,修改值为false。
修改完成后保存模块,测试,OK,打开关于看到程序已经为高级版,测试功能正常。
感谢发布原创作品,吾爱破解论坛因你更精彩!
新版本直接赋值不起作用,需要改返回值:
// frmMain
// Token: 0x06000445 RID: 1093 RVA: 0x00055038 File Offset: 0x00053238
private static void Main(string[] sArgs)
{
Application.EnableVisualStyles();
try
{
App._g13 = !App._g32(); //进入App._g32()
}
catch
{
App._g13 = true; //直接赋值为TRUE没有用
}
_g1728 @Object = new _g1728();
Application.ThreadException += @object._g1729;
frmMain._m17 = sArgs;
AppUI._g1673 = (frmMain._m17.Length > 0);
Application.Run(new frmMain());
}
// Token: 0x06000019 RID: 25 RVA: 0x00007EE8 File Offset: 0x000060E8
public static bool _g32()
{
if (TangibleSettings.SettingsFileFoundOnStartup)
{
App._m24 = TangibleSettings.GetUserValue(_g978._g1009(), "");
if (App._m24.Length == 0)
{
App._m24 = TangibleSettings.GetUserValue(_g978._g1008(), "");
if (App._m24.Length > 0)
{
TangibleSettings.SetUserValue(_g978._g1009(), App._m24);
TangibleSettings.RemoveUserValue(_g978._g1008());
}
}
App._m23 = TangibleSettings.GetUserValue(_g978._g1007(), "missing");
if (App._m23 == "missing")
{
App._m23 = TangibleSettings.GetUserValue(_g978._g1006(), "missing");
if (App._m23 != "missing")
{
TangibleSettings.SetUserValue(_g978._g1007(), App._m23);
TangibleSettings.RemoveUserValue(_g978._g1006());
}
}
}
else
{
App._m23 = "missing";
}
if (App._m23 == "missing")
{
return false; //改成返回true就可以
}
if (!App.Copyright_Tangible_Software_Solutions_g35(App._m23, App._m24))
{
AppUI._g1676(string.Concat(new string[]
{
_g978._g1002(),
" (",
App._m23,
"). ",
_g978.Copyright_Tangible_Software_Solutions_g1020(),
"."
}));
App._g31();
return false;
}
App._m6 = long.Parse(TangibleSettings.GetUserValue(_g978._g1011(), "0"));
if (App._m6 == 0L)
{
App._m6 = long.Parse(TangibleSettings.GetUserValue(_g978.Copyright_Tangible_Software_Solutions_g1010(), "0"));
if (App._m6 != 0L)
{
TangibleSettings.SetUserValue(_g978._g1011(), App._m6.ToString());
TangibleSettings.RemoveUserValue(_g978.Copyright_Tangible_Software_Solutions_g1010());
}
}
if (App._m6 == 0L)
{
App._m6 = long.Parse(TangibleSettings.GetUserValue("Build Date on Reg Code Entry", "0"));
if (App._m6 != 0L)
{
bool flag;
bool flag2;
_g1807.Copyright_Tangible_Software_Solutions_g1820(App._m23, out flag, out flag2);
if (flag2 || !flag)
{
App._m6 = DateTime.Now.Ticks;
TangibleSettings.SetUserValue(_g978._g1011(), App._m6.ToString());
}
TangibleSettings.RemoveUserValue("Build Date on Reg Code Entry");
}
}
return (!App._g36 || !App.Copyright_Tangible_Software_Solutions_m25) && !App._g41(""); 高手,这真是高手 学到了学到了!!! mark下,以后用得着再下。 mark一下,说不定能用得上。 还有这么牛的东西{:301_1009:} 高手,向楼主学习 这个不错,很有用,赞楼主。 mark下,向楼主学习