首页
社区
课程
招聘
[原创]angr简单使用和解android等ctf简单题
发表于: 2020-6-1 14:46 11760

[原创]angr简单使用和解android等ctf简单题

2020-6-1 14:46
11760

CLE是angr加载二进制文件的组建,在加载二进制文件的时候会分析病读取binary的信息

angr用VEX IR将指令转化为中间语言IR,分析IR并且模拟

angr的求解引擎叫Claripy (z3的封装)

SimulatorManager是angr模拟执行的控制中心,提供了.run , .explore, .step 等不同类型的执行选项

SimulateState是angr的最小分析单元,对应每个step都有一个state

图片描述
图片描述

图片描述

图片描述

Java层 checkFirst 判断code

1、长度16
2、字符是1-8的数字
图片描述

Native层
checkfirst要求注册码以12345678开头
checkAgain要求注册码为12345678数字的某种排列

图片描述

check_first
图片描述
check_again
图片描述

x86版本参考:1daK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2B7K9h3q4F1M7$3S2#2i4K6u0W2j5$3!0E0i4K6u0r3M7q4)9J5c8U0f1H3z5r3k6W2j5X3b7J5y4o6V1J5x3b7`.`.

相关资料参考:
微笑老弟的Angr基础笔记 https://bbs.pediy.com/thread-251278.htm
angr官方examples 939K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6S2L8X3N6J5i4K6u0r3j5h3&6Y4M7W2)9J5k6r3c8G2j5#2)9J5c8Y4c8J5k6h3g2Q4x3V1k6E0j5i4y4@1k6i4u0Q4x3V1k6W2P5r3q4E0M7r3I4W2M7H3`.`.

 
 
 
 
 
 

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 8
支持
分享
最新回复 (6)
雪    币: 977
活跃值: (435)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2

mark  最近也在学习angr 

请问 楼主看过这篇文章吗 6e4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6k6h3y4#2M7X3W2@1P5g2)9J5k6i4c8W2L8X3y4W2L8Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6A6L8X3c8W2P5q4)9J5k6i4m8Z5M7q4)9J5c8X3u0D9L8$3N6Q4x3V1k6E0M7$3N6Q4x3V1j5I4x3e0t1`.

对下面这段代码有啥心得吗  我看过deflat 脚本后 这段代码没看懂 所以过来请教

def statement_inspect(state):
    global modify_value
    expressions = state.scratch.irsb.statements[state.inspect.statement].expressions
    if len(expressions) != 0 and isinstance(expressions[0], pyvex.expr.ITE):
        state.scratch.temps[expressions[0].cond.tmp] = modify_value
        state.inspect._breakpoints['statement'] = []


2020-6-1 14:58
0
雪    币: 11591
活跃值: (8134)
能力值: ( LV12,RANK:219 )
在线值:
发帖
回帖
粉丝
3
上海刘一刀 mark  最近也在学习angr 请问 楼主看过这篇文章吗 3c6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6k6h3y4#2M7X3W2@1P5g2)9J5k6i4c8W2L8X3y4W2L8Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6A6L8X3c8W2P5q4)9J5k6i4m8Z5M7q4)9J5c8X3u0D9L8$3M7`. ...
还木有 一起研究研究
2020-6-1 21:35
0
雪    币: 3668
活跃值: (3734)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
您好,想请问一下在`if simgr.found:`之后的逻辑该怎么理解,因为我目前理解的是在explore之后就是已经模拟执行之后,而found存放的是符合约束的结果,为什么您在这一部分还能添加新的约束呀
2020-7-1 17:13
0
雪    币: 11591
活跃值: (8134)
能力值: ( LV12,RANK:219 )
在线值:
发帖
回帖
粉丝
5
安和桥南 您好,想请问一下在`if simgr.found:`之后的逻辑该怎么理解,因为我目前理解的是在explore之后就是已经模拟执行之后,而found存放的是符合约束的结果,为什么您在这一部分还能添加新的 ...
constraint可以在found之后添加的 相当于继续缩小范围 
2020-7-1 17:22
0
雪    币: 271
活跃值: (86)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
上海刘一刀 mark  最近也在学习angr 请问 楼主看过这篇文章吗 645K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6k6h3y4#2M7X3W2@1P5g2)9J5k6i4c8W2L8X3y4W2L8Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6A6L8X3c8W2P5q4)9J5k6i4m8Z5M7q4)9J5c8X3u0D9L8$3M7`. ...
inspect : Angr 的断点能力,ITE : An if-then-else expression 目的还是将2个分支都走到
2021-12-10 17:12
0
雪    币: 977
活跃值: (435)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
7
martinkro inspect : Angr 的断点能力,ITE : An if-then-else expression 目的还是将2个分支都走到
感谢
2022-2-1 19:48
0
游客
登录 | 注册 方可回帖
返回