1.有一个.net的DLL,其中一个注册文件用dis#,reflector,fox均看不到其代码,用reflector导出的代码为:
System.InvalidOperationException: Block statement count of zero during condition expression translation.
在 ឺ.ᜆ(Int32 A_0)
在 ឺ.ᜋ(Int32 A_0)
在 ឺ.ᜂ(Int32 A_0, Int32 A_1)
在 ឺ.ᜀ(IMethodDeclaration A_0, IMethodBody A_1)
在 ឤ.ᜀ(IMethodDeclaration A_0)
在 ᜭ.ᜁ(IMethodDeclarationCollection A_0)
在 ឤ.ᜀ(ITypeDeclaration A_0)
在 ឥ.ᜀ(ITypeDeclaration A_0, Boolean A_1, Boolean A_2)
在 Reflector.FileDisassembler.FileDisassemblerHelper.WriteTypeDeclaration(ITypeDeclaration typeDeclaration, ILanguageWriterConfiguration configuration)
namespace BoojobNet.About
{
}
整个DLL用ILDASM dump出来的IL文件居然有9.3M,流程混淆过的,试着反流程混淆,由于文件太大,手工不行,试过一些软件也不成功,不知是什么软件混淆的?有什么好的反混淆方法?
2.其余的文件能看到代码,但字符串全部是乱码,同样一个方法,如
用UTF-8格式:
private void efb3613fecfd25e8()
{
int num = 0;
SqlDataReader reader = new Systems().System_Parameter_Title(num.ToString());
if (reader != null)
{
if (reader[string.Intern(d4485e5ae14ac128.cc381ffa3ede662f("\udbac\ue2b7ﺧַಥ", 0x555ddb55))].ToString() == string.Intern(d4485e5ae14ac128.cc381ffa3ede662f("꿒뛪뷲쓶쯥", 0x595baf8c)))
{
base.Response.Write(reader[string.Intern(d4485e5ae14ac128.cc381ffa3ede662f("䦄傪垪庫斚汻玝窒膘", 0x54204941))].ToString());
base.Response.End();
}
this.pub_WebName = reader[string.Intern(d4485e5ae14ac128.cc381ffa3ede662f("霈鸓ꔍ꯶댆먏섄", 0xcf996b1))].ToString();
reader.Close();
}
}
用UNICODE格式:
private void efb3613fecfd25e8 ()
{
int num1 = 0;
SqlDataReader reader1 = new Systems().System_Parameter_Title(num1.ToString());
if (reader1 != null)
{
if (reader1[string.Intern(d4485e5ae14ac128.cc381ffa3ede662f("\ue2b7\ue9b1\uf09f\uf7bd\ufea7\u05b7\u0ca5", 0x555ddb55))].ToString() == string.Intern(d4485e5ae14ac128.cc381ffa3ede662f("\uafd2\ub6ea\ubdf2\uc4f6\ucbe5", 0x595baf8c)))
{
base.Response.Write(reader1[string.Intern(d4485e5ae14ac128.cc381ffa3ede662f("\u4984\u50aa\u57aa\u5eab\u659a\u6c7b\u739d\u7a92\u8198", 0x54204941))].ToString());
base.Response.End();
}
this.pub_WebName = reader1[string.Intern(d4485e5ae14ac128.cc381ffa3ede662f("\u9708\u9e13\ua50d\uabf6\ub306\uba0f\uc104", 0xcf996b1))].ToString();
reader1.Close();
}
}
将字符串从UNICODE转中文后,一样是乱码,比如
\u9708\u9e13\ua50d\uabf6\ub306\uba0f\uc104转成中文后为
霈鸓ꔍ꯶댆먏섄,根本看不明白,应该是加密了的字符串,如何解密呢?
请教一下,上述是什么混淆软件形成的呢?如何反混淆?又是什么软件加密字符串的?请教名位大牛了
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)