これらのコード行は難読化されていますか(C#)?C#コードがわかりにくいですか?
HWND__* ptr = <Module>.FindWindowW(null, (char*)(&<Module>[email protected][email protected][email protected]));
<Module>.SendNotifyMessageW(ptr, 1024u, (uint)num, 0);
「はい」の場合、それらを難読化するソフトウェアはありますか?
フル・メソッド(コードはILSpy decomplierでdecompliedされている):
// My7554_Launcher.Form1
protected unsafe override void WndProc(ref Message m)
{
IntPtr wParam = m.WParam;
IntPtr lParam = m.LParam;
if (m.Msg == 1024)
{
if (wParam.ToInt32() == 1)
{
<Module>.LicenseServices.UnlockExecute();
<Module>.LicenseServices.CloseSession();
base.Close();
}
if (wParam.ToInt32() == 3 || wParam.ToInt32() == 4 || wParam.ToInt32() == 5)
{
if (<Module>.LicenseServices.LockExecute() == null)
{
base.Close();
}
else
{
int num;
if (wParam.ToInt32() == 3)
{
num = this.EGLiDecode1(lParam.ToInt32());
}
if (wParam.ToInt32() == 4)
{
num = this.EGLiDecode2(lParam.ToInt32());
}
if (wParam.ToInt32() == 5)
{
num = this.EGLiDecode3(lParam.ToInt32());
}
HWND__* ptr = <Module>.FindWindowW(null, (char*)(&<Module>[email protected][email protected][email protected]));
<Module>.SendNotifyMessageW(ptr, 1024u, (uint)num, 0);
}
}
}
base.WndProc(ref m);
}
P/S:
いくつかのコメントがありますが、それは、C#で記述されていないことは言うが、私はそれはに非常に近いですどこかに見つかりましたC#の場合、
private void InitializeComponent()
{
ComponentResourceManager manager = null;
manager = new ComponentResourceManager(typeof(Form1));
base.SuspendLayout();
SizeF ef = new SizeF(6f, 13f);
base.AutoScaleDimensions = ef;
base.AutoScaleMode = AutoScaleMode.Font;
Color window = SystemColors.Window;
this.BackColor = window;
this.BackgroundImage = (Image) manager.GetObject("$this.BackgroundImage");
this.BackgroundImageLayout = ImageLayout.Center;
Size size = new Size(0x28c, 0x138);
base.ClientSize = size;
base.ControlBox = false;
base.FormBorderStyle = FormBorderStyle.None;
base.Icon = (Icon) manager.GetObject("$this.Icon");
base.Name = "Form1";
base.StartPosition = FormStartPosition.CenterScreen;
this.Text = "Launcher";
Color white = Color.White;
base.TransparencyKey = white;
base.Load += new EventHandler(this.Form1_Load);
base.ResumeLayout(false);
}
標準のC++/CLIの出力は、難読化されたC#コードよりもはるかに近いようです。 – JaredPar
@JaredPar:C#、C++/CLI、VB.NET、または私が知っている他の何かの正当な識別子ではない、コンパイラ生成の名前が入っています。あるいは、逆アセンブラによって生成されたものかもしれません。 'unsafe'サブセットにあるので、C#では一般的に見られない構文がいくつかありますが、' uint'はC#タイプのキーワードであり、C++では見つかりません。 –
@BenVoigt、はい、コードはILSpy分解器で分解されます – JatSing