启动

在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


pdf

指令的作用是打印出反汇编后的汇编语言代码,测试输出如下:

[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命令介绍相关推荐

  1. Radare2 框架介绍及使用

    Radare2 框架介绍及使用 欢迎入群交流 radare2 这是整个框架的核心工具,它具有debugger和Hexeditor的核心功能,使您能够像打开普通的文件一样,打开许多输入/输出源,包括磁盘 ...

  2. 第五课:系统目录及ls·文件类型及alias命令介绍

    1.上过一次我们学习了单用户和救援模式及服务器秘钥登录等操作,而我们最终的目的还是要操作和使用linux系统,所以我们今天先初步学习linux的基本命令如下: 一·目录介绍        ls命令介绍 ...

  3. puppet子命令介绍

    puppet子命令介绍 # puppet -V                //查看puppet的版本 # puppet help              //查看puppet支持的一些子命令 # ...

  4. linux系统防火墙相关问题及常用命令介绍

    今天介绍关于linux系统防火墙:centos5.centos6.redhat6系统自带的是iptables防火墙,centos7.redhat7自带firewall防火墙,ubuntu系统使用的是u ...

  5. linux vim编辑文本是 m,linux基础命令介绍四:文本编辑 vim

    本文介绍vim(版本7.4)的一般用法 vim是功能强大的文本编辑器,是vi的增强版. vim [options] [file ..] 使用vim编辑一个文件的最常用命令就是: vim file 其中 ...

  6. 常见网络命令介绍及使用

    常见网络命令介绍及使用 ping 介绍 参数说明 使用例子 ipconfig 介绍 参数说明 使用例子 tracert 介绍 参数说明 使用例子 netstat 介绍 参数说明 使用例子 route ...

  7. linux route 刷新_linux基础命令介绍十五:推陈出新

    本文介绍ip.ss.journalctl和firewall-cmd,它们旨在代替linux中原有的一些命令或服务. 1.ip ip [OPTIONS] OBJECT COMMAND ip是iprout ...

  8. 查看MySQL数据库表的命令介绍

    如果需要查看MySQL数据库中都有哪些MySQL数据库表,应该如何实现呢?下面就为您介绍查看MySQL数据库表的命令,供您参考. 进入MySQL Command line client下 查看当前使用 ...

  9. linux学习-简单命令介绍及安装VMware Tools

    常用简单命令介绍 ethernet以太网 pts:模拟终端 图形界面: Ctrl+Alt+F1 字符界面:Ctrl+Alt+F2-F6 切换虚拟终端:(本机操作) # chvt 1-6 关闭图形界面, ...

  10. _linux文本过滤grep基础命令介绍

    在linux中经常需要对文本或输出内容进行过滤,最常用的过滤命令是grep grep [OPTIONS] PATTERN [FILE...] grep按行检索输入的每一行,如果输入行包含模式PATTE ...

最新文章

  1. 22课时、19大主题,CS 231n进阶版课程视频上线
  2. linux系统python截图不显示中文_Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题...
  3. iOS之深入解析依赖注入的原理与应用
  4. org.apache.hadoop.hbase.ClockOutOfSyncException
  5. C++学习笔记(二)——交换函数(swap)
  6. 流控思路——多消费者定量生产(第100篇)
  7. packer build 报错 无任何输出 一直报“skipping line: 1 skipping line: 2 skipping line: 3.....”
  8. 各种排序算法的总结和比较(转)
  9. Angular JS(二) 指令部分
  10. worldwind系列教程
  11. 智能硬件产品开发流程梳理
  12. Word中如何删除分隔符?
  13. Freeswitch 怎么配置 Proxy Media 和 bypass 模式
  14. String类的intern方法学习
  15. 常见的HTPP状态码
  16. 太实用了!Excel VBA常用代码!
  17. 将一个Excel中的数据导入DataGrid中
  18. dom4j解析xml,dom4j创建xml
  19. Android虚拟打电话程序实现
  20. GD32测量pwm波频率以及占空比

热门文章

  1. xml文档的pull解析与SAX解析
  2. jersery集成jackson实现restful api,由于jdk版本不一致导致的坑
  3. adnroid中LayoutParams的简单总结
  4. activity+window+view简单说明
  5. pl/sql 过程分页显示小案例
  6. oracle数据库补丁号解释,Oracle数据库版本对应的PSU和补丁号码
  7. andorid自定义ViewPager之——子ViewPager滑到边缘后直接滑动父ViewPager
  8. FFmpeg设置OpenMax硬件编码
  9. android获取root修改根目录,代码中获取root权限并随意修改根目录文件
  10. c语言 键盘输入结构体,C语言结构体问题