新手求助,资源被VM了咋办?
本帖最后由 蓝色贝雷帽 于 2017-12-6 11:27 编辑如图,某IC卡复制软件,VC++8.0,资源被X掉了,试过的资源软件都打不开,求教各路大佬支招,咋逆向呢?
PEID和EXEINFO查没壳,die1.0查.NET Reactor(4.5-4.7)[-]保护
小弟感谢了!
软件地址: http://www.shnsoft.com/down/ICTool.rar
补充内容 (2017-12-15 15:21):
遗憾不能编辑帖子了,不然的话,我要增加悬赏给@GHOSTFISH 大神感谢他的热心帮助。 暂时知道,是.NET Reactor 4.5-4.7壳子保护的,新手没办法,!!!请大家出手~ 这个太初级。直接去官网下de4dot,一脱就光。 ghostfish 发表于 2017-12-7 22:04
这个太初级。直接去官网下de4dot,一脱就光。
现在的de4dot都是3.1版本,搞不定这个小软件,郁闷~ public static string GetHardInfo()
{
string text = "";
string s = "";
string text2 = "";
string text3 = "";
string text4 = "";
string result;
try
{
s = "$#&%@#2@Dk";
ManagementClass managementClass = new ManagementClass("Win32_BaseBoard");
ManagementObjectCollection instances = managementClass.GetInstances();
foreach (ManagementBaseObject managementBaseObject in instances)
{
text2 = ((ManagementObject)managementBaseObject).Properties["SerialNumber"].Value.ToString();
}
managementClass.Dispose();
instances.Dispose();
if (string.IsNullOrWhiteSpace(text2))
{
text2 = "*&P$Aewr%#";
}
if (text2.Length < 10)
{
text2 += "*&P$Aewr%#";
}
text2 = text2.Substring(0, 10);
ManagementClass managementClass2 = new ManagementClass("Win32_Processor");
ManagementObjectCollection instances2 = managementClass2.GetInstances();
foreach (ManagementBaseObject managementBaseObject2 in instances2)
{
text3 = ((ManagementObject)managementBaseObject2).Properties["ProcessorId"].Value.ToString();
}
managementClass2.Dispose();
instances2.Dispose();
if (string.IsNullOrWhiteSpace(text3))
{
text3 = "Hz&*64$%g5";
}
if (text3.Length < 10)
{
text3 += "Hz&*64$%g5";
}
text3 = text3.Substring(0, 10);
ManagementClass managementClass3 = new ManagementClass("Win32_BIOS");
ManagementObjectCollection instances3 = managementClass3.GetInstances();
foreach (ManagementBaseObject managementBaseObject3 in instances3)
{
text4 = ((ManagementObject)managementBaseObject3).Properties["SerialNumber"].Value.ToString();
}
managementClass3.Dispose();
instances3.Dispose();
if (string.IsNullOrWhiteSpace(text4))
{
text4 = "3S@#Fy%u$q";
}
if (text4.Length < 10)
{
text4 += "3S@#Fy%u$q";
}
text4 = text4.Substring(0, 10);
byte[] bytes = Encoding.ASCII.GetBytes(s);
byte[] bytes2 = Encoding.ASCII.GetBytes(text2);
byte[] bytes3 = Encoding.ASCII.GetBytes(text3);
byte[] bytes4 = Encoding.ASCII.GetBytes(text4);
for (int i = 0; i < 10; i++)
{
int num = Math.Abs((int)(bytes - bytes2));
int num2 = Math.Abs((int)(bytes2 - bytes4));
int num3 = Math.Abs((int)(bytes3 - bytes));
int num4 = Math.Abs((int)(bytes4 - bytes));
if (num <= 47 || num >= 58)
{
if (num > 25)
{
num %= 26;
}
num += 65;
}
if (num2 <= 65 || num2 >= 90)
{
if (num2 > 9)
{
num2 %= 10;
}
num2 += 48;
}
if (num3 <= 47 || num3 >= 58)
{
if (num3 > 25)
{
num3 %= 26;
}
num3 += 65;
}
if (num4 <= 65 || num4 >= 90)
{
if (num4 > 9)
{
num4 %= 10;
}
num4 += 48;
}
text = string.Concat(new string[]
{
text,
((char)num).ToString(),
((char)num2).ToString(),
((char)num3).ToString(),
((char)num4).ToString(),
"-"
});
}
goto IL_3A3;
}
catch (Exception ex)
{
result = "获取硬件信息失败!" + ex.Message;
}
return result;
IL_3A3:
if (text.Length > 1)
{
text = text.Substring(0, text.Length - 1);
}
return text;
} ghostfish 发表于 2017-12-15 00:11
public static string GetHardInfo()
{
string text = "";
不愧是高人哪!我的大神!终于有人给解开了。
求教方法或工具或成果? de4dot官方版本 ghostfish 发表于 2017-12-15 14:33
de4dot官方版本
我试过,就是3.1.xxx.3405版吧,在WIN10 X64系统,提示:mmmh, it didn't work. 不能在64位系统上用吗
ghostfish 发表于 2017-12-15 14:33
de4dot官方版本
官网的源码较新,是一个月前更新,但发布的版本却是2014.4月,很老了,就是现在网上的3.1.xxxx.3405版。
求大佬舍一个最新编译的版本!!!哈谢谢了!!!我再加分去~
页:
[1]