针对angr提供的练习题,现在进行求解08_angr_constraints,需要使用angr求解出正确密码。
具体代码如下所示

import angr
import claripy
import sysdef main(argv):path_to_binary = argv[1]project = angr.Project(path_to_binary)start_address = 0x8048625initial_state = project.factory.blank_state(addr=start_address)password = claripy.BVS('password', 128)password_address = 0x804a050  #求解入口地址initial_state.memory.store(password_address, password)simulation = project.factory.simgr(initial_state)# Angr will not be able to reach the point at which the binary prints out# 'Good Job.'. We cannot use that as the target anymore.address_to_check_constraint = 0x08048565    #此外为check_equals_AUPDNNPROEZRJWKB函数的开始地址simulation.explore(find=address_to_check_constraint)if simulation.found:solution_state = simulation.found[0]# check_equals_AUPDNNPROEZRJWKB函数的使用是输入constrained_parameter_address与constrained_parameter_size_bytesconstrained_parameter_address = 0x804a050     constrained_parameter_size_bytes = 0x10constrained_parameter_bitvector = solution_state.memory.load(constrained_parameter_address,constrained_parameter_size_bytes)constrained_parameter_desired_value = 'AUPDNNPROEZRJWKB' # :string# 构造一个表达式,判断constrained_parameter_bitvector与'AUPDNNPROEZRJWKB' 是否相等constraint_expression = constrained_parameter_bitvector == constrained_parameter_desired_value#并将表达式作为求解约束solution_state.add_constraints(constrained_parameter_bitvector == constrained_parameter_desired_value)solution = solution_state.solver.eval(password,cast_to=bytes)print('solution is: ',solution.decode('utf-8'))else:raise Exception('Could not find the solution')if __name__ == '__main__':main(sys.argv)

输入的入口地址为0x804a050,且其大小为16*8。

check_equals_AUPDNNPROEZRJWKB函数的开始地址为0x08048565。

下面验证实验结果
执行刚刚写好的程序,保存为scaffold08.py,并将其与08_angr_constraints放于同一文件夹中,具体如下图所示。

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

至此,求解08_angr_constraints已全部完成。

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

  1. mac x99算法 java_黑苹果从入门到精通 篇九:从Clover转向OpenCore的X99 iMac Pro(一)...

    黑苹果从入门到精通 篇九:从Clover转向OpenCore的X99 iMac Pro(一) 2019-12-27 17:01:17 196点赞 2085收藏 138评论 追加修改(2019-12-2 ...

  2. 【Linux】内核驱动篇九--设备模型

    内核驱动篇九--设备模型 一.起源 二.新方案 2.1 sysfs: 一种用内存模拟的文件系统,系统启动时mount到/sys目录 2.2 uevent 三.代码中自动mknod 一.起源 linux ...

  3. OC 获取view相对位置_电脑DIY 篇九十七:万元内预算上30显卡,10700散片配耕升RTX3070炫光OC显卡装机推荐_搜狐汽车...

    电脑DIY 篇九十七:万元内预算上30显卡,10700散片配耕升RTX3070炫光OC显卡装机推荐 2020-10-31 21:40:260点赞1收藏1评论 想攒一台电竞主机.家用主机.酷炫主机无从下 ...

  4. (Hibernate进阶)Hibernate系列——总结篇(九)

    这篇博文是hibernate系列的最后一篇,既然是最后一篇,我们就应该进行一下从头到尾,整体上的总结,将这个系列的内容融会贯通. 概念 Hibernate是一个对象关系映射框架,当然从分层的角度看,我 ...

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

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

  6. 拟真机器人拯救者怎么来_笔点聊科技 篇九:3499起、卷土重来?理性聊聊刚发布的联想拯救者手机Pro...

    笔点聊科技 篇九:3499起.卷土重来?理性聊聊刚发布的联想拯救者手机Pro 2020-07-23 10:44:27 0点赞 0收藏 0评论 创作立场声明:想让消费者接受品牌,真金白银买回家还感觉良好 ...

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

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

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

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

  9. jsp的安装,何志强篇

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

  10. asp功放怎么装_汽车音响安装全攻略--功放篇

    汽车音响安装全攻略--功放篇 安装功放比安装接收机或扬声器更需要一些技巧,但并不意味着不可操作.事先了解注意事项,可以减少发生故障的机率. 安 装 第一步:作好准备工作 功放与接收机间必须保持至少90 ...

最新文章

  1. Js选择框脚本 移动操作select 标签中的 option 项的操作事项
  2. c语言字符屏幕,C语言字符屏幕函数 - 编程资料 - Powered 万人网络编程学院 bcxy.yinese.com...
  3. Halcon图像增强方法与原理概述
  4. Minimum spanning tree HDU - 6954
  5. vue中Ajax(axios)及Ajax(vue-resource)的使用方法
  6. 1.10-linux三剑客之sed命令详解及用法
  7. unity_AR(一) 安卓手机无法显示模型和无法播放动画问题
  8. 取消setfill_9.1.7 setFillBefore方法:设置起始填充
  9. 阿里巴巴Java开发手册(黄山版)2022.2.3发布
  10. linux怎样压缩文件夹加密文件,linux下文件加密压缩和解压的方法
  11. 网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
  12. ios-mfi_蓝牙部分翻译
  13. azkaban报错Error Chunking during uploading files to db
  14. fastdfs添加storage节点
  15. 为什么要阅读——兼分享《首先,打破一切常规》[中译文]:世界顶级管理者的成功秘诀/(美)马库斯·白金汉,(美)柯特·科夫曼 著
  16. OWASP TOP 10-2021年十大Web应用安全风险榜单
  17. Kingbase兼容Oracle语法--连接操作符(+)
  18. win10怎么开启arp防火墙【系统天地】
  19. 利用matplotlib绘制圆环图的案例
  20. 使用WebGL去实现一个拖拽式UI代码生成App

热门文章

  1. linux 集成 3g 模块 串口 option,华为等 3G、4G模块拨号上网过程分析
  2. Spring Cloud Alibaba Seata工作原理
  3. Nginx 服务器安装及配置文件详解
  4. 用CSS制作细线表格
  5. 互联网科普-淘宝与天猫的对标
  6. 20170216--PYthon 类 +面向对象编程+(文件的处理+echo小程序的实现)
  7. MyEclipse服务器远程调试
  8. Benchmark与Profiler---性能调优得力助手
  9. 如何用sql语言只获得数据库当前日期,且格式为yyyy-mm-dd?
  10. for path多行变一列