上图是程序的流程,大概说一下,int main(int argc,char *argv[],char *env[])
先判断argc是不是2,如果不是直接打印You need to enter the secret key!
如果是2,就一个文件名,和一个secret key字符串。接着调用verify函数来检查secret key 是否合法。

这是可执行文件的下载地址:http://pan.baidu.com/s/1pLe8hb9

接下来就用angr来符号化执行这个程序,直到有正确的key出现.

angr是一个python的库,可以去百度下载安装,很快就可以安装好

import angrdef main():p = angr.Project("./ais3_crackme")#建立一个工程argv1 = angr.claripy.BVS("argv1",100*8)#设置第二个参数也就是key的为800个字节长,因为开始不知道长度,其实在后面的verify函数里面可以确定是24.inital_state = p.factory.path(args=["./crackme1",argv1])#设置程序执行的初始条件pg = p.factory.path_group(inital_state)#set the inital state#这是执行流对象pg.explore(find=0x400602)#start to run the program直到执行到0x400602的时候结束,0x400602是:mov     edi, offset aCorrectThatIsT ; "Correct! that is the secret key!"的地址,执行到这里就代表找到了正确的keyfound = pg.found[0]#返回一个found对象,也就是一条正确的执行路径solution = found.state.se.any_str(argv1)#提取输入的keyprint solution[:solution.find('\00')]#去掉后面的0,因为我们假设有800个字节if  __name__=="__main__":main()

用angr解二进制题目1相关推荐

  1. Github标星59.7k:用动画的形式呈现解LeetCode题目的思路

    前些日子推荐了一个仓库,把常见算法用python语言实现了(见文章),近日在github上发现另外一个59700多star的仓库,用动画的形式呈现解LeetCode题目的思路,非常值得推荐. 仓库说明 ...

  2. 推荐:用动画的形式呈现解LeetCode题目的思路(github上25000多star)

    前些日子推荐了一个仓库,把常见算法用python语言实现了(见文章),近日在github上发现另外一个25000多star的仓库,用动画的形式呈现解LeetCode题目的思路,非常值得推荐. 仓库说明 ...

  3. python十进制转换其他进制直到输入q结束,python二进制转换,python将十进制转为二进制,题目描述:输入一个整...

    python二进制转换,python将十进制转为二进制,题目描述:输入一个整 题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 分析: python没有unsignedin ...

  4. 计算机网络IPv4地址详解——二进制和十进制关系

    计算机网络IPv4地址详解--二进制和十进制 一.二进制和十进制关 二.IPv4地址 一.二进制和十进制关 从上图(8位)我们可以看出一些特征: 二进制每进一位,十进制就乘二: 128之前的二进制数, ...

  5. 利用angr进行二进制静态分析

    简介: angr是一个二进制代码分析工具,能够自动化完成二进制文件的分析,并找出漏洞.angr基于python,它将以前多种分析技术集成进来,­­­它能够进行动态的符号执行分析,也能够进行多种静态分析 ...

  6. angr-example(解CTF题目)

    0x0 废话 emmm,总之就是官方给的examples啦.持续更新... 链接:https://docs.angr.io/examples 0x1 defcamp_r100 angr在CTF中最常见 ...

  7. 历史上悬疑未解的题目答案大揭秘

    历史上有不少精彩的智力题,其中有一些一直悬而未解,多少人纵然冥思苦想,也无法求解.于是有人开始求教生肖迷宫工作室.其实我也没经过深思熟虑,我的答案也不见得一定对,大家可以共同探讨. 色盲问题 假设:有 ...

  8. BUUCTF——[ACTF新生赛2020]SoulLike——使用angr解

    64位无壳.IDApro打开,查看main函数 逻辑很简单,我们来查看sub_83A函数.点进去,toobig 看了其他博客. 我们需要将ida /ctg目录下的hexrays.cfg文件中的MAX_ ...

  9. (逆向)angr 执行二进制函数

    关于angr: github 搜索angr 首先编译源码: #include<stdio.h> unsigned int ORHash(char *str , int len){     ...

最新文章

  1. PyCharm 配置远程python解释器和在本地修改服务器代码
  2. swiper4自动轮播切换手动触碰后停止踩坑——属性disableOnInteraction
  3. 轻松搭建基于 SpringBoot Vue 的 Web 商城应用
  4. SAP SOAMANAGER报错原因与故障排除方法
  5. 深度学习-计算机视觉--图像增广
  6. 各种服务器系统桌面,服务器系统云桌面
  7. mysql 排序后在查询
  8. python django+bootstrap4+mysql智慧交通系统构建
  9. Python——使用“_”下划线作为参数的占位符
  10. MySQL存储引擎InnoDB、MyISAM 、其它存储引擎介绍
  11. VMware Workstation 安装ssh服务器
  12. Oracle数据库、实例、用户、表空间、表之间的关系
  13. iPhone11的计算机怎么用,iPhone11怎么自设铃声
  14. 插入式CAN总线隔离适配器LCAN-Opto在高空作业平台上隔离干扰、调理信号的应用案例介绍
  15. 课程在线学习的小程序
  16. 俄罗斯“扎克伯格”:创建区块链版“微信” 27岁身价已达2.5亿美元
  17. 想转行人工智能?机会来了!!!
  18. 2020湖湘杯MISC全解-writeup
  19. L028-老男孩实效教育-nfs网络文件系统企业级优化实战-12节
  20. Exadata官方文档的位置

热门文章

  1. EL之GB(GBM):利用GB对回归(性别属性编码+调2参)问题(整数值年龄预测)建模
  2. TF之DD:利用Inception模型+GD算法生成更大尺寸的Deep Dream精美图片
  3. tensorflow-Inception-v3模型训练自己的数据代码示例
  4. asp.net 二级域名(路由方式实现)
  5. 一个简单的blog系统(十一) 增加文章检索功能
  6. Android之EventBus使用详解
  7. 淘宝内部大量使用的开源系统监控工具
  8. OSG+VS2010+win7环境搭建---OsgEarth编译
  9. web app指南之构建html5离线应用
  10. Busybox 设置登录用户名、密码