radare2命令介绍
启动
在Ubuntu中输入r2
,输出如下:
zyjsuper@ubuntu:~$ r2
Usage: r2 [-ACdfLMnNqStuvwzX] [-P patch] [-p prj] [-a arch] [-b bits] [-i file][-s addr] [-B baddr] [-m maddr] [-c cmd] [-e k=v] file|pid|-|--|=
其中参数含义如下:
- d:以debuger模式启动
命令
测试程序如下
void main(){write(1,"HACK\n",5);
}
a
aaa
指令的作用是分析全部二进制代码,radare2会自动为我们划分各个程序并进行命名:
测试输出如下:
[0x7fc64ba36090]> aaa
[x] Analyze all flags starting with sym. and entry0 (aa)
[x] Analyze function calls (aac)
[x] Analyze len bytes of instructions for references (aar)
[x] Check for vtables
[TOFIX: aaft can't run in debugger mode.ions (aaft)
[x] Type matching analysis for all functions (aaft)
[x] Propagate noreturn information
[x] Use -AA or aaaa to perform additional experimental analysis.
afl
指令的作用是列出所有的方程信息,包括内存地址,size,bbs,名称
测试输出如下:
[0x55a3f9b72135]> afl
0x55a3f9b72050 1 42 entry0
0x55a3f9b74fe0 1 4121 reloc.__libc_start_main
0x55a3f9b72080 4 41 -> 34 sym.deregister_tm_clones
0x55a3f9b720b0 4 57 -> 51 sym.register_tm_clones
0x55a3f9b720f0 5 57 -> 50 sym.__do_global_dtors_aux
0x55a3f9b72040 1 6 sym.imp.__cxa_finalize
0x55a3f9b72130 1 5 entry.init0
0x55a3f9b72000 3 23 map._home_zyjsuper_learn_radare2_test.r_x
0x55a3f9b721c0 1 1 sym.__libc_csu_fini
0x55a3f9b721c4 1 9 sym._fini
0x55a3f9b72160 4 93 sym.__libc_csu_init
0x55a3f9b72135 1 34 main
0x55a3f9b72030 1 6 sym.imp.write
0x55a3f9b71000 3 126 -> 181 loc.imp._ITM_deregisterTMCloneTable
p
指令的作用是打印出反汇编后的汇编语言代码,测试输出如下:
[0x55a3f9b72135]> pdf; DATA XREF from entry0 @ 0x55a3f9b7206d
┌ 34: int main (int argc, char **argv, char **envp);
│ 0x55a3f9b72135 55 push rbp
│ 0x55a3f9b72136 4889e5 mov rbp, rsp
│ 0x55a3f9b72139 ba05000000 mov edx, 5
│ 0x55a3f9b7213e 488d35bf0e00. lea rsi, str.HACK_n ; 0x55a3f9b73004 ; "HACK\n"
│ 0x55a3f9b72145 bf01000000 mov edi, 1
│ 0x55a3f9b7214a b800000000 mov eax, 0
│ 0x55a3f9b7214f e8dcfeffff call sym.imp.write ; ssize_t write(int fd, const char *ptr, size_t nbytes)
│ 0x55a3f9b72154 90 nop
│ 0x55a3f9b72155 5d pop rbp
└ 0x55a3f9b72156 c3 ret
d
db
指令的作用是设置断点,使用范例如下:
[0x55a3f9b72135]> db 0x55a3f9b7214f
dc
指令的作用是继续执行先前的程序,直到到达下一个断点,使用范例如下(配合前面的db一起使用):
[0x55a3f9b72135]> dc
hit breakpoint at: 0x55a3f9b7214f
V
!
进入可视化模式面板,使用后效果如下:
radare2命令介绍相关推荐
- Radare2 框架介绍及使用
Radare2 框架介绍及使用 欢迎入群交流 radare2 这是整个框架的核心工具,它具有debugger和Hexeditor的核心功能,使您能够像打开普通的文件一样,打开许多输入/输出源,包括磁盘 ...
- 第五课:系统目录及ls·文件类型及alias命令介绍
1.上过一次我们学习了单用户和救援模式及服务器秘钥登录等操作,而我们最终的目的还是要操作和使用linux系统,所以我们今天先初步学习linux的基本命令如下: 一·目录介绍 ls命令介绍 ...
- puppet子命令介绍
puppet子命令介绍 # puppet -V //查看puppet的版本 # puppet help //查看puppet支持的一些子命令 # ...
- linux系统防火墙相关问题及常用命令介绍
今天介绍关于linux系统防火墙:centos5.centos6.redhat6系统自带的是iptables防火墙,centos7.redhat7自带firewall防火墙,ubuntu系统使用的是u ...
- linux vim编辑文本是 m,linux基础命令介绍四:文本编辑 vim
本文介绍vim(版本7.4)的一般用法 vim是功能强大的文本编辑器,是vi的增强版. vim [options] [file ..] 使用vim编辑一个文件的最常用命令就是: vim file 其中 ...
- 常见网络命令介绍及使用
常见网络命令介绍及使用 ping 介绍 参数说明 使用例子 ipconfig 介绍 参数说明 使用例子 tracert 介绍 参数说明 使用例子 netstat 介绍 参数说明 使用例子 route ...
- linux route 刷新_linux基础命令介绍十五:推陈出新
本文介绍ip.ss.journalctl和firewall-cmd,它们旨在代替linux中原有的一些命令或服务. 1.ip ip [OPTIONS] OBJECT COMMAND ip是iprout ...
- 查看MySQL数据库表的命令介绍
如果需要查看MySQL数据库中都有哪些MySQL数据库表,应该如何实现呢?下面就为您介绍查看MySQL数据库表的命令,供您参考. 进入MySQL Command line client下 查看当前使用 ...
- linux学习-简单命令介绍及安装VMware Tools
常用简单命令介绍 ethernet以太网 pts:模拟终端 图形界面: Ctrl+Alt+F1 字符界面:Ctrl+Alt+F2-F6 切换虚拟终端:(本机操作) # chvt 1-6 关闭图形界面, ...
- _linux文本过滤grep基础命令介绍
在linux中经常需要对文本或输出内容进行过滤,最常用的过滤命令是grep grep [OPTIONS] PATTERN [FILE...] grep按行检索输入的每一行,如果输入行包含模式PATTE ...
最新文章
- 22课时、19大主题,CS 231n进阶版课程视频上线
- linux系统python截图不显示中文_Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题...
- iOS之深入解析依赖注入的原理与应用
- org.apache.hadoop.hbase.ClockOutOfSyncException
- C++学习笔记(二)——交换函数(swap)
- 流控思路——多消费者定量生产(第100篇)
- packer build 报错 无任何输出 一直报“skipping line: 1 skipping line: 2 skipping line: 3.....”
- 各种排序算法的总结和比较(转)
- Angular JS(二) 指令部分
- worldwind系列教程
- 智能硬件产品开发流程梳理
- Word中如何删除分隔符?
- Freeswitch 怎么配置 Proxy Media 和 bypass 模式
- String类的intern方法学习
- 常见的HTPP状态码
- 太实用了!Excel VBA常用代码!
- 将一个Excel中的数据导入DataGrid中
- dom4j解析xml,dom4j创建xml
- Android虚拟打电话程序实现
- GD32测量pwm波频率以及占空比
热门文章
- xml文档的pull解析与SAX解析
- jersery集成jackson实现restful api,由于jdk版本不一致导致的坑
- adnroid中LayoutParams的简单总结
- activity+window+view简单说明
- pl/sql 过程分页显示小案例
- oracle数据库补丁号解释,Oracle数据库版本对应的PSU和补丁号码
- andorid自定义ViewPager之——子ViewPager滑到边缘后直接滑动父ViewPager
- FFmpeg设置OpenMax硬件编码
- android获取root修改根目录,代码中获取root权限并随意修改根目录文件
- c语言 键盘输入结构体,C语言结构体问题