能力值:
( LV2,RANK:10 )
在线值:
2 楼
你只给这点信息,你让我们情何以堪?
能力值:
( LV3,RANK:30 )
3 楼
用Reflector 分析,找關鍵點,,
能力值:
( LV2,RANK:10 )
在线值:
4 楼
感谢楼上的二位。 因为太菜,所以不知道该提供什么信息,我试着用OLLYDbg进行破解,可是实在是看不懂,还得请教大家,请帮忙!
当试着输入注册码000000后,提示失败,取消了进城,得到下列信息:
请大家帮忙1
上传的附件:
能力值:
( LV3,RANK:30 )
5 楼
是.NET啊。你用OD調試?一般脫殼我才用
能力值:
( LV2,RANK:10 )
在线值:
6 楼
不懂用reflector,先查资料,稍后再请教!谢谢了!!
能力值:
( LV3,RANK:30 )
7 楼
如果是混淆的話,你還是要努力
能力值:
( LV2,RANK:10 )
在线值:
8 楼
用reflector的Disassemble得到下列信息:
// Assembly mscorlib, Version 2.0.0.0
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyDefaultAlias("mscorlib.dll")]
[assembly: AllowPartiallyTrustedCallers]
[assembly: AssemblyCompany("Microsoft Corporation")]
[assembly: AssemblyDescription("mscorlib.dll")]
[assembly: AssemblyTitle("mscorlib.dll")]
[assembly: CLSCompliant(true)]
[assembly: ComVisible(false)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility]
[assembly: AssemblyKeyFile(@"f:\RTM\Tools\devdiv\EcmaPublicKey.snk")]
[assembly: AssemblyProduct("Microsoft\x00ae .NET Framework")]
[assembly: DefaultDependency(LoadHint.Always)]
[assembly: TypeLibVersion(2, 0)]
[assembly: ComCompatibleVersion(1, 0, 0xce4, 0)]
[assembly: Guid("BED7F4EA-1A96-11d2-8F08-00A0C9A6186D")]
[assembly: StringFreezing]
[assembly: AssemblyDelaySign(true)]
[assembly: NeutralResourcesLanguage("en-US")]
[assembly: SatelliteContractVersion("2.0.0.0")]
[assembly: AssemblyInformationalVersion("2.0.50727.42")]
[assembly: AssemblyFileVersion("2.0.50727.42")]
[assembly: AssemblyCopyright("\x00a9 Microsoft Corporation. All rights reserved.")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification=true)]
该如何下手呢?
能力值:
( LV2,RANK:10 )
在线值:
9 楼
用reflector diassembler 得到下列信息,大家帮忙看看啊
namespace CommServer
{
using Microsoft.VisualBasic.CompilerServices;
using Microsoft.Win32;
using System;
using System.IO;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
public class CMyRegistry
{
public static bool CreateSubKey(string sKey, KeyName key = -2147483646)
{
bool flag;
try
{
RegistryKey key2;
if (key == KeyName.HKEY_CLASSES_ROOT)
{
key2 = Registry.ClassesRoot.CreateSubKey(sKey);
}
else if (key == KeyName.HKEY_CURRENT_USER)
{
key2 = Registry.CurrentUser.CreateSubKey(sKey);
}
else if (key == KeyName.HKEY_LOCAL_MACHINE)
{
key2 = Registry.LocalMachine.CreateSubKey(sKey);
}
else if (key == KeyName.HKEY_USERS)
{
key2 = Registry.Users.CreateSubKey(sKey);
}
else if (key == KeyName.HKEY_CURRENT_CONFIG)
{
key2 = Registry.CurrentConfig.CreateSubKey(sKey);
}
flag = key2 != null;
}
catch (Exception exception1)
{
ProjectData.SetProjectError(exception1);
Exception ex = exception1;
m_Base.ExceptionProcess(ex, "", true, m_Base.enumLogUint.Month);
ProjectData.ClearProjectError();
}
return flag;
}
public static string GetValue(string sRegistrykey, string sDefaultValue = "", KeyName key = -2147483646)
{
string str;
try
{
RegistryKey key2;
string directoryName = Path.GetDirectoryName(sRegistrykey);
string fileName = Path.GetFileName(sRegistrykey);
if (key == KeyName.HKEY_CLASSES_ROOT)
{
key2 = Registry.ClassesRoot.CreateSubKey(directoryName);
}
else if (key == KeyName.HKEY_CURRENT_USER)
{
key2 = Registry.CurrentUser.CreateSubKey(directoryName);
}
else if (key == KeyName.HKEY_LOCAL_MACHINE)
{
key2 = Registry.LocalMachine.CreateSubKey(directoryName);
}
else if (key == KeyName.HKEY_USERS)
{
key2 = Registry.Users.CreateSubKey(directoryName);
}
else if (key == KeyName.HKEY_CURRENT_CONFIG)
{
key2 = Registry.CurrentConfig.CreateSubKey(directoryName);
}
if (key2 == null)
{
return "";
}
object objectValue = RuntimeHelpers.GetObjectValue(key2.GetValue(fileName));
if (objectValue == null)
{
str = sDefaultValue;
}
else
{
str = objectValue.ToString();
}
key2.Close();
}
catch (Exception exception1)
{
ProjectData.SetProjectError(exception1);
Exception ex = exception1;
m_Base.ExceptionProcess(ex, "", true, m_Base.enumLogUint.Month);
ProjectData.ClearProjectError();
}
return str;
}
public static bool SetValue(string sKey, object value, KeyName key = -2147483646)
{
bool flag;
try
{
RegistryKey key2;
string fileName = Path.GetFileName(sKey);
sKey = Path.GetDirectoryName(sKey);
if (key == KeyName.HKEY_CLASSES_ROOT)
{
key2 = Registry.ClassesRoot.CreateSubKey(sKey);
}
else if (key == KeyName.HKEY_CURRENT_USER)
{
key2 = Registry.CurrentUser.CreateSubKey(sKey);
}
else if (key == KeyName.HKEY_LOCAL_MACHINE)
{
key2 = Registry.LocalMachine.CreateSubKey(sKey);
}
else if (key == KeyName.HKEY_USERS)
{
key2 = Registry.Users.CreateSubKey(sKey);
}
else if (key == KeyName.HKEY_CURRENT_CONFIG)
{
key2 = Registry.CurrentConfig.CreateSubKey(sKey);
}
if (key2 == null)
{
return false;
}
key2.SetValue(fileName, RuntimeHelpers.GetObjectValue(value));
flag = true;
}
catch (Exception exception1)
{
ProjectData.SetProjectError(exception1);
Exception ex = exception1;
m_Base.ExceptionProcess(ex, "", true, m_Base.enumLogUint.Month);
ProjectData.ClearProjectError();
}
return flag;
}
public enum KeyName
{
HKEY_CLASSES_ROOT = -2147483648,
HKEY_CURRENT_CONFIG = -2147483644,
HKEY_CURRENT_USER = -2147483647,
HKEY_LOCAL_MACHINE = -2147483646,
HKEY_USERS = -2147483645
}
}
}
怎么分析能够得出注册码呢?
能力值:
( LV2,RANK:10 )
在线值:
10 楼
另外一个文件的信息
namespace CommServer
{
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using System;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Runtime.CompilerServices;
using System.Windows.Forms;
[DesignerGenerated]
public class FrmID : Form
{
private static ArrayList __ENCList = new ArrayList();
[AccessedThroughProperty("btn_Cancel")]
private Button _btn_Cancel;
[AccessedThroughProperty("btn_OK")]
private Button _btn_OK;
[AccessedThroughProperty("Lab_ID")]
private Label _Lab_ID;
[AccessedThroughProperty("Label1")]
private Label _Label1;
[AccessedThroughProperty("Label3")]
private Label _Label3;
[AccessedThroughProperty("txt_ID")]
private TextBox _txt_ID;
private IContainer components;
private bool m_bPass;
private string s_ID;
public FrmID(string s)
{
base.Load += new EventHandler(this.FrmID_Load);
__ENCList.Add(new WeakReference(this));
this.m_bPass = false;
this.s_ID = s;
this.InitializeComponent();
}
private void btn_Cancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void btn_OK_Click(object sender, EventArgs e)
{
if (this.txt_ID.Text == "")
{
Interaction.MsgBox("请输入软件运行许可!", MsgBoxStyle.Information, "提醒");
this.txt_ID.Focus();
}
else if (this.txt_ID.Text == m_Base.xlhtoyzm(this.Lab_ID.Text))
{
this.m_bPass = true;
CMyRegistry.SetValue(m_Declare.g_sRegistryPath + @"\LicID", this.txt_ID.Text, CMyRegistry.KeyName.HKEY_LOCAL_MACHINE);
this.Close();
this.Dispose();
}
else
{
Interaction.MsgBox("软件运行码不正确,请与软件开发商联系!", MsgBoxStyle.Information, "提醒");
this.m_bPass = false;
this.txt_ID.Focus();
}
}
[DebuggerNonUserCode]
protected override void Dispose(bool disposing)
{
if (disposing && (this.components != null))
{
this.components.Dispose();
}
base.Dispose(disposing);
}
private void FrmID_Load(object sender, EventArgs e)
{
this.Lab_ID.Text = m_Base.GetMacID();
this.txt_ID.Text = this.s_ID;
}
[DebuggerStepThrough]
private void InitializeComponent()
{
this.Label1 = new Label();
this.Lab_ID = new Label();
this.Label3 = new Label();
this.btn_OK = new Button();
this.btn_Cancel = new Button();
this.txt_ID = new TextBox();
this.SuspendLayout();
this.Label1.AutoSize = true;
Point point = new Point(0x25, 0x24);
this.Label1.Location = point;
this.Label1.Name = "Label1";
Size size = new Size(0x41, 12);
this.Label1.Size = size;
this.Label1.TabIndex = 0;
this.Label1.Text = "软件生成ID";
this.Lab_ID.AutoSize = true;
this.Lab_ID.Font = new Font("宋体", 9f, FontStyle.Bold, GraphicsUnit.Point, 0x86);
this.Lab_ID.ForeColor = Color.Red;
point = new Point(130, 0x24);
this.Lab_ID.Location = point;
this.Lab_ID.Name = "Lab_ID";
size = new Size(0, 12);
this.Lab_ID.Size = size;
this.Lab_ID.TabIndex = 1;
this.Label3.AutoSize = true;
point = new Point(0x25, 0x4e);
this.Label3.Location = point;
this.Label3.Name = "Label3";
size = new Size(0x41, 12);
this.Label3.Size = size;
this.Label3.TabIndex = 2;
this.Label3.Text = "软件使用ID";
point = new Point(0x27, 0x79);
this.btn_OK.Location = point;
this.btn_OK.Name = "btn_OK";
size = new Size(0x4b, 0x17);
this.btn_OK.Size = size;
this.btn_OK.TabIndex = 3;
this.btn_OK.Text = "确定";
this.btn_OK.UseVisualStyleBackColor = true;
point = new Point(0xc3, 0x79);
this.btn_Cancel.Location = point;
this.btn_Cancel.Name = "btn_Cancel";
size = new Size(0x4b, 0x17);
this.btn_Cancel.Size = size;
this.btn_Cancel.TabIndex = 4;
this.btn_Cancel.Text = "取消";
this.btn_Cancel.UseVisualStyleBackColor = true;
point = new Point(0x84, 0x4b);
this.txt_ID.Location = point;
this.txt_ID.Name = "txt_ID";
size = new Size(100, 0x15);
this.txt_ID.Size = size;
this.txt_ID.TabIndex = 5;
SizeF ef = new SizeF(6f, 12f);
this.AutoScaleDimensions = ef;
this.AutoScaleMode = AutoScaleMode.Font;
size = new Size(0x12e, 0xa5);
this.ClientSize = size;
this.Controls.Add(this.txt_ID);
this.Controls.Add(this.btn_Cancel);
this.Controls.Add(this.btn_OK);
this.Controls.Add(this.Label3);
this.Controls.Add(this.Lab_ID);
this.Controls.Add(this.Label1);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FrmID";
this.StartPosition = FormStartPosition.CenterScreen;
this.Text = "请输入软件运行许可码";
this.ResumeLayout(false);
this.PerformLayout();
}
public bool bPass
{
get
{
return this.m_bPass;
}
}
internal virtual Button btn_Cancel
{
[DebuggerNonUserCode]
get
{
return this._btn_Cancel;
}
[MethodImpl(MethodImplOptions.Synchronized), DebuggerNonUserCode]
set
{
if (this._btn_Cancel != null)
{
this._btn_Cancel.Click -= new EventHandler(this.btn_Cancel_Click);
}
this._btn_Cancel = value;
if (this._btn_Cancel != null)
{
this._btn_Cancel.Click += new EventHandler(this.btn_Cancel_Click);
}
}
}
internal virtual Button btn_OK
{
[DebuggerNonUserCode]
get
{
return this._btn_OK;
}
[MethodImpl(MethodImplOptions.Synchronized), DebuggerNonUserCode]
set
{
if (this._btn_OK != null)
{
this._btn_OK.Click -= new EventHandler(this.btn_OK_Click);
}
this._btn_OK = value;
if (this._btn_OK != null)
{
this._btn_OK.Click += new EventHandler(this.btn_OK_Click);
}
}
}
internal virtual Label Lab_ID
{
[DebuggerNonUserCode]
get
{
return this._Lab_ID;
}
[MethodImpl(MethodImplOptions.Synchronized), DebuggerNonUserCode]
set
{
this._Lab_ID = value;
}
}
internal virtual Label Label1
{
[DebuggerNonUserCode]
get
{
return this._Label1;
}
[MethodImpl(MethodImplOptions.Synchronized), DebuggerNonUserCode]
set
{
this._Label1 = value;
}
}
internal virtual Label Label3
{
[DebuggerNonUserCode]
get
{
return this._Label3;
}
[MethodImpl(MethodImplOptions.Synchronized), DebuggerNonUserCode]
set
{
this._Label3 = value;
}
}
internal virtual TextBox txt_ID
{
[DebuggerNonUserCode]
get
{
return this._txt_ID;
}
[MethodImpl(MethodImplOptions.Synchronized), DebuggerNonUserCode]
set
{
this._txt_ID = value;
}
}
}
}
能力值:
( LV2,RANK:10 )
在线值:
11 楼
给我个软件的下载地址,虽然我也是个新手 呵呵
能力值:
( LV2,RANK:10 )
在线值:
12 楼
能力值:
( LV3,RANK:30 )
13 楼
簡單說一下怎樣使用,呵呵呵
能力值:
( LV3,RANK:30 )
14 楼
你換需要去掉這個IP 211.138.113.56
能力值:
( LV2,RANK:10 )
15 楼
很熟悉的语言 可惜代码太多
注意下这里吧
else if (this.txt_ID.Text == m_Base.xlhtoyzm(this.Lab_ID.Text))
{
this.m_bPass = true;
CMyRegistry.SetValue(m_Declare.g_sRegistryPath + @"\LicID", this.txt_ID.Text, CMyRegistry.KeyName.HKEY_LOCAL_MACHINE);
this.Close();
this.Dispose();
}
能力值:
( LV2,RANK:10 )
在线值:
16 楼
现在既然能够看到了注册方式的引导,那么你需要做的就是一步一步的来就好了,论坛里有破解的成熟例子,换汤不换药的按照步骤往下走就好,你还好了,得到了程序判断注册的片段,我现在还是两眼一抹黑呢
能力值:
( LV3,RANK:30 )
17 楼
將代碼複製到vs環境,調試就知道了
能力值:
( LV2,RANK:10 )
在线值:
18 楼
各位前辈,我用refelctor已经反编译得出了源码,可是我对这些源码再重新进行编译想生成exe文件时,出现了很多的报错,这是为什么?如何解决呢? 请前辈详细说明!
谢谢了!!
能力值:
( LV3,RANK:30 )
19 楼
1,混淆了,你需要手工修改非法字符到常用的字符。(類,方法,函數,變量)
2,資源也混淆了,需要查找替換。
3,注意強簽名。
4,注意資源文件是否超過 2千以上。
能力值:
( LV2,RANK:10 )
在线值:
20 楼
大家帮忙看一下,下面这段程序是什么意思?谢谢了
public static string xlhtoyzm(string xh)
{
string str;
try
{
string str2;
int length = xh.Length;
for (int i = 1; i <= length; i++)
{
string inputStr = Strings.Mid(xh, i, 1);
switch (i)
{
case 1:
str2 = str2 + Conversions.ToString((double) (Conversion.Val(inputStr) + 1.0));
break;
case 2:
str2 = str2 + Conversions.ToString(Math.Pow(Conversion.Val(inputStr), 2.0));
break;
case 3:
str2 = str2 + Conversions.ToString((double) (Conversion.Val(inputStr) * 8.0));
break;
case 4:
str2 = str2 + Conversions.ToString((double) (Conversion.Val(inputStr) + 5.0));
break;
case 5:
str2 = str2 + Conversions.ToString(Math.Pow(Conversion.Val(inputStr), 3.0));
break;
case 6:
str2 = str2 + Conversions.ToString((double) (Conversion.Val(inputStr) * 2.0));
break;
}
}
str = str2.Substring(str2.Length - 6, 6);
}
catch (Exception exception1)
{
ProjectData.SetProjectError(exception1);
Exception exception = exception1;
ProjectData.ClearProjectError();
}
return str;
}
能力值:
( LV2,RANK:10 )
在线值:
21 楼
你现在最起码还有代码可供参考,我现在还在汇编的苦海里奔波,呵呵~
能力值:
( LV2,RANK:10 )
22 楼
貌似你这个就是注册码部分啊,看命名xlhtoyzm不就是 序列号到验证码 么
能力值:
( LV2,RANK:10 )
23 楼
看看,了解一下
能力值:
( LV2,RANK:10 )
在线值:
24 楼
上面这段程序我调试不通啊,大家能否帮忙下!
能力值:
( LV2,RANK:10 )
在线值:
25 楼
学习,支持一下。从未接触过类似的技术!