angr学习笔记(11)(SimProcedure)
angr系列
00_angr_find
01_angr_avoid
02_angr_find_condition
03_angr_symbolic_registers
04_angr_symbolic_stack
05_angr_symbolic_memory
06_angr_symbolic_dynamic_memory
07_angr_symbolic_file
08_angr_constraints
09_angr_hooks
10_angr_simprocedures
13_angr_static_binary
文章目录
- angr系列
- 00_angr_find
- 01_angr_avoid
- 02_angr_find_condition
- 03_angr_symbolic_registers
- 04_angr_symbolic_stack
- 05_angr_symbolic_memory
- 06_angr_symbolic_dynamic_memory
- 07_angr_symbolic_file
- 08_angr_constraints
- 09_angr_hooks
- 10_angr_simprocedures
- 13_angr_static_binary
- 伪代码分析
- 脚本
- 验证
伪代码分析
这里利用函数名字来进行hook操作:
check_symbol='check_equals_ORSDDWXHZURJRBDH'
然后把相应的hook替换函数进行申明:
p.hook_symbol(check_symbol,mySimPro())
实现替换函数:
class mySimPro(angr.SimProcedure):def run(self,user_input,user_input_length):angr_bvs=self.state.memory.load(user_input,user_input_length)desired='ORSDDWXHZURJRBDH'return claripy.If(desired==angr_bvs,claripy.BVV(1,32),claripy.BVV(0,32))
脚本
import angr
import sys
import claripy
def main(argv):bin_path=argv[1]p=angr.Project(bin_path)init_state=p.factory.entry_state()class mySimPro(angr.SimProcedure):def run(self,user_input,user_input_length):angr_bvs=self.state.memory.load(user_input,user_input_length)desired='ORSDDWXHZURJRBDH'return claripy.If(desired==angr_bvs,claripy.BVV(1,32),claripy.BVV(0,32))check_symbol='check_equals_ORSDDWXHZURJRBDH'p.hook_symbol(check_symbol,mySimPro())sm=p.factory.simgr(init_state)def is_good(state):return b'Good Job.' in state.posix.dumps(1)def is_bad(state):return b'Try again.' in state.posix.dumps(1)sm.explore(find=is_good,avoid=is_bad)if sm.found:found_state=sm.found[0]password=found_state.posix.dumps(0)print("Solution:{}".format(password.decode("utf-8")))else:raise Exception("Solution not found")if __name__=='__main__':main(sys.argv)
MSWKNJNAVTTOZMRY
验证
angr学习笔记(11)(SimProcedure)相关推荐
- SpringMVC:学习笔记(11)——依赖注入与@Autowired
SpringMVC:学习笔记(11)--依赖注入与@Autowired 使用@Autowired 从Spring2.5开始,它引入了一种全新的依赖注入方式,即通过@Autowired注解.这个注解允许 ...
- Hadoop学习笔记—11.MapReduce中的排序和分组
Hadoop学习笔记-11.MapReduce中的排序和分组 一.写在之前的 1.1 回顾Map阶段四大步骤 首先,我们回顾一下在MapReduce中,排序和分组在哪里被执行: 从上图中可以清楚地看出 ...
- HALCON 20.11:深度学习笔记(11)---目标检测
HALCON 20.11:深度学习笔记(11)---目标检测 HALCON 20.11.0.0中,实现了深度学习方法. 本章讲解了如何使用基于深度学习的对象检测. 通过对象检测,我们希望在图像中找到不 ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network
台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network 本博客主要整理自: http://blog.csdn.net/x ...
- 华为HCIA-datacom 学习笔记11——AAA原理与配置
华为HCIA-datacom 学习笔记11--AAA原理与配置 AAA原理与配置 1.AAA概述 认证(authentication):验证用户是否获得访问权,确定哪些用户可以访问网络 授权(auth ...
- 点云学习笔记11——VoxelNet算法+代码运行
点云学习笔记11--VoxelNet算法+代码运行 一.算法分析 摘要 介绍 相关工作 1.2. 贡献 2.VoxelNet 2.1.特征学习网络 2.1.1 特征学习网络 二.代码复现 2.1.环境 ...
- 凸优化学习笔记 11:对偶原理 拉格朗日函数
前面讲了凸优化问题的定义,以及一些常见的凸优化问题类型,这一章就要引入著名的拉格朗日函数和对偶问题了.通过对偶问题,我们可以将一些非凸问题转化为凸优化问题,还可以求出原问题的非平凡下界,这对复杂优化问 ...
- Python学习笔记11:函数修饰符
Python学习笔记11:函数修饰符 Python有很多有趣的特性,其中函数修饰符就是一个. 我们在之前的那个web应用示例中用过如下写法: @web.route('/log') @符号后边的,就是一 ...
- MIPS汇编语言学习笔记11:整数减法 (mult方法)
任务:整数相乘,并输出打印. 代码: .dataintA: .word 5intB: .word 2 .textli $v0, 1lw $a1, intAlw $a2, intBmult $a1, $ ...
- 从零写一个具有IOC-AOP-MVC功能的框架---学习笔记---11. MVC功能之http请求处理器的编写---简易框架最后一公里!
从零写一个具有IOC-AOP-MVC功能的框架-学习笔记 专栏往期文章链接: IOC功能相关章节: 从零写一个具有IOC-AOP-MVC功能的框架-学习笔记-01.项目初始化 从零写一个具有IOC-A ...
最新文章
- (转)iOS开发资源:推送通知相关开源项目--PushSharp、APNS-PHP以及Pyapns等
- oracle database 9i/10g/11g 编程艺术 源代码下载
- 大数据时代第一部分思维导图_大数据时代总结思维导图模板分享
- 求助:一个物理专业的在做GPU的人
- hdu 5062(dp)
- 研发和人力资源发展模式对比研究
- html5游戏制作入门系列教程(五)
- python 复数幂_python基础学习——运算符(1)
- JS开发之Factory(工厂)模式解析
- 性别政治和零和博弈:滴滴事件教会了我们什么?
- 百度、阿里、美团、头条…论剑AI,这里有开发者想知道的未来
- ssm项目之第三方QQ登陆
- React 问题总结
- scrcpy-将Android手机屏幕实时投射到电脑
- 一文搞懂 php 中的 DI 依赖注入
- 狼人杀暂时未连接到语音服务器,狼人杀iOS10用户无法连接到服务器 无法更新解决办法...
- 微型计算机硬件配置主要包括,2012年会计证考试微型计算机的基本构成3
- 一篇文章搞懂Django项目创建运行
- 长铗:搭积木无法建筑DeFi摩天楼,Bytom用工程思维构建MOV宇宙
- java输出九乘九乘法表
热门文章
- 成功解决ERROR: Could not install packages due to an EnvironmentError: [Errno 28] No space left on device
- CV之API:利用Face++的人体识别接口,实现摄像头实时手势识别
- 成功解决 keras\callbacks.py:999: UserWarning: `epsilon` argument is deprecated and will be removed, use
- ML之NN:利用神经网络的BP算法解决XOR类(异或非)问题(BP solve XOR Problem)
- Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来
- 未完全关闭数据库导致ORA-01012: not logged的解决
- 元素、属性、标题、段落、文本格式化
- 洛谷 - P1433 - 吃奶酪 - dfs
- python-day2~3
- 37.递推:Pell数列