Python 3版本pattern_create.rb工具

Python 3版本pattern_create.rb工具,用于计算溢出发生时被覆盖元素偏移地址。

#!/usr/bin/env python
# Replicates msf pattern_create.rb
import sys
try:length=int(sys.argv[1])
except:print("[+] Usage: %s <length> [set a] [set b] [set c]" % sys.argv[0]); sys.exit(1)
try:seta=sys.argv[2]
except:seta="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
try:setb=sys.argv[3]
except:setb="abcdefghijklmnopqrstuvwxyz"
try:setc=sys.argv[4]
except:setc="0123456789"
string="" ; a=0 ; b=0 ; c=0
while len(string) < length:
    if len(sys.argv) == 2:
        string += seta[a] + setb[b] + setc[c]
        c+=1
        if c == len(setc):c=0;b+=1
        if b == len(setb):b=0;a+=1
        if a == len(seta):a=0
    elif len(sys.argv) == 3:
        print("[!] Error, cannot work with just one set!")
        print("[+] Usage: %s <length> [set a] [set b] [set c]" % sys.argv[0]); sys.exit(1)
        sys.exit(1)
    elif len(sys.argv) == 4:
        string += seta[a] + setb[b]
        b+=1
        if b == len(setb):b=0;a+=1
        if a == len(seta):a=0
    elif len(sys.argv) == 5:
        string += seta[a] + setb[b] + setc[c]
        c+=1
        if c == len(setc):c=0;b+=1
        if b == len(setb):b=0;a+=1
        if a == len(seta):a=0
    else:
        print("[+] Usage: %s <length> [set a] [set b] [set c]" % sys.argv[0]); sys.exit(1)
print(string[:length])
print("-------------------------------------------------------------------------")
print("Length: %i" % length)
print("[+] SetA: ‘%s‘" % seta)
print("[+] SetB: ‘%s‘" % setb)
if len(sys.argv) != 4: print("[+] SetC: ‘%s‘" % setc)
print("-------------------------------------------------------------------------")

用法(假设需要5000个字符): pattern_create.py 5000>1.txt

然后从1.txt里面复制出来即可。

确定位置:

假设异常时,EIP=426b3742 ,反过来就是Bk7B,使用UltraEdit之类的工具打开1.txt,搜索Bk7B,光标移到Bk7B前面,下面显示的列数为(1102),由于从1开始计数,需要减去1,结果就是1101,再加上之前的区间值(假设为25000),则EIP填充位置就是25000+1101=16101之后的那4个字节(X86平台)。

时间: 2024-11-08 00:15:23

Python 3版本pattern_create.rb工具的相关文章

Python多版本共存管理工具之pyenv

1. 安装pyenv $ git clone git://github.com/yyuu/pyenv.git ~/.pyenv $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(pyenv init -)"' >

Python版本 msf pattern_create.rb

Python(2.7.x)版本pattern_create.rb工具,计算溢出发生时被覆盖元素偏移地址: #!/usr/bin/env python # Replicates msf pattern_create.rb import sys try:length=int(sys.argv[1]) except:print "[+] Usage: %s <length> [set a] [set b] [set c]" % sys.argv[0]; sys.exit(1) t

Metasploit 工具 pattern_create.rb pattern_offset.rb

pattern_create.rb pattern_offset.rb 使用 pattern_offset.rb 先让调试的程序溢出 知道 ESP 的值 $ (python -c 'print "A"*79+"\xfb\xd8\xff\xff"')

Ancoda 下的python多版本共存

Ancoda 下的python多版本共存 virtualenv python 多版本共存 Pip, Virtualenv 和Fabric 被称为python 的三大神器,Pip 是包管理工具,Virtualenv 是创建独立的python环境包的工具,Fabric 是和服务器管理和应用发布相关的工具(个人没有用过...),让我惊奇的是,这三个没有一个是和敲代码有关系的.有些东西在开发中真的是刚需,想绕都绕不开,今天我们来聊聊python的多版本共存的问题. 笔者在电脑上安装了Virtualenv

python多版本安装配置流程

情景:最新开始学习python,之前由于某个项目接触过python语言,但是那时候只是在项目平台上借助python这门工具语言罢了.趁着寒假这短暂的休闲时光,自己系统地开始学习python这门胶水语言,简易而全能.学习一门少不了一个开发工具的安装,同时目前python流行版本为2/3,所以为了方便使用,也知道pyhton可以多版本安装,故在自己的win7 32位电脑上进行多版本安装. 环境:WIN7 32位系统 软件包: python2.7.3和python3.5.3 问题:首先肯定是pytho

用Python编写博客导出工具

用Python编写博客导出工具 罗朝辉 (http://kesalin.github.io/) CC 许可,转载请注明出处 写在前面的话 我在 github 上用 octopress 搭建了个人博客,octopress 使用Markdown语法编写博文.之前我在CSDN博客上也写过不少的技术博文,都说自己的孩子再丑也是个宝,所以就起了把CSDN博客里面的文章导出到个人博客上的念头.刚开始想找个工具把CSDN博客导出为xml或文本,然后再把xml或文本转换为Markdown博文.可惜搜了一下现有博

Python黑帽编程1.3 Python运行时与包管理工具

Python黑帽编程1.3  Python运行时与包管理工具 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and Defense with Python>一书,为了解决很多同学对英文书的恐惧,解决看书之后实战过程中遇到的问题而作.由于原书很多地方过于简略,笔者根据实际测试情况和最新的技术发展对内容做了大量的变更,当然最重要的是个人偏好.教程同时提供图文和视频教程两种方式,供不同喜好的同学选择. 0.2 前言 前两

Linux下python多版本多环境介绍

一.python多版本配置说明 安装python相关依赖 [[email protected] ~]# yum install -y gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel 安装git工具 [[email protected] ~]# yum install -y git 创建python用户 [[email protected] ~]# useradd

高可用Redis(十一):使用redis-trib.rb工具搭建集群

环境说明: 两台虚拟机,IP地址分别为:192.168.81.100和192.168.81.101 虚拟机系统为:CentOS 7.5 Redis为yum安装,版本为3.2 系统环境:关闭firewalld Redis Cluster集群节点包括:192.168.81.101机器的9000.9001,9002端口运行的redis-server以及192.168.81.100机器的9000.9001,9002端口运行的redis-server 步骤: 1.Ruby环境准备 官网下载Ruby源码包,