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

解析二进制文件的工具方法

目录 1 一个字节范围 2 >> 的含义 3 十进制的负数变成二进制 4 0x1 代表什么意思 5字节组转list 6 list转字节组 7 截取bytes 1 一个字节范围 1个字节,取值范围是-128...右移动之后,高位会自动补0 运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1 byte num = -128; 的二进制为 10000000 3 十进制的负数变成二进制...负数转换为二进制,就是将其相反数(正数)的补码的每一位变反(1变0,0变1)最后将变完了的数值加1,就完成了负数的补码运算。...这样就变成了二进制。...11 >>2(11为int型) 1)、11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011 2)、把低位的最后两个数字移出,因为该数字是正数,所以在高位补零

1.3K40
您找到你想要的搜索结果了吗?
是的
没有找到

Linux文件系统解析

在学习 Linux 的时候,我们通常会看到这样一句话,Linux中一切皆文件,也就是说,不管是普通的文件和目录,还是包括块设备、管道、socket等,也都是交给文件系统去管理的。...如日志文件,临时文件,电子邮箱 说到这,就有必要再说一下 Linux下的路径问题了,在Linux中,Linux的路径分为绝对路径和相对路径 绝对路径:指的是一个文件或者目录从根目录开始的完整的路径 相对路径...:是指一个文件或者目录相对于向前工作目录的路径 任何不以/和~开始的路径均为相对路径 说完了路径,接下来要叙述的就是 Linux文件类型的,Linux 内一切皆文件,那么对于 Linux 来说,其具有哪些文件类型呢...操作系统角度 文件系统的层次 在上述中,阐述挂载的时候说到一个概念,就是说 Linux在启动的时候,首先挂载的是根文件系统,然后再自动或者手动挂载其他文件系统,这也是Linux中支持不同文件系统的原因,...说到这里,就有必要提到Linux的虚拟文件系统了,再叙述它的概念之前,我们先以宏观的角度来看一下 Linux下的文件系统的一个结构: ?

6.8K10

Linux删除文件过程解析

概述 ---- 当我们执行rm命令删除一个文件的时候,在操作系统底层究竟会发生些什么事情呢,带着这个疑问,我们在Linux-3.10.104内核下对ext4文件系统下的rm操作进行分析。...源码分析 ---- rm命令是GNU coreutils里的一个命令,在对一个文件进行删除时,它实际上调用了Linux的unlink系统调用,unlink系统调用在内核中的定义如下: SYSCALL_DEFINE1...the inode here */ ... } 为了便于理解,这里简要介绍一下索引节点inode、目录项dentry以及目录项缓存dcache这几个重要概念,更具体的内容可参考Linux...内核分析的相关书籍,如Robert Love的《Linux内核设计与实现》一书。...参考文献 [1] https://www.ibm.com/developerworks/cn/linux/l-cn-usagecounter/ [2] https://digital-forensics.sans.org

14.1K22

Linux Procfs (一) proc* 文件实例解析

Procfs具体文件 2.1 /proc/* 具体文件解析 本文以笔者的云主机中(centos7,内核版本3.10.0-1160.15.2.el7.x86_64 )的/proc目录为例进行说明,共分41...个小结进行讲解,包含共42个文件解析。.../proc/net中的文件会单独在后续的文章中进行解析。...在不同操作系统上,如果对同一段代码进行编译链接(可以用c/go的代码测试一下),得到的二进制文件一般是不一样的,这些二进制文件一般也是不能跨平台运行的,比如我在windows编译链接出一个二进制文件,在...因为使用编译型语言将代码编译成二进制文件的时候会丢掉变量名,全部用地址进行变量的访问,所以对于代码调试者,很难知道某个地址是什么变量,于是linux开发者编写了两段代码:/scripts/kallsyms.c

5.4K00

Alpine linux容器中运行go的二进制文件

环境 docker version:1.10.3 alpine linux version:3.8 问题 将golang编译的二进制文件 opena 拷贝到容器的 /usr1 下面,执行显示: /usr1.../opena help sh: /usr1/opena: not found 查看下依赖库: ldd /usr1/opena /lib64/ld-linux-x86-64.so.2 (0x7fdd15cd0000...) libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7fdd15cd0000) libc.so.6 => /lib64/ld-linux-x86...0x7fdd15cd0000) 但是alpine没有对应的依赖库 解决方案 看到一个贴子,某高人给出方案: mkdir /lib64 ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86...alpine这个5M的镜像也能满足go二进制文件的运行环境!~ 题外话 对于用alpine作为go的编译环境同样存在上述问题,同样用相同方法可以解决。

5K50

文件管理大师:深入解析Linux文件与目录操控

建议文件命名规则: 由于linux严格区分大小写,所以尽量都用小写字母如果必须对文件名进行分潮,建议使用"_",例如: 1....Sr_linux.txt 2、文件名的长度 目录名或文件名的长度不能超过 255 个字符 尽量不要太长,另外文件名称一定要见名知意,可以使用英文单词 3、Linux文件名大小写 Linux目录名或文件名是区分大小写的...如srlua、Srlua、SRLUA,是互不相同的 不要使用字符大小写来区分不同的文件或目录, 建议文件名一律使用小写字母,做到见名知意最好 4、Linux文件扩展名 Linux文件的扩展名对 Linux...操作系统没有特殊的含义,Linux 系统并不以文件的扩展名开分区文件类型。...比如你的同桌的linux) 这个*,表示通配符,匹配任意的字符,linux一切皆文件,a b c d 中英文...

11610

如何使用DDexec在Linux上隐蔽运行二进制文件

关于DDexec DDexec是一种能够在Linux上使用无文件技术和隐秘技术运行二进制文件的方法,它可以使用dd工具来将Shell替换为其他进程。...众所周知,在Linux上运行一个程序,则这个程序必须以一个文件的形式存在,而且必须能够通过文件系统层次结构并以某种方式访问到它,这也是execve()的工作机制。...这种机制不仅使得我们可以轻松控制Linux系统中运行的内容,而且还可以轻松检测到安全威胁或攻击者植入的恶意程序,甚至还可以阻止攻击者尝试执行他们的任何工具,比如说不允许未经授权的用户将可执行文件放在任何地方...下面给出的是一个使用样例: base64 -w0 /bin/ls | bash ddexec.sh /bin/ls -lA 项目中还提供了一个ddsc.sh脚本,该脚本允许我们直接运行二进制代码,下面给出的是一段...res/2018/pure-in-memory-linux.md https://github.com/carlospolop https://book.hacktricks.xyz/ https://

3.2K20

读写二进制文件

知道了如何读写文本文件要读写二进制文件也就很简单了,下面的代码实现了复制图片文件的功能。...jpg', 'wb') as fs2: fs2.write(data) except FileNotFoundError as e: print('指定的文件无法打开...except IOError as e: print('读写文件时出现错误.') print('程序执行结束.')...if __name__ == '__main__': main() 读写JSON文件 通过上面的讲解,我们已经知道如何将文本数据和二进制数据保存到文件中,那么这里还有一个问题,如果希望把一个列表或者一个字典中的数据保存到文件中又该怎么做呢...下面的例子演示了如何使用requests模块(封装得足够好的第三方网络访问模块)访问网络API获取国内新闻,如何通过json模块解析JSON数据并显示新闻标题,这个例子使用了天行数据提供的国内新闻数据接口

2.7K10

Linux下关于用户账户的几个文件解析

Linux是一个多用户系统,但是对于一个多用户共存的系统中,当然不能够出现用户相互越权等一系列的安全问题,所以如何正确的管理账户成为了Linux系统中至关重要的一环。...在Linux下,与用户账户有着紧密联系的文件又如下的几个: /etc/passwd #管理用户的UID、GID等重要用户信息 /etc/shadow #管理用户密码的等重要信息 /etc/group.../etc/passwd 虽说这个文件文件名写着passwd,但是里面并没有存放密码(早起存放,后来为了安全将密码分离出来) 打开该文件,里面的内容大致如下: root:x:0:0:root:/root...用户标识,在Linux中,该UID是整数。且多个账号可以对应一个UID,因为Linux系统内核只认UID的。不同的区间有不同的意义: 0(系统管理员)。...譬如,你当然不希望一个在你Linux上的邮件账户来通过shell操作你的电脑。

21710

修改linux默认文件创建权限-umask命令解析

umask值用于设置用户在创建文件时的默认权限,当我们在系统中创建目录或文件时,目录或文件所具有的默认权限就是由umask值决定的。   ...默认情况下,对于目录,用户所能拥有的最大权限是777;对于文件,用户所能拥有的最大权限是目录的最大权限去掉执行权限,即666。...,默认的权限则是用最大权限666去掉相应位置的umask值,即文件的默认权限是644。   ...如果要永久修改umask值,需要修改/etc/profile文件或是修改/etc/bashrc文件,例如要将默认umask值设置为027,那么可以在文件中增加一行“umask 027”。   ...因而,如果是修改/etc/profile文件,将只对新创建的用户生效;而如果是修改/etc/bashrc文件,则对所有用户都生效。

3.8K30

PySpark分析二进制文件

客户需求 客户希望通过spark来分析二进制文件中0和1的数量以及占比。如果要分析的是目录,则针对目录下的每个文件单独进行分析。...分析后的结果保存与被分析文件同名的日志文件中,内容包括0和1字符的数量与占比。 要求:如果值换算为二进制不足八位,则需要在左侧填充0。 可以在linux下查看二进制文件的内容。...命令: xxd –b –c 1 filename 命令参数-c 1是显示1列1个字符,-b是显示二进制。...所以这里要带名参数: sc = SparkContext(conf = conf) sys.argv的坑 我需要在使用spark-submit命令执行python脚本文件时,传入我需要分析的文件路径。...argv是一个list类型,当我们通过sys.argv获取传递进来的参数值时,一定要明白它会默认将spark-submit后要执行的python脚本文件路径作为第一个参数,而之后的参数则放在第二个。

1.7K40
领券