1.功能分析:

  实际工作中经常会遇到alert()之类的函数被防火墙过滤,而把alert()转化为ascii码放到String.fromCharCode()中就可以绕过,之前会一个一个查ascii表,比如a对应97,l对应108...最后得出alert(1)的ascii码97,108,101,114,116,40,49,41   发现这样太费时间,就用写了个python小脚本,方便做测试用.

  后来索性又加了下面这些功能(支持解码),整体写的很挫很糙,但是这个不重要,用着方便就行了~~~

字符串←→ASCII码                       a   →   97

字符←→js-Unicode 特殊符号请在前面加^ a → \\u0061

字符串←→js-16进制 a → \\x61

字符串←→js-8进制 a → \\141

字符串←→html实体编码(16进制) a → a

字符串←→html实体编码(10进制) a → a

2.用法:

  需要安装python3

  python3    kpy.py    模式[a,A,b,B,c...]    字符

  没有python3的话

  用这个exe也阔以~~~

  

  kpy.exe    模式[a,A,b,B,c...]    字符

 

字符串转ascii

python3 kpy.py a alert(1)                                    |
>>97,108,101,114,116,40,49,41

ascii转字符串

python3 kpy.py A 97,108,101,114,116,40,49,41 
>>alert(1)

3.代码分析:

太粗糙的代码,还分析个毛~~
 #coding="utf-8"
import sys usage=''' +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| 使用方式:python3 kpy.py N(模式:a,b,c...) S(需要转换的字符:) |
+ +
| python3 kpy.py a alert(1) |
+ >>97,108,101,114,116,40,49,41 +
| |
+ a(A) 字符串←→ASCII码 a → 97 +
| b(B) 字符←→js-Unicode 特殊符号请在前面加^ a → \\u0061 |
+ c(C) 字符串←→js-16进制 a → \\x61 +
| d(D) 字符串←→js-8进制 a → \\141 |
+ e(E) 字符串←→html实体编码(16进制) a → a +
| f(F) 字符串←→html实体编码(10进制) a → a |
by:mkdd@kpy
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
'''
print(usage) look=['"','\'','&','<','>']
name=['&quot','&apos',' &amp','&lt','&gt']
num10=['&#34','&#39','&#38','&#60','&#62']
num16=['&#x22','&#x27','&#x26','&#x3c','&#x3e'] # 字符串转ASCII码
def aa(x):
a=[]
for i in x:
a.append(str(ord(i)))
return(','.join(a)) # 字符转 js-Unicode 特殊符号请在前面加^
def ab(x):
a=[]
for i in x:
a.append('\\u'+''*(4-len(str(hex(ord(i)))[2:]))+str(hex(ord(i)))[2:])
return(''.join(a)) # 字符串转 js-16进制
def ac(x):
a=[]
for i in x:
a.append('\\'+str(hex(ord(i)))[1:])
return(''.join(a)) # 字符串转 js-8进制
def ad(x):
a=[]
for i in x:
a.append('\\'+str(oct(ord(i)))[2:])
return(''.join(a)) # 字符串转 html实体编码(16进制)
def ae(x):
a=[]
for i in x:
a.append('&#x'+str(hex(ord(i)))[2:]+';')
return(''.join(a)) # 字符串转 html实体编码(10进制)
def af(x):
a=[]
for i in x:
a.append('&#'+str(ord(i))+';')
return(''.join(a)) # ASCII码转字符串,逗号隔开
def aA(x):
x=x.replace(' ',',').split(',')
for i in range(len(x)):
x[i]=chr(int(x[i]))
return(''.join(x)) # js-Unicode js-16 js-8转字符串
def aB(x):
return x.replace(',','')
def aC(x):
return x.replace(',','')
def aD(x):
return x.replace(',','') def aF(x):
for q in range(len(name)):
x=x.replace(name[q],num10[q])
if x[-1]==';':
x=x[:-1]
return aA(x.replace(';',',').replace('&#','')) def aE(x):
for q in range(len(name)):
x=x.replace(name[q],num16[q])
if x[-1]==';':
x=x[:-1].replace('&#x','').split(';')
for i in range(len(x)):
x[i]=chr(int(x[i],16))
return ''.join(x) b=("a%s(\'%s\')"%(sys.argv[1],sys.argv[2]))
print((20-len(eval(b)))*'-'+('\n'+(20-len(eval(b)))*' '+'|')*5+'\n'+(21-len(eval(b)))*' '+(20-len(eval(b)))*'-'+'→ '+eval(b)+'\n'*8)

最新文章

  1. Nova PhoneGap框架 第五章 文件结构
  2. nRF52832开发日志--SAADC调试
  3. java时间类型的转换/获取当前时间/将时间转换成String/将String转换成时间
  4. 图标:适配不同分辨 的 hdpi、mdpi、ldpi 文件夹
  5. [Asp.net 开发系列之SignalR篇]专题四:使用SignalR实现发送图片
  6. 解决android SwipeRefreshLayout recyclerview 不能下拉
  7. Trimmomatic安装与使用
  8. Qt之进程间通信(TCP/IP)
  9. box-flex 分割
  10. [Hibernate] List 映射例子
  11. linux之sed用法【转载】
  12. 运行tomcat7w.exe tomcat7.exe ,提示 指定的服务未安装 unable to open the service &#39;tomcat7&#39;
  13. USB硬盘 raw之后,DiskGenius 恢复
  14. installshield学习笔记
  15. C风格字符串和C++ string 对象赋值操作的性能比较
  16. 用C语言写的万年历---亲手写的。好累哦
  17. 【原】font-awesome IE6支持代码本人测试成功
  18. [android] 手机卫士自定义滚动控件
  19. Python 字符编码简记
  20. Python-ccs动画及阴影

热门文章

  1. 【Spring学习】SpringMVC demo搭建
  2. PHP+Mysql 实现数据库增删改查(原生)
  3. Spring基础篇——Spring的AOP切面编程
  4. 【转】.NET程序员提高效率的70多个开发工具
  5. jquery 全选、反选、获取值、背景行、隔行变色和鼠标略过变色变色全特效
  6. PowerDesigner反向生成PDM和name与注释互换
  7. Oracle 12c 创建新的数据库实例、用户
  8. 初始js闭包&amp;事件的冒泡和捕获&amp;EVENT对象
  9. Python语言学习之C++调用python
  10. Centos 安装 android sdk(转)