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


pdf

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

[0x55a3f9b72135]> pdf
            ; DATA XREF from entry0 @ 0x55a3f9b7206d34: int main (int argc, char **argv, char **envp);0x55a3f9b72135      55             push rbp
│           0x55a3f9b72136      4889e5         mov rbp, rsp
│           0x55a3f9b72139      ba05000000     mov edx, 50x55a3f9b7213e      488d35bf0e00.  lea rsi, str.HACK_n     ; 0x55a3f9b73004 ; "HACK\n"0x55a3f9b72145      bf01000000     mov edi, 10x55a3f9b7214a      b800000000     mov eax, 00x55a3f9b7214f      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


!

进入可视化模式面板,使用后效果如下:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值