一套黑客用的编解码器
hackercodecs的Python项目详细描述
这个包提供了对黑客和黑客相关的CTF有用的编解码器。
导入此模块后,可以使用多个编解码器。要获取
完整列表,您可以使用用于
填充编解码器项的编解码器"in廑file dictionary:
>;>;pprint(sorted(codec廑in廑file.keys())
['ascii85',
'bin',
'entity',
'entityhex',
'morse',
'rot1',
'rot10',
'rot11',
'rot10',
'rot11', 'rot11',
'rot11',
‘rot12’,
‘rot13’,
‘rot14’,
‘rot15’,
‘rot16’,
‘rot17’,
‘rot118’,
‘rot19’,
‘rot2’,
‘rot20’,
‘rot21’,
‘rot22’,
‘rot22’,
‘rot22’,
‘rot24’,
‘rot25’,
‘rot3’,
‘rot1‘rot13’,
‘rot13’,
‘rot13 4’,
‘旋转5’,
‘旋转6’,
‘旋转7’,
‘旋转8’,
'rot9',
'url',
'yenc']
您应该首先注意所有的"rot"条目。默认情况下,"rot-13"编解码器是
提供的。其余部分提供类似的功能
用于快速检查移位密码:
>;>pprint(['ymj vznhp gwtbs ktc ozruji tajw ymj qfed itl'.decode('rot%d'%i)for i in xrange(1,26)]
[u'xli uymgo fvsar jsb nyqtih sziv xli pedc hsk',
u'wkh txlfn eurzq ira mxpshg ryhu wkh odcb grj',
u'vjg swkem dtqyp hqz lworgf qxgt vjg ncba fqi',
u'uif rvjdl cspxo gpy kvnqfe pwfs uif mbaz eph',
u'sgd pthbj aqnvm enw itlodc nudq sgd kzyx cnf',
u'rfc osgai zpmul dmv hskncb mtcp rfc jyxw bme',
u'qeb nrfzh yoltk clu grjmba lsbo qeb ixwv ald',
u'pda mqueg xnksj bkt fqilaz kran pda hwu zkc',
u'ocz lpdxf wmjri ajs ephkzy jqzm ocz gvut yjb',
u'nby kocwe vlikh zir dogjyx ipyl nby futs xia',
u'max jnbvd ukhpg yhq cnfixw hoxk max etsr whz',
u'lzw imauc tjgof xgp bmehwv gnwj lzw dsrq vgy',
u'kyv hlztb sifone wfo aldgvu fmvi kyv crqp ufx',
u'jxu gkysa rhemd ven zkcfut eluh jxu bqpo tew',
u'iwt fjxrz qgdlc udm yjbets dktg iwt apon sdv',
u'hvs eiwqy pfckb tcl xiadsr cjsf hvs zonm rcu',
u'gur dhvpx oebja sbk whzcrq bire gur ynml qbt',
u'ftq cguow ndaiz raj vgybqp ahqd ftq xmlk pas',
u'esp bftnv mczhy qzi ufxapo zgpc esp wlkj ozr',
u'dro aesmu lbygx pyh tewzon dro vkji nyq',
u'cqn zdrlt kaxfw oxg sdvynm xena cqn ujih mxp',
u'bpm ycqks jzwev nwf rcuxml wdmz bpm tihg lwo',
u'aol xbpjr iyvdu mve qbtwlk vcly aol shgf kvn',
u'znk waoiq hxuct lud pasvkj ubkx znk rgfe jum']
"快棕色狐狸跳过懒狗"<;-bingo
我最喜欢的编解码器,也是我开始这个项目的原因,当然是摩尔斯编码:
>;'sos'。编码('morse')
'…---"…"
>;"……---…'.decode('morse')
'sos'
>;'asdf'。encode('morse').decode('morse')
'asdf'
>;"这是morse代码!".encode('morse')
回溯(最近一次调用):
file"<;stdin>;",第1行,in<;module>;
file"/home/hex/progz/python/hackercodecs/hackercodecs/.py",第247行,在morse encode中
在morse地图中断言c,找到不可编码字符'%s'。失败的"%c
断言错误:不可编码字符"!"找到了。失败
我的另一个最爱是"bin"。只有几行,但是没有理由在每个ctf中一遍又一遍地写相同的行。让黑客代码为您处理这个问题:
>;'asdf'。encode('bin')
'01100011100110110010001100110'
>;>;'01100001011100110110010001100110'。decode('bin')
'asdf'
它还计算位以确保您没有做蠢事:
'0110001110011011001000110011'。decode('bin')
回溯(最近一次调用):
file"<;stdin>;",第1行,in<;module>;
文件"/home/hex/progz/python/hackercodecs/hackercodecs/\uu init\uuu.py",第275行,位于bin-decode
assert(len(input)==0,assertionerror:错误的位数,31不能被8整除
如果你曾经在web上进行黑客攻击,你知道拥有
urllib处理url编码有多好。因为我们已经有了这个
黑客编解码器的库,所以我认为只添加
这个库是值得的。一个地方的一切有时都很好:
>;""或"="。编码('url')
'%27%20或%20%27%27%3d%27'
>;'%27%20或%20%27%27%3d%27'。解码('url')
"'或"="
>>gt;"]]>;amp;XXE;".encode('entity')
]]&;gt;amp;amp;amp;amp;amp;XXE;'
>>>>>;gt;]]&;gt;amp;amp;amp;amp;amp;amp;amp;XXE;".decode('entity')
]]]>;amp;XXE;'
>
>>;gt;"]]]>;>;gt;]]]>;>;gt;"]]]]>;amp;amp;gt;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;XXE;''
十六进制"
"&;x3c;script&x3e;警报("1")&x3c;&script&x3e;'
如果您来自互联网,您可能知道usenet使用的是yenc:
>;>;print repr('asdf'。encode('yenc'))
'\x8b\x9d\x8e\x90'
>;'\x8b\x9d\x8e\x90'.decode('yenc')
'asdf'
如果您使用的是pdf,您可能已经看到了ascii85。这有点像Base64,但根本不是:
>>;'asdf'。编码('ascii85')
'@<;5sk'
>;'@<;5sk'。解码('ascii85')
'asdf'
在未来我可能会添加更多的内容
(http://en.wikipedia.org/wiki/binary-to-text-encoding)….在将所有内容移植到python 3之后。如果对
编码有任何特殊要求,您希望我添加,请自行编写并提交修补程序。根据下面的代码添加编解码器应该非常容易。
导入此模块后,可以使用多个编解码器。要获取
完整列表,您可以使用用于
填充编解码器项的编解码器"in廑file dictionary:
>;>;pprint(sorted(codec廑in廑file.keys())
['ascii85',
'bin',
'entity',
'entityhex',
'morse',
'rot1',
'rot10',
'rot11',
'rot10',
'rot11',
'rot11',
‘rot12’,
‘rot13’,
‘rot14’,
‘rot15’,
‘rot16’,
‘rot17’,
‘rot118’,
‘rot19’,
‘rot2’,
‘rot20’,
‘rot21’,
‘rot22’,
‘rot22’,
‘rot22’,
‘rot24’,
‘rot25’,
‘rot3’,
‘rot1‘rot13’,
‘rot13’,
‘rot13 4’,
‘旋转5’,
‘旋转6’,
‘旋转7’,
‘旋转8’,
'rot9',
'url',
'yenc']
您应该首先注意所有的"rot"条目。默认情况下,"rot-13"编解码器是
提供的。其余部分提供类似的功能
用于快速检查移位密码:
>;>pprint(['ymj vznhp gwtbs ktc ozruji tajw ymj qfed itl'.decode('rot%d'%i)for i in xrange(1,26)]
[u'xli uymgo fvsar jsb nyqtih sziv xli pedc hsk',
u'wkh txlfn eurzq ira mxpshg ryhu wkh odcb grj',
u'vjg swkem dtqyp hqz lworgf qxgt vjg ncba fqi',
u'uif rvjdl cspxo gpy kvnqfe pwfs uif mbaz eph',
u'sgd pthbj aqnvm enw itlodc nudq sgd kzyx cnf',
u'rfc osgai zpmul dmv hskncb mtcp rfc jyxw bme',
u'qeb nrfzh yoltk clu grjmba lsbo qeb ixwv ald',
u'pda mqueg xnksj bkt fqilaz kran pda hwu zkc',
u'ocz lpdxf wmjri ajs ephkzy jqzm ocz gvut yjb',
u'nby kocwe vlikh zir dogjyx ipyl nby futs xia',
u'max jnbvd ukhpg yhq cnfixw hoxk max etsr whz',
u'lzw imauc tjgof xgp bmehwv gnwj lzw dsrq vgy',
u'kyv hlztb sifone wfo aldgvu fmvi kyv crqp ufx',
u'jxu gkysa rhemd ven zkcfut eluh jxu bqpo tew',
u'iwt fjxrz qgdlc udm yjbets dktg iwt apon sdv',
u'hvs eiwqy pfckb tcl xiadsr cjsf hvs zonm rcu',
u'gur dhvpx oebja sbk whzcrq bire gur ynml qbt',
u'ftq cguow ndaiz raj vgybqp ahqd ftq xmlk pas',
u'esp bftnv mczhy qzi ufxapo zgpc esp wlkj ozr',
u'dro aesmu lbygx pyh tewzon dro vkji nyq',
u'cqn zdrlt kaxfw oxg sdvynm xena cqn ujih mxp',
u'bpm ycqks jzwev nwf rcuxml wdmz bpm tihg lwo',
u'aol xbpjr iyvdu mve qbtwlk vcly aol shgf kvn',
u'znk waoiq hxuct lud pasvkj ubkx znk rgfe jum']
"快棕色狐狸跳过懒狗"<;-bingo
我最喜欢的编解码器,也是我开始这个项目的原因,当然是摩尔斯编码:
>;'sos'。编码('morse')
'…---"…"
>;"……---…'.decode('morse')
'sos'
>;'asdf'。encode('morse').decode('morse')
'asdf'
>;"这是morse代码!".encode('morse')
回溯(最近一次调用):
file"<;stdin>;",第1行,in<;module>;
file"/home/hex/progz/python/hackercodecs/hackercodecs/.py",第247行,在morse encode中
在morse地图中断言c,找到不可编码字符'%s'。失败的"%c
断言错误:不可编码字符"!"找到了。失败
我的另一个最爱是"bin"。只有几行,但是没有理由在每个ctf中一遍又一遍地写相同的行。让黑客代码为您处理这个问题:
>;'asdf'。encode('bin')
'01100011100110110010001100110'
>;>;'01100001011100110110010001100110'。decode('bin')
'asdf'
它还计算位以确保您没有做蠢事:
'0110001110011011001000110011'。decode('bin')
回溯(最近一次调用):
file"<;stdin>;",第1行,in<;module>;
文件"/home/hex/progz/python/hackercodecs/hackercodecs/\uu init\uuu.py",第275行,位于bin-decode
assert(len(input)==0,assertionerror:错误的位数,31不能被8整除
如果你曾经在web上进行黑客攻击,你知道拥有
urllib处理url编码有多好。因为我们已经有了这个
黑客编解码器的库,所以我认为只添加
这个库是值得的。一个地方的一切有时都很好:
>;""或"="。编码('url')
'%27%20或%20%27%27%3d%27'
>;'%27%20或%20%27%27%3d%27'。解码('url')
"'或"="
>>gt;"]]>;amp;XXE;".encode('entity')
]]&;gt;amp;amp;amp;amp;amp;XXE;'
>>>>>;gt;]]&;gt;amp;amp;amp;amp;amp;amp;amp;XXE;".decode('entity')
]]]>;amp;XXE;'
>
>>;gt;"]]]>;>;gt;]]]>;>;gt;"]]]]>;amp;amp;gt;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;XXE;''
十六进制"
"&;x3c;script&x3e;警报("1")&x3c;&script&x3e;'
如果您来自互联网,您可能知道usenet使用的是yenc:
>;>;print repr('asdf'。encode('yenc'))
'\x8b\x9d\x8e\x90'
>;'\x8b\x9d\x8e\x90'.decode('yenc')
'asdf'
如果您使用的是pdf,您可能已经看到了ascii85。这有点像Base64,但根本不是:
>>;'asdf'。编码('ascii85')
'@<;5sk'
>;'@<;5sk'。解码('ascii85')
'asdf'
在未来我可能会添加更多的内容
(http://en.wikipedia.org/wiki/binary-to-text-encoding)….在将所有内容移植到python 3之后。如果对
编码有任何特殊要求,您希望我添加,请自行编写并提交修补程序。根据下面的代码添加编解码器应该非常容易。