安全矩阵

 找回密码
 立即注册
搜索
查看: 1272|回复: 0

从内核角度认识反调试基本原理

[复制链接]

77

主题

77

帖子

257

积分

中级会员

Rank: 3Rank: 3

积分
257
发表于 2022-8-30 13:51:59 | 显示全部楼层 |阅读模式
常见CTF编码及加解密
[size=1em]计算机中的数据都是按字节存储。一个字节(Byte)由8个二进制位组成(bit)。(组成范围是0~255(28)) 一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。
ASCII编码
简述 :
ASCII 码是对英语字符与二进制位之间的关系,做了统一规定。
基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号等,
如:空格SPACE 是32(二进制:00100000);
数字0 是48(二进制:00110000);
大写字母A 是65(二进制:01000001)。
另外还有 32 个控制字符(不能打印出来)。
这128个符号,只占用了一个字节的后面7位,最前面的一位统一规定为0。
特征: 只含有数字
  • • 0-9, 49-57
  • • A-Z, 65-90
  • • a-z, 97-122

举例:
明文:hello,world.
十六进制:0x680x650x6c0x6c0x6f0xff0c0x770x6f0x720x6c0x640x2e
十进制:1041011081081112551211911111410810046
二进制:011010000110010101101100011011000110111100101100011101110110111101110010011011000110010000101110
ASCII解码
https://www.107000.com/T-Ascii/

http://www.ab126.com/goju/1711.html

http://www.hiencode.com/jinzhi.html

https://baiy.github.io/Ctool/tool.html#/tool/ascii

https://icyberchef.com/#recipe=Text_Encoding_Brute_Force('Encode')

https://www.qqxiuzi.cn/bianma/ascii.htm
ASCII码对照表
  • • 输入字符时,连续输入即可。超出ASCII字集的字符以Unicode或UTF-16BE编码显示。
  • • 输入ASCII码时,以逗号分隔每个编码。十六进制和二进制编码支持连续输入,以兼容ASCII的UTF-16BE解码:十六进制 0000-007F;二进制 0000000000000000-0000000001111111。

ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代美式英语,并等同于国际标准ISO/IEC 646。ASCII首次发布于1963年,后经数次修订,1986年定型最终版本使用至今。它是计算机中使用的第一个标准字符集编码。
ASCII编码范围0x00-0x7F,即十进制的0-127,定义了128个单字节字符,其中包含95个可打印字符(数字、字母、符号),以及33个控制字符(下表中文描述的字符)。国标码GB18030、国际码Unicode均兼容ASCII编码。
标准ASCII编码表
ASCII码字符


16进制10进制2进制

0x00000000000NUL 空
0x01100000001SOH 标题开始
0x02200000010STX 正文开始
0x03300000011ETX 正文结束
0x04400000100EOT 传输结束
0x05500000101ENQ 询问字符
0x06600000110ACK 承认
0x07700000111BEL 报警
0x08800001000BS 退一格
0x09900001001HT 横向制表
0x0A1000001010LF 换行
0x0B1100001011VT 垂直制表
0x0C1200001100FF 走纸控制
0x0D1300001101CR 回车
0x0E1400001110SO 移位输出
0x0F1500001111SI 移位输入
0x101600010000DLE 数据链路转义
0x111700010001DC1 设备控制1
0x121800010010DC2 设备控制2
0x131900010011DC3 设备控制3
0x142000010100DC4 设备控制4
0x152100010101NAK 否定
0x162200010110SYN 空转同步
0x172300010111ETB 信息组传送结束
0x182400011000CAN 作废
0x192500011001EM 纸尽
0x1A2600011010SUB 换置
0x1B2700011011ESC 换码
0x1C2800011100FS 文字分隔符
0x1D2900011101GS 组分隔符
0x1E3000011110RS 记录分隔符
0x1F3100011111US 单元分隔符
0x203200100000(space)
0x213300100001!
0x223400100010”
0x233500100011#
0x243600100100$
0x253700100101%
0x263800100110&
0x273900100111'
0x284000101000(
0x294100101001)
0x2A4200101010*
0x2B4300101011+
0x2C4400101100,
0x2D4500101101-
0x2E4600101110.
0x2F4700101111/
0x3048001100000
0x3149001100011
0x3250001100102
0x3351001100113
0x3452001101004
0x3553001101015
3654001101106
0x3755001101117
0x3856001110008
0x3957001110019
0x3A5800111010:
0x3B5900111011;
0x3C6000111100<
0x3D6100111101=
0x3E6200111110>
0x3F6300111111?
0x406401000000@
0x416501000001A
0x426601000010B
0x436701000011C
0x446801000100D
0x456901000101E
0x467001000110F
0x477101000111G
0x487201001000H
0x497301001001I
0x4A7401001010J
0x4B7501001011K
0x4C7601001100L
0x4D7701001101M
0x4E7801001110N
0x4F7901001111O
0x508001010000P
0x518101010001Q
0x528201010010R
0x538301010011S
0x548401010100T
0x558501010101U
0x568601010110V
0x578701010111W
0x588801011000X
0x598901011001Y
0x5A9001011010Z
0x5B9101011011[
0x5C9201011100\
0x5D9301011101]
0x5E9401011110^
0x5F9501011111_
0x609601100000`
0x619701100001a
0x629801100010b
0x639901100011c
0x6410001100100d
0x6510101100101e
0x6610201100110f
0x6710301100111g
0x6810401101000h
0x6910501101001i
0x6A10601101010j
0x6B10701101011k
0x6C10801101100l
0x6D10901101101m
0x6E11001101110n
0x6F11101101111o
0x7011201110000p
0x7111301110001q
0x7211401110010r
0x7311501110011s
0x7411601110100t
0x7511701110101u
0x7611801110110v
0x7711901110111w
0x7812001111000x
0x7912101111001y
0x7A12201111010z
0x7B12301111011{
0x7C12401111100|
0x7D12501111101}
0x7E12601111110~
0x7F12701111111DEL 删除
Base家族编码
[size=1em]Base16 / Base32 / Base64 / Base58 / Base85 / Base 100
简述:
Base16编码
**Base16编码是将二进制文件转换成由16个字符组成的文本 **
它的特点是没有等号并且数字要多于字母
Base16编码的方式:
1.将数据(根据ASCII编码,UTF-8编码等)转成对应的二进制数,不足8比特位高位补0。然后将所有的二进制全部串起来,4个二进制位为一组,转化成对应十进制数。
2.根据十进制数值找到Base16编码表里面对应的字符。Base16是4个比特位表示一个字符,所以原始是1个字节(8个比特位)刚好可以分成两组,也就是说原先如果使用ASCII编码后的一个字符,现在转化成两个字符。数据量是原先的2倍。
值编码值编码
0088
1199
2210A
3311B
4412C
5513D
6614E
7715F
Base16编码是一个标准的十六进制字符串(注意是字符串而不是数值),更易被人类和计算机使用,因为它并不包含任何控制字符,以及Base64和Base32中的“=”符号。
Base32编码
base32的编码表是由(A-Z、2-7)32个可见字符构成,“=”符号用作后缀填充。
他的特点是明文超过十个后面就会有很多等号
Base32使用了ASCII编码中可打印的32个字符(大写字母AZ和数字27)对任意字节数据进行编码.Base32将串起来的二进制数据按照5个二进制位分为一组,由于传输数据的单位是字节(即8个二进制位).所以分割之前的二进制位数是40的倍数(40是5和8的最小公倍数).如果不足40位,则在编码后数据补充"=",一个"="相当于一个组(5个二进制位),编码后的数据是原先的8/5倍. Base32编码表
值符号值符号值符号值符号
0A8I16Q24Y
1B9J17R25Z
2C10K18S262
3D11L19T273
4E12M20U284
5F13N21V295
6G14O22W306
7H15P23X317
填充=





Base32将任意字符串按照字节进行切分,并将每个字节对应的二进制值(不足8比特高位补0)串联起来,按照5比特一组进行切分,并将每组二进制值转换成十进制来对应32个可打印字符中的一个。
由于数据的二进制传输是按照8比特一组进行(即一个字节),因此Base32按5比特切分的二进制数据必须是40比特的倍数(5和8的最小公倍数)。例如输入单字节字符“%”,它对应的二进制值是“100101”,前面补两个0变成“00100101”(二进制值不足8比特的都要在高位加0直到8比特),从左侧开始按照5比特切分成两组:“00100”和“101”,后一组不足5比特,则在末尾填充0直到5比特,变成“00100”和“10100”,这两组二进制数分别转换成十进制数,通过上述表格即可找到其对应的可打印字符“E”和“U”,但是这里只用到两组共10比特,还差30比特达到40比特,按照5比特一组还需6组,则在末尾填充6个“=”。填充“=”符号的作用是方便一些程序的标准化运行,大多数情况下不添加也无关紧要,而且,在URL中使用时必须去掉“=”符号。
与Base64相比,Base32具有许多优点:
  • • 适合不区分大小写的文件系统,更利于人类口语交流或记忆。
  • • 结果可以用作文件名,因为它不包含路径分隔符 “/”等符号。
  • • 排除了视觉上容易混淆的字符,因此可以准确的人工录入。(例如,RFC4648符号集忽略了数字“1”、“8”和“0”,因为它们可能与字母“I”,“B”和“O”混淆)。
  • • 排除填充符号“=”的结果可以包含在URL中,而不编码任何字符。

Base32也比Base16有优势:
  • • Base32比Base16占用的空间更小。(1000比特数据Base32需要200个字符,而Base16则为250个字符)

Base32的缺点:
  • • Base32比Base64多占用大约20%的空间。因为Base32使用8个ASCII字符去编码原数据中的5个字节数据,而Base64是使用4个ASCII字符去编码原数据中的3个字节数据。

Base64编码
base64的编码表是由(A-Z、a-z、0-9、+、/)64个可见字符构成,“=”符号用作后缀填充。
一般情况下密文尾部都会有两个等号,明文很少的时候则没有
Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式。如果剩下的字符不足3个字节,则用0填充,输出字符使用‘=’,因此编码后输出的文本末尾可能会出现1或2个‘=’。
为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。
Base64编码表
码值字符码值字符码值字符码值字符码值字符码值字符码值字符码值字符
0A8I16Q24Y32g40o48w564
1B9J17R25Z33h41p49x575
2C10K18S26a34i42q50y586
3D11L19T27b35j43r51z597
4E12M20U28c36k44s520608
5F13N21V29d37l45t531619
6G14O22W30e38m46u54262+
7H15P23X31f39n47v55363/
Base64使用注意问题
一、Base64和URL传参问题
标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。
为解决此问题,可采用一种用于URL的改进Base64编码,它在末尾填充’='号,并将标准Base64中的“+”和“/”分别改成了“-”和“_”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。
二、Base64和URL传参问题改善
另有一种用于正则表达式的改进Base64变种,它将“+”和“/”改成了“!”和“-”,因为“+”,“*”以及前面在IRCu中用到的“[”和“]”在正则表达式中都可能具有特殊含义。
此外还有一些变种,它们将“+/”改为“*-”或“.*”(用作编程语言中的标识符名称)或“.-”(用于XML中的Nmtoken)甚至“_:”(用于XML中的Name)。
三、Base64转换后比原有的字符串长1/3
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(38 = 46 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。
Base58编码
base58的编码表相比base64少了数字0,大写字母I,O,小写字母 l (这个是L),以及符号‘+’和‘/’
它最大的特点是没有等号
Base58是用于比特币(Bitcoin)中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址。
相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+“和”/"符号。
比特币的Base58字母表:
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
简单的说:Base58一种编码方式,跟十进制,十六进制一样,不过更短更省空间。
Base58的原理是什么?
二进制:0和1
十进制:1到10
十六进制:十进制的基础上加上了A-F 六个字母
Base58可以理解为一种58进制。
Base58包含了阿拉伯数字、小写英文字母,大写英文字母。
但是去掉了一些容易混淆的数字和字母:0(数字0)、O(o的大写字母)、l( L的小写字母)、I(i的大写字母)
Base91编码
base91的密文由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}~”)组成
Base100编码
**Base100编码/解码工具(又名:Emoji表情符号编码/解码),可将文本内容编码为Emoji表情符号;同时也可以将编码后的Emoji表情符号内容解码为文本。**
特点就是一堆Emoji表情
Base100编码/解码工具(又名:Emoji表情符号编码/解码),可将文本内容编码为Emoji表情符号;同时也可以将编码后的Emoji表情符号内容解码为文本。
举例:
[size=1em]明文:hello,world.123456
base16: 68656C6C6F2C776F726C642E313233343635
特征:大写字母(A-Z)和数字(0-9),不用‘=’补齐。base32: NBSWY3DPFR3W64TMMQXDCMRTGQ3DK===
特征:大写字母(A-Z)和数字(2-7),不满5的倍数,用‘=’补齐。base64: aGVsbG8sd29ybGQuMTIzNDY1
特征:大小写字母(A-Z,a-z)和数字(0-9)以及特殊字符‘+’,‘/’,不满3的倍数,用‘=’补齐。base58: 2smDFYXWKE8vc8XA8dadEYcSqcQb
特征:相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+"和"/"符号,最主要的是后面不会出现'='。base85: BOu!rDst>tGAhM<A1fSl1GgsI
特征:特点是奇怪的字符比较多,但是很难出现等号明文:hello,world.123456
base91: TPwJh>go2Tv!_,aRA2IbLmA
特征:由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}~”)组成
不支持中文。base100: ????????????????????????????????????????????????????????????????????????????????
特征:就是一堆Emoji表情
在线编码
base64

https://www.qqxiuzi.cn/bianma/base64.htm

https://icyberchef.com/#recipe=To_Base64('A-Za-z0-9%2B/%3D')

https://baiy.github.io/Ctool/tool.html#/tool/base64

http://www.hiencode.com/base64.html

base32

https://www.qqxiuzi.cn/bianma/base.php

base16

https://www.qqxiuzi.cn/bianma/base.php?type=16

base58

http://www.atoolbox.net/Tool.php?Id=932

http://www.hiencode.com/base58w.html

base85

http://www.atoolbox.net/Tool.php?Id=934

http://www.hiencode.com/base85.html

base91

http://www.hiencode.com/base91.html

base100

http://www.atoolbox.net/Tool.php?Id=936

Base64:

tool.oschina.net
www.sojson.com
base64.us

Base58:www.metools.info
MD5、SHA1、HMAC、NTLM等类似加密型1、MD5
简述:
一般MD5值是32位由数字“0-9”和字母“a-f”所组成的字符串,字母大小写统一;如果出现这个范围以外的字符说明这可能是个错误的md5值,就没必要再拿去解密了。
16位值是取的是8~24位。
特征:
有固定长度,一般是32位或者16位
由数字“0-9”和字母“a-f”组成
md5的三个特征:
  • 1. 确定性:一个原始数据的MD5值是唯一的,同一个原始数据不可能会计算出多个不同的MD5值。
  • 2. 碰撞性:原始数据与其MD5值并不是一一对应的,有可能多个原始数据计算出来的MD5值是一样的,这就是碰撞。
  • 3. 不可逆:也就是说如果告诉你一个MD5值,你是无法通过它还原出它的原始数据的,这不是你的技术不够牛,这是由它的算法所决定的。因为根据第4点,一个给定的MD5值是可能对应多个原始数据的,并且理论上讲是可以对应无限多个原始数据,所有无法确定到底是由哪个原始数据产生的。

举例:
明文:hello,world.123456
md5(hello,world.123456,32) = 5189503aae1b1c0a6fbf7ea9e3128ab0
md5(hello,world.123456,16) = ae1b1c0a6fbf7ea9
在线加解密
https://www.cmd5.com/

https://www.somd5.com/

http://www.hiencode.com/hash.html

www.cmd5.com(带批量解密工具)
www.somd5.com
cmd5.la
pmd5.com
www.ttmd5.com(带批量解密工具)2、SHA1
简述
SHA1是一种密码散列函数,SHA1可以生成一个被称为消息摘要的160位,20字节的散列值,散列值通常的呈现形式为40位十六进制数。这种加密和MD5类似。
特征:
有固定长度,为40位的字符串
举例:
明文:hello,world.123456
sha1(hello,world.123456)= 0179303b8f08fbc3d16cd23a4be5828790e12375
在线加解密
https://tool.oschina.net/encrypt?type=2

http://www.hiencode.com/hash.html

https://baiy.github.io/Ctool/tool.html#/tool/hash3、HMAC
简述:
HMAC (Hash-based Message Authentication Code) 常用于接口签名验证,这种算法就是在前两种加密的基础上引入了秘钥,而秘钥又只有传输双方才知道,所以基本上是破解不了的 。
特征:
和MD5类似,但是有秘钥。
举例:
在线加解密:
http://encode.chahuo.com/4、NTLM
简述:
这种加密是Windows的哈希密码,是 Windows NT 早期版本的标准安全协议。与它相同的还有Domain Cached Credentials(域哈希)。
在线解密:
https://www.jisuan.mobi/p11BbzHum6b3uyJW.html5、类似加密穷举#算法长度
1md532/16
2sha140
3sha25664
4sha512128
5adler328
6crc328
7crc32b8
8fnv1328
9fnv16416
10fnv1a328
11fnv1a6416
12gost64
13gost-crypto64
14haval128,332
15haval128,432
16haval128,532
17haval160,340
18haval160,440
19haval160,540
20haval192,348
21haval192,448
22haval192,548
23haval224,356
24haval224,456
25haval224,556
26haval256,364
27haval256,464
28haval256,564
29joaat8
30md232
31md432
32ripemd12832
33ripemd16040
34ripemd25664
35ripemd32080
36sha22456
37sha3-22456
38sha3-25664
39sha3-38496
40sha3-512128
41sha38496
42sha512/22456
43sha512/25664
44snefru64
45snefru25664
46tiger128,332
47tiger128,432
48tiger160,340
49tiger160,440
50tiger192,348
51tiger192,448
52whirlpool128
53mysql老MYSQL数据库用的,16位,且第1位和第7位必须为0-8
54mysql540
55NTLM32
56Domain Cached Credentials32
AES、DES、RC4、Rabbit、3DES型加密
简述:
以上都是非对称性加密算法,就是引入了密钥,密文特征与Base64类似,
在线解密:
https://www.sojson.com/encrypt_aes.htmlUnicode编码
简述:
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它用两个字节来编码一个字符,字符编码一般用十六进制来表示.
可以说Unicode与HTML实体编码是一个东西
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
举例:
Unicode有以下四种编码方式:
[size=1em]明文:hello,world.
&#x [hex]:&#x0068;&#x0065;&#x006C;&#x006C;&#x006F;&#xFF0C;&#x0077;&#x006F;&#x0072;&#x006C;&#x0064;&#x002E;

&# [hex]:&#00104;&#00101;&#00108;&#00108;&#00111;&#65292;&#00119;&#00111;&#00114;&#00108;&#00100;&#00046;

\u [hex]:\U0068\U0065\U006C\U006C\U006F\U002C\U0077\U006F\U0072\U006C\U0064\U002E

\u+ [hex]:\U+0068\U+0065\U+006C\U+006C\U+006F\U+FF0C\U+0077\U+006F\U+0072\U+006C\U+0064\U+002E
在线编码:
http://www.mxcz.net/tools/Unicode.aspx

http://www.msxindl.com/tools/unicode16.asp

https://www.sojson.com/unicode.html

https://tool.chinaz.com/tools/unicode.aspx

http://www.hiencode.com/cencode.html

https://baiy.github.io/Ctool/tool.html#/tool/unicode

https://icyberchef.com/#recipe=Text_Encoding_Brute_Force('Encode')
HTML实体编码
简述:
字符实体是用一个编号写入HTML代码中来代替一个字符,在使用浏览器访问网页时会将这个编号解析还原为字符以供阅读。
字符实体是用一个编号写入HTML代码中来代替一个字符,在使用浏览器访问网页时会将这个编号解析还原为字符以供阅读。
这么做的目的主要有两个:
1、解决HTML代码编写中的一些问题。例如需要在网页上显示小于号(<)和大于号(>),由于它们是HTML的预留标签,可能会被误解析。这时就需要将小于号和大于号写成字符实体:
小于号这样写:< 或 <
大于号这样写:> 或 >
前面的写法称为实体名称,后面的写法则是实体编号。ISO-8859-1字符集(西欧语言)中两百多个字符设定了实体名称,而对于其它所有字符都可以用实体编号来代替。
2、网页编码采用了特定语言的编码,却需要显示来自其它语言的字符。例如,网页编码采用了西欧语言ISO-8859-1,却要在网页中显示中文,这时必须将中文字符以实体形式写入HTML代码中。
举例:
明文:hello,world.
十进制:&#104;&#101;&#108;&#108;&#111;&#65292;&#119;&#111;&#114;&#108;&#100;&#46;
十六进制:&#x68;&#x65;&#x6C;&#x6C;&#x6F;&#xFF0C;&#x77;&#x6F;&#x72;&#x6C;&#x64;&#x2E;
在线加解密:
https://www.toolzl.com/tools/htmlende.html

https://www.qqxiuzi.cn/bianma/zifushiti.php

Unicode:www.sojson.com
16进制Unicode:www.msxindl.com
HTML字符实体:www.qqxiuzi.cn
Escape、Unescape编码(%u)
简述:
Escape/Unescape加密解码/编码解码,又叫%u编码,其实就是字符对应UTF-16 16进制表示方式前面加%u。Unescape解码/解密,就是去掉"%u"后,将16进制字符还原后,由utf-16转码到自己目标字符。如:字符“中”,UTF-16BE是:“6d93”,因此Escape是“%u6d93”,反之也一样!
Escape/Unescape加密解码/编码解码,又叫%u编码,从以往经验看编码字符串出现有"u",它是unicode编码,那么Escape编码采用是那一种unicode实现形式呢。其实是UTF-16BE模式。这样一来问题非常简单了。 Escape编码/加密,就是字符对应UTF-16 16进制表示方式前面加%u。Unescape解码/解密,就是去掉"%u"后,将16进制字符还原后,由utf-16转码到自己目标字符。如:字符“中”,UTF-16BE是:“6d93”,因此Escape是“%u6d93”,反之也一样!因为目前%字符,常用作URL编码,所以%u这样编码已经逐渐被废弃了!
基本类型只对汉字进行编码,复杂类型是所有字符均可
举例:
明文:hello,world.
密文:%u0068%u0065%u006c%u006c%u006f%uff0c%u0077%u006f%u0072%u006c%u0064%u002e
在线加解密:
http://web.chacuo.net/charsetescape/
URL编码
简述:
url编码又叫百分号编码,是统一资源定位(URL)编码方式。URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,等),剩下的其它所有字符必须通过%xx编码处理。现在已经成为一种规范了,基本所有程序语言都有这种编码,如js:有encodeURI、encodeURIComponent,PHP有 urlencode、urldecode等。编码方法很简单,在该字节ascii码的的16进制字符前面加%. 如 空格字符,ascii码是32,对应16进制是'20',那么urlencode编码结果是:%20。
这两种加密的密文是一样的,不同的是当你用url编码网站时是不会把http进行编码的,而Hex编码则全部转化了
encodeURIComponent() 函数 与 encodeURI() 函数的区别
请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
特征:
编码前面都有%
在线加解密:
http://web.chacuo.net/charseturlencode
Hex编码
简述:
Hex 全称 是Intel HEX。Hex文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。
特征:
十六进制(Hexadecimal)
它是计算机中数据的一种表示方法,由0-9,A-F组 成,字母不区分大小写
与10进制的对应关系是:0-9不变,A-F对应10-15。
举例:
明文:hello,world.
密文(带%):%68%65%6c%6c%6f%ef%bc%8c%77%6f%72%6c%64%2e
密文(不带%):68656C6C6FEFBC8C776F726C642E
在线加解密:
https://www.107000.com/T-Hex

http://stool.chinaz.com/hex

Hex编码:https://www.107000.com/T-Hex
URL 编码:https://www.sojson.com/encodeurl.html
js专用加密1、JS颜文字加密
特征:
一堆颜文字构成的js代码,在F12中可直接解密执行
在线加密:
https://utf-8.jp/public/aaencode.html
解密在F12的console中
2、Jother编码
简述:
jother是一种运用于javascript语言中利用少量字符构造精简的匿名函数方法对于字符串进行的编码方式。
特征:
只用 **! + ( ) [ ] { } **这八个字符就能完成对任意字符串的编码。可在F12中解密执行
在线解密:
3、JSFuck编码
特征:
与jother很像,只是少了{ }
在线加密:
http://www.jsfuck.com/
解密在F12的console中

Quoted-printable编码
简述:
它是多用途互联网邮件扩展(MIME) 一种实现方式。有时候我们可以邮件头里面能够看到这样的编码;
特征:
任何一个8位的字节值可编码为3个字符:一个等号”=”后跟随两个十六进制数字(0–9或A–F)表示该字节的数值.
这种编码常用与邮件处理,只能对汉字进行编码,特征是=加两个大写字母或数字组合
举例:
明文:天上掉下了个猪八戒
密文:=E5=A4=A9=E4=B8=8A=E6=8E=89=E4=B8=8B=E4=BA=86=E4=B8=AA=E7=8C=AA=E5=85=AB=E6=88=92
在线编码:
http://www.mxcz.net/tools/QuotedPrintable.aspx
XXencode
简述:
XXencode将输入文本以每三个字节为单位进行编码。如果最后剩下的资料少于三个字节,不够的部份用零补齐。这三个字节共有24个Bit,以6bit为单位分为4个组,每个组以十进制来表示所出现的数值只会落在0到63之间。以所对应值的位置字符代替。
特征:
字符范围是:
0-9,A-Z,a-z,
一共64个字符。跟base64打印字符相比,就是UUencode多一个“-” 字符,少一个”/” 字符。
举例:
明文:hello,world.
密文:BO4JgP4yXf5RjQalY9U++
在线加解密:
http://web.chacuo.net/charsetxxencode
UUencode
简述:
UUencode是一种二进制到文字的编码,最早在unix邮件系统中使用,全称:Unix-to-Unix encoding,UUencode将输入文本以每三个字节为单位进行编码,如果最后剩下的资料少于三个字节,不够的部份用零补齐。三个字节共有24个Bit,以6-bit为单位分为4个组,每个组以十进制来表示所出现的字节的数值。这个数值只会落在0到63之间。然后将每个数加上32,所产生的结果刚好落在ASCII字符集中可打印字符(32-空白…95-底线)的范围之中。
举例:
明文:hello,world.
密文:,:&5L;&\L=V]R;&0N
在线解密&工具
http://web.chacuo.net/charsetxxencode

https://www.qqxiuzi.cn/bianma/uuencode.php
aaencode编码
特征:
将JS代码转换成常用的网络表情
在线加解密:
http://www.atoolbox.net/Tool.php?Id=703

https://www.qtool.net/decode

https://utf-8.jp/public/aaencode.html
jjencode编码
特征:
将JS代码转换成只有符号的字符串
在线加解密:
http://www.atoolbox.net/Tool.php?Id=704

https://www.qtool.net/decode
brainfuck编码
简述:
Brainfuck是一种极小化的计算机语言,按照"Turing complete(完整图灵机)"思想设计的语言,它的主要设计思路是:用最小的概念实现一种“简单”的语言。
特征:
BrainFuck 语言只有八种符号,所有的操作都由这八种符号 (> < + - . , [ ]) 的组合来完成。
举例:
明文:hello,world.
密文:+++++ +++++ [->++ +++++ +++<] >++++ .---. +++++ ++..+ ++.<+ +++++ ++[->
----- ---<] >---. <++++ ++++[ ->+++ +++++ <]>++ +++++ ++++. ----- ---.+
++.-- ----. ----- ---.< +++++ ++[-> ----- --<]> ----- .<
在线加解密:
https://www.splitbrain.org/services/ook

https://www.nayuki.io/page/brainfuck-interpreter-javascript
莫尔斯电码
简述:
摩尔斯电码(Morse Code)是由美国人萨缪尔·摩尔斯在1836年发明的一种时通时断的且通过不同的排列顺序来表达不同英文字母、数字和标点符号的信号代码,摩尔斯电码主要由以下5种它的代码组成:
  • 1. 点(.)
  • 2. 划(-)
  • 3. 每个字符间短的停顿(通常用空格表示停顿)
  • 4. 每个词之间中等的停顿(通常用 / 划分)
  • 5. 以及句子之间长的停顿

关于摩尔密码 | Morse Code
  • • 摩尔斯电码(Morse alphabet)(又译为摩斯电码)是一种时通时断的信号代码,这种信号代码通过不同的排列顺序来表达不同的英文字母、数字和标点符号等。
  • • 由美国人摩尔斯(Samuel Finley Breese Morse)于1837年发明,为摩尔斯电报机的发明(1835年)提供了条件。
  • • 摩尔密码加密的字符只有字符,数字,标点,不区分大小写,支持中文汉字
  • • 中文摩斯加密解密:本工具摩尔密码加密是互联网上唯一一个可以对中文进行摩斯编码的工具。

莫尔斯电码加密列表 | Morse Code List一、26个字母的莫尔斯电码加密字符电码符号字符电码符号字符电码符号字符电码符号
A.━B━ ...C━ .━ .D━ ..
E.F..━ .G━ ━ .H....
I..J.━ ━ ━K━ .━L.━ ..
M━ ━N━ .O━ ━ ━P.━ ━ .
Q━ ━ .━R.━ .S...T━
U..━V...━W.━ ━X━ ..━
Y━ .━ ━Z━ ━ ..



二、数字的莫尔斯电码加密字符电码符号字符电码符号字符电码符号字符电码符号
0━ ━ ━ ━ ━1.━ ━ ━ ━2..━ ━ ━3...━ ━
4....━5.....6━ ....7━ ━ ...
8━ ━ ━ ..9━ ━ ━ ━ .



三、标点符号的莫尔斯电码加密字符电码符号字符电码符号字符电码符号字符电码符号
..━ .━ .━:━ ━ ━ ...,━ ━ ..━ ━;━ .━ .━ .
?..━ ━ ..=━ ...━'.━ ━ ━ ━ ./━ ..━ .
!━ .━ .━ ━━━ ....━_..━ ━ .━".━ ..━ .
(━ .━ ━ .)━ .━ ━ .━$...━ ..━&. ...
@.━ ━ .━ .





摩斯密码灯光求救 | Morse Code
  • • 摩斯密码编码简单清晰,二义性小,编码主要是由两个字符表示:"."、"-",一长一短,这在很多情况下应用很多,比如发送求救信号。电影《风声》中就是采用在衣服上缝出摩尔密码,将消息传播出去。
  • • 在利用摩尔密码灯光求救的时候,定义:灯光长亮为"-",灯光短量为".",那么就可以通过手电筒的开关来发送各种信息,例如求救信息。
  • • 如果灯光是按照“短亮 暗 短亮 暗 短亮 暗 长亮 暗 长亮 暗 长亮 暗 短亮 暗 短亮 暗 短亮”这个规律来显示的话那么它就意味是求救信号SOS。
  • • 因为SOS的摩尔编码为:··· --- ··· ,按照上面的规定即可进行灯光编码。这个编码其实非常简单,三短、三长、三短。
  • • 除了灯光之外,利用声音(两种区别的声音)也可以发出求救信号。这种求救方式是我们都应该进行了解的,也许在必要的时候就可以派上用场。

特征:
由 **. - "空格" / **表示。
在线加解密:
http://www.hiencode.com/morse.html

支持中文

https://www.atool99.com/morse.php
社会主义编码
特征:
字符全部是社会主义核心价值观。
在线加解密:
https://sym233.github.io/core-values-encoder/

http://www.hiencode.com/cvencode.html
与佛论禅
特征:
密文以”佛曰:如是我闻:”开头,密文一般是与关佛经的汉字
在线工具:
https://www.keyfc.net/bbs/tools/tudoucode.aspx
韩文编码
在线编码
https://www.qqxiuzi.cn/bianma/zhongrihan.php

https://icyberchef.com/#recipe=Text_Encoding_Brute_Force('Encode')

https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=hanwen웬후ퟳ듳삨뫅뗘뛾튻튻뛾뻅뛾죽룜웟냋뗘쇹룜쯄쇣쇹쯄룜뻅웟웟쾸룜뇘웟죽뛾뻅웟뗘쾸쯄쯄뻅튻폒듳삨뫅

EUC Simplified Chinese (51936) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号

Simplified Chinese GBK (936) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号

Simplified Chinese GB2312 (20936) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号

MAC Simplified Chinese (GB 2312) (10008) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号

Simplified Chinese GB18030 (54936) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号​
编辑
编辑
编辑

引用链接
[1] www.qqxiuzi.cn: http://www.qqxiuzi.cn
[2] www.metools.info: http://www.metools.info
[3] www.metools.info: http://www.metools.info
[4] www.metools.info: http://www.metools.info
[5] www.qqxiuzi.cn: http://www.qqxiuzi.cn

本文来自互联网搜索优秀安全博客内容+部分总结提炼,原文出处


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 17:25 , Processed in 0.018467 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表