首页 > 其他分享 >BUUCTF子[网鼎杯 2020 青龙组]singal(angr快速嗦哈解法)

BUUCTF子[网鼎杯 2020 青龙组]singal(angr快速嗦哈解法)

时间:2022-12-13 00:11:46浏览次数:54  
标签:case virtualenv BUUCTF singal vm 虚拟环境 2020 angr 安装

先查壳,发现是32位程序

丢ida继续分析,发现存在vm_opread函数,根据以往做题经验来看,这个题像是虚拟机保护的题目。

这里首先是将opcode_table(我自己命的名字)复制前456个字节给v4,然后再把v4和114传入vm_opread.

我们可以去看看opcode_table表里面有什么数据?

发现普遍都是一些小的操作数,而在汇编中,通常以机器码来代替指令,如mov,nop,add,sub,push,pop等指令都有相应的操作数,这里很可能就类似于指令集。

继续对vm_opread函数进行分析。

发现存在while+switch分支,所以我们可以确定这是一道vm保护的题目。在vm_opread函数中一共有11种指令集,对应这里面函数的case也刚好是11种。

在case10我们发现有存在read(Str)函数,发现是让我们输入长度为15的字符串,然后存入Str,外面的case就是对case进行一些操作。

而最终我们要解出这道题的关键就是,v9要大于114(前面main函数中传参进来的)。执行到这里我们的就可以拿到flag

而在众多case中,除了case10初始输入之外,还有case7的情况需要注意,不能跳到case7里面去,不然程序直接退出了。

这里我是用angr的解法,在笔记本上直接wsl+虚拟环境+angr做的。

顺便说一下angr的安装流程

先看看有没有pip3或者Pip,我这里是pip3.

然后记得安装python,不建议python3.6版本以下,容易出问题~~.

关键的一点来了,就是安装虚拟环境

pip3 install virtualenv 或 pip install virtualenv 都可以!!!

安装完之后,在你常做题的目录下建一个文件夹,名字随便取,看个人喜好。建错地方也没关系,到时候开环境后,切到做题的目录就可以了,不影响。

然后创立一个独立的环境

virtualenv -p 自己安装python的位置(用whereis python或python3查,填第一个就可以了) myenv

譬如我这里就是,virtualenv -p /usr/bin/python3 myenv

然后启动环境:source myenv/bin/activate

成功进入到虚拟环境后,我们就可以安装angr了

安装angr:pip3 install angr 或 pip install angr

安装省略1w字

最后输入python3,输入import angr,看有没有报错,没有报错说明安装成功!!!

angr的用法:

启动环境:source xxx(虚拟环境的文件夹,前提是你在那个目录下)/bin/activate

导入angr库:import angr

proj = angr.Project('文件名') # 新建一个工程

init_state=proj.factory.entry_sate()  # 设置程序的入口
sm=proj.factory.simulation_manager(init_state) # 执行程序
sm.explore(find=0x......... , avoid=0x...........)  find表示执行到某个条件,avoid表示避免某个条件

sm.found[0] # 找到符合条件的值

退出环境:deactivate

 

这里题目,因为我们需要跳转到_eip也就是v9刚好大于等于114的时候,程序就可以模拟出此时的结果。同时也要避免case 7的那种情况存在,所以我们直接动态调试,找地址,然后写脚本

可以看到在执行后,发现有很多报红,原因是因为我没有设置更多的约束条件。

最后print(sm.found[0].posix.dumps(0))即可

可以看到已经模拟执行,flag成功出来了

flag{757515121f3d478}

解毕

参考资料:https://xz.aliyun.com/t/3990

https://blog.csdn.net/weixin_52369224/article/details/121319151

https://blog.csdn.net/a_touhouer/article/details/106058311

 

标签:case,virtualenv,BUUCTF,singal,vm,虚拟环境,2020,angr,安装
From: https://www.cnblogs.com/qsons/p/16977506.html

相关文章

  • 2020 IDEA插件无法安装问题
    问题描述Plugins的Marketplace无法显示插件,搜索插件一直转圈圈、等待搜索中,显示HTTPProxySettings…方法一:1.打开Settings按图找到Updates,取消勾选Automatically2.......
  • 拼多多 2020校招 多多的电子字典(字典树前缀搜索,DP)
    多多鸡打算造一本自己的电子字典,里面的所有单词都只由a和b组成。每个单词的组成里a的数量不能超过N个且b的数量不能超过M个。多多鸡的幸运数字是K,它打算把所有满足条件的......
  • 拼多多 2020校招 多多的排列函数(找规律 构造)
    数列{An} 为N的一种排列。例如N=3,可能的排列共6种:123456​​1,2,3​​​​1,3,2​​​​2,1,3​​​​2,3,1​​​​3,1,2​​​​3,2,1​​定义函数F: 其中......
  • MBR20200FCT-ASEMI插件低压降肖特基二极管
    编辑:llMBR20200FCT-ASEMI插件低压降肖特基二极管型号:MBR20200FCT品牌:ASEMI封装:TO-220F正向电流:20A反向电压:200V引线数量:3芯片个数:2芯片尺寸:102MIL漏电流:10ua恢复时间:5ns浪涌......
  • MBR20200FCT-ASEMI插件低压降肖特基二极管
    编辑:llMBR20200FCT-ASEMI插件低压降肖特基二极管型号:MBR20200FCT品牌:ASEMI封装:TO-220F正向电流:20A反向电压:200V引线数量:3芯片个数:2芯片尺寸:102MIL漏电流:10ua恢......
  • Nuxt.js IIS部署,Nuxt.js 发布部署vue-cli 安装 2020最新 vue 4.0安装
    第一步:服务器安装node.js环境1、安装node.js下载地址​​http://nodejs.cn/download/​​我是全部默认下一步的,安装成功之后运行命令查看是否安装成功如果没有出现版本号,......
  • [BUUCTF][WEB][极客大挑战 2019]PHP 1
    打开靶机URL看到字面提示因为每次猫猫都在我键盘上乱跳,所以我有一个良好的备份网站的习惯不愧是我!!!说明该网站有备份,说不定放在了Http服务器的某个目录下那么这里我们......
  • [BUUCTF][WEB][极客大挑战 2019]BabySQL 1
    靶机打开url界面上显示,它做了更严格的过滤。看来后台是加了什么过滤逻辑老规矩先尝试时候有sql注入的可能,密码框输入123'爆出sql错误信息,说明有注入点构造万能密码注......
  • [BUUCtF][WEB][ACTF2020 新生赛]Upload 1
    打开靶机url,右键查看网页源代码其中有一段代码<divclass="light"><spanclass="glow"> <formenctype="multipart/form-data"method="post"onsubmit="returncheck......
  • 20201208史逸霏电子公文传输系统——个人贡献
    一、个人贡献绘制状态图  负责前端页面设计小组总共代码行数为5992,我贡献代码860行。相关代码链接:https://gitee.com/yannii/faker/tree/master/WebRoot小组总......