欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

scanner怎样回到文件开头_Radare2逆向分析dex/so/二进制等文件的使用方法

发布时间:2025/4/16 59 豆豆
生活随笔 收集整理的这篇文章主要介绍了 scanner怎样回到文件开头_Radare2逆向分析dex/so/二进制等文件的使用方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

git clone https://github.com/radareorg/radare2.git

git pull

r2pm init

r2pm update

sys/install.sh

radare2 -h

rabin2是radare2套件中的一个工具,主要用来提取二进制文件中的信息

rabin2 -qi classes.dex | grep -i -e sms -e bluetooth -e install -e PackageManager -e Datagram -e Telephony -e nfc -e exec

rabin2 -qi ~/gyp/SecurityAnalysis/apk/classes.dex | grep -i -e sms -e bluetooth -e install -e PackageManager -e Datagram -e Telephony -e nfc -e exec

readelf -d libcoser.so 

i开头的命令主要用来获取各种信息

i? 

a开头的命令用于分析文件

a? 

VV/vv命令进入图形化界面

大写的VV进入图形化模式(键盘h、j、k、l按键移动图像)使用p/P切换图形模式,空格切换文本图形模式,文本下可以用p切换模式,小写的vv用来粗略浏览函数信息 

按键盘q可以退出图形化界面,回到shell

首先rabin2加上-I参数来让rabin2打印出二进制文件的系统属性、语言、字节序、框架、以及使用了哪些加固技术

rabin2 -I 文件名

r2 filename加载文件

r2 文件名

直接使用r2 filename进入程序。使用-d选项进入调试模式,输入!在调试的时候可以看到历史操作记录

使用ie命令手动打印出入口点

aaa分析程序中所有函数,分析前radare2识别不了函数,分析后就可以正常打印函数代码了(pdf打印函数代码),aa命令只分析主函数

aa或者aaa进行细致的分析

分析完成之后,r2会将所有有用的信息和特定的名字绑定在一起,比如区段、函数、符号、字符串,这些都被称作'flags',flags被整合进,一个flag 是所有类似特征的集合

fs查看所有的flag

fs imports; f

打印出imports下面的信息

为了获取更多的信息,iz命令可以再列出数据段里的字符串 

axt @@ str.*

'axt'命令用来在data/code段里找寻某个地址相关的引用

'@@'就像一个迭代器,用来在地址空间里不断地匹配后面一系列相关的命令

'str.*' 是一个通配符,用来标记所有以 'str.'开头的信息,不光会列出字符串标志,同时也包括函数名,找到它们到底在哪里以及何处被调用。

radare2分析出来哪些函数

通过afl命令列出所有的函数。通过v命令进入可视化界面。包括流程图、汇编代码、函数、符号等信息

afl显示主函数,有时候不需要分析整个二进制文件,或者有个函数radare2没有识别出来可以af来分析该函数

s function跳转到想跳转的位置

s entry0

指令定位到entry0函数入口处

pdf查看函数汇编代码

pdf输出反汇编代码,分析函数的执行流程

pd x打印汇编信息x条

pdf@sym.JNI_OnLoad进行跳转,自动跳转到JNI_OnLoad函数的反汇编部分

ahi s 是用来设置字符串特定的偏移地址,@@是一个迭代器,可以用来接受后面输入的多个参数,执行完这条命令后,图形视图会自动刷新

ood?进入调试模式

VV/vv进入图形化界面

大写的VV进入图形化模式(键盘h、j、k、l按键移动图像)使用p/P切换图形模式,空格切换文本图形模式,文本下可以用p切换模式,小写的vv用来粗略浏览函数信息 

"wa xxx"修改汇编指令为xxx

"wa nop;nop;nop;nop;"

px表示打印16进制数,默认从当前位置开始,参数控制打印的字节数

px 10 

pdc反汇编函数 

afx查看调用函数 

?可以查看帮助,这个工具非常强大,需要多实践学习 

afl-+jni

s 0x00001d30

pdf 

afl

s 0x000019b8

pdg 

VV @ sym.Java_com_ogaclejapan_smarttablayout_utils_Entry_handleNativeConfig 

pdf @ sym.Java_com_ogaclejapan_smarttablayout_utils_Entry_handleNativeConfig 

afv表示a(分析)f(函数)v(变量), 可以看到局部变量

PEDAGDB插件

PEDA是为GDB设计的一个强大的插件,全称是Python Exploit Development Assistance for GDB。它提供了很多人性化的功能,比如高亮显示反汇编代码、寄存器、内存信息,提高了debug的效率。同时,PEDA还为GDB添加了一些实用的命令,比如checksec可以查看程序开启了哪些安全机制等等

pip install peda

git clone https://github.com/longld/peda.git ~/peda

echo "source ~/peda/peda.py" >> ~/.gdbinit

aslr显示/设定GDB的ASLR(地址空间配置随机加载)设置 

file libploader.so附加文件

checksec检查二进制文件的各种安全选项

dumpargs函数将要被调用时,显示将要被传入函数的所有参数(默认会在反汇编代码下方自动显示)

dumprop在给定内存范围中Dump出所有ROP gadgets

PEDA用法总结

https://blog.csdn.net/SmalOSnail/article/details/53149426

peda的使用

https://www.jianshu.com/p/283b5466684b

总结

以上是生活随笔为你收集整理的scanner怎样回到文件开头_Radare2逆向分析dex/so/二进制等文件的使用方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。