hackjam 发表于 2020-4-28 17:35

C# 简单滑稽混淆

本帖最后由 hackjam 于 2020-4-30 23:26 编辑





降低难度版本:https://www.52pojie.cn/thread-1168706-1-1.html
纯属娱乐{:300_957:}

网盘通道:https://ww.lanzouj.com/ic1epzc

ps122 发表于 2020-4-28 19:23

没跟出来,但大概明白1、加载dll
type = Assembly.LoadFrom("Crack.dll").GetType("Noesis.Javascript.JavascriptContext");
2、反射调用
设置参数
                  method = type.GetMethod("SetParameter", new Type[]
                  {
                        typeof(string),
                        typeof(object)
                  });
                  text = Program.code + this.code2;

                  method.Invoke(obj, new object[]
                  {
                        "p",
                        this.textBox1.Text
                  });


调用Javascript运行判断
                  method2 = type.GetMethod("Run", new Type[]
                  {
                        typeof(string)
                  });

不知道改成啥 发表于 2020-4-28 19:11

这些代码是什么东西啊:

eflys 发表于 2020-4-28 19:23

hackjam 发表于 2020-4-28 20:42

ps122 发表于 2020-4-28 19:23
没跟出来,但大概明白1、加载dll
type = Assembly.LoadFrom("Crack.dll").GetType("Noesis.Javascript.Jav ...

不错,支持一下

xyx0826 发表于 2020-4-29 06:02

简单分析了一下,没看完
C# 设置 JS 环境里的全局变量:
SetParameter("console", new MyTest());
SetParameter("p", textBox1.Text);
MyTest里有一个字符串转hex的方法,和弹窗的方法,在js里作为全局变量 console
输入的密码在js里作为全局变量 p

js是两段拼一起的,用 https://matthewfl.com/unPacker.html 解包
js里是一堆乱七八糟的验证逻辑,猜测在某处调用了 console(也就是 MyTest)里的方法,但方法名被编码混淆成了 base64 编码的 16进制数据

hackjam 发表于 2020-4-29 10:17

xyx0826 发表于 2020-4-29 06:02
简单分析了一下,没看完
C# 设置 JS 环境里的全局变量:
SetParameter("consol ...

不错,分析的仔细

masterkoko 发表于 2020-4-29 13:09

tanzhiwei 发表于 2020-4-28 19:11
这些代码是什么东西啊:

这些是JavaScript代码,只不过被加密过了,利用了JavaScript的eval函数来执行被封装起来的

vrvree 发表于 2020-4-29 15:30

感谢楼主分享,楼主辛苦了!

神秘高手Mars偉 发表于 2020-4-29 20:57

页: [1] 2
查看完整版本: C# 简单滑稽混淆