动态执行编码的字符串代码
2016-03-16 17:19
633 查看
![](http://images2015.cnblogs.com/blog/160462/201603/160462-20160316171254115-1543154836.png)
一、 要动态执行的代码字符串
using System; nnamespace Jinshuai { public class jinshuaiExe { public string get() { return string.Format(" 月色变得黯然 在深秋的黎明{0} 而你双手是那么暖{0} 离别最好的季节 是风里透着凉意{0} 才知道两颗心能靠多紧{0} 夜雾慢慢散去 在深秋的黎明{0} 而我双眼离不开你{0} 我爱你就象呼吸 感觉平淡无奇{0} 用生命全心全意让爱能继续{0} 深秋的这样一个黎明{0} 无限清醒在心底{0} 远行的我看着天空慢慢亮起来{0} 深秋的这样一个黎明{0} 你不必怕寂寞{0} 爱的情意漫天过海会包围你{0} 深秋的这样一个黎明{0} 无限清醒在心底{0} 远行的我看着天空慢慢亮起来{0} 深秋的这样一个黎明{0} 你不必怕寂寞{0} 爱的情意漫天过海会包围你{0} 深秋的这样一个黎明{0} 无限清醒在心底{0} 远行的我看着天空慢慢亮起来{0} 深秋的这样一个黎明{0} 你不必怕寂寞{0} 爱的情意漫天过海会包围你{0} 冷雨静静飘落 在深秋的黎明{0} 你的背影那么孤单{0} 红叶象烈火燃烧 比不过我的心{0} 我的爱永不会熄灭燃烧不尽{0} 我的爱永不会熄灭燃烧不尽{0}" ,"\\n"); } } }
二、 对上述的 代码字符串进行转BYTE 操作
byte[] b = { 117, 115, 105, 110, 103, 32, 83, 121, 115, 116, 101, 109, 59, 13, 10, 110, 97, 109, 101, 115, 112, 97, 99, 101, 32, 74, 105, 110, 115, 104, 117, 97, 105, 13, 10, 123, 13, 10, 32, 32, 32, 32, 32, 112, 117, 98, 108, 105, 99, 32, 99, 108, 97, 115, 115, 32, 106, 105, 110, 115, 104, 117, 97, 105, 69, 120, 101, 13, 10, 32, 32, 32, 32, 32, 123, 13, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 112, 117, 98, 108, 105, 99, 32, 115, 116, 114, 105, 110, 103, 32, 103, 101, 116, 40, 41, 13, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 123, 13, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 32, 32, 115, 116, 114, 105, 110, 103, 46, 70, 111, 114, 109, 97, 116, 40, 34, 32, 212, 194, 201, 171, 177, 228, 181, 195, 247, 246, 200, 187, 32, 212, 218, 201, 238, 199, 239, 181, 196, 192, 232, 195, 247, 123, 48, 125, 182, 248, 196, 227, 203, 171, 202, 214, 202, 199, 196, 199, 195, 180, 197, 175, 123, 48, 125, 192, 235, 177, 240, 215, 238, 186, 195, 181, 196, 188, 190, 189, 218, 32, 202, 199, 183, 231, 192, 239, 205, 184, 215, 197, 193, 185, 210, 226, 123, 48, 125, 178, 197, 214, 170, 181, 192, 193, 189, 191, 197, 208, 196, 196, 220, 191, 191, 182, 224, 189, 244, 123, 48, 125, 210, 185, 206, 237, 194, 253, 194, 253, 201, 162, 200, 165, 32, 212, 218, 201, 238, 199, 239, 181, 196, 192, 232, 195, 247, 123, 48, 125, 182, 248, 206, 210, 203, 171, 209, 219, 192, 235, 178, 187, 191, 170, 196, 227, 123, 48, 125, 206, 210, 176, 174, 196, 227, 190, 205, 207, 243, 186, 244, 206, 252, 32, 184, 208, 190, 245, 198, 189, 181, 173, 206, 222, 198, 230, 123, 48, 125, 211, 195, 201, 250, 195, 252, 200, 171, 208, 196, 200, 171, 210, 226, 200, 195, 176, 174, 196, 220, 188, 204, 208, 248, 123, 48, 125, 201, 238, 199, 239, 181, 196, 213, 226, 209, 249, 210, 187, 184, 246, 192, 232, 195, 247, 123, 48, 125, 206, 222, 207, 222, 199, 229, 208, 209, 212, 218, 208, 196, 181, 215, 123, 48, 125, 212, 182, 208, 208, 181, 196, 206, 210, 191, 180, 215, 197, 204, 236, 191, 213, 194, 253, 194, 253, 193, 193, 198, 240, 192, 180, 123, 48, 125, 201, 238, 199, 239, 181, 196, 213, 226, 209, 249, 210, 187, 184, 246, 192, 232, 195, 247, 123, 48, 125, 196, 227, 178, 187, 177, 216, 197, 194, 188, 197, 196, 175, 123, 48, 125, 176, 174, 181, 196, 199, 233, 210, 226, 194, 254, 204, 236, 185, 253, 186, 163, 187, 225, 176, 252, 206, 167, 196, 227, 123, 48, 125, 201, 238, 199, 239, 181, 196, 213, 226, 209, 249, 210, 187, 184, 246, 192, 232, 195, 247, 123, 48, 125, 206, 222, 207, 222, 199, 229, 208, 209, 212, 218, 208, 196, 181, 215, 123, 48, 125, 212, 182, 208, 208, 181, 196, 206, 210, 191, 180, 215, 197, 204, 236, 191, 213, 194, 253, 194, 253, 193, 193, 198, 240, 192, 180, 123, 48, 125, 201, 238, 199, 239, 181, 196, 213, 226, 209, 249, 210, 187, 184, 246, 192, 232, 195, 247, 123, 48, 125, 196, 227, 178, 187, 177, 216, 197, 194, 188, 197, 196, 175, 123, 48, 125, 176, 174, 181, 196, 199, 233, 210, 226, 194, 254, 204, 236, 185, 253, 186, 163, 187, 225, 176, 252, 206, 167, 196, 227, 123, 48, 125, 201, 238, 199, 239, 181, 196, 213, 226, 209, 249, 210, 187, 184, 246, 192, 232, 195, 247, 123, 48, 125, 206, 222, 207, 222, 199, 229, 208, 209, 212, 218, 208, 196, 181, 215, 123, 48, 125, 212, 182, 208, 208, 181, 196, 206, 210, 191, 180, 215, 197, 204, 236, 191, 213, 194, 253, 194, 253, 193, 193, 198, 240, 192, 180, 123, 48, 125, 201, 238, 199, 239, 181, 196, 213, 226, 209, 249, 210, 187, 184, 246, 192, 232, 195, 247, 123, 48, 125, 196, 227, 178, 187, 177, 216, 197, 194, 188, 197, 196, 175, 123, 48, 125, 176, 174, 181, 196, 199, 233, 210, 226, 194, 254, 204, 236, 185, 253, 186, 163, 187, 225, 176, 252, 206, 167, 196, 227, 123, 48, 125, 192, 228, 211, 234, 190, 178, 190, 178, 198, 174, 194, 228, 32, 212, 218, 201, 238, 199, 239, 181, 196, 192, 232, 195, 247, 123, 48, 125, 196, 227, 181, 196, 177, 179, 211, 176, 196, 199, 195, 180, 185, 194, 181, 165, 123, 48, 125, 186, 236, 210, 182, 207, 243, 193, 210, 187, 240, 200, 188, 201, 213, 32, 177, 200, 178, 187, 185, 253, 206, 210, 181, 196, 208, 196, 123, 48, 125, 206, 210, 181, 196, 176, 174, 211, 192, 178, 187, 187, 225, 207, 168, 195, 240, 200, 188, 201, 213, 178, 187, 190, 161, 123, 48, 125, 206, 210, 181, 196, 176, 174, 211, 192, 178, 187, 187, 225, 207, 168, 195, 240, 200, 188, 201, 213, 178, 187, 190, 161, 123, 48, 125, 34, 32, 32, 44, 34, 92, 110, 34, 41, 59, 13, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 13, 10, 32, 32, 32, 32, 32, 125, 13, 10, 125 };
三、 具体代码
class Program { static void Main(string[] args) { byte[] b = { 117, 115, 105, 110, 103, 32, 83, 121, 115, 116, 101, 109, 59, 13, 10, 110, 97, 109, 101, 115, 112, 97, 99, 101, 32, 74, 105, 110, 115, 104, 117, 97, 105, 13, 10, 123, 13, 10, 32, 32, 32, 32, 32, 112, 117, 98, 108, 105, 99, 32, 99, 108, 97, 115, 115, 32, 106, 105, 110, 115, 104, 117, 97, 105, 69, 120, 101, 13, 10, 32, 32, 32, 32, 32, 123, 13, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 112, 117, 98, 108, 105, 99, 32, 115, 116, 114, 105, 110, 103, 32, 103, 101, 116, 40, 41, 13, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 123, 13, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 32, 32, 115, 116, 114, 105, 110, 103, 46, 70, 111, 114, 109, 97, 116, 40, 34, 32, 212, 194, 201, 171, 177, 228, 181, 195, 247, 246, 200, 187, 32, 212, 218, 201, 238, 199, 239, 181, 196, 192, 232, 195, 247, 123, 48, 125, 182, 248, 196, 227, 203, 171, 202, 214, 202, 199, 196, 199, 195, 180, 197, 175, 123, 48, 125, 192, 235, 177, 240, 215, 238, 186, 195, 181, 196, 188, 190, 189, 218, 32, 202, 199, 183, 231, 192, 239, 205, 184, 215, 197, 193, 185, 210, 226, 123, 48, 125, 178, 197, 214, 170, 181, 192, 193, 189, 191, 197, 208, 196, 196, 220, 191, 191, 182, 224, 189, 244, 123, 48, 125, 210, 185, 206, 237, 194, 253, 194, 253, 201, 162, 200, 165, 32, 212, 218, 201, 238, 199, 239, 181, 196, 192, 232, 195, 247, 123, 48, 125, 182, 248, 206, 210, 203, 171, 209, 219, 192, 235, 178, 187, 191, 170, 196, 227, 123, 48, 125, 206, 210, 176, 174, 196, 227, 190, 205, 207, 243, 186, 244, 206, 252, 32, 184, 208, 190, 245, 198, 189, 181, 173, 206, 222, 198, 230, 123, 48, 125, 211, 195, 201, 250, 195, 252, 200, 171, 208, 196, 200, 171, 210, 226, 200, 195, 176, 174, 196, 220, 188, 204, 208, 248, 123, 48, 125, 201, 238, 199, 239, 181, 196, 213, 226, 209, 249, 210, 187, 184, 246, 192, 232, 195, 247, 123, 48, 125, 206, 222, 207, 222, 199, 229, 208, 209, 212, 218, 208, 196, 181, 215, 123, 48, 125, 212, 182, 208, 208, 181, 196, 206, 210, 191, 180, 215, 197, 204, 236, 191, 213, 194, 253, 194, 253, 193, 193, 198, 240, 192, 180, 123, 48, 125, 201, 238, 199, 239, 181, 196, 213, 226, 209, 249, 210, 187, 184, 246, 192, 232, 195, 247, 123, 48, 125, 196, 227, 178, 187, 177, 216, 197, 194, 188, 197, 196, 175, 123, 48, 125, 176, 174, 181, 196, 199, 233, 210, 226, 194, 254, 204, 236, 185, 253, 186, 163, 187, 225, 176, 252, 206, 167, 196, 227, 123, 48, 125, 201, 238, 199, 239, 181, 196, 213, 226, 209, 249, 210, 187, 184, 246, 192, 232, 195, 247, 123, 48, 125, 206, 222, 207, 222, 199, 229, 208, 209, 212, 218, 208, 196, 181, 215, 123, 48, 125, 212, 182, 208, 208, 181, 196, 206, 210, 191, 180, 215, 197, 204, 236, 191, 213, 194, 253, 194, 253, 193, 193, 198, 240, 192, 180, 123, 48, 125, 201, 238, 199, 239, 181, 196, 213, 226, 209, 249, 210, 187, 184, 246, 192, 232, 195, 247, 123, 48, 125, 196, 227, 178, 187, 177, 216, 197, 194, 188, 197, 196, 175, 123, 48, 125, 176, 174, 181, 196, 199, 233, 210, 226, 194, 254, 204, 236, 185, 253, 186, 163, 187, 225, 176, 252, 206, 167, 196, 227, 123, 48, 125, 201, 238, 199, 239, 181, 196, 213, 226, 209, 249, 210, 187, 184, 246, 192, 232, 195, 247, 123, 48, 125, 206, 222, 207, 222, 199, 229, 208, 209, 212, 218, 208, 196, 181, 215, 123, 48, 125, 212, 182, 208, 208, 181, 196, 206, 210, 191, 180, 215, 197, 204, 236, 191, 213, 194, 253, 194, 253, 193, 193, 198, 240, 192, 180, 123, 48, 125, 201, 238, 199, 239, 181, 196, 213, 226, 209, 249, 210, 187, 184, 246, 192, 232, 195, 247, 123, 48, 125, 196, 227, 178, 187, 177, 216, 197, 194, 188, 197, 196, 175, 123, 48, 125, 176, 174, 181, 196, 199, 233, 210, 226, 194, 254, 204, 236, 185, 253, 186, 163, 187, 225, 176, 252, 206, 167, 196, 227, 123, 48, 125, 192, 228, 211, 234, 190, 178, 190, 178, 198, 174, 194, 228, 32, 212, 218, 201, 238, 199, 239, 181, 196, 192, 232, 195, 247, 123, 48, 125, 196, 227, 181, 196, 177, 179, 211, 176, 196, 199, 195, 180, 185, 194, 181, 165, 123, 48, 125, 186, 236, 210, 182, 207, 243, 193, 210, 187, 240, 200, 188, 201, 213, 32, 177, 200, 178, 187, 185, 253, 206, 210, 181, 196, 208, 196, 123, 48, 125, 206, 210, 181, 196, 176, 174, 211, 192, 178, 187, 187, 225, 207, 168, 195, 240, 200, 188, 201, 213, 178, 187, 190, 161, 123, 48, 125, 206, 210, 181, 196, 176, 174, 211, 192, 178, 187, 187, 225, 207, 168, 195, 240, 200, 188, 201, 213, 178, 187, 190, 161, 123, 48, 125, 34, 32, 32, 44, 34, 92, 110, 34, 41, 59, 13, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 13, 10, 32, 32, 32, 32, 32, 125, 13, 10, 125 }; var cc= System.Text.Encoding.Default.GetString(b); var js = JinshuaiCodeProvider.Execute<string>(cc, "Jinshuai.jinshuaiExe", "get"); Console.WriteLine(js); Console.ReadLine(); } }
using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using Microsoft.CSharp; namespace ConsoleCode { public class JinshuaiCodeProvider { public static T Execute<T>(string code, string runInstanceType,string method) { var codeProvider = new CSharpCodeProvider(); var objCompilerParameters = new CompilerParameters(); objCompilerParameters.ReferencedAssemblies.Add("System.dll");//引用dll objCompilerParameters.GenerateExecutable = false; objCompilerParameters.GenerateInMemory = true; objCompilerParameters.IncludeDebugInformation = false; var cr = codeProvider.CompileAssemblyFromSource(objCompilerParameters, new string[] { code }); if (cr.Errors.HasErrors) { throw new Exception("代码编译失败,原因:帅哥就不给你说。"); } var objAssembly = cr.CompiledAssembly; object jinshuaiInstance = objAssembly.CreateInstance(runInstanceType); if (jinshuaiInstance != null) { var methodPoint = jinshuaiInstance.GetType().GetMethod(method); var result=(T)methodPoint.Invoke(jinshuaiInstance, null); return result; } throw new Exception("代码执行失败,原因:帅哥快点说"); } } }
就当是写着玩吧。
源代码
相关文章推荐
- 关于Java中文乱码与日期格式
- HDU HangOver
- MATLAB常用图像图像预处理算法汇总(一)
- python学习笔记-多进程
- C# 简单邮件群发通用类
- 【C++解密】:C++不能直接给文件中写入数字怎么办
- C#之DataSet和DataTable
- 红黑树C++描述
- 红黑树C++描述
- 红黑树C++描述
- 红黑树C++描述
- python 2.7 rsa 离线安装 和使用示例
- python中的int与str
- c语言typedef的用法
- Struts2学习笔记(访问Web元素和Result_Type)
- JavaWeb动态导出Excel可弹出下载
- github 有名的问题【ERROR: Permission to .git denied to user】
- leetcode 337:House Robber III
- 浅谈Java中父类与子类的加载顺序
- Java操作Excel