针对angr提供的练习题,现在进行求解07_angr_symbolic_file,需要使用angr求解出正确密码。但是需要提供排除地址以减少路径求解时间。
具体代码如下所示

import angr
import claripy
import sysdef main(argv):path_to_binary = argv[1]project = angr.Project(path_to_binary)start_address = 0x80488eainitial_state = project.factory.blank_state(addr=start_address)filename = 'OJKSQYDP.txt'  # :stringsymbolic_file_size_bytes = 64password = claripy.BVS('password', symbolic_file_size_bytes * 8)password_file = angr.storage.SimFile(filename, content=password, size=symbolic_file_size_bytes)initial_state.fs.insert(filename,password_file)simulation = project.factory.simgr(initial_state)def is_successful(state):stdout_output = state.posix.dumps(sys.stdout.fileno())return b'Good Job.' in stdout_outputdef should_abort(state):stdout_output = state.posix.dumps(sys.stdout.fileno())return b'Try again.' in stdout_outputsimulation.explore(find=is_successful, avoid=should_abort)if simulation.found:solution_state = simulation.found[0]solution = solution_state.solver.eval(password,cast_to=bytes)print(solution.decode('utf-8'))else:raise Exception('Could not find the solution')if __name__ == '__main__':main(sys.argv)

把第一个读取的内容存入OJKSQYDP.txt,因此入口地址为其后指令,即0x80488ea。文件大小为64,对应指令push offset a64s。

因为需要将输入内容存储在OJKSQYDP.txt,再读取并存储于buffer中。此外需要模拟文件系统,使用angr.storage.SimFile(),里面的内容为自定义的符号变量password。
下面验证实验结果
执行刚刚写好的程序,保存为scaffold07.py,并将其与07_angr_symbolic_file放于同一文件夹中,具体如下图所示。

再执行07_angr_symbolic_file,然后需要我们输入angr刚刚求解出的密码,结果为Good Job。

至此,求解07_angr_symbolic_file已全部完成。

Angr安装与使用之使用篇(八)相关推荐

  1. linux 可道云_unraid折腾笔记 篇八:手把手教你安装官方可道云,媲美FB的文件管理神器,学不会找我...

    unraid折腾笔记 篇八:手把手教你安装官方可道云,媲美FB的文件管理神器,学不会找我 2020-04-15 17:08:53 46点赞 232收藏 53评论 写在前面 unRaid作为Nas领域直 ...

  2. 8T磁盘阵列文件存储服务器 威联通,NAS私有云老司机折腾体验记 篇八:QNAP 威联通TR-004磁盘阵列外接盒使用教程...

    NAS私有云老司机折腾体验记 篇八:QNAP 威联通TR-004磁盘阵列外接盒使用教程 2019-03-19 11:38:24 25点赞 232收藏 28评论 之前,为了追求极佳的笔记本使用体验,笔者 ...

  3. ps4移植android游戏,捡垃圾之路 篇八:这一次PSV用实力吊打Switch!2021你需要知道的安卓移植大作(含游戏下载)...

    捡垃圾之路 篇八:这一次PSV用实力吊打Switch!2021你需要知道的安卓移植大作(含游戏下载) 2021-04-06 13:20:15 89点赞 463收藏 125评论 创作立场声明:PSV我已 ...

  4. 群晖nas介绍文档_手把手带你玩转NAS 篇八:NAS文档随身带——多终端文件同步介绍(群晖drive篇)...

    手把手带你玩转NAS 篇八:NAS文档随身带--多终端文件同步介绍(群晖drive篇) 2020-01-08 15:23:44 24点赞 214收藏 31评论 你是AMD Yes党?还是intel和N ...

  5. 详解centos7虚拟机安装elasticsearch5.0.x-安装篇(自己做测试了,es启动有错误可以在这上面找)

    本篇文章主要介绍了centos7虚拟机安装elasticsearch5.0.x-安装篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. centos7虚拟机安装elasticsearch5.0.x ...

  6. 安装加密中间件 crypto - 命令篇

    安装加密中间件 crypto - 命令篇 安装加密中间件 -- crypto 项目需要,有时候需要安装中间加密件,比如 crypto 一. cmd命令: 先cd到根目录:cd ...略 ...\boo ...

  7. MongoDB安装中断问题 - 踩坑篇

    中断了安装?再重新安装已经报错? 是不是会弹框报错:"An installation for MongoDB 3.6.9 2008R2Plus SSL is currently suspen ...

  8. java 跨平台很鸡肋,Mac 篇八:Mac上的这个软件看起来很鸡肋,其实很牛很强大

    Mac 篇八:Mac上的这个软件看起来很鸡肋,其实很牛很强大 2019-11-26 11:37:36 8点赞 42收藏 1评论 用了很多年Mac,可能这个应用都没有注意到,看起来不起眼,其实用好它,不 ...

  9. rtx2060什么水平_我的GAMING之路 篇八:光追到底是什么鬼?—微星VENTUS RTX2060评测...

    我的GAMING之路 篇八:光追到底是什么鬼?-微星VENTUS RTX2060评测 2019-03-01 17:26:04 10点赞 22收藏 18评论 一.光追甜品 随着硬件的发展遇到瓶颈,缺乏了 ...

  10. jsp的安装,何志强篇

    <script type="text/javascript"> google_ad_client = "pub-8800625213955058"; ...

最新文章

  1. 到底什么是面向对象,面试中怎么回答。面向过程和面向对象的区别是什么。java跨平台特性以及java和C++的区别。面向对象的三大特性——封装、继承和多态。面向对象的高拓展性以及低耦合度怎么体现?
  2. SQL Server 优化---为什么索引视图(物化视图)需要with(noexpand)强制查询提示
  3. 【WPF】ListBox嵌套与事件冒泡
  4. Host ‘host_name’ is blocked
  5. 网站不大但加载很慢怎么优化_博客网站首页加载优化
  6. jooq映射原理_JOOQ事实:从JPA批注到JOOQ表映射
  7. Juniper发展史
  8. angularjs路由_AngularJS路由示例– ngRoute,$ routeProvider
  9. docker中启动Springboot时异常之Failed to instantiate [com.zaxxer.hikari.HikariDataSource]
  10. 用Python看穿马赛克!
  11. 虚拟机上WindowsXP系统下载QQ和打开https网站证书问题打不开解决
  12. 语句摘抄——第10周
  13. 一台电脑同时安装IE6、IE7、IE8三种浏览器
  14. 当我们在谈SWIFT时,到底在谈什么?
  15. 怎样选择线阵相机,线阵镜头,线阵光源
  16. TCX推出前沿货币债券指数
  17. Jenkins自动构建(CI/DI)项目(一)
  18. JDK1.8 Unsafe类中的park和unpark方法解析
  19. 岭南师范学院计算机证书,2017年岭南师范学院全国计算机等级考试网上报考通知第48次网上预报名(自行打印带有相片的预报名表并签名)...
  20. c语言实现运输问题表上作业法,运输问题的表上作业法

热门文章

  1. 人一生的8种朋友(看看身边的朋友属于哪种)
  2. 探索线程安全背后的本质——volatile
  3. 左神直通BAT算法(进阶篇)-上
  4. java学习笔记 --- 面向对象3
  5. Swift 再等等?我的答案是:快上车
  6. 3.13、@InitBinder 和 WebDataBinder
  7. Linux--进程组 作业 会话 守护(精灵)进程
  8. [精彩视频分享]JS+CSS实现的轮播效果图
  9. NIS 病毒库 更新 地址
  10. 虚拟机在教学实验中的应用