吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 1116|回复: 0

[NET逆向图文] Instant VB V25.3.907最新版逆向

[复制链接]
zyyujq 发表于 2025-3-10 15:31 | 显示全部楼层 |阅读模式

本帖最后由 zyyujq 于 2025-3-10 16:42 编辑

运行环境:如 WIN11
涉及工具:如 exeinfope,dnSpy 64
教程类型:如 逆向限制,算法分析等
是否讲解思路和原理:

以下为图文内容:Tangible Software Solutions 的程序代码转换工具集中 Instant VB 用于将 VB.NET 转换为 C#.NET 代码。
在官方网站下载最新版本:https://www.tangiblesoftwaresolutions.com/

fakename.png

fakename.png

Instant VB 程序的主文件有:
Instant VB.exe
Instant VB.dll
Instant VB Logic.dll

通过 exeinfope 检测文件,Instant VB.exe 为 C++ 程序,Instant VB.dll 和 Instant VB Logic.dll 为 .NET X64程序,文件未加密未混淆

fakename.png

fakename.png

用 dnSpy 64 打开 Instant VB.dll 进行调试。可以逆向为高级版本(Premium Edition)。

1、按数字/字符串,搜索 Free 字符,选择点击 winMainSetMainCaption(),查到如下代码
private void SetMainCaption()
        
{
            
if (_g254._g257)
            
{
               
base.Title = AppCore.CurrentProductName + " (Free Edition)";
               
return;
            
}
            
base.Title = AppCore.CurrentProductName;
        
}
代码可以看到 _g254._g257 的逻辑关系为 True 时是免费版。

2、在程序中解锁高级版界面中有 Unlock the Premium Edition,在 dnSpy 64 中搜索  Unlock ,发现 winRegDetails 注册窗体:

fakename.png

解锁高级版代码如下:

        private async void cmdUnlock_Click(object _p0, RoutedEventArgs Copyright_Tangible_Software_Solutions_p1)
        
{
            
string text = this.mskOrderNumber.Text.Trim('_').Trim();
            
if (text.Length == 0)
            
{
               
await _g5.Copyright_Tangible_Software_Solutions_g11(this, "Enter your order number.", TextAlignment.Center);
               
this.mskOrderNumber.Focus(NavigationMethod.Unspecified, KeyModifiers.None);
            
}
            
else
            
{
               
int num;
               
int.TryParse(text, out num);
               
if (num == 0)
               
{
                    
await _g5.Copyright_Tangible_Software_Solutions_g11(this, "The order number should be 5 digits.", TextAlignment.Center);
                    
this.mskOrderNumber.Focus(NavigationMethod.Unspecified, KeyModifiers.None);
               
}
               
else if (num < 10000 || num > 80000)
               
{
                    
await _g5.Copyright_Tangible_Software_Solutions_g11(this, "Please check the order number you received after purchasing.", TextAlignment.Center);
                    
this.mskOrderNumber.Focus(NavigationMethod.Unspecified, KeyModifiers.None);
               
}
               
else
               
{
                    
string text2 = this.txtRegCode.Text._g1813().TrimEnd('.');
                    
if (text2.Length == 0)
                    
{
                        
await _g5.Copyright_Tangible_Software_Solutions_g11(this, "Enter your registration code.", TextAlignment.Center);
                        
this.txtRegCode.Focus(NavigationMethod.Unspecified, KeyModifiers.None);
                    
}
                    
else if (text2 == AppCore._g290)
                    
{
                        
await _g5.Copyright_Tangible_Software_Solutions_g11(this, "Enter the new registration code you received after purchasing.", TextAlignment.Center);
                        
this.txtRegCode.Focus(NavigationMethod.Unspecified, KeyModifiers.None);
                    
}
                    
else if (AppCore.Copyright_Tangible_Software_Solutions_g306(text2, text))
                    
{
                        
this._proceed = true;
                        
AppCore._g297(text2, text);
                        
this._g0 = _g0.OK;
                        
base.Close();
                    
}
                    
else
                    
{
                        
await _g5._g12(this, string.Concat(new string[]
                        
{
                           
_g1459._g1460(),
                           
" (",
                           
text2,
                           
"). ",
                           
_g1459.Copyright_Tangible_Software_Solutions_g1471(),
                           
"."
                        
}));
                    
}
               
}
            
}
        
}


代码可以分析在 AppCore.Copyright_Tangible_Software_Solutions_g306(text2, text) 的逻辑关系为 True 时是高级版。

点击 AppCore.Copyright_Tangible_Software_Solutions_g306,dnSpy 64 进入此代码,在 Instant VB Logic.dll 的 AppCore 类中

    public static bool Copyright_Tangible_Software_Solutions_g306(string _p0, string Copyright_Tangible_Software_Solutions_p1)
   
{
        
return AppCore._g299(_p0, Copyright_Tangible_Software_Solutions_p1) && AppCore._g298(_p0, Copyright_Tangible_Software_Solutions_p1) && !AppCore._g293;
   
}


从代码中可以看出 Copyright_Tangible_Software_Solutions_g306 AppCore._g299(_p0, Copyright_Tangible_Software_Solutions_p1)AppCore._g298(_p0, Copyright_Tangible_Software_Solutions_p1)
都需要返回逻辑关系为 True

在 dnSpy 64 中编辑 IL 指令,使 g306g298g299 直接返回  True 代码如下:


    private static bool _g298(string _p0, string Copyright_Tangible_Software_Solutions_p1)
   
{
        
return true;
   
}


    private static bool _g299(string _p0, string Copyright_Tangible_Software_Solutions_p1)
   
{
        
return true;
   
}


    public static bool Copyright_Tangible_Software_Solutions_g306(string _p0, string Copyright_Tangible_Software_Solutions_p1)
   
{
        
return true;
   
}


在 dnSpy 64 中保存模块,运行程序,程序可以注册成功,但存在时间效验,在 AppCore 类中查找和分析,发现 g305 时间效验代码。

    public static bool _g305
   
{
        
get
        
{
            
if (AppCore._g289)
            
{
               
if (_g2498._g2514)
               
{
                    
return false;
               
}
               
long num = DateTime.Now.AddMonths(1).Ticks - DateTime.Now.Ticks;
               
bool flag;
               
bool flag2;
               
long num2 = _g2498._g2524(AppCore.Copyright_Tangible_Software_Solutions_g266, out flag, out flag2);
               
if (num2 > 0L)
               
{
                    
if (AppCore._g267 == "13620" && AppCore.Copyright_Tangible_Software_Solutions_g266._g1817("84153KS"))
                    
{
                        
return DateTime.Now.Ticks > new DateTime(2025, 11, 4).Ticks;
                    
}
                    
long num3 = DateTime.Now.AddDays(1.0).Ticks - DateTime.Now.Ticks;
                    
if (AppCore._g268 > 0L && AppCore._g268 < num2 + num)
                    
{
                        
if (DateTime.Now.Ticks > AppCore._g268 + AppCore._g304 + num3)
                        
{
                           
return true;
                        
}
                    
}
                    
else if (DateTime.Now.Ticks > num2 + AppCore._g304 + num + num3)
                    
{
                        
return true;
                    
}
               
}
               
else
               
{
                    
if (flag)
                    
{
                        
return true;
                    
}
                    
if (AppCore._g268 > 0L)
                    
{
                        
if (_g2498._g2522 != DateTime.MinValue && _g2498._g2522.Ticks > AppCore._g268 + AppCore._g304 + num)
                        
{
                           
return true;
                        
}
                        
if (AppCore._g264 > AppCore._g268 + AppCore._g304 + num)
                        
{
                           
return true;
                        
}
                    
}
               
}
            
}
            
return false;
        
}
   
}


将时间代码 g305 编辑 IL 指令,使其直接返回  False 代码如下:


    public static bool _g305
   
{
        
get
        
{
            
return false;
        
}
   
}


所有的 IL 指令编辑如下:


逻辑关系为 False
0        0000        ldc.i4.0
1        0001        ret


逻辑关系为 True
0        0000        ldc.i4.1
1        0001        ret



再次在 dnSpy 64 中保存模块,运行程序。

在注册解锁中随意输入订购单号 24128 和注册码 ChinaRedke-Crack-2025,程序注册成功,没有时间效验。程序逆向成功。
在解锁高级版界面 Unlock the Premium Edition 中置入默认注册信息:

            maskedTextBox3.Name = "mskOrderNumber";
            
obj = maskedTextBox3;
            
context.AvaloniaNameScope.Register("mskOrderNumber", obj);
            
maskedTextBox3.TabIndex = 1;
            
maskedTextBox3.Mask = "25311";//将 00000 修改为自定义订购码


            textBox3.Name = "txtRegCode";
            
obj = textBox3;
            
context.AvaloniaNameScope.Register("txtRegCode", obj);
            
textBox3.Text = "ChinaRedke-Crack-2025";//将空格填入注册码

解锁高级版界面就不要人工输入了。
fakename.png

关于汉化,可以使用 IL 指令编辑汉化界面显示。


Tangible Software Solutions 的其它代码转换程序逆向与此雷同,不再阐述。

C# to C++ Converter V25.3.713
C++ to C# Converter V25.3.713
C++ to Java Converter V25.3.713
C++ to Python Converter V25.3.713
CSharp to Java Converter V25.3.713
CSharp to Python Converter V25.3.713
Instant CSharp  V25.2.2311
Instant VB   V25.3.907
Java to C# Converter V25.3.716
Java to C++ Converter V25.3.713
Java to Python Converter  V25.3.713





补充内容 (2025-3-19 08:35):
本站删下载,提供CSDN下载:
https://download.csdn.net/download/zyyujq/90472082

CSDN博客:
https://blog.csdn.net/zyyujq/article/details/143491223


补充内容 (2025-3-19 08:36):
https://blog.csdn.net/zyyujq/article/details/143314744

https://blog.csdn.net/zyyujq/article/details/122934216
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表