angr

angr坑迟早要填,这里简单记录两个模板
r100题目

//64位程序 逻辑,输入flag 判断
import angr
proj=angr.Project('./r100')   //要加载的程序
st=proj.factory.entry_state()
sm=proj.factory.simulation_manager(st)
sm.explore(find=0x400844,avoid=0x400855) //find:正确的地址 avoid:错误的地址
print(sm.found[0].posix.dumps(0))

ais3_crackme题目

import angr
import claripy # 处理用户输入
proj=angr.Project('./ais3_crackme')
argv1=claripy.BVS('argv1', 50*8) # 猜测flag长度小于50,乘8是转换为字节
state=proj.factory.entry_state(args=['./ais3_crackme',argv1]) # 传递状态
simgr=proj.factory.simgr(state)
res=simgr.explore(find = 0x400602, avoid=0x40060e)
print(hex(res.found[0].solver.eval(argv1)))

技巧

print(simgr.found[0].solver.eval(argv1,cast_to=bytes))//以字符串形式输出
发布了42 篇原创文章 · 获赞 17 · 访问量 4990

猜你喜欢

转载自blog.csdn.net/weixin_45055269/article/details/105204920
今日推荐