Brainfuck反汇编(Python)
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)的更多相关文章
- Brainfuck反汇编-高级版(Python)
import re def sym2cal(s): if '>' in s: return len(s) else: return -len(s) def cal(s): if '+' in s ...
- Python逆向(一)—— 前言及Python运行原理
一.前言 最近在学习Python逆向相关,涉及到python字节码的阅读,编译及反汇编一些问题.经过长时间的学习有了一些眉目,为了方便大家交流,特地将学习过程整理,形成了这篇专题.专题对python逆 ...
- Python 中如何查看进行反汇编
dis模块 Python 反汇编是通过 dis 这个模块来查看的,一般有两种方式可以用来查看 方式一: 在命令行中使用 dis 查看 >>> def test ...
- Python逆向(三)—— Python编译运行及反汇编
一.前言 前期我们已经对python的运行原理以及运行过程中产生的文件结构有了了解.本节,我们将结合具体的例子来实践python运行,编译,反编译的过程,并对前些章节中可能遗漏的具体细节进行补充. 二 ...
- Brainfuck解析器(Python)
global cs global ip global ss #global sp global ds global bp global tab global out cs='++++++++++[&g ...
- python反汇编函数字节码
使用dis模块 >>> def test(): ... print(1) ... a = 1 ... print(a) ... >>> from dis impor ...
- 《Python标准库》 目录
目录 译者序序前言第1章 文本1.1 string—文本常量和模板1.1.1 函数1.1.2 模板1.1.3 高级模板1.2 textwrap—格式化文本段落1.2.1 示例数据1.2.2 填充段落1 ...
- 运用Python成为黑客
1.Fuzz测试: 漏洞挖掘有三种方法:白盒代码审计.灰盒逆向工程.黑盒测试.其中黑盒的Fuzz测试是效率最高的一种,能够快速验证大量潜在的安全威胁. Fuzz测试,也叫做"模糊测试&quo ...
- Python渗透测试工具合集
摘自:http://www.freebuf.com/tools/94777.html 如果你热爱漏洞研究.逆向工程或者渗透测试,我强烈推荐你使用 Python 作为编程语言.它包含大量实用的库和工具, ...
随机推荐
- 【值得收藏】一份非常完整的Mysql规范
做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 本文从芋道源码转载,在原有内容基础上结合阿里巴巴Java开发手册中Mysql数据库章节的介绍,加上自己的理解和说明,整理而 ...
- 【Java并发核心四】Executor 与 ThreadPoolExecutor
Executor 和 ThreadPoolExecutor 实现的是线程池,主要作用是支持高并发的访问处理. Executor 是一个接口,与线程池有关的大部分类都实现了此接口. ExecutorSe ...
- Linux /etc/profile文件详解
Linux /etc/profile文件详解 转载地址:http://linux.chinaitlab.com/administer/820910.html linux /etc/profile文 ...
- supervisor 管理 celery
安装supervisor [root@ipv6-api ~]# pip3 install supervisor 生成配置文件 [root@ipv6-api ~]#echo_supervisord_c ...
- socket的几大异常以及其出现的原因
1:我是模拟了一个客户端不断的向服务器发送消息,但是当某一时刻我把服务端断掉,客户端就出现了写异常 java.net.SocketException: Connection reset by peer ...
- Saltstack 命令
命令格式 salt '<操作目标>' <方法>[参数] 查看被控主机内存使用情况 [root@node1 ~]# salt '*' cmd.run 'free -h' node ...
- 实例化和设置一个优秀的php对象
类是用于生成对象的代码模板,对象可以被说成是类的"实例" class ShopProduct{ public $title = 'default product'; // 属性也称 ...
- 通过css实现小三角形
下面是用css做小三角形的demo, <!DOCTYPE html><html lang="en"><head> <meta charse ...
- Java程序员面试中的多线程问题1
转自:http://blog.jobbole.com/18571/ 很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework), 理解 ...
- react-native基础教程(1)
转载链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/react-native-foundation-course/ React ...