无需添加引用执行JS,发布无需带DLL、例子:QQMD5 QQGTK 13位时间戳 取随机数
2024-10-18 23:33:19
本人写POST经常会遇到用JS来加密的一些网站,然后又不想用C#重写。
在百度和论坛里找的JS执行不是64位不支持就是要带个DLL神马的。很讨厌。
然后自己就写了个不需要带DLL的。而且支持所有系统哟(64位也一样)(服务器2003多线程POST1个月没崩溃过)
<ignore_js_op>
先来一个取13位时间戳的 相信玩POST的都比较常见 比如:1410106357535
[C#] 纯文本查看 复制代码
Type obj = Type.GetTypeFromProgID("ScriptControl");
if (obj == null) return; //单身? 找不到对象啊,
object ScriptControl = Activator.CreateInstance(obj);
obj.InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JScript" });
string js = "function time(){return new Date().getTime()}";
obj.InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { js });
string str = obj.InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time()" }).ToString();
textBox1.Text = str;
继续 取随机数 比如:0.0117551307930485
[C#] 纯文本查看 复制代码
Type obj = Type.GetTypeFromProgID("ScriptControl");
if (obj == null) return; //单身? 找不到对象啊,
object ScriptControl = Activator.CreateInstance(obj);
obj.InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JScript" });
string js = "function random(){return Math.random()}";
obj.InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { js });
string str = obj.InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "random()" }).ToString();
textBox1.Text = str;
继续 计算表达式 比如:表达式:(5*10-2*10)/2 结果为 15
[C#] 纯文本查看 复制代码
Type obj = Type.GetTypeFromProgID("ScriptControl");
if (obj == null) return; //单身? 找不到对象啊,
object ScriptControl = Activator.CreateInstance(obj);
obj.InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JScript" });
string str = obj.InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "(5*10-2*10)/2" }).ToString();
textBox1.Text = "(5*10-2*10)/2=" + str;
继续 QQ空间的GTK 比如:193432059
[C#] 纯文本查看 复制代码
StringBuilder sb = new StringBuilder();
sb.Append("function getGtk(str) {");
sb.Append("var hash = 5381;");
sb.Append("for (var i = 0,");
sb.Append("len = str.length; i < len; ++i) {");
sb.Append(" hash += (hash << 5) + str.charAt(i).charCodeAt();");
sb.Append("}");
sb.Append("return hash & 0x7fffffff;");
sb.Append("}"); Type obj = Type.GetTypeFromProgID("ScriptControl");
if (obj == null) return; //单身? 找不到对象啊,
object ScriptControl = Activator.CreateInstance(obj);
obj.InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JScript" });
obj.InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { sb.ToString() });
string str = obj.InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "getGtk(\"123\")" }).ToString();
textBox1.Text = str;
最新文章
- centos7 搭建nginx和tomcat集成
- #region Json转DataTable
- python 之readability与BeautifulSoup
- c#的问号?和双问号??
- 分享一个在线生成站点地图SiteMap制作工具
- android开源项目---项目篇
- [linux]BASH 的基本语法
- pdb文件 小结
- Tekla Structures 使用类库概览
- Linux常用命令及vim的使用、vim常用插件(推荐)
- ASP.NET MVC 几种 Filter 的执行过程源码解析
- CodeForces 722A
- Python爬虫! 单爬,批量爬,这都不是事!
- Cesium3DTileset示例
- String.StartsWith 方法
- linux连接工具隧道模式
- IntelliJ IDEA使用maven-javadoc-plugin生成Java Doc控制台乱码
- shell编程(一)之变量
- 最小费用最大流 HDU1533
- NMAP执行脚本smb-check-vulns.nse出错