(逆向)angr 执行二进制函数
来源:互联网 发布:周立功单片机同类公司 编辑:程序博客网 时间:2024/06/06 02:58
关于angr:
github 搜索angr
首先编译源码:
#include<stdio.h>
unsigned int ORHash(char *str , int len){
int i = 0 ;
unsigned int hash = 1315423911;
for (i =0;i<len;++i ,str++){
hash ^= (hash<<5 + (*str) + hash>>1 ) ;
}
return hash;
}
unsigned int TestFunc(char *s){
int hash = 0 ;
while (*s){
hash += (*s);
s++;
}
return hash;
}
int main(){
unsigned int tmp = 0;
tmp = 1315423911 ^328855977 + 3438859488 + ('y') ^((1315423911 ^ 328855977 + 3438859488 + ('y')) >> 2) +((1315423911 ^ 328855977 + 3438859488 + ('y')) << 5) +('y');
printf("%u\n",tmp);
printf("%u\n",'y');
printf("test = %d\n",TestFunc("aass"));
printf("orhash = %u\n" , ORHash("ysg" ,3));
}
得到可执行文件 test
用ida 得到函数ORHash的入口地址 0x40052D
下面使用angr 加载可执行文件test ,运行ORHash函数得到结果
import angrb = angr.Project('test',load_options={'auto_load_libs':False})cfg = b.analyses.CFGAccurate(keep_state = True)addr = 0x40052D# print cfg.graph# print len(cfg.graph.nodes()),len(cfg.graph.edges())## entry_node = cfg.get_any_node(addr)## print 'contexts :' ,len(cfg.get_all_nodes(addr))## print entry_node.predecessors# print entry_node.successors# print [jumpkind + ' to ' +hex(node.addr) for node , jumpkind in cfg.get_successors_and_jumpkind(entry_node)]entry_func = cfg.kb.functions[addr]# print entry_func.block_addrs# func_graph = entry_func.transition_graph# print func_graph# print entry_func.returningfunction = entry_func.callable# p = []out = function("qwe",3)print outprint out.args[0]
得到结果 947199883
和原可执行文件输出一致
- (逆向)angr 执行二进制函数
- 二进制符号执行分析框架angr的Windows安装教程
- 二进制分析框架angr基本信息
- 二进制分析框架angr基本信息
- Angr:一个具有动态符号执行和静态分析的二进制分析工具
- Angr:一个具有动态符号执行和静态分析的二进制分析工具
- 用angr解二进制题目1
- 利用angr进行二进制静态分析
- 符号执行工具angr安装教程
- angr:基于python的二进制分析框架 安装与使用
- 使用angr和Radare解决CMU的二进制炸弹
- Angr Manual
- angr初探
- 逆向工程核心原理学习笔记(十七):栈帧4:开始执行add()函数&生成栈帧
- 计算机安全超级工具(二十一)-二进制逆向工程
- 逆向工程实验---二进制炸弹(CSAPP Project)
- 逆向常用API函数
- 逆向虚函数
- 【Oracle】Oracle引起服务器宕机,查询定位是哪条SQL语句引起的
- Java互联网架构师视频课程 分布式系统架构 Dubbo ActiveMQ Netty
- 第六章 PX4-Pixhawk-Sensors解析
- C++基础之智能指针
- 1079. Total Sales of Supply Chain (25)
- (逆向)angr 执行二进制函数
- 51nod 1101 换零钱
- CSU 1867 John and Health rate
- hibernate中联合主键的使用
- 选择语句 while 和do..while
- gcc-stack-protector机制
- Android屏幕适配方案http://blog.csdn.net/lmj623565791/article/details/45460089
- React入门学习
- 国际专利分类表(2016版)