首页 > 其他分享 >文件取证之编码转换

文件取证之编码转换

时间:2023-04-21 21:12:15浏览次数:34  
标签:取证 编码 转换 字节 字符 二进制 unicode UTF

进制转换

  二进制\b:0,1

  八进制\o:0-7

  十进制\d:0-9

  十六进制\x:0-F

python进制转换

int("FF", 16)   ##十六进制转为十进制
int("77", 8)   ##八进制转为十进制
int("11", 2)   ##二进制转为十进制

hex(10)    ##十进制转为十六进制
oct(10)    ##十进制转为八进制
bin(10)    ##十进制转为二进制

十六进制转为二进制:先把十六进制转为十进制,在把十进制转为二进制。
以此类推。

BUUCTF:另外一个世界

得到一个monster.jpg文件

十六进制编辑器HxD打开发现尾部存在一串二进制数据

   

把二进制数据转为字符串

a = "01101011011011110110010101101011011010100011001101110011"
ls = [chr(int(a[i:i+8], 2)) for i in range(0, len(a), 8)]   ##把二进制转为十进制,八位一个字节;再根据ASCII码转为字符
"".join(ls)

 

攻防世界:掀桌子

菜狗截获了一份报文如下c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2,生气地掀翻了桌子(╯°□°)╯︵ ┻━┻

把十六进制数据转为字符串

a = 'c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2'
ls = [chr(int(a[i:i+2], 16)-128) for i in range(0, len(a), 2)]
"".join(ls)

 

unicode编码

unicode字符集是全球文字统一编码,为世界上各种文字的每一个字符指定唯一数字。
unicode字符集映射的数字范围:U+0000 到 U+10FFFF

UTF-8 UTF-16 UTF-32是Unicode的具体实现(怎么存储在计算机)。

UTF-8,变长的编码设计。一个字符最多4个字节,最少1个字节。大部分中文字符占3个字节
  一个字节表示的字符的取值(二进制) 0xxxxxxx (0-127,完全兼容ASCII)
  两个字节表示的字符的取值(二进制) 110xxxxx 10xxxxxx
  三个字节表示的字符的取值(二进制) 1110xxxx 10xxxxxx 10xxxxxx
  四个字节表示的字符的取值(二进制) 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

比如一个表情的unicode编码为U+1F62D,使用四个字节表示,因此将1F62D所表示的二进制数11111011000101101从低位到高位依次把二进制数填入‘x’中,剩余的‘x’为0


UTF-32,固定长度的编码,每个字符长度为4个字节
  字符的取值范围为 00000000 - FFFFFFFF

UTF-16
  unicode字符集中,000000-00FFFF表示的字符,UTF-16编码长度为2字节
  unicode字符集中,010000-10FFFF表示的字符,UTF-16编码长度为4字节

 

例如:“0066006c00610067007b964452a096905199007d"

写python脚本,四个字节为一个unicode编码单位

a = '0066006c00610067007b964452a096905199007d'
s = ''
for i in range(0, len(a), 4):
    s += ('\\u' + a[i:i+4])
print(s)

执行,得到unicode字符集:\u0066\u006c\u0061\u0067\u007b\u9644\u52a0\u9690\u5199\u007d

使用CaptfEncoder进行unicode解码

  

 

brainfuck
一种简单的、可以用最小的编译器来实现的、符合图灵完全思想的编程语言。
由八种运算符构成,分别是<>+-.,[]

  

 

jsfuck

使用六个字符来混淆JavaScript代码的编码,六个字符分别是 []()!+

 

  

Escape编码

数字、字母及一些标点符号不进行编码,特殊字符的unicode编码采用UTF-16BE形式存储,然后在前面加上“%u”

  

shellcode编码

shellcode是利用软件漏洞的代码片段。汇编指令对应的十六进制的机器码即为shellcode。shellcode的名称来源于它可以获得系统的shell。

shellcode编码在字符ASCII的16进制前添加\x

  

 

标签:取证,编码,转换,字节,字符,二进制,unicode,UTF
From: https://www.cnblogs.com/jimmy-hwang/p/17340451.html

相关文章

  • 数值转换
     一、问题描述   给定一个数M进制的数X,实现对x向任意的一个非M进制的数的转换。二、设计思路  给定一个十进制数,将其进行向其他进制的转换,常见的有二进制,八进制,十六进制,三、流程图 开始 输入任意一个数 进行向二进制,八进制,十六进制......
  • 进制转换
     1.问题描述 给定一个M进制的数x,实现对x向任意的一个非M进制的数的转换。思路: 2.定义intn(输入的数字的进制),stringsl(输入的数字),intm(转换后数字的进制),charans[100](存放字符) 3.用map<char,int>num1;map<int,char>num2;存放对应关系; 4.num=num*n+num1[sl[i]];//转......
  • Qt之QMake编译转换为CMake编译
    一、前言-QMake和CMake都是用来控制编译过程的构建系统,最终生成可在选择的编译器环境中使用的本机makefile和工作区。简单来说,QMake和CMake就像类似于作曲,makefile类似于乐谱,最终由编译器完成乐章的演奏。那么QMake和CMake有什么区别呢?-对于纯Qt项目,QMake更加好用。QMake与QtCr......
  • 文件取证
    文件取证是电子数据取证工作的根本,因为几乎所有信息都以文件形式存储。 文件签名文件签名是文件格式中一段独特的字节,通过文件签名判断文件是什么格式。文本文件.txt没有固定的文件签名.doc/.xls文件头:D0CF11E0.docx文件头:504B0304.pdf文件头:255044462D312E图像......
  • SIM卡ICCID编码规则
    SIM卡ICCID编码规则来源  https://www.zhihu.com/question/51968777 2018.09更新中国大陆PLMN数据,src:Mobilecountrycode移动白卡:00101电信白卡:46099 2018.03.28更新:根据百度百科的更新,中国三家运营商的编码如下中国移动的为:898600;898602,中国联通的为:898601、8......
  • hive 行列转换案例
       0 stu表数据: stu:idnamehello,youzm2008hello,mezm2015  1实现单词计数:    (列转行)  --->split切分+explode(炸开) 1.0数据拆分成数组selectsplit(id,',')fromstu;得到数组[hello,you][hello,me] 1.1继续将数组拆分(hive......
  • 在线CTF工具箱--端口扫描--杂项--密码学--编码和解码
    这是为CTF发烧者准备的的工具套件,助你过关斩将、攻克难关。目前基础功能和一部分高级功能已经完成,可以在GitHub上查看工具列表和开发进度。 CTFer:https://ctfever.uniiem.com/ 项目地址:https://github.com/UniiemStudio/CTFever ......
  • 将MySQL当中的数据表在PHP当中转换成数组并打印,为什么没有显示到网页上面呢?
    如果你已经成功将MySQL中的数据表转换成了PHP数组,并且没有在网页上看到输出,那么可能是因为你没有将数组中的数据正确地渲染到HTML代码中。以下是一个简单的示例代码,演示如何将PHP数组转换为HTML表格并输出到网页上:phpCopycode<?php//连接到MySQL数据库$servername="local......
  • 变换编码的设计与实现
    访问【WRITE-BUG数字空间】_[内附完整源码和文档]一、实验目的采用dct变换,编制对图象进行变换的程序,图象采用8x8分快。对变换系数做Z型扫描,分别采用前2、3、5、8个和全部系数恢复原图象,观察结果,给出psnr值。对变换后系数做量化,量化表采用JPEG量化表,量化过程如下:,j)=C(i,j)/Q(i,j),其......
  • 时间转换为人类可读
    <dependency> <groupId>com.github.xkzhangsan</groupId> <artifactId>xk-time</artifactId> <version>3.2.4</version></dependency>/***将时长转换为人类可读时间(精确到分钟)*例如1440===>1天*例如70==......