计算机相关的编码 ¶
本节介绍一些计算机相关的编码。
字母表编码¶A-Z/a-z对应1-26或者0-25
ASCII编码¶我们一般使用的ascii编码的时候采用的都是可见字符,而且主要是如下字符
0-9,48-57
A-Z,65-90
a-z,97-122
变形¶二进制编码¶将ascii码对应的数字换成二进制表示形式。
只有0和1
不大于8位,一般7位也可以,因为可见字符到127。
其实是另一种ascii编码。
十六进制编码¶将ascii码对应的数字换成十六进制表示形式。
A-Z→0x41~0x5A
a-z→0x61~0x7A
工具¶jpk,asciitonumber,numbertoascii
例子¶题目描述如下
Anyo!e!howouldsacrificepo!icyforexecu!!onspeedthink!securityisacomm!ditytop!urintoasy!tem!
第一直觉应该是我们去补全这些叹号对应的内容,从而得到flag,但是补全后并不行,那么我们可以把源字符串按照!分割,然后字符串长度1对应字母a,长度2对应字母b,以此类推
ori='Anyo!e!howouldsacrificepo!icyforexecu!!onspeedthink!securityisacomm!ditytop!urintoasy!tem!'sp=('!')printrepr(''.join(chr(97+len(s)-1)forsinsp))进而可以得到,这里同时需要假设0个字符为空格。因为这正好使得原文可读。
darklogic题目¶
Jarvis-basic-德军的密码
Base编码¶basexx中的xx表示的是采用多少个字符进行编码,比如说base64就是采用以下64个字符编码,由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。3个字节就有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。
具体介绍参见Base64-维基百科。
编码man
如果要编码的字节数不能被3整除,最后会多出1个或2个字节,那么可以使用下面的方法进行处理:先使用0值在末尾补足,使其能够被3整除,然后再进行base64的编码。在编码后的base64文本后加上一个或两个=号,代表补足的字节数。也就是说,当最后剩余一个八位字节(一个byte)时,最后一个6位的base64字节块有四位是0值,最后附加上两个等号;如果最后剩余两个八位字节(2个byte)时,最后一个6位的base字节块有两位是0值,最后附加一个等号。参考下表:
由于解码时补位的0并不参与运算,可以在该处隐藏信息。
与base64类似,base32使用32个可见字符进行编码,2的5次方为32,所以每5bit为1个分组。5字节为40bit,对应于8个base32分组,即5个字节用8个base32中字符来表示。但如果不足5个字节,则会先对第一个不足5bit的分组用0补足了5bit,对后面剩余分组全部使用“=”填充,直到补满5个字节。由此可知,base32最多只有6个等号出现。例如:
base64结尾可能会有=号,但最多有2个
base32结尾可能会有=号,但最多有6个
根据base的不同,字符集会有所限制
有可能需要自己加等号
=也就是3D
更多内容请参见baserfc
工具¶python库函数
读取隐写信息脚本
例子¶题目描述参见ctf-challenge中misc分类的base64-stego目录中的文件。
使用脚本读取隐写信息。
importbase64defdeStego(stegoFile):b64table="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"withopen(stegoFile,'r')asstegoText:message=""forlineinstegoText:try:text=line[("=")-1:-1]message+="".join([bin(0ifi=='='(i))[2:].zfill(6)foriintext])[2('=')==2else4:6]except:passreturn"".join([chr(int(message[i:i+8],2))foriinrange(0,len(message),8)])print(deStego(""))输出:
flag{BASE64_i5_amaz1ng}题目¶霍夫曼编码¶参见霍夫曼编码。
XXencoding¶XXencode将输入文本以每三个字节为单位进行编码。如果最后剩下的资料少于三个字节,不够的部份用零补齐。这三个字节共有24个Bit,以6bit为单位分为4个组,每个组以十进制来表示所出现的数值只会落在0到63之间。以所对应值的位置字符代替。
1234560123456789012345678901234567890123456789012345678901234567890123|||||||+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
具体信息参见维基百科
特点¶只有数字,大小写字母
+号,-号。
工具¶题目¶URL编码¶参见URL编码-维基百科。
特点¶大量的百分号
工具¶题目¶Unicode编码¶参见Unicode-维基百科。
注意,它有四种表现形式。
例子¶源文本:The
[Hex]:The
[Decimal]:The
\U[Hex]:\U0054\U0068\U0065
\U+[Hex]:\U+0054\U+0068\U+0065
推荐阅读
-
股票的热点怎么去找,电脑同花顺怎么找当下热点板块
热点板块是有资金追逐形成的,热点板块的龙头个股是资金的首选,也是一波上升行情中,涨...
-
可视化世界超级计算机的力量
能源部劳伦斯利弗莫尔国家实验室(LawrenceLivermoreNationalLaboratory)安装的名为Sequoia的IBMBlueGen...
-
同一个网络中的多台电脑,如何快速配置共享打印机。(windows)
本例中:网络工作组:workgroup服务器:JIANG—BOOK打印机共享名:DCP-T500W打印机型号:DCP-T500W操...
-
竞品分析报告:科技数码社区产品对比分析
六、总结1.中关村在线SWOT分析1)优势系统专业化的科技资讯及模拟配机精准定位,科技数码垂...
-
神州数码半年净利2.04亿元 云计算成新增长点
张赐安表示神州数码集团旗下神州云计算已具备多方通信牌照,在北京和贵州两地建设数据中...
-
2025新技能:电脑实时监控怎么实现?学会这4个方法就OK!
添加我为微信好友方法三:路由器管理功能现在很多路由器都具备流量监控和设备管理功能,...
-
显卡天梯排行
4000元游戏主机推荐配置:i3-9100F+B365主板+16GB DDR4内存+SSD+HDD+GTX 1660 SUPER这套配置主要升级了显卡...
-
手机怎么上网买股票手机股票软件用什么帐号登陆
开户乐成24小时后就能够正在app买卖了手机怎样买股票下载什么软件先管理股票账户,能够带上...
-
修改快捷方式图标方法,更改windows电脑系统桌面程序图标教程
在更改图标窗口中,一般的EXE程序里边,有可能会自带的几个图标,可以选择任意其中的一个...
-
专门绘图的电脑配置,绘图专用电脑推荐什么,专门绘图的电脑配置,绘图专用
以上是对绘图电脑配置的一些常见建议,具体配置可以根据绘图需求和预算来选择。CAD和3D绘图...