有意思的项目 最近几篇文章都是关于无文件执行或者是逃逸execve检测的内容,今天接着延续着这个思路往下讲。...使用说明 这个项目有趣的地方是 将exe转化为shellcode,转化后的文件依然是完整的PE文件,不仅可以单独运行,也可以通过shellcode的方式运行。...在项目的release页面,根据自身的系统下载runshc 和pe2shc文件: ?...给exe文件分配可读可写可执行的内存,并将缓冲区中的内容复制到这段内存中 从内存中执行代码 基本上和shellcode的执行方式是一样的,看来真的是将PE文件转化为了shellcode。...推荐阅读: linux无文件执行— fexecve 揭秘 沙盒syscall监控组件:strace and wtrace 无"命令"反弹shell-逃逸基于execve的命令监控(上) APT组织武器
PE文件本身是无法直接在内存中执行的,windows操作系统需要将PE文件按照规则映射到内存中,并将指令指针指向程序入口就可以执行了,这就是PE loader的工作流程。...至少上文的结构模型完成不了,因为Stub已经破坏了PE头,操作系统加载的时候是不会将他识别为PE文件的!!!...一文件两用 新模型 通过猜想和比对,对原有的结构模型进行改进,将Stub是附加在PE文件后面,并对PE文件头部进行修改实现跳转,从而实现PE文件一文件两用。 ?...在新模型中,Stub可以不用改变,直接附加在PE文件的最后,对PE文件的头部添加一段跳转shellcode,而且这段shellcode必须以"MZ"开头,这样才能被识别为正常的PE文件。...推荐阅读: 无文件执行:一切皆是shellcode (上) linux无文件执行— fexecve 揭秘 沙盒syscall监控组件:strace and wtrace 无"命令"反弹shell-
Linux的进程、线程、文件描述符是什么 说到进程,恐怕面试中最常见的问题就是线程和进程的关系了,那么先说一下答案:在 Linux 系统中,进程和线程几乎没有区别。...Linux 中的进程就是一个数据结构,看明白就可以理解文件描述符、重定向、管道命令的底层工作原理,最后我们从操作系统的角度看看为什么说线程和进程基本没有区别。...PS:不要忘了,Linux 中一切都被抽象成文件,设备也是文件,可以进行读和写。...到这里,你可能也看出「Linux 中一切皆文件」设计思路的高明了,不管是设备、另一个进程、socket 套接字还是真正的文件,全部都可以读写,统一装进一个简单的files数组,进程通过简单的文件描述符访问相应资源...为什么说 Linux 中线程和进程基本没有区别呢,因为从 Linux 内核的角度来看,并没有把线程和进程区别对待。
一切皆是映射 映射即流 流即函数 这句话背后的意义不仅仅在于函数式编程。量子力学说过,事物只在相互作用时才出现。“事物”即“一切”,“相互作用”即“映射”。...这是“一切皆是映射”(光剑)这句话背后更为本质的意义。 世界不应该被理解为无组织的原子的集合,而应该被理解为一种映射游戏,以这些原子组合形式的结构之间的关联为基础。
例如:git用sha1判断文件更改,密码用MD5生成摘要后加盐等等对Hash的应用可看出,Hash的在计算机世界扮演着多么重要的角色。...image.png 一切皆是映射: ? image.png 哈希函数(Hash Function),也称为散列函数或杂凑函数。...它的函数表达式为:h=H(m) 无论输入是什么数字格式、文件有多大,输出都是固定长度的比特串。以比特币使用的Sh256算法为例,无论输入是什么数据文件,输出就是256bit。
https://www.techiedelight.com/convert-map-to-list-kotlin/ https://bezkoder.com/...
本期学习Linux中文件类型及优缺点 linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机...Linux系统中,文件具体可分为以下几种类型: 1、 普通文件 类似 mp4、pdf、html 这样,可直接拿来使用的文件都属于普通文件,Linux 用户根据访问权限的不同可以对这些文件进行查看、删除以及更改操作...Linux 系统中,目录文件包含了此目录中各个文件的文件名以及指向这些文件的指针,打开目录等同于打开目录文件,只要你有权限,可以随意访问目录中的任何文件。...例如,磁盘光驱属于块设备文件,串口设备则属于字符设备文件。 Linux 系统中的所有设备,要么是块设备文件,要么是字符设备文件。...一切皆文件的利弊 和 Windows 系统不同,Linux 系统没有 C 盘、D 盘、E 盘那么多的盘符,只有一个根目录(/),所有的文件(资源)都存储在以根目录(/)为树根的树形目录结构中。
按照常用的hash算法来将对应的key哈希到一个具有232次方个桶的空间中,即0~(232)-1的数字空间中。现在我们可以将这些数字头尾相连,想象成一个闭合的环...
Linux 系统定义了一切皆文件的原则,甚至于硬件:磁盘,软盘,等……,这样的好处是,在不同的平台和硬件上都能形成统一的调用方式。...接触过 Linux 的,应该都了解 echo "0" > test.txt 是将一个字符串 0 输入到当前目录的 test.txt 文件中,那么下面所有的操作,均基于这个操作形式。...GPIO端口 自 Linux 2.6.21 起,GPIO 作为一个基础组件包含到Linux 内,我们可以根据 GPIO 规范直接使用。...IO 端口 GPIO 到文件系统的映射。...导出引脚 向文件 /sys/class/gpio/export 写入引脚编号,即可激活引脚。
在这个时候,被内存映射的文件实际上成了一个分页交换文件。...如果操作系统判断此次访问是有效的,那么操作系统会尝试将相关的分页从硬盘上的虚拟内存文件中调入内存。而如果访问是不被允许的,那么操作系统通常会结束相关的进程。...一切皆是映射。
Python内存管理机制的核心就是引用计数,在Python当中一切都是对象,对象通过引用来使用。 ? 我们看到的是变量名,但是变量名指向了内存当中的一块对象。
每个人都知道一个文件是什么...这就是你使用的“照片”,“文档”或“音乐”。程序是由文件组成的,实际上,整个Linux操作系统只是一个文件集合...但是,现在是奇怪的部分。...不仅是你上传到电脑的数码照片文件,但你的显示器也是一个文件!你看,在Linux中,一切都是一个文件!哇!!!怎么可能?我们试着解释一下。 / dev目录 你会看到很多黑色的黄色。...在Linux中所有的东西都被认为是一个文件,所以你的硬盘会被记录为一个文件。如果您使用IDE硬盘驱动器(而不是SCSI),则您的硬盘驱动器将被称为/ dev / hda。.../ var目录 / var是可能改变其大小(即可变大小)的某些文件的目录。例如,Linux有几个优秀的数据库。一个叫做MySQL。.../ lib目录 / lib是用于库文件的。这就是名称/ lib的来源。程序可以使用库来执行它们的功能。不同的程序使用相同的库,所以Linux将把它们存储在这里,以便每个程序知道在哪里找到它们。
介绍 什么是文件? 文件就是操作系统记录和保持信息的通用结构体。与其他操作系统不同,类似 UNIX 的操作系统将一切视为通用文件。...设备已满:/dev/full 在 Linux 上,始终完整的设备是一个特殊的文件,在访问时始终返回相同的错误代码:ENOSPC -这意味着"设备上没有可用空间"。...可以针对任何文件格式执行相同的过程:EXT2、FAT32、NTFS 等。一切都只取决于您的需求!...一切都是一个文件 也就是说,文件夹、目录、分区(即存储事物的东西)只不过是定义磁盘或 SSD 扇区中的"索引文件"。...当他们说基于UNIX的系统具有简单化的理念时,我们谈论的就是简单:一切都只是一个文件,显而易见,简单和实用,易于操作,直截了当。
在Linux系统中,有一句经典的话:“一切皆文件”(Everything is a file)。...本文将详细介绍Linux中的“一切皆文件”的概念,以及它的优点和应用。图片文件和设备在Linux中,所有的设备和文件都是以文件的形式存在的。...优点和应用“一切皆文件”是Linux系统的一个重要特性,它带来了许多优点和应用:统一的文件操作接口Linux将所有的设备和文件都看做文件,这使得对它们的操作方法变得统一和简单。...总结“一切皆文件”是Linux系统的一个重要特性,它将所有的设备、文件和操作都视为文件,并提供了统一的文件操作接口。...了解和掌握Linux的文件系统和文件操作方式,对于使用Linux系统的用户和开发人员来说都非常重要。希望本文能够帮助读者更好地理解和应用“一切皆文件”的概念。
动态的执行一段简单代码,采用生成java文件,调用javac编译,反射执行的方式。 使用输入输出流(或者你说的可能是要用反射得到程序结果来解析)解析做出*.Java文件。...然后可以使用runtime调用Dos下的java编译命令编译取得class文件。 然后使用classloader,反射等组合执行生成的class文件。...testLoadClass() throws Exception{ /*动态加载指定类*/ File file=new File("D:/test");//类路径(包文件上一层...下面是demo,使用Main类中的compile方法编译一个Person.java源文件后,再加载字节码进行执行。 1、准备待编译的java源代码。...* @param from 源文件 * @param to 目的文件 * @throws IOException */ public static
Hi~朋友,关注置顶防止错过消息 摘要 文件系统的基本组成 虚拟文件系统 文件系统的基本组成 文件系统的作用是? 文件系统就是将用户的文件保存到磁盘中。 文件系统的基本数据单位是?...文件,在Linux中一切皆文件,普通的文件和目录、块设备、管道和Socket都是交给文件系统管理。 文件的数据结构是?...文件系统将多个扇区组成一个逻辑块(读写的最小单位),Linux中每个逻辑块的大小为4KB,也就是一次性读写8个扇区,提高磁盘的读写效率。 磁盘的存储区域划分?...: 超级块:当文件系统挂载时进入内存 索引节点区:当文件访问时进入内存 虚拟文件系统 为什么需要虚拟文件系统?...网络的文件系统:用来访问其他计算机数据的文件系统,比如NFS、SMB等 文件系统必须挂载到某个目录才可以正常使用,Linux系统在启动时,会把文件系统挂载到根目录下。
在计算机软件的世界里,一切都是虚拟的。一切皆是映射关系的存在。无论 OOP、FP。 在现实世界里,是不是也是这样?现实世界真的存在吗?为何人生如梦? 物质符号网络如何共同发挥整体作用?...这一切要得益于他在实验室中数年的参与观察。 “社会秩序”和“运转中的汽车”是通过它们各自的参与者网络的成功相互作用而产生的。...陈光剑也讲过,一切皆是映射。 在量子力学的世界里,也是没有真正的本源存在的,也是运动变化本身。 我们先假定在这些关系之外没有任何东西(一切皆是映射)。
我们现在所知道的就是在Unix/Linux上,一切皆是文件,设备,socket, pipe..... 它们有统一的名字空间和统一的访问接口,这就实现了以最小代价对系统内类型迥异的各种资源的调用。...当一个“文件”被打开的时候,一个文件描述符也会被创建起来,文件路径用来定位这个文件,文件描述符用来代表从这个“文件”中读写字节流的接口。...有时候文件描述符也可以表示匿名的管道和socket,这时候并没有文件路径, 所以如果更准确一点,我们应该说“一切皆文件描述符” 当然“一切皆文件”也不是完美的,因为不同的设备是有差别性的,“文件”这个抽象层次比较高...,只能提供最基础,最通用的方式来操作文件,这也是抽象所要付出的代价。
Linux文件操作 Linux中,一切皆文件(网络设备除外)。 硬件设备也“是”文件,通过文件来使用设备。 目录(文件夹)也是一种文件。...boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件。...deb:deb是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。...tmp:用来存放一些临时文件 media:Linux系统会自动识别一些设备,例如U盘、光驱等,当识别后,Linux会把识别的设备挂载到这个目录下。...mnt:临时挂载其他文件。 proc:包含了进程的相关信息。 ---- Linux文件的操作方式 文件描述符fd fd是一个大于等于0的整数。
我们知道,在Unix/Linux系统中“一切皆文件”,socket也被认为是一种文件,socket被表示成文件描述符。 但socket的行为并不很像文件。...在给出代码之前,我们得先理解什么是“一切皆文件”。这一切还要从最开始说起。...“一切皆文件”之殇 Unix宣称的 “一切皆文件” 并没有完全做到。...Unix “一切皆文件” 退化成了“一切皆文件描述符”: 一切皆文件: 文件属于Unix/Linux目录树,编址于统一命名空间。 一切皆文件描述符: 文件描述符属于进程打开文件表,进程内可见。...我们便有机会在熟悉的Linux系统实现憧憬中的socket文件机制了。 “一切皆文件”之Linux Linux贯彻一切皆文件的程度要远远超过传统Unix。
领取专属 10元无门槛券
手把手带您无忧上云