逆向工具angr的快捷教程:CTF解题实例

Posted 白马负金羁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逆向工具angr的快捷教程:CTF解题实例相关的知识,希望对你有一定的参考价值。

此前的文章中,曾经提过“angr是一个基于Python开发的二进制程序分析(Binary analysis)框架,可以用于开展动态符号执行(Symbolic Execution)和多种静态分析”。事实上,Symbolic Execution也正是angr的一个代表性功能。本文将使用angr的符号执行功能来解几道具有代表性的CTF练习题(原始题目中的待分析二进制代码参见【1】)。


题目一:find_condition

把程序文件导入到IDA中,按“F5”可以看到其反汇编之后解析出来的伪代码(C-like style code),如下图所示:

程序的逻辑是比较清楚的。比较两个字符串s1和s2,如果它们满足条件,就成功(输出“Good Job.”),否则就失败(输出“Try again.”)。其中,s1是把用户输入的字符串经complex_function函数处理后的结果。也可以考察一下该函数的反汇编结果:

以上是关于逆向工具angr的快捷教程:CTF解题实例的主要内容,如果未能解决你的问题,请参考以下文章

CTF 逆向工具angr的学习笔记

angr 02_angr_find_condition 完整脚本

angr 02_angr_find_condition 完整脚本

angr 02_angr_find_condition 完整脚本

angr 02_angr_find_condition 完整脚本

angr 00_angr_find demo