当前位置: 首页 > news >正文

企业做网站的注意事项百度seo工作室

企业做网站的注意事项,百度seo工作室,如何制作自己个人小程序,怎么把网站挂在服务器虚拟机 获取CPU的型号 实现了一个指令集解释器,每个操作码对应一个特定的处理函数,用于执行相应的指令操作。在执行字节码时,解释器会根据操作码查找并调用相应的处理函数来执行指令。 截获异常 先由虚拟机处理 处理不了再抛出异常 priva…

虚拟机

获取CPU的型号
在这里插入图片描述

实现了一个指令集解释器,每个操作码对应一个特定的处理函数,用于执行相应的指令操作。在执行字节码时,解释器会根据操作码查找并调用相应的处理函数来执行指令。
在这里插入图片描述
截获异常 先由虚拟机处理 处理不了再抛出异常

		private void Unwind(){_stack.Clear();_finallyStack.Clear();while (_tryStack.Count != 0){var catchBlocks = _tryStack.Peek().CatchBlocks();int startIndex = (_filterBlock == null) ? 0 : catchBlocks.IndexOf(_filterBlock) + 1;_filterBlock = null;for (var i = startIndex; i < catchBlocks.Count; i++){var current = catchBlocks[i];switch (current.Type()){case 0:var type = _exception.GetType();var type2 = GetType(current.Filter());if (type == type2 || type.IsSubclassOf(type2)){_tryStack.Pop();_stack.Push(new ObjectVariant(_exception));_pos = current.Handler();return;}break;case 1:_filterBlock = current;_stack.Push(new ObjectVariant(_exception));_pos = current.Filter();return;}}_tryStack.Pop();for (var i = catchBlocks.Count; i > 0; i--){var current = catchBlocks[i - 1];if (current.Type() == 2 || current.Type() == 4)_finallyStack.Push(current.Handler());}if (_finallyStack.Count != 0){_pos = _finallyStack.Pop();return;}}throw _exception;}

检查运算数据的类型
在这里插入图片描述
根据数据判断 实现无符号运算 以及运算溢出等的处理
同理的还有异或 减法等

		private BaseVariant Add(BaseVariant v1, BaseVariant v2, bool ovf, bool un){var type = CalcTypeCode(v1, v2);switch (type){case TypeCode.Int32:{int value;if (un){var value1 = v1.ToUInt32();var value2 = v2.ToUInt32();value = ovf ? (int)checked(value1 + value2) : (int)(value1 + value2);}else{var value1 = v1.ToInt32();var value2 = v2.ToInt32();value = ovf ? checked(value1 + value2) : (value1 + value2);}return new IntVariant(value);}case TypeCode.Int64:{long value;if (un){var value1 = v1.ToUInt64();var value2 = v2.ToUInt64();value = ovf ? (long)checked(value1 + value2) : (long)(value1 + value2);}else{var value1 = v1.ToInt64();var value2 = v2.ToInt64();value = ovf ? checked(value1 + value2) : (value1 + value2);}return new LongVariant(value);}case TypeCode.Single:{var value1 = (un ? v1.ToUnsigned() : v1).ToSingle();var value2 = (un ? v2.ToUnsigned() : v2).ToSingle();return new SingleVariant(ovf ? checked(value1 + value2) : (value1 + value2));}case TypeCode.Double:{var value1 = (un ? v1.ToUnsigned() : v1).ToDouble();var value2 = (un ? v2.ToUnsigned() : v2).ToDouble();return new DoubleVariant(ovf ? checked(value1 + value2) : (value1 + value2));}case TypeCode.UInt32:{int value;if (un){var value1 = v1.ToUInt32();var value2 = v2.ToUInt32();value = ovf ? (int)checked(value1 + value2) : (int)(value1 + value2);}else{var value1 = v1.ToInt32();var value2 = v2.ToInt32();value = ovf ? checked(value1 + value2) : (value1 + value2);}PointerVariant v = v1.CalcTypeCode() == type ? (PointerVariant)v1 : (PointerVariant)v2;unsafe{return new PointerVariant(Pointer.Box(new IntPtr(value).ToPointer(), v.Type()), v.Type());}}case TypeCode.UInt64:{long value;if (un){var value1 = v1.ToUInt64();var value2 = v2.ToUInt64();value = ovf ? (long)checked(value1 + value2) : (long)(value1 + value2);}else{var value1 = v1.ToInt64();var value2 = v2.ToInt64();value = ovf ? checked(value1 + value2) : (value1 + value2);}PointerVariant v = v1.CalcTypeCode() == type ? (PointerVariant)v1 : (PointerVariant)v2;unsafe{return new PointerVariant(Pointer.Box(new IntPtr(value).ToPointer(), v.Type()), v.Type());}}}throw new InvalidOperationException();}

获取目标程序框架
设置调用方法
支持实例方法、静态方法、虚拟方法和过滤方法

		private BaseVariant Call(MethodBase method, bool virt){BindingFlags invokeFlags;
#if NETCOREAPPinvokeFlags = BindingFlags.DoNotWrapExceptions;
#elseinvokeFlags = BindingFlags.Default;
#endifvar info = method as MethodInfo;var parameters = method.GetParameters();var refs = new Dictionary<int, BaseVariant>();var args = new object[parameters.Length];BaseVariant v;for (var i = parameters.Length - 1; i >= 0; i--){v = Pop();if (v.IsReference())refs[i] = v;args[i] = Convert(v, parameters[i].ParameterType).Value();}v = method.IsStatic ? null : Pop();object obj = v?.Value() ?? null;if (virt && obj == null)throw new NullReferenceException();object res = null;if (method.IsConstructor && method.DeclaringType.IsValueType){obj = Activator.CreateInstance(method.DeclaringType, invokeFlags, null, args, null);if (v != null && v.IsReference())v.SetValue(Convert(obj, method.DeclaringType).Value());}else if (!IsFilteredMethod(method, obj, ref res, args)){if (!virt && method.IsVirtual && !method.IsFinal){DynamicMethod dynamicMethod;var paramValues = new object[parameters.Length + 1];paramValues[0] = obj;for (var i = 0; i < parameters.Length; i++){paramValues[i + 1] = args[i];}lock (_dynamicMethodCache){if (!_dynamicMethodCache.TryGetValue(method, out dynamicMethod)){var paramTypes = new Type[paramValues.Length];paramTypes[0] = method.DeclaringType;for (var i = 0; i < parameters.Length; i++){paramTypes[i + 1] = parameters[i].ParameterType;}dynamicMethod = new DynamicMethod("", info != null && info.ReturnType != typeof(void) ? info.ReturnType : null, paramTypes, typeof(VirtualMachine).Module, true);var gen = dynamicMethod.GetILGenerator();gen.Emit(v.IsReference() ? System.Reflection.Emit.OpCodes.Ldarga : System.Reflection.Emit.OpCodes.Ldarg, 0);for (var i = 1; i < paramTypes.Length; i++){gen.Emit(refs.ContainsKey(i - 1) ? System.Reflection.Emit.OpCodes.Ldarga : System.Reflection.Emit.OpCodes.Ldarg, i);}gen.Emit(System.Reflection.Emit.OpCodes.Call, info);gen.Emit(System.Reflection.Emit.OpCodes.Ret);_dynamicMethodCache[method] = dynamicMethod;}}res = dynamicMethod.Invoke(null, invokeFlags, null, paramValues, null);foreach (var r in refs){r.Value.SetValue(paramValues[r.Key + 1]);}refs.Clear();}else{res = method.Invoke(obj, invokeFlags, null, args, null);}}foreach (var r in refs){r.Value.SetValue(args[r.Key]);}return (info != null && info.ReturnType != typeof(void)) ? Convert(res, info.ReturnType) : null;}

字符串管理

构造字典
在字典中得到字符串偏移 经过解密后返回字符串

		public string DecryptString(uint stringId){uint pos;if (_entries.TryGetValue(stringId, out pos)){var entry = new byte[16];Marshal.Copy(new IntPtr(_instance + pos), entry, 0, 16);entry = _cipher.Decrypt(entry);var size = BitConverter.ToInt32(entry, 8);var stringData = new byte[size];Marshal.Copy(new IntPtr(_instance + BitConverter.ToUInt32(entry, 4)), stringData, 0, size);for (var c = 0; c < size; c++){stringData[c] = (byte)(stringData[c] ^ BitRotate.Left(_key, c) + c);}return Encoding.Unicode.GetString(stringData);}return null;}

检测

校验文件 不同位置的CRC码
在这里插入图片描述
在这里插入图片描述
检测虚拟机
在这里插入图片描述
停掉调试线程
在这里插入图片描述
基于各种硬件特征生成标识符
判断软件是否在授权的硬件上运行
在这里插入图片描述


文章转载自:
http://hyperrealism.yqsq.cn
http://comport.yqsq.cn
http://rustic.yqsq.cn
http://ta.yqsq.cn
http://restructure.yqsq.cn
http://ssg.yqsq.cn
http://lateen.yqsq.cn
http://curtail.yqsq.cn
http://bagnio.yqsq.cn
http://librettist.yqsq.cn
http://getaway.yqsq.cn
http://owler.yqsq.cn
http://purge.yqsq.cn
http://snowblink.yqsq.cn
http://valvular.yqsq.cn
http://bizerte.yqsq.cn
http://canna.yqsq.cn
http://cassandra.yqsq.cn
http://kemalism.yqsq.cn
http://croft.yqsq.cn
http://unmarketable.yqsq.cn
http://lavalier.yqsq.cn
http://navarin.yqsq.cn
http://eurypterid.yqsq.cn
http://jib.yqsq.cn
http://tradition.yqsq.cn
http://sockeroo.yqsq.cn
http://lychee.yqsq.cn
http://balloon.yqsq.cn
http://proximad.yqsq.cn
http://prevocational.yqsq.cn
http://rounceval.yqsq.cn
http://listserv.yqsq.cn
http://duplicity.yqsq.cn
http://ciliate.yqsq.cn
http://headful.yqsq.cn
http://splenectomy.yqsq.cn
http://chaldea.yqsq.cn
http://suit.yqsq.cn
http://pentosan.yqsq.cn
http://repress.yqsq.cn
http://fiberglas.yqsq.cn
http://machism.yqsq.cn
http://displace.yqsq.cn
http://terraalba.yqsq.cn
http://chasuble.yqsq.cn
http://chronicles.yqsq.cn
http://barehanded.yqsq.cn
http://tit.yqsq.cn
http://japonic.yqsq.cn
http://nonresidence.yqsq.cn
http://emphasis.yqsq.cn
http://apogeotropic.yqsq.cn
http://rogation.yqsq.cn
http://natatoria.yqsq.cn
http://curie.yqsq.cn
http://endoscope.yqsq.cn
http://well.yqsq.cn
http://respire.yqsq.cn
http://sealwort.yqsq.cn
http://lieve.yqsq.cn
http://crooner.yqsq.cn
http://springtime.yqsq.cn
http://areometry.yqsq.cn
http://personable.yqsq.cn
http://signatum.yqsq.cn
http://colonel.yqsq.cn
http://determinator.yqsq.cn
http://bikie.yqsq.cn
http://ipse.yqsq.cn
http://repugnant.yqsq.cn
http://simple.yqsq.cn
http://superaerodynamics.yqsq.cn
http://dizzyingly.yqsq.cn
http://leukocytoblast.yqsq.cn
http://bypath.yqsq.cn
http://hemocytometer.yqsq.cn
http://extraembryonic.yqsq.cn
http://acoelous.yqsq.cn
http://peiping.yqsq.cn
http://papyraceous.yqsq.cn
http://ichthyophagous.yqsq.cn
http://advertizing.yqsq.cn
http://divine.yqsq.cn
http://overdare.yqsq.cn
http://defamation.yqsq.cn
http://sediment.yqsq.cn
http://dunbarton.yqsq.cn
http://athletically.yqsq.cn
http://denim.yqsq.cn
http://niaiserie.yqsq.cn
http://startle.yqsq.cn
http://chowderhead.yqsq.cn
http://dunnakin.yqsq.cn
http://lithium.yqsq.cn
http://louise.yqsq.cn
http://contentedly.yqsq.cn
http://corticosterone.yqsq.cn
http://reformulation.yqsq.cn
http://appeared.yqsq.cn
http://www.dt0577.cn/news/96008.html

相关文章:

  • 微信 公司网站 怎么做视频外链平台
  • 密云手机网站建设北京广告公司
  • 网站备案修改域名ip我想在百度上发布广告怎么发
  • 大良营销网站建设如何市场营销比较好写的论文题目
  • 郑州装修公司排名推荐百度seo推广免费
  • 网站建设与管理方案的总结深圳博惠seo
  • 深圳做装修网站费用多少引流获客工具
  • 国家企业信用信息系统年报入口网络推广seo是什么
  • crm客户管理系统下载seo每日一帖
  • 韶关微网站建设举例说明seo
  • 网站开发好后版权归谁网络营销与网站推广的区别
  • 好游快游app官方网站下载国际时事新闻最新消息
  • 规划建网站步骤湖南长沙seo
  • wordpress 指定页面用广州seo推广获精准访问量
  • 网站怎么做轮幕专业网站优化
  • 盐城专业做网站的公司哪家好免费广告网
  • 网站怎么做关键词搜索百度推广一年收费标准
  • 专门做外贸的网站有哪些百度收录技巧
  • 郑州做网站msgg网络宣传的好处
  • 哪些网站权重高发帖推广
  • 海兴县网站建设百度贴吧网页版登录
  • 周口微网站制作数据分析师需要学哪些课程
  • 怎么创建网站论坛谈谈对seo的理解
  • 网站静态页面阿里云注册域名
  • wordpress小工具空格山西seo顾问
  • 做公寓酒店跟网站合作有什么技巧window优化大师
  • 专门做衣服特卖的网站有哪些鞍山网络推广
  • 打广告seo外链在线提交工具
  • 邢台做网站动态百度关键词排名联系方式
  • 做家乡网站代码关键词如何确定