精华内容
下载资源
问答
  • 对于文件检验的理解
    千次阅读
    2022-03-21 13:07:04

    (一)文件上传漏洞简介

    • 文件长传漏洞是指攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马、病毒、恶意脚本或这Webshell等

    (二)客户端检测绕过

    • 一般都是在网页上写一段 javascript 脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式。判断方式:在浏览加载文件,但还未点击上传按钮时便弹出对话框,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件,而此时并没有发送数据包。

    绕过方法:

    • 通过禁用浏览器的中JS脚本;
    • 删除对js验证脚本的调用;
    • 修改脚本JS,将自定义的文件类型后缀添加进去;
    • 将上传的恶意代码文件类型改为允许上传的类型,例如将shell.asp改为shell.jpg上传,在上传时使用Burp拦截数据,将其中的扩展名改为php,就可以绕过客户端验证;

    (三)服务端检测绕过

    3.1、黑、白名单扩展名过滤

    • 黑名单:找到Web开发人员忽略的扩展名,如: asa 和 cer 之类的;

    • 可能存在大小写绕过漏洞,比如:phP 之类;

    • 在win系统下,如果文件名是以".“或者空格结尾,系统会自动去除”.“与空格,可以绕过黑名单验证,如: 上传”asp." or "asp "的扩展名程序;

    • 白名单:比黑名单拥有更好的防御机制,但不能完全防御,存在Web容器文件解析漏洞,是可以顺利通过验证。

    3.2、MIME 验证绕过

    MIME的作用:web客户端使用 MIME 来说明希望接收到的数据种类,web服务器使用 MIME 来说明发送数据的种类,它是服务器用来判断浏览器传递文件格式的重要标记项。

    • 配置Burp Suite代理进行抓包,更改Content-Type修改为image/gif,或者其他允许的类型,然后在对应目录生成shell.jpg

    3.3、文件头校验绕过

    • 有些通过正则匹配,判断文件头内容是否符合要求,文件头过滤主要是通过验证图片的文件头的方式来判断是不是图片文件。
    • 比如:GIF图片的文件头就是GIF89a。构造:GIF89a<?php phpinfo(); ?>,即可绕过。

    3.4、目录验证的绕过

    • 在文件上传时,有时开发人员运行如果目录存在,就在目录写入文件,不存在则先建立目录,再写入文件。
    • 如果Web容器为 IIS 6.0,在提交的表单里存在文件上传目录,将其值修改为不存在的目录,如:1.asp,并上传一句话图片木马文件1.jpg。程序在接受文件后,对目录判断,因为服务器不存在 1.asp 目录,则会创建,此目录下的1.jpg会当作asp解析。

    3.5、%00截断上传绕过

    • 在许多语言的函数中,0x00被认为是终止符,无论0x00还是%00,最终被解析:chr(0),返回的是ASCII码对应的字符,而 0 对应的就是NUT字符(NULL),也就是空字符。当一个字符串中存在空字符的时候,在被解析的时候会导致空字符后面的字符被丢弃。

    • 比如:程序只允许上传 JPG 图片,那么可以构造文件名为xxx.php%00.JPG,.JPG绕过了应用的上传文件类型判断;但对于服务器来说,此文件因为0x00字符截断的关系,最终却变成了xxx.php。

    3.6、htaccess上传

    • 条件:
      (1). apache服务器
      (2). 能够上传.htaccess文件,一般为黑名单限制。
      (3). AllowOverride All,默认配置为关闭None。
      (4). LoadModule rewrite_module modules/mod_rewrite.so #模块为开启状态
      (5). 上传目录具有可执行权限。

    • .htaccess文件,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。

    • .htaccess文件内容:AddType application/x-httpd-php .jpg,上传后,在上传 .jpg ,apache 服务器会将所有.jpg为后缀的文件作为 php 文件解析。

    (四)解析漏洞

    4.1、IIS 解析漏洞

    在 IIS5.x/6.0 中,在网站下建立文件夹的名字为 *.asp、*.asa、*.cer、*.cdx的文件夹,那么其目录内的任何扩展名的文件都会被IIS当做asp文件来解释并执行。例如创建目录 test.asp,那么 /test.asp/1.jpg 将被当做asp文件来执行。假设黑客可以控制上传文件夹路径,就可以不管上传后你的图片改不改名都能拿shell了。

    • 当文件为 *.asp;1.jpg时,同样会以asp脚本执行。原理:服务器默认不解析;号后面的内容,因此xx.asp;.jpg便被解析成asp文件了。

    4.2、Apache 解析漏洞

    • phtml、pht、php3、php4和php5都是Apache和php认可的php程序的文件后缀。
    • Apache 解析文件的规则:从右到左开始判断解析,如果遇到不能识别的扩展名就再往左判断则跳过,直到碰到认识的扩展名为止, 比如test.php.AAA.BBB中 “.AAA”和”.BBB” 这两种后缀是apache不可识别解析,最终apache就会把test.php.AAA.BBB解析成php。

    4.3、Nginx 解析漏洞

    • php的配置文件 php.ini 文件中开启了 cgi.fix_pathinfo,一般默认是开启的

    例子: http://www.xxx.com/1.jpg/1.php

    • Nginx一看后缀是.php,便认为该文件是php文件,于是转交给php去处理。php一看 /1.jpg/1.php 不存在,便删去最后的/1.php,又看/1.jpg存在,便把/1.jpg当成要执行的文件了,攻击者可以上传图片木马,然后在url加上/xxx.php 就可以获得网站的 Webshell,在新版本的php引入了security.limit_extensions ,限制了可执行文件的后缀,默认只允许执行.php文件。(IIS7.0也存在此漏洞)

    Nginx 空字节漏洞 如:xxx.jpg%00.php 这样的文件名会被解析为php代码运行
    Nginx 0.5.*、 Nginx 0.6.*、Nginx 0.7 <= 0.7.65、 Nginx 0.8 <= 0.8.37

    4.4、Windows文件命名

    在windows环境下,xx.jpg[空格] 或 xx.jpg. 这两类文件都是不允许存在的,若这样命名,windows会默认除去空格或点,黑客可以通过抓包,在文件名后加一个空格或者点绕过黑名单。若上传成功,空格和点都会被windows自动消除。

    • 在文件名后面留一个空格,然后上传上去后空格会被自动的省略。所以可以先上传 .php 文件,然后抓包在文件名后面加一个空格进行绕过即可。
    • windows有一个特性,会自动去掉后缀名最后的 . ,所以可以先上传 .php 文件,然后抓包在文件名后面加 . 即可绕过。

    (五)漏洞利用总结

    条件: 寻找一个上传点,查看上传点是否可用。
    利用:

    1. 首先判断是前端写的上传点,还是服务器端验证上传功能
    2. 如果是前端写的上传点
      2.1. 上传一个正常的jpg图片 查看上传点是否可用
      2.2. 上传一个正常的jpg图片,burp拦截,修改后缀为php (可以检测前端验证 MIME检测 文件内容检测 后缀检测)
      2.3. 上传一个正常的jpg图片,burp拦截, 00截断 1.php%00.jpg
    3. 如果是服务器端验证上传功能,搜索当前服务器的漏洞
    4. 获取服务器的指纹信息,判断服务器是什么类型,web服务器程序,是什么类型,版本号多少
      利用解析漏洞

    (六)漏洞防御

    • 上传文件的存储目录禁用执行权限
    • 文件后缀白名单,注意0x00截断攻击(PHP更新到最新版本)
    • 不能有本地文件包含漏洞
    • 及时修复Web上传代码(重要)
    • 升级Web Server
    更多相关内容
  • 对于mk文件理解

    万次阅读 2018-04-10 21:54:06
    对于今天早上学习到的makefile 文件:LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS)PRODUCT_COPY_FILES += $(LOCAL_PATH)/+目录和文件比如 就是拷贝文件到:文件原来位置PRODUCT_COPY_FILES += $(LOCAL_PATH)/...
    对于今天早上学习到的makefile 文件:
    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)
    PRODUCT_COPY_FILES += $(LOCAL_PATH)/+目录和文件比如 就是拷贝文件到:文件原来位置
    PRODUCT_COPY_FILES += $(LOCAL_PATH)/libs/armeabi/sdkcore.so:system/lib/sdkcore.so

    #================================================

    LOCAL_MODULE_TAGS := optional 制定编译版本 user debug option (所有的版本都编译)等

    LOCAL_CERTIFICATE := platform 是平台的签名

    LOCAL_PROGUARD_ENABLED := disabled 是否混淆

    LOCAL_SRC_FILES := $(call all-java-files-under, src) src的文件路径

    LOCAL_RESOURCE_DIR = $(LOCAL_PATH)/res res 的文件路径

    LOCAL_PACKAGE_NAME :=so 文件的名字

    # 所引用的java library 这个时候会去找其中的关联文件,如果关联文件存在就正常关联
    #不存在的话就报错,这个时候如果下面有定义就可以使用,没有定义并且是去找,但是如果是tests那#么就报错。

    一般应该提前编译 java library 忘记是检测之后编译还是没有编译的话就报错了。

    LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 \
    #区别于不同的包的不同的引用,如果这个是_What_FOR_ANDROID_L那么使用 org.apache.http.legacy这个文件
    ifneq ($(strip $(What_FOR_ANDROID_L)), yes)
    LOCAL_JAVA_LIBRARIES += org.apache.http.legacy
    endif
    #是否使用Jack  
    LOCAL_JACK_ENABLED := disabled

    #LOCAL_REQUIRED_MODULES := coreSDK
    LOCAL_REQUIRED_MODULES的作用当编译整个android源码时,如果这个模块在编译路径中
    则会自动编译 coreSDK ,并且打包到system.img,如果不是编译整个源码,只是mm。则不会编译 coreSDK直接使用 生成相应的文件。 所以这个时候可能需要去使用mma 去编译。


    #LOCAL_JNI_SHARED_LIBRARIES := coreSDk
    变量主要是用在JNI的编译中,如果你要在你的Java代码中引用JNI中的共享库*.so,此变量就是共享库的名字。

    include $(BUILD_PACKAGE)
    #这个时候表示所有的需要的链接都一定说明完整

    include $(CLEAR_VARS)

    LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := coreSDK:/libs/ coreSDK.jar \
    #LOCAL_REQUIRED_MODULES := coreSDK 和这个对应 只有在LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES 定义之后才可以使用
    include $(BUILD_MULTI_PREBUILT)# 编译多个 prebuilt
    # prebuilt.mk就是prebuilt的具体实现, 它是针对独立一个文件的操作 ,multi_prebuilt.mk 可以针对## # 个文件的,它对多个文件进行判断,然后调用prebuilt对独立一个文件进行处理。
    # 预编译so ,jar 文件


    include $(CLEAR_VARS)
    LOCAL_MODULE := libweibosdkcore.so
    LOCAL_MODULE_CLASS := SHARED_LIBRARIES
    LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)
    #用这二个确定最后所在的文件列表的目录


    LOCAL_SRC_FILES := libs/arm64-v8a/sdkcore.so
    #所在的文件目录
    include $(BUILD_PREBUILT)

    #====================================================

    #====================================================
    对于so文件的定义等。
    #include $(CLEAR_VARS)
    #LOCAL_MODULE := sdkcore.so
    #LOCAL_MODULE_CLASS := SHARED_LIBRARIES
    #LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)
    #LOCAL_SRC_FILES := libs/armeabi-v7a/ sdkcore.so
    #include $(BUILD_PREBUILT)

    include $(call all-makefiles-under,$(LOCAL_PATH))
    #去call 了一下列表下面的所有文件
    define all-makefiles-under
    $(wildcard $(1)/*/Android.mk)
    endef

    1.只include Android.mk文件,叫其他名字的mk文件,不include.
    2.只include这个$(LOCAL_PATH)一级目录下的Android.mk文件,而不是所有子目录以及子目录下的Android.mk文件
    应该是为了保证目录下面的mk文件都可以被识别到然后可以编译。

    $(shell $(LOCAL_PATH)/distribute.sh)
    最后的结束语,不明所以

    首先,这个mk文件应该分成3个部分。第一个部分分成,LOCAL_PATH := $(call my-dir)---include $(BUILD_PACKAGE) 第二个部分为 include $(CLEAR_VARS)---include $(BUILD_MULTI_PREBUILT) 第三个部分为:include $(CLEAR_VARS)---include $(BUILD_PREBUILT)。
    对于第一个部分来说,这个过程定义了编译的各个属性,和相关的依赖关系:
    include $(CLEAR_VARS) :清除所所设置的属性,避免上一次编译的属性使用到这一次的编译过程中。
    LOCAL_MODULE_TAGS := optional
    LOCAL_MODULE_TAGS :=user eng tests optional
    user: 指该模块只在user版本下才编译
    eng: 指该模块只在eng版本下才编译
    tests: 指该模块只在tests版本下才编译
    optional:指该模块在所有版本下都编译

    LOCAL_CERTIFICATE := platform
    这个功能和 android:sharedUserId和LOCAL_CERTIFICATE 相关。
    都是用系统的签名来对apk 进行签名。其中签名的文件是:build\target\product\security",下面的platform.pk8和platform.x509.pem两个文件
    签名的工具是:
    Android提供的Signapk工具来签名,signapk的源代码是在"build\tools\signapk"下,用法为"signapk platform.x509.pem platform.pk8 input.apk output.apk"
    其中通过 android:sharedUserId 也已可应用共享同一个进程,但是如果签名不一样是没有办法共享的,其中签名问题还设计到很多,之后可以补充。
    其中这个属性还可以有其他的赋值比如:
    LOCAL_CERTIFICATE := PRESIGNED 表示 这个apk已经签过名了,系统不需要再次 签名;
    LOCAL_CERTIFICATE := platform 表示为系统签名
     LOCAL_CERTIFICATE := media
      用于指定签名时使用的KEY,如果不指定,默认使用testkey,LOCAL_CERTIFICATE可设置的值如下:
        LOCAL_CERTIFICATE := platform 该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试, 这种方式编译出来的APK所在进程的UID为system
        LOCAL_CERTIFICATE := shared 该APK需要和home/contacts进程共享数据。
        LOCAL_CERTIFICATE := media 该APK是media/download系统中的一环。
     LOCAL_CERTIFICATE := testkey 普通APK,默认情况下使用。、
        对于使用eclipse编译的apk,其实 是用 testkey  来签的名;我们也可以用signapk.jar来手动进行签名,其源码在build/tools/signapk下,编译后在out/host/linux-x86/framework/signapk.jar,也可以从网上下载。使用方法,例如: 把签名修改为platform Java  -jar ./signapk platform.x509.pem platform.pk8 input.apk output.apk   (platform.x509.pem platform.pk8在build/target/product/security获取)。build/target/product/security获取)。

    LOCAL_PROGUARD_ENABLED := disabled
    是否混淆
    LOCAL_SRC_FILES := $(call all-java-files-under, src)
    确定一个src文件
    LOCAL_RESOURCE_DIR = $(LOCAL_PATH)/res
    定义一个res文件
    LOCAL_PACKAGE_NAME := name
    给这个package 确定name


    展开全文
  • 解决报错方法:在根目录新建目录shims-vue.d.ts,告诉TS如何理解.vue文件 declare module '*.vue' { import {ComponentOptions} from 'vue' const componentOptions:ComponentOptions export default ...

    解决报错方法:在根目录新建目录shims-vue.d.ts,告诉TS如何理解.vue文件

    declare  module '*.vue' {
       import {ComponentOptions} from 'vue'
        const componentOptions:ComponentOptions
        export default componentOptions
    }
    

    有其他文件引入报错就在此文件中往后加声明即可

    如果关闭shims-vue.d.ts还是报错,再在根目录创建一个 tsconfig.json 文件

    {
      "compilerOptions": {
        "target": "esnext",
        "module": "esnext",
        "strict": false,
        "jsx": "preserve",
        "moduleResolution": "node"
      }
    }



     

    展开全文
  • 关于AD导Gerber文件理解和总结

    千次阅读 多人点赞 2022-01-05 21:03:38
    文章目录一、Gerber文件清单一、Gerber各文件二、使用步骤1.引入库2.读入数据总结 一、Gerber文件清单   我们在做PCB板的时候,一般交给板厂的Gerber文件中必须包括下面的1-8和13,其中9-12可以不用,但建议一起...


    一、Gerber文件清单

      我们在做PCB板的时候,一般交给板厂的Gerber文件中必须包括下面的1-10和15,其中11-14可以不用,但建议一起放在Gerber文件中。
    1.GTO(Top Overlay):顶层丝印层,常见为白油。
    2.GTS(Top Solder):顶层阻焊层,常见为绿油。
    3.GTL(Top Layer):顶层走线层。
    4.Gtp(Top Paste Mask):顶层锡膏防护层。
    5.GBp(Bottom Paste Mask):底层锡膏防护层。
    6.GBL(Bootom Layer):底层走线层。
    7.GBS(Bottom Solder):底层阻焊层,常见为绿油。
    8.GBO(Bottom Overylay):底层丝印层,常见为白油。
    9.GMx(Mechanical)或GKO(Keep-out Layer):用来定义板框,板框在那层就选那层。
    10.Gx(Mid Layer):为中间信号X层,中间有多少层就有多少文件。
    11.Gd(Drill Drawing):钻孔制图层。
    12.Gg(Drill Guide):钻孔说明层。
    13.Gpt(Top Pad Master):顶层焊盘层。
    14.Gpb(Bottom Pad Master):底层焊盘层。
    15.NC drill Files:钻孔文件,AD导出一般为txt文件。一般有如下几个文件①RoundHoles-NonPlated(圆孔-非电镀钻孔文件)②RoundHoles-Plated(圆孔电镀钻孔文件)③SlotHoles-Plated(槽孔镀层 钻孔文件)。

    二、Gerber各文件讲解

    1.Top Overlay/Bottom Overylay:顶层和底层丝印层,主要显示元器件边框,位号,属性,标注信息等等。
    2.Top Solder/Bottom Solder:层和底层阻焊层,显示的是不需要覆盖绿油的焊盘,开窗,器件等。
    3.Top Layer/Bootom Layer:顶层和底层走线层,顶层和底层的走线信息。
    4.Mechanical或Keep-out Layer:用于放置机械图形,如PCB的外形等,在这层上放置的图形在任何层上都有相应的图形,并且是不会被丝印上阻焊剂的。一般用于放置板框。
    5.Top Paste Mask/Bottom Paste Mask:这两层是用于制作钢网的文件。
    6.Drill Drawing,Drill Guide,NC drill Files都是钻孔信息,它们各有什么作用了?为什么导出Gerber文件了还需要导出NC Drill Files?
      ①DrillGuide主要作用是引导钻孔用的,主要是用于手工钻孔以定位 ②DrillDrawing是用于查看钻孔孔径的,在手工钻孔时,这两个文件要配合使用。不过现在大多是数控钻孔,所以这两层用处不是很大,即需要我们为数控提供NC drill Files(一般为txt或excel文件)。虽然Drill Drawing和Drill Guide文件可以由NC drill Files生成,但为了减少后续工作,建议在文件中加上这两个文件。

    三、Gerber导出步骤

    步骤1.把你需要导出的PCB文件复制到一个空文件夹里面,目的是将后面产生的Gerber文件和钻孔文件保存在这个文件夹里面。
    步骤2.打开PCB文件,放置字符串,修改字符串参数(字符串内容为.Legend,字符串层叠:Drill Drawing),并将字符串移到你PCB的右下角。目的是将后面Drill Drawing和Drill Guide文件生成的钻孔参数(钻孔数量,钻孔类型等)放置在PCB的右侧,防止钻孔参数的乱跑。

    在这里插入图片描述
    在这里插入图片描述

    步骤3.文件——制造输出——Gerber Files。

    在这里插入图片描述

    步骤4.General——Unints(选Inches)——Format(2:5)。
      说明:你可能会发现在Unints(单位)这里有人会选择Inches,有人会选择Milimeters,其实这两种都可以,唯一的区别就是在PCB板厂会根据你所选择的单位来进行加工。我一般会选择英制。后面的Format(格式)是精确度(分辨率)的意思,2:3是2位整数3位小数(1mil),2:4是2位整数4位小数(0.1mil),2:5是2位整数5位小数(0.01mil)。这个的选择需要根据板厂的加工能力选择,一般选择板厂的最大加工精度,减小加工误差。我一般选择2:5(0.01mil)的误差范围。

    在这里插入图片描述
    步骤5.Layer——ploat(在ploat选择你要导出的文件,见Gerber文件清单)——勾选Include unconnected mid-layer pad(包括未连接的中间焊盘)。
      说明:由于我的板框放在的Keep-out层,机械层没有东西,即我只选择了Keep-out层,没选机械层。

    在这里插入图片描述
    步骤6.Drill Drawing——勾选Drill Drawing Plots的Plot all used drill pairs——勾选Drill Gide Plots的Plot all used drill pairs。
      说明 :输出Drill Drawing和Drill Guide文件。

    在这里插入图片描述
    步骤7.勾选Embedded apertures(RS274X)。

    在这里插入图片描述
    步骤8.勾选下面框定的选项——再点击OK。

    在这里插入图片描述
    步骤9.在你存放PCB文件夹下会出现如下Greber文件,接下来还需要导出所需的钻孔文件。

    在这里插入图片描述

    三、钻孔文件导出步骤

    步骤1.文件——制造输出——NC Drill Files。

    在这里插入图片描述
    步骤2.选择加工单位和加工精度,一般选择英寸和2:5(0.01mil)的精度,在选择为电镀和非电镀生成单独的Dill文件,应用钻孔槽命令,生产电路板边框等,选择如下。在点击OK。

    在这里插入图片描述
    步骤3.弹出钻孔数据表,点击Units进行设置,设置选择如下,设置参数与第二步保持一致,否则可能导致无法输出文件。最后点击OK。

    在这里插入图片描述
    步骤4.点击OK后,就会在你的PCB文件夹里面出现下列的钻孔文件,RoundHoles-NonPlated(圆孔-非电镀钻孔文件),RoundHoles-Plated(圆孔电镀钻孔文件),SlotHoles-Plated(槽孔镀层钻孔文件)。
    在这里插入图片描述
    步骤5.删除你的PCB文件,将生成的Gerber文件和钻孔文件一起打包发给PCB厂家进行PCB的制作。如果你的PCB文件不是保密文件的话,也可以直接将PCB文件发给板厂进行PCB的制作。

    展开全文
  • 【Linux】理解文件系统

    千次阅读 2022-04-18 16:54:51
    文章目录什么是文件系统Block Group创建文件的四个操作理解硬链接方法理解软链接方法 我们使用 ls -l命令,除了可以看到文件名,还可以看到文件元数据,如图 这是因为ls -l是读取磁盘上的文件信息,然后显示出来 ...
  • 文件上传漏洞及绕过检测的方式

    千次阅读 2022-05-07 11:28:59
    (一)客户端检测(二)服务端检测(三)白名单和黑名单的区别三、绕过后端黑名单检测(一)换一个后缀名绕过黑名单检测(二)用.htaccess文件巧妙绕过黑名单(三)用大小写绕过后缀名检测(四)文件后缀加空格或点...
  • 客户端和服务端的文件上传的检测和绕过方法,通过一些实验案例了解文件上传漏洞的危害和一些常见类型,理解文件上传的利用条件。
  • 目标检测文件,用于理解nms是如何计算的
  • 简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段  2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将...
  • 文章目录utils.py 文件理解:一些小脚本文件1. 包含的函数1.1. def to_cpu(tensor):1.2. def load_classes(path): 加载数据集的类别1.3. def weights_init_normal(m): 权重初始化这里还要写一个文档来理解 self....
  • 怎样理解Linux的文件系统

    千次阅读 2015-08-19 15:19:47
    怎样理解Linux的文件系统  Linux所有文件都从root开始,用'/'代表, 并且延伸到子目录。DOS/Windows有不同的分区同时目录都存于分区上。Linux则通过'加载'的方式把所有分区都放置在root下制定的目录里。...
  • C语言程序设计教案 章节名称 文件概述文件的打开与关闭顺序读写数据文件1 授课类型 理论 实验 ?...理解顺序读写数据文件的概念掌握向文件读写一个字符的操作方法 能力目标 能用文件的相关函数实现文件
  • 简直不要太硬了!一文带你彻底理解文件系统

    万次阅读 多人点赞 2020-03-25 13:19:06
    对于一些应用程序来说,存储空间的大小是充足的,但是对于其他一些应用程序,比如航空订票系统、银行系统、企业记账系统来说,这些容量又显得太小了。 第二个问题是,当进程终止时信息会丢失。对于一些应用程序...
  • makefile文件中的依赖关系理解

    千次阅读 2019-10-30 11:10:49
    首先,假设当前工程目录为prj/,该目录下有6个文件,分别是:main.c、abc.c、xyz.c、abc.h、xyz.h和Makefile。其中main.c包含头文件abc.h和xyz.h,abc.c包含头文件abc.h,xyz.c包含头文件xyz.h,而abc.h又包含了xyz....
  • 1、Linux内核和文件系统之间,什么关系?没有文件系统,Linux能运行不能运行? 可以有也可以没有,Linux这个操作系统,很奇怪!必须要挂一个文件系统!像有些操作系统,比如Vxworks就不需要,uCos也不需要,但是,...
  • pandas读取excle和csv文件常见用法 https://blog.csdn.net/geekleee/article/details/52903082
  • 本数据集可用于积水区域识别与检测,共包含460张图片,标注辛苦,请理解
  • YOLO配置文件理解

    万次阅读 多人点赞 2017-03-23 19:28:00
    YOLO配置文件理解
  • 内部常见的文件上传的检测方式与绕过方法 BookFresh棘手文件上传绕过RCE 文件上传 之 条件竞争 Tag: #文件上传 一、漏洞介绍 文件上传漏洞是web安全中经常用到的一种漏洞形式。是对数据与代码分离原则的一种攻击...
  • 【C】C语言文件(包括:文件各种读写方式)

    万次阅读 多人点赞 2018-05-09 09:52:32
    文件概述 文件是指存储在外部存储器上的数据集合。更准确的来说,文件就是一组相关元素或数据的有序集合,而且每个集合都有一个符号化的指代,称这个符号化的指代为文件名。 文件类型 根据文件在外部存储器上的...
  • 本文旨在让小白用户理解Ceph的块存储、文件系统存储和对象存储接口。 一. Ceph的块设备存储接口 什么是块设备? 块设备是i/o设备中的一类,是将信息存储在固定大小的块中,每个块都有自己的地址,还可以在设
  • Linux如何分析和排查系统故障——排除文件系统类故障前言:文件系统及磁盘中所存储的数据的价值是无法估量的,管理员的工作职责之一就是要确保数据的安全。由于磁盘属于易损耗品,无法预估它什么时候会损坏。最好的...
  • C语言文件读写-判断文件是否结束 在读文件的时候,很重要的一个条件是:文件是否结束,因为文件已经结束了,就不用继续读文件了。 判断文件结束,有许多方式,比如读取文本文件和二进制文件就可以使用不同的方式,...
  • 文件上传漏洞及常见的利用方式

    千次阅读 2021-01-08 21:11:25
    文章目录概述“文件上传”漏洞与“WebShell”文件上传漏洞的原理“文件上传漏洞”被利用植入“WebShell”后的常见安全问题:上传检测流程概述上传服务器文件命名规则常见的检测方式“文件上传漏洞”-本地验证检测绕...
  • 1) 理解绕过Content-Type检测文件类型上传的原理 2) 学习绕过Content-Type检测文件类型上传的过程 [实验原理] 当浏览器在上传文件到服务器的时候,服务器对所上传文件的Content-Type类型进行检测,如果是白名单...
  • 在研究图片服务器问题时,了解到现在很多大公司基本上都是用分布式文件系统来存储海量小文件,比如Facebook有haystack,淘宝有TFS,京东有JFS。最近在研究TFS,结合之前学习的linux下的inode相关知识,了解到在ext...
  • YOLOV3实战4:Darknet中cfg文件说明和理解

    万次阅读 多人点赞 2018-10-12 09:36:17
    大家好,我是小p,从今天起,将逐渐从源码角度解析Darknet,欢迎加入对象检测群813221712讨论和交流,进群请看群公告! 今天将要说明的是Darknet中的cfg文件,废话少说,直接干!(以cfg/yolov3.cfg为例,其它类似)...
  • ClickOnce中.appref-ms文件理解

    千次阅读 2017-04-07 10:34:28
    对于ClickOnce中.appref-ms文件内容的理解
  • PyTorch版的YOLOv5是高性能的实时目标检测方法。 TensorRT是针对英伟达GPU的加速工具。本课程讲述如何使用TensorRT对YOLOv5进行加速和部署。    本课程的YOLOv5使用ultralytics/yolov5,分别在Ubuntu和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 358,548
精华内容 143,419
热门标签
关键字:

对于文件检验的理解