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

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

来源:本站整理 作者:佚名 时间:2017-09-15 TAG: 我要投稿

媒介
在过去的一年里我研讨了 radare2 好久,无论是加入CTF、逆向工程或是破绽发掘,我发明 radare2都能很好的晋升我的事情效力, 有时刻它也是我用来阐发歹意软件(如溯源)的对象,可怜的是很少有人听过它,能够是因为大多数人习气了应用 IDA Pro,OllyDBG, gdb,不管怎样,我都感到 radare2 应当成为你对象箱中的一部分.
因为我真的分外爱好这个名目,是以为了让人人能更好的懂得并应用它,我决议专门创立一个无关 r2 系列的文章来先容它的特色和功效,盼望能让人人更好的应用它去办理事情中的成绩.

迎接离开 IDA 10.0
radare2
radare2是一个开源的逆向工程和二进制阐发框架,它的壮大超越你的设想,包括反汇编、阐发数据、打补钉、比拟数据、搜刮、调换、虚构化等等,共事具有超强的剧本加载才能,它能够运转在险些一切主流的平台(GNU/Linux, .Windows *BSD, iOS, OSX, Solaris…)而且支撑许多的cpu架构和文件格局,我感到一切它的这些特性正好能表白出一个意思--那便是赐与你的应用以极大的自在.
radare2工程是由一系列的组件组成,这些组件能够在 radare2 界面或许零丁被应用--好比咱们将要懂得的rahash2, rabin2, ragg2三个组件,一切这些组件付与了 radare2 壮大的动态或动态阐发、十六进制编纂和溢出破绽发掘的才能.
在这以前,咱们有需要晓得进修应用 radare2 是一个比拟艰巨的进程,只管它有直观的GUI界面,但坦白的说,它确切没有IDA用起来便利,它的进修曲线我感到大抵是如许的

固然咱们不消因为它很复杂就退怯,我会竭尽所能让每一个知识点都更清楚易懂!
在开端前,你能够在这儿去懂得咱们以后正面临并试图办理的成绩.
这里是无关 radare2 最新的先容文章
 Check it out @ https://t.co/MybNPqq2CH@radareorg#radare2
— Itay Cohen (@Megabeets_Blog) March 27, 2017
得到radare2
装置
因为 咱们天天都在更新Radare2的开辟,是以倡议你应用最新的github版本,不要应用 stable版,因为有时刻 stable版能够尚未 最新的 github 版稳固.
$ git clone https://github.com/radare/radare2.git
$ cd radare2
$ ./sys/install.sh
假如你不想应用github版,或许想要每一个平台相对应的二进制文件,那就点击这里去下载吧!download page at the radare2 website.
更新
正如我以前所说,我死力保举你应用github上的最新版,假如你需要更新,那就太简略了,只需要上面这条敕令,我天天习气在早上更新一下 radare2 ,在这期间,你能够去喝杯咖啡..

$ ./sys/install.sh
卸载
oh...说实话我其实想不到任何来由,你会在看这篇文章的时刻需要去卸载  radare2 ,哈哈,不外假如你随时需要,那就如许吧
$ make uninstall
$ make purge
上面正式进入正题,let's go...
这里是crackme的下载地点here
好的,如今假定你们曾经装置好 radare2 ,crackme 文件也曾经下载到机械上,我如今开端先容 radare2 的根本用法,我将在 Remnux 体系上停止操纵,然则大多数敕令和阐明在 windows或许其余体系上都异样的.
敕令行参数
正如大多数软件的应用异样,最佳的懂得它的方法便是在它前面加一个 -h 参数

$ r2 -h
在这里我不会展现它一切的用法,我只会展现平凡我应用的比拟多而且很重要的参数:
Usage: r2 [-ACdfLMnNqStuvwz] [-P patch] [-p prj] [-a arch] [-b bits] [-i file]
          [-s addr] [-B baddr] [-M maddr] [-c cmd] [-e k=v] file|pid|-|--|=
  
-d: Debug the executable 'file' or running process 'pid'
-A: Analyze executable at load time (xrefs, etc)
-q: Quiet mode, exit after processing commands
-w: Write mode enabled
-L: List of supported IO plugins
-i [file]: Interprets a r2 script
-n: Bare load. Do not load executable info as the entrypoint
-c 'command; command; ...': Run r2 and execute commands (eg: r2 's main; px 60')
-p [prj]: Creates a project for the file being analyzed
-: Opens r2 with the malloc plugin that gives a 512 bytes memory area to play with
二进制信息
当我拿到一个二进制文件,起首就会去得到它的根本信息,这里将会用到 r2 框架里最强的一个对象 :rabin2.
rabin2 能够得到包括ELF, PE, Mach-O, Java CLASS文件的区段、头信息、导入导出表、字符串相干、进口点等等,而且支撑几种格局的输入文件.
应用上面的敕令得到更多的用法

man rabin2
咱们能够通过 -I 参数 来让 rabin2 打印出二进制文件的体系属性、说话、字节序、框架、和应用了哪些 加固技巧(canary, pic, nx).
$ rabin2 -I megabeets_0x1
havecode true
pic      false
canary   false
nx       false
crypto   false
va       true
intrp    /lib/ld-linux.so.2
bintype  elf
class    ELF32
lang     c
arch     x86
bits     32
machine  Intel 80386
os       linux
minopsz  1
maxopsz  16
pcalign  0
subsys   linux
endian   little

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

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