標籤:style blog http color io os java ar for
javascriptDemo.rar
本人寫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;
無需添加引用執行JS,發布無需帶DLL、例子:QQMD5 QQGTK 13位時間戳記 取隨機數