global cs
global ip global ss
#global sp global ds
global bp global tab
global out
#cs='++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.'
ip = ss = []
#sp = ds = []
bp = tab =
out = [] def tab_():
i = tab
stab = ''
while i > :
stab += '\t'
i -=
return stab def push(var):
global ss
ss.append(var) def pop():
global ss
return ss.pop() def op_inc_val():
global ip
count =
while True:
op = cs[ip]
ip = ip +
if op == '+':
count = count +
else:
break
print tab_()+'ds[%d] += %d'%(bp, count) def op_dec_val():
global ip
count =
while True:
op = cs[ip]
ip = ip +
if op == '-':
count = count +
else:
break
print tab_()+'ds[%d] -= %d'%(bp, count) def op_inc_dp():
global bp
bp = bp + def op_dec_dp():
global bp
bp = bp - def op_jmp_fwd():
global tab
print tab_()+'while ds[%d]:'%(bp)
tab = tab + def op_jmp_bck():
global tab
tab = tab - def op_out():
print tab_()+'putchar(ds[%d])'%(bp) def op_in():
print tab_()+'getchar' end = len(cs)
while ip < end:
op = cs[ip]
ip = ip +
if op == '+':
ip = ip -
op_inc_val()
ip = ip -
elif op == '-':
ip = ip -
op_dec_val()
ip = ip -
elif op == '>':
op_inc_dp()
elif op == '<':
op_dec_dp()
elif op == '[':
op_jmp_fwd()
elif op == ']':
op_jmp_bck()
elif op == '.':
op_out()
elif op == ',':
op_in()
else:
print 'invalid opcode'
break

Brainfuck反汇编(Python)的更多相关文章

  1. Brainfuck反汇编-高级版(Python)

    import re def sym2cal(s): if '>' in s: return len(s) else: return -len(s) def cal(s): if '+' in s ...

  2. Python逆向(一)—— 前言及Python运行原理

    一.前言 最近在学习Python逆向相关,涉及到python字节码的阅读,编译及反汇编一些问题.经过长时间的学习有了一些眉目,为了方便大家交流,特地将学习过程整理,形成了这篇专题.专题对python逆 ...

  3. Python 中如何查看进行反汇编

    dis模块       Python 反汇编是通过 dis 这个模块来查看的,一般有两种方式可以用来查看     方式一: 在命令行中使用 dis 查看   >>> def test ...

  4. Python逆向(三)—— Python编译运行及反汇编

    一.前言 前期我们已经对python的运行原理以及运行过程中产生的文件结构有了了解.本节,我们将结合具体的例子来实践python运行,编译,反编译的过程,并对前些章节中可能遗漏的具体细节进行补充. 二 ...

  5. Brainfuck解析器(Python)

    global cs global ip global ss #global sp global ds global bp global tab global out cs='++++++++++[&g ...

  6. python反汇编函数字节码

    使用dis模块 >>> def test(): ... print(1) ... a = 1 ... print(a) ... >>> from dis impor ...

  7. 《Python标准库》 目录

    目录 译者序序前言第1章 文本1.1 string—文本常量和模板1.1.1 函数1.1.2 模板1.1.3 高级模板1.2 textwrap—格式化文本段落1.2.1 示例数据1.2.2 填充段落1 ...

  8. 运用Python成为黑客

    1.Fuzz测试: 漏洞挖掘有三种方法:白盒代码审计.灰盒逆向工程.黑盒测试.其中黑盒的Fuzz测试是效率最高的一种,能够快速验证大量潜在的安全威胁. Fuzz测试,也叫做"模糊测试&quo ...

  9. Python渗透测试工具合集

    摘自:http://www.freebuf.com/tools/94777.html 如果你热爱漏洞研究.逆向工程或者渗透测试,我强烈推荐你使用 Python 作为编程语言.它包含大量实用的库和工具, ...

随机推荐

  1. 【值得收藏】一份非常完整的Mysql规范

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 本文从芋道源码转载,在原有内容基础上结合阿里巴巴Java开发手册中Mysql数据库章节的介绍,加上自己的理解和说明,整理而 ...

  2. 【Java并发核心四】Executor 与 ThreadPoolExecutor

    Executor 和 ThreadPoolExecutor 实现的是线程池,主要作用是支持高并发的访问处理. Executor 是一个接口,与线程池有关的大部分类都实现了此接口. ExecutorSe ...

  3. Linux /etc/profile文件详解

    Linux /etc/profile文件详解   转载地址:http://linux.chinaitlab.com/administer/820910.html linux /etc/profile文 ...

  4. supervisor 管理 celery

    安装supervisor [root@ipv6-api ~]# pip3 install  supervisor 生成配置文件 [root@ipv6-api ~]#echo_supervisord_c ...

  5. socket的几大异常以及其出现的原因

    1:我是模拟了一个客户端不断的向服务器发送消息,但是当某一时刻我把服务端断掉,客户端就出现了写异常 java.net.SocketException: Connection reset by peer ...

  6. Saltstack 命令

    命令格式 salt '<操作目标>' <方法>[参数] 查看被控主机内存使用情况 [root@node1 ~]# salt '*' cmd.run 'free -h' node ...

  7. 实例化和设置一个优秀的php对象

    类是用于生成对象的代码模板,对象可以被说成是类的"实例" class ShopProduct{ public $title = 'default product'; // 属性也称 ...

  8. 通过css实现小三角形

    下面是用css做小三角形的demo, <!DOCTYPE html><html lang="en"><head> <meta charse ...

  9. Java程序员面试中的多线程问题1

    转自:http://blog.jobbole.com/18571/ 很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework), 理解 ...

  10. react-native基础教程(1)

    转载链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/react-native-foundation-course/ React ...