flag = this.AfterLoginSuccessfully();方法中:
[C#] 纯文本查看 复制代码 List<ProductInfo> usableProductList = LoginController.Instance.UsableProductList;
usableProductList.Clear();
foreach (ProductInfo productInfo in LoginConfig.Instance.AllProductInfo)
{
int num = HymakeHome.HymakeHome_QueryFeature(int.Parse(productInfo.MemberTypeCode));
productInfo.Res = num;
productInfo.LoginState = this.GetLoginStateByRemainingDays(num);
if (num > 0)
{
usableProductList.Add(productInfo);
}
}
if (this.NeedSaveUserInfo)
{
this.SaveUserInfo();
}
foreach历遍中主要内容是读取XML的序列化参数,包括一下几个内容:
[C#] 纯文本查看 复制代码 public string AddinFileName { get; set; }
public string AssemblyFileName { get; set; }
public string DisplayName { get; set; }
public string FileName { get; set; }
public string FullClassName { get; set; }
public string Guid { get; set; }
public string InstallLocation { get; set; }
public string MemberTypeCode { get; set; }
public string ProductName { get; set; }
public string ProductCode { get; set; }
public ProductLoginState LoginState { get; set; }
public int Res { get; set; }
public string AppId { get; set; }
private int LoginEvent(string userName, string passWord)方法中:
[C#] 纯文本查看 复制代码 private int LoginEvent(string userName, string passWord)
{
if (this.cbUseProxy.IsChecked == true)
{
HymakeHome.HymakeHome_EnableHttpProxy(this.tbAddress.Text.Trim(), this.tbUserName.Text.Trim(), this.tbPwd.Password.Trim(), int.Parse(this.tbPort.Text.Trim()));
}
string text = LoginConfig.Instance.MemberLogServerInfo.HymakeLoginIP;
if (string.IsNullOrEmpty(text))
{
text = LoginConfig.Instance.MemberLogServerInfo.HymakeHomeIP;
}
if (!string.IsNullOrEmpty(text))
{
string text2 = Class2.smethod_11(13186) + text + LoginConfig.Instance.MemberLogServerInfo.HomeName;
HymakeHome.HymakeHome_SetURL(text2);
}
return HymakeHome.HymakeHome_Login(userName, passWord, LoginController.Instance.CurProductInfo.Guid, LoginController.Instance.CurProductVersion);
}
HymakeHome.HymakeHome_EnableHttpProxy(this.tbAddress.Text.Trim(), this.tbUserName.Text.Trim(), this.tbPwd.Password.Trim(), int.Parse(this.tbPort.Text.Trim()));
HymakeHome.HymakeHome_SetURL(text2);
这两个参数跟进:
[DllImport("HymakeHome64.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi
public static extern void HymakeHome_EnableHttpProxy(string server, string user, string password, int port);
[DllImport("HymakeHome64.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi
public static extern int HymakeHome_Login(string userName, string password, string guid, string ver);
所以可知:
应用程序将用户名和密码参数传递给HymakeHome64.dll文件,由HymakeHome64.dll文件调用HTTP请求数据验证用户名和密码,并由这个文件下载用户名和密码对应的授权模块数据(XML序列化文件),然后保存文件,全部完成后返回C#程序对XML文件进行读取并获取授权数据.
所以你的重点应该放在HymakeHome64.dll这个文件里面,如果没猜错的话这个文件应该是C++编译的
|