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 作为编程语言.它包含大量实用的库和工具, ...
随机推荐
- Python开发之日志记录模块:logging
1 引言 最近在开发一个应用软件,为方便调试和后期维护,在代码中添加了日志,用的是Python内置的logging模块,看了许多博主的博文,颇有所得.不得不说,有许多博主大牛总结得确实很好.似乎我再写 ...
- 简述synchronized和java.util.concurrent.locks.Lock的异同?
主要相同点:Lock能完成synchronized所实现的所有功能 . 主要不同点:Lock有比synchronized更精确的线程语义和更好的性能.synchronized会自动释放锁,而Lock一 ...
- VB.NET只允许打开一个实例
If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) ...
- 模拟页面获取的php数据(四)
<?php $tqzf = [ "aData" => [//通勤方式 "trafficType" => [ 0 => [ "t ...
- kolla之docker私有仓库创建
kolla镜像自从P版以后就没有向之前版本直接下载一个tar然后放入仓库那么简单了. 正式开始搭建仓库: 1.启动仓库容器 docker run -d -v /opt/registry:/var/l ...
- 洛谷.4114.Qtree1(树链剖分)
题目链接 模板题都错了这么多次.. //边权赋到点上 树剖模板 //注意LCA.链的顶端不能统计到答案! #include <cstdio> #include <cctype> ...
- BZOJ.1497.[NOI2006]最大获利(最小割 最大权闭合子图Dinic)
题目链接 //裸最大权闭合子图... #include<cstdio> #include<cctype> #include<algorithm> #define g ...
- 潭州课堂25班:Ph201805201 第七课:控制流程 (课堂笔记)
# 条件判断 s = '储蓄卡' if s == '男': # 如果if 表达式成立 ,则执行下级语句 print('男性') elif s == '女': # 如果上面表达式不成立,执行本次判断,本 ...
- __x__(2)0905第二天__计算机软件和硬件
计算机(Computer)由硬件和软件组件,没有软件的计算机称为 裸机, 计算机的软件包括操作系统(OS)和应用软件(Software). 操作系统(Operating System,简称OS) 是管 ...
- android:ListView 的简单用法
首 先新 建 一个 ListViewTest 项 目, 并 让 ADT 自 动帮 我 们创 建 好 活动 . 然后 修 改 activity_main.xml 中的代码,如下所示: <Linea ...