自动化解题神器————Angr

Angr

  • 基于z3

    程序内输入

1
2
3
4
5
6
7
import angr

proj = angr.Project('./r100',auto_load_libs=False) #载入程序
state = proj.factory.entry_state() #找入口点
simgr = proj.factory.simgr(state) #从入口点开始爆破
simgr.explore(find=0x400844,avoid=0x400855) #期望路径和避免的路径
print simgr.found[0].posix.dump(0) #打印正确输入

参数输入

1
2
3
4
5
6
7
8
9
10
import angr
import claripy

proj = angr.Project('./filename',auto_load_libs=False) #载入程序
argv1 = claripy.BVS('argv1', 50*8) #定义参数 比特向量
state = proj.factory.entry_state(args=['./filename',argv1]) #找入口点
simgr = proj.factory.simgr(state) #从入口点开始爆破
simgr.explore(find=0x400844,avoid=0x400855) #期望路径和避免的路径
#print simgr.found[0].solver.eval(argv1) 输出的是ASCII码
print simgr.found[0].solver.eval(argv1,cast_to=str) #以cast_to来转换成字符串

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. Angr
    1. 1.1. 程序内输入
    2. 1.2. 参数输入
载入天数...载入时分秒...