欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Radare 2之旅:通过crackme实例讲解Radare 2在逆向中的应用(上)

来源:本站整理 作者:佚名 时间:2017-09-15 TAG: 我要投稿
| iz                 Strings in data sections
| izz                Search for Strings in the whole binary
| iZ                 Guess size of binary program
i 开首的敕令主如果用来得到各类信息。
阐发
radare2 不会主动去阐发一个文件,因为如许做的价值太大了,它需要消费许多的光阴,尤其是大文件,无关阐发的操纵或许设置启动时不阐发能够去 radare2 的博客看看 this post.
固然阐发是一个需要的功效,r2 也供给了许多与之相干的功效,就像以前说的,咱们能够在 'a' 前面加 '?' 来摸索这个系列的敕令:
[0x08048370]> a?
|Usage: a[abdefFghoprxstc] […]
| ab [hexpairs]    analyze bytes
| abb [len]        analyze N basic blocks in [len] (section.size by default)
| aa[?]            analyze all (fcns + bbs) (aa0 to avoid sub renaming)
| ac[?] [cycles]   analyze which op could be executed in [cycles]
| ad[?]            analyze data trampoline (wip)
| ad [from] [to]   analyze data pointers to (from-to)
| ae[?] [expr]     analyze opcode eval expression (see ao)
| af[?]            analyze Functions
| aF               same as above, but using anal.depth=1
| ag[?] [options]  output Graphviz code
| ah[?]            analysis hints (force opcode size, …)
| ai [addr]        address information (show perms, stack, heap, …)
| ao[?] [len]      analyze Opcodes (or emulate it)
| aO               Analyze N instructions in M bytes
| ar[?]            like ‘dr’ but for the esil vm. (registers)
| ap               find prelude for current offset
| ax[?]            manage refs/xrefs (see also afx?)
| as[?] [num]      analyze syscall using dbg.reg
| at[?] [.]        analyze execution traces
Examples:
f ts @ S*~text:0[3]; f t @ section..text
f ds @ S*~data:0[3]; f d @ section..data
.ad t t+ts @ d:ds
平日我会应用 'aa' 敕令来阐发文件,固然应用 'aa?'能够得到更多的用法,这里因为文件很小的缘故原由,我抉择用 'aaa' 来尽能够的阐发出更多更过细的信息,固然你也能够在运转 radare2的应用 -A 参数来间接阐发一个文件(比方 r2 -A megabeets_0x1)
[0x08048370]> a?
[x] Analyze all flags starting with sym. and entry0 (aa)
[0x08048370]> aaa
[x] Analyze all flags starting with sym. and entry0 (aa)
[x] Analyze len bytes of instructions for references (aar)
[x] Analyze function calls (aac)
[*] Use -AA or aaaa to perform additional experimental analysis.
[x] Constructing a function name for fcn.* and sym.func.* functions (aan)
Flags
阐发实现以后, r2会将一切有用的信息和特定的名字绑定在一起,好比区段、函数、标记、字符串,这些都被称作 'flags', flags 被整合进 ,一个 flag 是一切相似特性的聚集,展现一切的 flag ,用 'fs' 敕令:
[0x08048370]> fs
0    4 . strings
1   35 . symbols
2   82 . sections
3    5 . relocs
4    5 . imports
5    1 . functions
咱们能够应用 'fs ' 加 'f' 来打印出 这个 flags 上面包括的信息,应用分号来距离多条敕令(‘cmd1;cmd2;cmd3;...’).
[0x08048370]> fs imports; f
0x08048320 6 sym.imp.strcmp
0x08048330 6 sym.imp.strcpy
0x08048340 6 sym.imp.puts
0xffffffff 16 loc.imp.__gmon_start__
0x08048350 6 sym.imp.__libc_start_main
咱们看到 r2 列出了这个二进制文件的导出表--认识的 ‘strcmp’, ‘strcpy’, ‘puts’,等函数,并和它们的其实地点相干联,异样咱们能够列出 字符串 flagspace:
Strings
咱们看到 r2 标记出了 字符串的偏移地点、变量名.如今咱们来看看字符串吧,这里有几种方法能够检查文件的字符串,你能够依据自己的需要来抉择.
iz – 列出数据段里的字符串
izz – 在全部二进制文件中搜刮字符串.
[0x08048370]> iz
vaddr=0x08048700 paddr=0x00000700 ordinal=000 sz=21 len=20 section=.rodata type=ascii string=\n .:: Megabeets ::.
vaddr=0x08048715 paddr=0x00000715 ordinal=001 sz=23 len=22 section=.rodata type=ascii string=Think you can make it?
vaddr=0x0804872c paddr=0x0000072c ordinal=002 sz=10 len=9 section=.rodata type=ascii string=Success!\n

上一页  [1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载