首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VMProtect 3.x- 如何vmp静态分析(2

该算法将每条PUSHVSP指令的顶部两个堆栈值解释为加密的相对虚拟地址,并最后一个LCONSTDW值应用 XOR 运算。...此外,不仅可以使用 unicorn-engine 获得解密的操作数,而且可以为每条虚拟指令虚拟堆栈的视图进行快照。这允许算法利用堆栈上的值。...在本节中,我将详细介绍虚拟分支如何在 VMProtect 2 虚拟机内部工作,以及我设计用于识别和分析所有路径的算法。 首先,并非所有代码块都以分支虚拟指令结束。有些以虚拟机退出或绝对跳转结束。...mov QWORD PTR [rsp-0x8],rax 2b: 58 pop rax 2c: ff 64 24 f0 jmp...图 3 虽然在原生 x86_64 中,但提供了 VMProtect 2 如何在虚拟机内部进行分支的可靠示例。但是,VMProtect 2 通过数学混淆添加了额外的混淆。

3.6K951
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何使用mitmproxy2swaggerREST API进行逆向工程分析

    这也就意味着,在该工具的帮助下,广大研究人员能够以自动化的形式REST API进行逆向分析,并捕捉流量数据。 除此之外,该工具还可以支持从浏览器开发者工具导出并处理HAR文件。  ...> -o -p 需要注意的是,我们可以直接使用已有的schema,并根据需要来进行自定义扩展。...其中的是需要进行逆向工程分析的目标API的URL基地址前缀,然后可以在mitmproxy中观察请求以及响应数据。...然后,在schema文件中创建如下所示的字段: x-path-templates: # Remove the ignore: prefix to generate an...在浏览器的开发者工具中,切换到“Network”标签,并点击“Export HAR”按钮: 接下来,运行mitmproxy2swagger,工具将会自动检测HAR文件并进行数据分析和处理。

    1.4K30

    WCF后续之旅(2): 如何Channel Layer进行扩展——创建自定义Channel

    在上一篇文章中,我们通过一个直接借助BasicHttpBinding对象实现Client和Server端进行通信的例子,WCF channel layer进行了一个大致上的介绍。...通过这些元素,我们很容易地实现WCF channel layer进行扩展。...一般来说,仅仅创建custom channel是不够的,因为在runtime, channel是通过Channel manager进行创建的,所以你需要创建对应的Channel factory(如何发送方进行扩展...{ 3: } 三、创建Custom Channel 为了让大家WCF channel layer有一个深刻的认识,以及掌握如何有效地进行扩展。...WCF后续之旅: WCF后续之旅(1): WCF是如何通过Binding进行通信的 WCF后续之旅(2): 如何Channel Layer进行扩展——创建自定义Channel WCF后续之旅(3

    1.7K60

    抖音二面,内存只有 2G,如何 100 亿数据进行排序?

    之前我其实不是很能理解这座墙的意义,见证了俄乌战争、美利坚发动的铺天盖地的舆论攻势之后,我大概能够明白,这座墙,抵御的到底是谁了 大数据小内存排序问题,很经典,很常见,类似的还有比如 “如何对上百万考试的成绩进行排序...数据库排序 将存储着 100 亿数据的文本文件一条一条导入到数据库中,然后根据某个字段建立索引,数据库进行索引排序操作后我们就可以依次提取出数据追加到结果集中。...1024 B = 1KB) = 8 * 1024 bit 1024 * 1024 KB(1024KB = 1MB)= 1024 * 8 * 1024 bit 100 亿 int 型数字就是 100 亿 x...; 上面的代码的含义是,第 [0,2) 位会被设置成 1,也就是说这个类会自动地生成一个 long 型的元素,二进制表示是 ........要想定义存储空间大小就需要实现知道存储的元素到底有多少 对于有符号类型的数据,需要用 2 位来表示,比如 第 0 位和第 1 位表示 0 这个数据,第 2 位和第 3 位表示 1 这个数据......

    4K10

    图像柔光效果(SoftGlow)的原理及其实现。

    其能针对原始图像产生一副新的比较平滑感觉光线比较柔和的效果,给人一种朦胧美,如下面几幅图所示: 目前,关于该算法的可控参数,美图秀秀只提供了一个程度(0-100%)控制量,其算法调节的效果和幅度都较小,光影魔术手有柔化程度和高光柔化两个参数...,其中柔化程度控制柔化的朦胧效果,高光柔化调节图像的亮度。...第一步:备份原始图像;       第二步:原始图像按指定的半径进行高斯模糊;       第三步:模糊后的图像继续进行亮度和对比度的调整;       第四步:用原始图像的备份数据通原始图像(经过上述二及三处理后的图像...)按照Photoshop的滤色(Screen)方式进行混合。      ...关于滤色方式的混合算法这里简单的提一下:  Blend = X + Y - X * Y / 255 ;  其中X和Y分别表示基色和混合色,Blend表示结果色。

    1K100

    网页视频会议背景实时替换。Google Meet背后的技术揭秘

    作为这个目标的一部分,我们最近发布了在 Google Meet 中模糊和替换背景的方法,它使用机器学习来更好地突出参与者,而不管他们周围的环境如何。...此外,Chrome 84最近引入了 WebAssembly SIMD 的支持,它可以用一条指令处理多个数据点,从而使性能提升了2倍以上。...然后通过 WebGL2 应用 mask 渲染视频输出,这时背景就模糊或替换了。 ?...对于背景替换,我们采用了一种称为光线包装(light wrapping)的合成技术,用于混合分割的人像和定制的背景图像。光线包装有助于柔化分割边缘,允许背景光线溢出到前景元素上,使合成更加身临其境。...性能 为了优化不同设备的使用体验,我们提供了多种输入大小的模型变种(如当前版本中的256x144和160x96),可根据可用的硬件资源自动选择最佳大小。

    1.7K31

    利用PPT如何设计制作创意相框

    选中原正六边形,利用“效果”选项卡中的“柔化边缘”柔化其边缘,设置为3磅。将两个正六边形进行完全重合。选中这两个正六边形进行组合,按住Shift键调整组合体的大小。...不断复制这个组合体,进行拼接,组合成自己所需要的相框。   最后再插入一张所需要的相片,调整它的大小比相框小些,将其置于底层,并与相框进行重叠组合就可以了。   ...其中2个光圈:光圈1颜色为“灰色—25%,背景2,深色50%”,位置为0%,透明度为0%;光圈2颜色为“白色”,位置为100%,透明度为100%。柔化边缘,大小为5磅,这样下方的阴影就绘制完成了。...将水晶边框、图片、光晕、反光、阴影及展台进行组合。需要注意的是,图片要放在反光的下一层,阴影要放到水晶边框的下一层。...另外需要说明的是,上述操作步骤中,凡涉及到滑动条或数字输入框的调整范围,不一定要拘泥于案例中给出的数字,若制作效果的某些环节不满意,你也可以按需在允许范围内作适当调整。

    4.1K20

    【技术分享】机器学习之回归(二)---广义线性模型(GLM)

    多项分布 > softmax回归 softmax理解: 假设有n个数x1、x2。。。xn,我们从中随机抽取一个数,请问这个数是什么? 答案显然是不知道的,但是我们可以回答,这个数最有可能是什么。...所以我们计算一下抽到xi的概率为p(xi),这样p(xi)占的比重为: [hgmxd6gs58.png] 那我们可以写上答案为max p(x1), p(x2) ... p(xi) ... p(xn)...因此为了消除它的不可导点,我们用了一种概率曲线柔化后的max方式进行模拟,这种柔化的max我们把它叫做softmax。...这样就 1,2....k进行了区分。...最大似然函数求梯度可得: [9ow70qnwo2.png] 这个式子是一个广义线性模型通用的公式,也就是对于线性模型、Logistics等都适用。

    2.6K40

    一步步教你用CSS添加SVG过滤器

    在本教程中,重点将放在 SVG 的过滤器上 —— 但不只是将它们应用于 SVG 图像,我将向你展示如何将它们应用于任何常规页面的内容上。...柔化边缘 ? 使用高斯模糊来柔化文本 水边效果的边缘看起来有点扎眼。这可以用高斯模糊来解决。在置换贴图后面添加代码。当你刷新页面时,它确实模糊了文本,但位移也消失了。...把模糊和位移进行组合,可以获得更令人愉悦的效果 在之前的高斯模糊下面添加复合线。你将看到会把模糊和位移效果结合在一起,并且还为文本创建了水润的半透明效果。...然后创建每个菜单项的悬停元素,以便当用户将鼠标悬停在上面时进行更改。当菜单项返回其原始位置时,菜单的每个子项都会有 0.4 秒的变换时间。...更改菜单图标的 z-index 以将其置于顶部 通过更改其 z-index,菜单图标高于其他元素。当用户将鼠标悬停在菜单上时,菜单会滑出,单击菜单后其上的三条横线会变为 “X”,表示收起菜单。

    2.9K20

    天天在用Java8的流操作,那你知道它实现原理吗?

    之所以要进行如此精细的划分,是因为底层每一种情况的处理方式不同。 为了更好的理解流的中间操作和终端操作,可以通过下面的两段代码来看他们的执行过程。...("B" + x)) .forEach(x -> System.out.print("C" + x)); 输出为: A1B1C1 A2B2C2 A3B3C3 中间操作是懒惰的,也就是中间操作不会对数据做任何操作...void accept(T t)遍历元素时调用,接受一个待处理元素,并元素进行处理。...比如Stream.sorted()是一个有状态的中间操作,其对应的Sink.begin()方法可能创建一个盛放结果的容器,而accept()方法负责将元素添加到该容器,最后end()负责容器进行排序。...使用当前Sink包装动作处理t,只是简单的将元素添加到中间列表当中 } } 上述代码完美的展现了Sink的四个接口方法是如何协同工作的: 首先begin()方法告诉Sink参与排序的元素个数,方便确定中间结果容器的的大小

    32610

    天天在用Stream,你知道如此强大的Stream的实现原理吗?

    之所以要进行如此精细的划分,是因为底层每一种情况的处理方式不同。为了更好的理解流的中间操作和终端操作,可以通过下面的两段代码来看他们的执行过程。...("B" + x)) .forEach(x -> System.out.print("C" + x)); 输出为:A1B1C1 A2B2C2 A3B3C3 中间操作是懒惰的,也就是中间操作不会对数据做任何操作...void accept(T t) 遍历元素时调用,接受一个待处理元素,并元素进行处理。...比如Stream.sorted()是一个有状态的中间操作,其对应的Sink.begin()方法可能创建一个盛放结果的容器,而accept()方法负责将元素添加到该容器,最后end()负责容器进行排序。...使用当前Sink包装动作处理t,只是简单的将元素添加到中间列表当中 } } 上述代码完美的展现了Sink的四个接口方法是如何协同工作的: 首先begin()方法告诉Sink参与排序的元素个数,

    62130

    基于图扑 HT for Web 实现的昼夜切换场景应用

    系统分析 切换白天与黑夜的方案主要有 2 种: 分别做好白天和黑夜的场景,并在需要时进行切换; 在同一场景中,通过调整阴影、灯光、天空球等元素,来实现白天与黑夜的过渡。...在动画回调后,再进行场景切换。切换完成后,再将景深调整为最透明状态。...调整视觉元素实现昼夜切换 通过综合调整灯光、阴影和天空球,可以模拟光影的变化,实现白天到夜晚的自然过渡,使整个场景更加生动逼真。通过精细调控这些元素,能够使得虚拟场景更加真实,引人入胜。...g3d.enableShadow();//开启阴影 g3d.setShadowIntensity(intensity);//阴影强度值 g3d.setShadowRadius(radius);// 阴影柔化半径...g3d.setShadowDegreeX(degreeX);//阴影在X轴方向上的角度 g3d.setShadowDegreeZ(degreeZ);//阴影在Z轴方向上的角度 天空球 除了上述两个要素之外

    9110

    Web ML+ WebAssembly 支持实现 Google Meet 背景模糊功能

    此外,Chrome84最近引入了WebAssembly SIMD的支持,每条指令可以处理多个数据点,性能提升了2倍以上。...效果渲染 分割完成后,我们使用OpenGL着色器进行视频处理和效果渲染,其中的挑战就是在不引入伪影的情况下进行高效渲染。在细化阶段,我们采用联合双边滤波器低分辨率蒙版进行平滑处理 ?...右:替换背景中的灯光包裹包装(light wrapping)。 模糊着色器通过与分割蒙版值成比例的方式,调整每个像素的模糊强度,来模拟波克(bokeh)效果,类似于光学中的混淆圆(CoC)。...光线包裹允许背景光溢出到前景元素上,从而使合成更具沉浸感,这有助于柔化分割边缘。当前景和替换的背景之间,存在较大的对比度时,它还有助于最大限度地减少光晕伪影 ?...背景替换示例 性能 为了优化不同设备的体验,我们提供多种输入尺寸(即当前版本中的256x144和160x96)的模型变体,根据可用的硬件资源自动选择最佳模型。

    73830

    JavaScript第七节

    但是同学们也不可能一下子记住这么多的方法,因此当同学们忘了某个方法该如何使用的时候,可以通过以下方式查看。 火狐开发者网站MDN W3School网站 离线文档 笔记 如何学习一个方法 ?...]; arr.join();//不传参数,默认按【,】进行拼接 arr.join("");//按【"】进行拼接 arr.join("-");//按【-】进行拼接 数组的增删操作(★) var arr...']; var arr2 = [3, 6, 1, 5, 10, 2,11]; //sort方法可以传递一个函数作为参数,这个参数用来控制数组如何进行排序 arr.sort(function(a, b)...", "a", "z", "a", "x", "a", "a", "z", "c", "x", "a", "x"] //1....Number对象 Number对象是数字的包装类型,数字可以直接使用这些方法 toFixed(2)//保留2位小数 toString();//转换成字符串 Boolean对象 Boolean对象是布尔类型的包装类型

    93920
    领券