记录今日学习成果
在linux系统可以用命令 pdftotext file.pdf outfile.txt
从而得到一个txt格式的文件,里面内容是PDF的所有文字。
从头开始学Misc,刷题就遇到了Rot_13 加密,正好练习一下写py脚本,于是就写了个python的Rot13加解密的脚本:
#Rot_13 decrypto a = "yrghfyrneapgs" #要加密或解密的数据 b = "" for i in a: k = ord(i) if 65<= k <= 77 : k += 13 elif 78<= k <= 90 : k -= 13 elif 97<= k <=109 : k += 13 elif 110<= k <=122 : k -= 13 b += chr(k) print(b) #output: #>>>letuslearnctf
1 在 Python 2.2 :
要引用: from __future__ import division
" / “就表示 浮点数除法,返回浮点结果;” // "表示整数除法。
2 Python 3以后 :
" / “就表示 浮点数除法,返回浮点结果;” // "表示整数除法。
通过指令 mount /filename /mnt/
来挂载
然后就可以 ll /mnt/
来查看文件
同时学到了可以用 find "flag" /mnt/ | grep "flag"
来找含有关键词的文件和列出有关键词文件,以及cat 读取。
1,签名
RAR 5.0签名由8个字节组成:
0x52 0x61 0x72 0x21 0x1A 0x07 0x01 0x00
RAR 4.x 签名由7字节组成:
0x52 0x61 0x72 0x21 0x1A 0x07 0x00
2,
第一块为标记块(MARK_HEAD),其数据为:
52 61 72 21 1A 07 00 // 左边是低字节 ,右边是高字节,这是RAR4.x的签名 //签名即标志着该文件是由支持rar4.x版本的软件压缩而成,如果使用支持5.0版本的压缩软件压缩,其签名可能会不同
52 61 为头部校验和(HEAD_CRC),占两个字节,每一块均从HEAD_CRC开始,所有的RAR都以 52 61 开头
72 为 块类型(HEAD_TYPE) 占一个字节,所有文件都如此
21 1A 为 块标记(HEAD_FLAGS) 占两个字节
07 00表示块大小 ,即 52 61 72 21 1A 07 00 (标记块)共占7个字节
3,
头类型是0x73
表示压缩文件头块
位标记为0x0000
没有位被置为1 ,如果块头被加密,则位标记应该为:0x8000
文件头大小为0x0D00
,由上图可以看出这个压缩文件头块占13个字节
4,RAR文件格式及其字段含义:
标记块:HEAD_TYPE=0x72
压缩文件头:HEAD_TYPE=0x73
文件头:HEAD_TYPE=0x74
旧风格的注释头:HEAD_TYPE=0x75
旧风格的用户身份信息:HEAD_TYPE=0x76
旧风格的子块:HEAD_TYPE=0x77
旧风格的恢复记录:HEAD_TYPE=0X78
旧风格的用户身份信息:HEAD_TYPE=0X79
子块:HEAD_TYPE=0x7A
最后的结束块:HEAD_TYPE=0x7B
参考https://www.rarlab.com/technote.htm#filehead
正好最近开始恶补Misc,所以有这笔记,学习rar也是因为攻防世界SimpleRAR的这道题
摘录链接:https://blog.csdn.net/Claming_D/article/details/105899397