关于javascript的unescape()函数
2011-08-19 21:07
141 查看
在学习加密解密的过程中,经常会碰到JavaScript的unescape()函数。今天终于把它弄明白了。JavaScript只认识Unicode字符串,所以在应用堆喷射的时候,要把C形式的shellcode转化成JavaScript的Unicode形式。假如原shellcode为
unsigned char shellcode = “\xd9\xc0\xd9\x74\x24\xf4\xba\x3d...”
则对应的JavaScript形式的shellcode为
var shellcode = “\uc0d9\u74d9\uf424\u3dba”
用JavaScript分配内存后,这个字符串在内存中是这样存储的 “D9 C0 D9 74 24 F4 BA 3D...”,跟C形式的一样。
由于JavaScript的这个特殊,使得我们在写JavaScript脚本的时候得先处理一下C形式的shellcode。JavaScript提供了一个函数unescape(),其接受一个形如 “%uAABB%uCCDD” 的字符串,它可以将其变成对应的Unicode形式 “\uAABB\uCCDD”。以上面的shellcode为例,我们得先把shellcode处理成
"%uc0d9%u74d9%uf424%u3dba" 这种形式。然后再用unescape()解密,变成JavaScript的字符串“\uc0d9\u74d9\uf424\u3dba”。在内存中才会变成可执行的 “D9 C0 D9 74 24 F4 BA 3D...” 顺序。
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/laugh.gif)
路过的朋友们,木要嘲笑我哦。。。每天一点小小的进步都会让我快乐,因为我相信“积跬步以至千里,积小流而成江海”的道理~
unsigned char shellcode = “\xd9\xc0\xd9\x74\x24\xf4\xba\x3d...”
则对应的JavaScript形式的shellcode为
var shellcode = “\uc0d9\u74d9\uf424\u3dba”
用JavaScript分配内存后,这个字符串在内存中是这样存储的 “D9 C0 D9 74 24 F4 BA 3D...”,跟C形式的一样。
由于JavaScript的这个特殊,使得我们在写JavaScript脚本的时候得先处理一下C形式的shellcode。JavaScript提供了一个函数unescape(),其接受一个形如 “%uAABB%uCCDD” 的字符串,它可以将其变成对应的Unicode形式 “\uAABB\uCCDD”。以上面的shellcode为例,我们得先把shellcode处理成
"%uc0d9%u74d9%uf424%u3dba" 这种形式。然后再用unescape()解密,变成JavaScript的字符串“\uc0d9\u74d9\uf424\u3dba”。在内存中才会变成可执行的 “D9 C0 D9 74 24 F4 BA 3D...” 顺序。
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/laugh.gif)
路过的朋友们,木要嘲笑我哦。。。每天一点小小的进步都会让我快乐,因为我相信“积跬步以至千里,积小流而成江海”的道理~
相关文章推荐
- javascript中的escape()和unescape()函数的使用方法
- JavaScript学习五 函数式编程中的一些关于函数的术语
- javascript少儿编程关于返回值的函数内容
- JavaScript关于exec()函数的理解
- JavaScript unescape() 函数详解
- [js点滴]JavaScript关于函数总结
- javascript写的关于静态页面获取URL传递参数的函数[原创]
- JavaScript escape() 函数:编码;unescape() 函数:解码
- 关于javascript的sort()函数
- javascript写的关于静态页面获取URL传递参数的函数
- javascript关于图片自适应的小函数
- 关于JavaScript中立即执行函数的理解
- 关于javascript中||与&&在函数调用中的使用
- JavaScript中关于函数
- Javascript中关于call,apply,bind这三个函数的用法
- 关于JavaScript parseFloat() 函数精度不一致的问题
- 关于javascript基于DWR调用java函数的传值问题
- JavaScript中的陷阱(关于变量声明,函数)
- 关于javascript parseInt函数的问题
- 关于javascript的回调函数与异步函数的关系理解