[网鼎杯 2020 青龙组]singal

29 篇文章 1 订阅

记录下angr初使用

这道题是很简单的逻辑

32位

我们提取opcode

(你可以用convert)

我是用的IDApython\

import idc
adr=0x00403040
step=4#距离
op=[]
n=10#多少个数据
while(n):
    op.append(hex(idc.get_wide_dword(adr)))
    adr+=step
    n-=1
print(op)

然后我又下断点,提取每个"i"的值

import idaapi  
  
# 假设我们有一个eax的值  
eax_val = idaapi.get_reg_val("eax")  
  
# 获取AL的值(eax的最低8位)  
al_val = eax_val & 0xFF  
  
# 打印AL的值  
print(hex(al_val), end=',')

正向的话

对着操作就可以了

0x4,0x8,0x3,0x1,0x4,0x8,0x5,0x1,0x3,0x8,0xb,0x1,0xc,0x8,0x4,0x1,0x5,0x8,0x3,0x1,0xb,0x8,0xb,0x1,0x4,0x8,0x3,0x1,0x2,0x8,0x4,0x1,0xc,0x8,0xb,0x1,0x5,0x8,0x2,0x1,0x2,0x8,0x4,0x1,0x2,0x8,0x5,0x1,0x5,0x8,0x2,0x1,0x4,0x8,0x3,0x1,0x2,0x8,0xc,0x1,0x7,0x7,0x7,0x7,0x7,0x7,0x7,0x7,0x7,0x7,0x7,0x7,0x7,0x7,0x7

(只用15个就行)

_________________

angr方法::

[re]符号执行一把梭:2020网鼎杯青龙组re_signal_wp_网鼎杯re-signal真题-CSDN博客

我是看这个哥的博客学习的

这是我们想得到的

这是我们想避免的(加上比较有帮助,没有也行)

python脚本

import angr

p = angr.Project(r'C:\Users\ASUS\Desktop\signal.exe')  
state = p.factory.entry_state()  
simgr = p.factory.simgr(state)  
simgr.explore(find=0x004017A5 ,avoid=0x004016E6)  
flag = simgr.found[0].posix.dumps(0)[:15]    
print(flag)

这是window上跑的,我window没完成

import angr

p = angr.Project('./signal.exe')   #指定angr跑的程序
state = p.factory.entry_state()    #新建一个SimState的对象,得到一个初始化到二进制入口函数的SimState对象。
simgr = p.factory.simgr(state)   #创建simulation manager,angr的主要入口

simgr.explore(find=0x004017A5 ,avoid=0x004016E6)  #争取跑到输出成功的地址,避免跑到输出wrong的地址
flag = simgr.found[0].posix.dumps(0)[:15]     #得到flag
print(flag)

这是我在ubutu上用的

# 创建一个名为myenv的虚拟环境 python3 -m venv myenv

# 激活虚拟环境 source myenv/bin/activate

# 现在,在这个虚拟环境中安装angr pip install angr

这是配置的命令

就ok了

这个我理解的原来

应该就是爆破吧

我也看不懂,反正就是高级

_

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Nickname

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值